3D【10】网格优化:Laplacian Mesh Optimization

拉普拉斯网格优化与平滑是网格处理的经典算法,其一些基本概念可以作为神经网络预测3D mesh的一些约束,如平滑。我们先来看看一些基本概念。

基本概念

首先,我们用G=(V,E) 来表示一个网格。
其中V=[v1T,v2T,...,vnT]T,vi=[vix,viy,viz]TR3是顶点,E是边。拉普拉斯坐标定义为:
3D【10】网格优化:Laplacian Mesh Optimization
其中{i,j}Ewi,j=1 ,并且
3D【10】网格优化:Laplacian Mesh Optimization
3D【10】网格优化:Laplacian Mesh Optimization
分别是均匀权值和余切权重。α,β 为:
3D【10】网格优化:Laplacian Mesh Optimization

上面的等式可以用矩阵表示:
3D【10】网格优化:Laplacian Mesh Optimization
3D【10】网格优化:Laplacian Mesh Optimization
其中L是n×n的拉普拉斯矩阵:
3D【10】网格优化:Laplacian Mesh Optimization

优化与平滑

拉普拉斯网格平滑求解:
3D【10】网格优化:Laplacian Mesh Optimization
Lu 表示利用均匀权值构建的拉普拉斯矩阵,V_d^' 为要求解的平滑后的网格顶点。其中用了m个顶点作为约束。这样等式左边是一个(n+m)×n的矩阵乘以一个n×1的向量(x,y,z分开算),右边是一个(n+m)×1的向量。

拉普拉斯网格优化求解:
3D【10】网格优化:Laplacian Mesh Optimization
与平滑不一样的是,等式右边向量的前n个元素不再为0,而是在余切权值下计算得来的拉普拉斯坐标。

约束顶点的权值选择

论文使用顶点约束是所有的顶点。文章讨论了几种顶点约束权值选择方法。分别是常量,线性,CDF以及正切平面约束和三角面片质量约束。

总结

在python上实现了拉普拉斯网格优化和平滑,并且用3D 人脸做实验。在网格优化上,约束顶点权值类型的选择对3D 人脸的几何形状影响比较大。还有一个问题,如果三角平面是直角三角形的时候,拉普拉斯网格优化会失败。在网格平滑上,通过求解线性方程组的方法效果会比,直接将计算得到的拉普拉斯坐标加上(减去)原来的顶点坐标会效果会好很多。直接加上的话会过于平滑,但是如何通过求解线性方程组(加上顶点约束权重的控制)能够很好的控制平滑力度。

未平滑的人脸

3D【10】网格优化:Laplacian Mesh Optimization

求解线性方程平滑

3D【10】网格优化:Laplacian Mesh Optimization

直接加上拉普拉斯坐标平滑

3D【10】网格优化:Laplacian Mesh Optimization