本文介绍一下Mesh Denoising via Cascaded Normal Regression 这篇文章.2016年发表在TG.
这篇文章介绍了一种数据驱动的三维网格去噪方法.基本思路是:
1. 每个三角形上B-FND和G-FND的获取
基于双边面法向滤波(4.1中的①)和引导双边滤波(4.1中的②)得到两种三维网格的几何描述子(机器学习中的特征向量),分别是B-FND和G-FND.双边法向滤波考虑质点间的距离和法向之间的差,引导双边滤波考虑质点距离和面法向引导的差(法向的引导考虑领域法向,使结果更光滑).本文中法向引导设为高斯距离的标准差.
2. Algorithm overview
2.1 offtrain stage:训练模型
2.1.1 单个簇中的训练
将每个簇的数据划分出15%作为验证集.以E为损失函数,其中Ereg是防止过拟合的正则项.径向基函数RBF为训练的函数模型.也就是说这个网络在训练参数Wlk, blk和alk.关于径向基函数(围绕一个固定点等距的x 的函数值相等.高斯函数就是径向基函数)也可以选择其他非线性函数.但是对于线性函数,效果不好.
2.1.2 训练步骤
After the first regression computes the facet normals from the FNDs of the input noisy mesh, we reconstruct the mesh from the output facet normal and extract FNDs to feed into the next regression step. We repeat this procedure and reconstruct the resulting mesh from the facet normals obtained from the last regression step
Step1: 按照FND的相似度,利用K平均算法将网格面分到不同的簇中(这也是本文的局限性.要求三角面可以根据FND划分).随即在每个簇中利用单隐层神经网络训练回归函数(5.1.1),训练完后更新顶点(Sun.et al., 2007),更新网络(因为要用到三角形面积).
Step2: 计算下一个簇的FND(具体的实验中,除了第一个簇用的G-FND,其余的簇都用B-FND).将上一层训练的回归函数的参数作为下一个簇回归函数的初始化,然后训练下一个簇的回归函数.
2.2 runtime denosing stage: