Face Alignment in Full Pose Range: A 3D

*该论文创新点:
1:采用拟合三维人脸来代替直接定位特征点 ;然后可以根据三维人脸进行特征点的标记 ;
2:设置新的级联卷积神经网络,并为该网络设置新的是PAF和PNCC的结合 ;
3:采用人脸轮廓合成方法处理300W数据集,从而得到300W-LP训练数据集,用该数据集训练模型,得到的模型结果比300W数据集的结果要好很多;
4:采用四维的四元数来代替欧拉角来表示旋转 ; 从而避免了万向锁;同时将四元数除以根号f , 将缩放量参数也合并到四元数中;
5:(非创新点,但需牢记的套路):利用300W-LP数据集训练需要对比论文的模型,然后在同一数据集下进行测试该模型(AFLW与-3D与300W数据集),计算每个图片的NME,从而可以得到平均的NME,然后在大Table中进行比较各个论文的NME,从而对比Table填完后,相应的论文实验就此结束 ;
该论文主要解决得问题:
1:为解决大姿态情况下人脸特征点丢失问题时,通过级联神经网络拟合三维人脸来代替直接标注特征点,之后再利用三维人脸信息可以在得到特征点的信息;
2:为解决如何拟合三维人脸模型的问题,设计了新的网络,并未该网络设置了新的 ; 同时设置了新的损失函数;
3:为解决训练数据集短缺的问题,提出了人脸轮廓合成方法,处理300w数据集得到300W-LP数据集;
一:特征图的设计 :
根据论文叙述,一般所有论文描述的特征图输入共有两种; 第一种是直接将原图片作为特征图输入到神经网络中() ; 第二种是按照模型的需要,将像素进行重排列后得到的特征图输入到神经网络中()。本文对于特征图的设计采用了两种方法得到的两种特征图,然后将两种特征图进行结合。
PAF的构造理解:
如下图是PAF图生成的步骤 ;
大致步骤:首先初始化一个3DMM的参数P,然后利用公式重建出三维人脸模型
1:将该三维人脸模型进行上采样得到一个64x64的(a) ;
2:在将该三维人脸模型投影到二维平面图上,从而又得到一个64x64的(b); 此时将两个 设置为一个可视化,一个不可视化;
3:分别剪切每个 大小为dxd ; 与原来的图片连接成扩展的二维图片 ?
4:将该图片进行PAC卷积处理,得到64x64的PAF结果图(d) ;
PNCC的构造理解:
1:首先初始化一个3DMM的参数P,然后利用公式重建出三维人脸模型维度是[3,53215],第一行是代表该所有特征点的x轴坐标;
2:将该三维人脸模型按照如下公式进行归一化处理,得到NCC(图a); 此时用NCC作为该三维人脸模型的纹理颜色图;
3:将三维人脸模型按照如下公式投影到二维平面上,采用Z-BUFF算法渲染p2d,且NCC作为 ,从而得到PNCC图(b) ;
二:网络结构设计:
网络输出的结果:在初始化参数p输入 后,参数输出更新的数是 p ; 此时参数的值是 p+ p ;
三:
训练数据集:
训练时主要采用人脸轮廓合成技术从300W数据集中合成300W-LP数据集 ;这个数据集的标签是每个图片真实的3DMM参数; 同时后面的实验结果证明,这个数据集对模型进行训练比300W数据集对模型进行训练的结果要优秀很多;
四:
损失函数和优化函数的设计:
该论文主要使用vdc(顶点距离损失),wpdc(权重参数距离损失),vdc from wpdc(先用wpdc损失函数训练好模型后,在用wpdc训练好的模型参数初始化网络模型,此时继续用vdc损失函数微调神经网络模型);owpdc损失函数 ; 主要使用了SGD优化函数 ; 详细解析如下 ;
训练时运用到的损失函数解析:
1:重识3DMM的基本原理:
任何一个照片都能通过固定的公式重建出三维人脸模型,具体公式略,但大体用到的数据有 :bfM数据中的平均形状,形状向量基,表情向量基(来自于数据集) ; 注:这些数据都是三维人脸模型,每一个三维人脸模型都存储了53215个顶点的三维坐标,只不过将这些坐标展开成向量形式 ; 该论文主要从bfm数据中一共选取了40个形状向量基,10个表情向量基 ; 形状向量基的维度是 [ , 40 ] ; 之后我们在利用网络回归出3DMM的参数,然后利用公式就可以重建出三维人脸模型 ;