3D【10】网格优化:Laplacian Mesh Optimization
拉普拉斯网格优化与平滑是网格处理的经典算法,其一些基本概念可以作为神经网络预测3D mesh的一些约束,如平滑。我们先来看看一些基本概念。
基本概念
首先,我们用 来表示一个网格。
其中是顶点,E是边。拉普拉斯坐标定义为:
其中 ,并且
分别是均匀权值和余切权重。 为:
上面的等式可以用矩阵表示:
其中L是n×n的拉普拉斯矩阵:
优化与平滑
拉普拉斯网格平滑求解:
表示利用均匀权值构建的拉普拉斯矩阵, 为要求解的平滑后的网格顶点。其中用了m个顶点作为约束。这样等式左边是一个(n+m)×n的矩阵乘以一个n×1的向量(x,y,z分开算),右边是一个(n+m)×1的向量。
拉普拉斯网格优化求解:
与平滑不一样的是,等式右边向量的前n个元素不再为0,而是在余切权值下计算得来的拉普拉斯坐标。
约束顶点的权值选择
论文使用顶点约束是所有的顶点。文章讨论了几种顶点约束权值选择方法。分别是常量,线性,CDF以及正切平面约束和三角面片质量约束。
总结
在python上实现了拉普拉斯网格优化和平滑,并且用3D 人脸做实验。在网格优化上,约束顶点权值类型的选择对3D 人脸的几何形状影响比较大。还有一个问题,如果三角平面是直角三角形的时候,拉普拉斯网格优化会失败。在网格平滑上,通过求解线性方程组的方法效果会比,直接将计算得到的拉普拉斯坐标加上(减去)原来的顶点坐标会效果会好很多。直接加上的话会过于平滑,但是如何通过求解线性方程组(加上顶点约束权重的控制)能够很好的控制平滑力度。