最近在研究人脸3d重建的内容,配准是训练出一个类似Basel Face Model的一个前期3d数据处理过程。由于从设备扫描出来的3d人脸的顶点个数非常多,而像BFM这样的模型中一个3d face的顶点为53490个点。为了用一个顶点较少的模板来表示一个从设备扫描出来的3d face,我们需要用到配准算法。在3d face的配准中使用的是非刚性配准,意思是模板除了平移,缩放和旋转之外,还可以变形。在配准中,模板是作为source,从设备扫描出来的3d face作为target,配准的目的是找到一个变换(在该论文中是为每个顶点分别找到一个变换矩阵),使得source能够表示target。
该论文提出的非刚性ICP算法可以用来3d face的配准,论文A 3D Morphable Model learnt from 10,000 faces使用的也是该方法。non-rigid ICP算法有三个损失函数,分别是Data loss、Smoothness loss和Landmarks loss。
假设模板 S=(V,E) S = ( V , E ) ,其中V是顶点,有n个;E是边。另外每个顶点的变换矩阵 Xi X i 大小是 3∗4 3 ∗ 4 ,这样所有顶点的变换矩阵可表示为 X=[X1,...,Xn]T X = [ X 1 , . . . , X n ] T ,大小为3*4n。
Data loss:
其中, vi v i 是模板中的第i个顶点, wi w i 为权重。该损失函数计算的时候,需要从3d face( T )中找到与模板顶点i最近的点,然后计算距离。
Smoothness loss:
其中, G=diag(1,1,1,γ) G = d i a g ( 1 , 1 , 1 , γ ) , γ γ 用来权衡旋转和平移。该损失函数的作用是,使变换后的模板尽量平滑。
Landmarks loss:
其中l是target的特征点, L=(vi1,li),...,(vil,ll) L = ( v i 1 , l i ) , . . . , ( v i l , l l ) 。
整个优化损失函数为:
其中
α
α
的作用:
decreasing vector of real-valued stiffness parameters.
High stiffness parameters force global transformations whereas(整个3d face?)
low values allow for local deformations.(局部,眼睛之类的?)
论文后面是损失函数的矩阵形式,和没有数据部分(3d face的扫描数据一般没有脑袋部分)的补偿。
2018.2.24更新:
实验了一下,发现人脸特征点的作用比较大。如果没有人脸特征点的话,配准的结果会很差。该方法的效果还是非常不错的,不过比较耗时。
本文介绍了3D非刚性配准在3D人脸重建中的应用,特别是用于将高顶点数的3D扫描人脸配准到低顶点的模板模型。论文提出了一种非刚性ICP算法,包含Data loss、Smoothness loss和Landmarks loss三个损失函数。高刚度参数促进全局变换,低刚度参数允许局部变形。实验表明,特征点对配准效果至关重要,虽然方法有效,但计算时间较长。
4626

被折叠的 条评论
为什么被折叠?



