基於兩步法的網格去噪算法顧名思義包含兩個步驟:首先對網格表面的法向進行濾波,得到調整后的網格法向信息,然后根據調整后的法向更新頂點坐標位置,下面介紹三篇該類型的文章。
[Sun et al. 2007]文章首先介紹了當前法向濾波方法以及頂點坐標更新方法,然后提出自己的法向濾波方法和頂點坐標更新方法。
法向濾波方法:
1.均值濾波(mean filter):ni’ = normalize(Σj∈N(i) Aj·nj / Σj∈N(i) Aj),均值濾波會破壞網格的細節特征。
2.中值濾波(median filter):ni’ = arg mediannj {wj⊙∠(ni, nj) : j∈N(i)},中值濾波能夠保持網格的細節特征,但當網格噪聲較大時,效果並不好。
3.α-截尾濾波(alpha-trimming filter):ni’ = normalize(Σj∈N(i) Iα(j) ·Aj·nj),∠(ni, nj)角度值前α比例和后α比例對應的Iα(j)為0,當α = 0時等同於均值濾波,當α = 0.5時等同於中值濾波。
4.模糊矢量中值濾波(fuzzy vector median filter):先使用矢量中值濾波nm = arg minnj {Σk∈N(i) d(nj, nk) : j∈N(i)},其中d(nj, nk)為nj和nk的Lp范數或∠(nj, nk)角度值,然后再使用高斯濾波ni’ = normalize(Σj∈N(i) nj·exp(-d(nj, nm)2/2σ2))。模糊矢量中值濾波可以得到誤差較小的法向,但會增加計算量。
5.[Sun et al. 2007]文章法向濾波方法:ni’ = normalize(Σj∈N(i) hj·nj),權重定義為,其中N(i)為三角片fi的鄰域三角片集,有兩種選擇,見下圖,f(x) = x2,0 ≤ T ≤ 1,T的取值決定了鄰域三角片N(i)中有多少三角片法向會參與計算,當T = 1時,只有與ni相等的鄰域三角片法向會參與計算,而當T = 0時,所有鄰域三角片法向都會參與計算。當網格有明顯棱邊時,T可以取相對較小值,而當網格比較光滑時,T可以取相對較大值。
Ⅰ基於頂點(vertex based)的三角片鄰域;Ⅱ表示基於邊(edge based)的三角片鄰域
頂點坐標更新方法:
1.求解線性方程組:
2.梯度下降法:
其中Nv(i)為頂點i的1環鄰域頂點集。
3. [Sun et al. 2007]文章頂點更新方法:
其中Fv(i)為頂點i的1環鄰域三角片集。
效果:
[Zheng et al. 2011]文章提出了兩種三角片法向更新方法,而其頂點坐標更新方法采用和[Sun et al. 2007]文章一樣的方法。
1.Local and Iterative Scheme:
該方法采用對法向進行雙邊濾波:nit+1 = Ki·Σj∈N(i) wij·njt,其中N(i)為三角片fi的鄰域三角片集,Ki為歸一化系數,wij = ξij·Wc·Ws,ξij為三角片fj的面積Si,空間域核Wc(||ci – cj||) = exp(-||ci – cj||2/2σc2),值域核Ws(||ni – nj||) = exp(-||ni – nj||2/2σs2)。
2. Global and Non-Iterative Scheme:
該方法通過求解線性方程組來最小化目標函數,相對於上面的顯式更新頂點坐標方法,該方法是一種對應的隱式更新頂點坐標方法,目標函數如下:
其中Ai = Si/mean({S}),上式等同於求解線性方程組,但是方程不滿秩,需要加入軟約束條件:Ed = Σi Ai·||ni’ – ni||2。最后優化目標為:argmin(1 - λ) ·Es + λ·Ed,其中λ∈[0, 1],用於控制網格的光滑程度。
效果:
[Zhang et al. 2015]文章提出了一種三角片法向更新方法,該方法與[Zheng et al. 2011]文章的方法一相似,不同的是[Zheng et al. 2011]文章采用原始法向作為雙邊濾波中的值域信息,而[Zhang et al. 2015]文章對原始法向進行引導濾波(guided filter)得到新的法向作為值域信息。而其頂點坐標更新方法同樣采用和[Sun et al. 2007]文章一樣的方法。
其中Ni為三角片fi的鄰域三角片集,Wi為歸一化系數,Aj為三角片fj的面積,空間域核Ks和值域核Kr都為高斯核函數。
關鍵如何計算三角片fi的引導法向(guidance)gi,文章提出對於三角片fi,在其周圍尋找一個包含三角片fi的區域,使該區域內的三角片法向變化最小,然后將這個區域里的所有三角片法向進行加權平均作為三角片fi的引導法向。具體來說,定義Pk為與三角片fi擁有共同頂點的三角片集{fk},那么三角片fi的候選區域(candidate patch)為C(fi) = {Pk∣fi∈Pk}。對於每個區域P∈C(fi),計算區域P內三角片法向的一致性(consistency):H(P) = Ф(P)·R(P),其中Ф(P)為區域P內三角片法向的最大偏差:Ф(P) = maxfj,fk∈P ||nj – nk||,R(P)為區域P內相鄰三角片法向的相對變化程度:,式中φ(ej) = ||nj1 – nj2||。然后選取其中一致性函數H(P)最小的區域P*,並對其中的三角片法向作面積加權平均,即得到三角片fi的引導法向gi:gi = normalize(Σfj∈P* Aj·nj)。
效果:
本文為原創,轉載請注明出處:http://www.cnblogs.com/shushen。
參考文獻:
[1] Xianfang Sun; Rosin, P.L.; Martin, R.R.; Langbein, F.C., "Fast and Effective Feature-Preserving Mesh Denoising," Visualization and Computer Graphics, IEEE Transactions, vol.13, no.5, pp.925-938, Sept.-Oct. 2007.
[2] Youyi Zheng; Hongbo Fu; Au, O.K.-C.; Chiew-Lan Tai, "Bilateral Normal Filtering for Mesh Denoising," Visualization and Computer Graphics, IEEE Transactions, vol.17, no.10, pp.1521-1530, Oct. 2011.
[3] Wangyu Zhang, Bailin Deng, Juyong Zhang, Sofien Bouaziz, Ligang Liu, "Guided Mesh Normal Filtering," Computer Graphics Forum (Proc. Pacific Graphics), 34(7): 23–34, 2015.