基于两步法的网格去噪算法顾名思义包含两个步骤:首先对网格表面的法向进行滤波,得到调整后的网格法向信息,然后根据调整后的法向更新顶点坐标位置,下面介绍三篇该类型的文章。
[Sun et al. 2007]文章首先介绍了当前法向滤波方法以及顶点坐标更新方法,然后提出自己的法向滤波方法和顶点坐标更新方法。
法向滤波方法:
1.均值滤波(mean filter):n i ’ = normalize(Σ j ∈ N(i) A j ·n j / Σ j ∈ N(i) A j ),均值滤波会破坏网格的细节特征。
2.中值滤波(median filter):n i ’ = arg median nj {w j ⊙∠(n i , n j ) : j∈N(i)},中值滤波能够保持网格的细节特征,但当网格噪声较大时,效果并不好。
3.α-截尾滤波(alpha-trimming filter):n i ’ = normalize(Σ j ∈ N(i) I α (j) ·A j ·n j ),∠(n i , n j )角度值前α比例和后α比例对应的I α (j)为0,当α = 0时等同于均值滤波,当α = 0.5时等同于中值滤波。
4.模糊矢量中值滤波(fuzzy vector median filter):先使用矢量中值滤波n m = arg min nj {Σ k ∈ N(i) d(n j , n k ) : j∈N(i)},其中d(n j , n k )为n j 和n k 的L p 范数或∠(n j , n k )角度值,然后再使用高斯滤波n i ’ = normalize(Σ j ∈ N(i) n j ·exp(-d(n j , n m ) 2 /2σ 2 ))。模糊矢量中值滤波可以得到误差较小的法向,但会增加计算量。
5.[Sun et al. 2007]文章法向滤波方法:n i ’ = normalize(Σ j ∈ N(i) h j ·n j ),权重定义为 ,其中N(i)为三角片f i 的邻域三角片集,有两种选择,见下图,f(x) = x 2 ,0 ≤ T ≤ 1,T的取值决定了邻域三角片N(i)中有多少三角片法向会参与计算,当T = 1时,只有与n i 相等的邻域三角片法向会参与计算,而当T = 0时,所有邻域三角片法向都会参与计算。当网格有明显棱边时,T可以取相对较小值,而当网格比较光滑时,T可以取相对较大值。
Ⅰ基于顶点(vertex based)的三角片邻域;Ⅱ表示基于边(edge based)的三角片邻域
顶点坐标更新方法:
1.求解线性方程组:
2.梯度下降法:
其中N v (i)为顶点i的1环邻域顶点集。
3. [Sun et al. 2007]文章顶点更新方法:
其中F v (i)为顶点i的1环邻域三角片集。
效果:
[Zheng et al. 2011]文章提出了两种三角片法向更新方法,而其顶点坐标更新方法采用和[Sun et al. 2007]文章一样的方法。
1.Local and Iterative Scheme:
该方法采用对法向进行双边滤波:n i t+1 = K i ·Σ j ∈ N(i) w ij ·n j t ,其中N(i)为三角片f i 的邻域三角片集,K i 为归一化系数,w ij = ξ ij ·W c ·W s ,ξ ij 为三角片f j 的面积S i ,空间域核W c (||c i – c j ||) = exp(-||c i – c j || 2 /2σ c 2 ),值域核W s (||n i – n j ||) = exp(-||n i – n j || 2 /2σ s 2 )。
2. Global and Non-Iterative Scheme:
该方法通过求解线性方程组来最小化目标函数,相对于上面的显式更新顶点坐标方法,该方法是一种对应的隐式更新顶点坐标方法,目标函数如下:
其中A i = S i /mean({S}),上式等同于求解线性方程组,但是方程不满秩,需要加入软约束条件:E d = Σ i A i ·||n i ’ – n i || 2 。最后优化目标为:argmin(1 - λ) ·E s + λ·E d ,其中λ∈[0, 1],用于控制网格的光滑程度。
效果:
[Zhang et al. 2015]文章提出了一种三角片法向更新方法,该方法与[Zheng et al. 2011]文章的方法一相似,不同的是[Zheng et al. 2011]文章采用原始法向作为双边滤波中的值域信息,而[Zhang et al. 2015]文章对原始法向进行引导滤波(guided filter)得到新的法向作为值域信息。而其顶点坐标更新方法同样采用和[Sun et al. 2007]文章一样的方法。
其中N i 为三角片f i 的邻域三角片集,W i 为归一化系数,A j 为三角片f j 的面积,空间域核K s 和值域核K r 都为高斯核函数。
关键如何计算三角片f i 的引导法向(guidance)g i ,文章提出对于三角片f i ,在其周围寻找一个包含三角片f i 的区域,使该区域内的三角片法向变化最小,然后将这个区域里的所有三角片法向进行加权平均作为三角片f i 的引导法向。具体来说,定义P k 为与三角片f i 拥有共同顶点的三角片集{f k },那么三角片f i 的候选区域(candidate patch)为C(f i ) = {P k ∣f i ∈P k }。对于每个区域P∈C(f i ),计算区域P内三角片法向的一致性(consistency):H(P) = Ф(P)·R(P),其中Ф(P)为区域P内三角片法向的最大偏差:Ф(P) = max fj,fk ∈ P ||n j – n k ||,R(P)为区域P内相邻三角片法向的相对变化程度: ,式中φ(e j ) = ||n j1 – n j2 ||。然后选取其中一致性函数H(P)最小的区域P * ,并对其中的三角片法向作面积加权平均,即得到三角片f i 的引导法向g i :g i = normalize(Σ f j ∈ P* A j ·n j )。
效果:
欢迎大家一起探讨计算机图形学算法问题,邮箱:shushen@126.com
本文为原创,转载请注明出处: 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.