Embedded Deformation for Shape Manipulation论文详解
这是一篇2007年的论文,用来处理三维空间中的非线性变换。之后这个图结构用于Fusion4D来做三维重建以及Fast_RNRR来做非刚体配准。图的构建简单,问题是如何加快优化的速度,目前Fusion4D和Fast_RNRR中速度快。一下对图的构建进行说明。
图的概念
首先介绍论文中图的基本概念。
- vertex 三维中的所有点
- node 构建图的点,位置变换会对vertex产生影响。每个node储存了旋转和平移矩阵
- edge 满足条件的node构建edge,用来表示点之间的重叠影响
1.edge:首先edge是由node参与构建的,与vertex无关。如果NodeA 和 NodeB 都对某一个vertex有影响,那么这两个点是有边连接的。
2.为了减少计算量和效率(最近邻点的变换应该是相近的),于是选择KNN的node,来构建边。也就是说对于每一个vertex去找最近邻的node,而这些node都会构建edge(都对这个vertex有作用),遍历每一vertex,由此构建node的邻接矩阵
3.edge的作用在优化中的第二个能量项中,有边连接的node是相互制约的。
总结一下图的基本思想。每个vertex的位置变换由相邻的node决定,而有edge连接的node的位置变换相互制约。
优化
优化项
以下通过优化项对论文进行解析。
优化项总的分为三项:约束项、正则项、旋转项。约束项和旋转项非常容易理解。总的能量项即为三者加权。
1.约束项
这一项非常容易理解,就是predict的点的位置应该尽可能逼近用户edit的点.
2.正则项
两个node变换的约束,即构建了edge的node对node的变换应该与自己对自己的尽可能相似.
alpha应该正比于图的度。但是论文作者为了该模型能够适应各种3D结构,于是统一设计为1.
3.旋转项
旋转项要求旋转矩阵尽可能满足SO(3),E(rot)即是所有的求和。
思考:论文中w(con) = 100, w(reg) = 10, w(rot) = 1.如果我不需要交互,只是选择某些点,使得它们去拟合一曲面,那么我能不能把约束项直接删除使得选中的点移动至我指定的位置?
答:我认为不能删因为去拟合一个平面,不一定要我选中的点到达指定的位置,而是需要整体的相近性(当然还有其他损失项来迫使面向面的拟合)。如果删去,相当于将约束项的权重设置为无穷,不一定能达到我想要的效果。
高斯-牛顿法优化
高斯-牛顿法即用于解决非线性的拟合问题。假设有一个n维向量,通过f(x)映射到m维去,求解一组n使得有关m维的函数最小,即损失项(f(x).transpose()*f(x))最小,而求解的n则是每一个node的变换矩阵中的参数。
在实际使用过程中,一般迭代3-4次就可以收敛,可见算法的效率较高。
算法流程
- 输入Node, Vertex
- 初始化各个Node的旋转与平移矩阵,计算连通性,得到邻接矩阵
- 选择指定点移动
- 高斯牛顿优化
5. 计算迭代点
6. 更新矩阵参数以及邻接矩阵
7. 重复5、6直到到达阈值(阈值的判定在文中还比较复杂)