PFLD: A Practical Facial Landmark Detector
论文链接:https://arxiv.org/abs/1902.10859
发表出处:2019 CVPR
1.背景
Landmarks检测准确性的问题可以总结为三个挑战:
(1)局部变形,面部表情、局部极端光照(如高光和阴影)和遮挡会对面部图像造成部分变化/干扰。一些区域的Landmark可能会偏离正常位置甚至消失。
(2)全局变化,姿势和成像质量是影响人脸在图像中表现的两个主要因素,当人脸全局结构被错误估计时,这两个因素会导致大部分关键点的定位较差。
(3)数据不平衡,在浅层学习和深层学习中,一个可用的数据集在它的类或者属性之间表现出不平等的分布,这是很常见的。这种不平衡很可能使算法或者模型不能正确地表示数据的特征,从而在不同属性之间提供不令人满意的准确性。
与此同时,在移动设备上具有实时速度,也要求设计的模型要同时兼顾速度和效率
2.内容
针对上面的挑战,文章主要做出了下面四方面的贡献
1.在训练阶段,利用辅助网络估计人脸的几何信息,然后对landmarks定位进行正则化
2.主张对与稀有训练样本相对应的错误而不是对丰富训练样本所造成的错误进行更多的惩罚,通过调整训练集中不同状态的样本权值,如大姿态、极端光照、遮挡等,来解决数据不平衡的问题。
针对这两个问题,提出了一个新的损失函数
3.使用多尺度的全连接(mult-scale fc)层用于精确定位人脸的特征点。
4.使用Mobilenet block构建网络的主干网络部分提升模型的处理速度减少模型计算量
提出的PLFD网络对复杂情况具有高精度的结果,大小只有2.1Mb,可以在手机上实现了每张脸140帧每秒的速度
3.损失函数的设计
论文先关注损失函数的设计,该函数同时处理局部变形,全局变化和数据不平衡这三个挑战
为了惩罚ground-truth landmarks 和预测的 landmarks,最简单的损失是L1或者L2损失。但是,在不考虑几何/结构信息的情况下,平均衡量特征点对的差异是不明智的。文章考虑到几何约束和数据不平衡提出了下面这个损失:
M为样本个数,N为特征点个数
C为不同的人脸类别数,文章将人脸分成多个类别,比如侧脸、正脸、抬头、低头、表情、遮挡等,w为与类别对应的给定权重,如果某类别样本少则给定权重大。
K等于3,θ nk表示ground-truth和预测在yaw、pitch、roll(上下翻转,水平翻转,平面内反转)三种角度之间的偏差,角度越大cos值越小,权重越大
|| * ||为测量第m个输入的第n个landmarks的误差
4.网络结构
文章的网络结构如图所示,由下面的主干网络和上面的辅助网络两部分组成
主干网络使用Mobilenet块代替了传统的卷积操作来提取特征和预测地标,这大大减少了模型参数和计算量
考虑到人脸具有很强的整体结构,如眼、口、鼻等的对称性和空间关系,这种整体结构有助于更精确地定位地标。论文将其扩展为多尺度特征图,而不是单尺度特征图,扩展是通过用步幅执行卷积操作来完成的,这样可以扩大感受野。
然后,通过完全连接多尺度特征图来进行最终预测。
PFLD的训练过程中引入辅助网络的目的监督PFLD网络模型的训练。训练网络仅在训练的阶段起作用,在测试的时候不参与;
辅助网络的用处是对于每一个输入的人脸样本,对该样本进行三维旋转信息的的估计
目的是监督和辅助训练收敛,主要是为了服务树干网络,值得注意的是辅助网络的输入不是训练数据,而是PFLD主网络的中间输出,
总的来说,主干网络主要作用是预测landmarks提供变量d mn,辅助网络用于估计几何信息提供变量θ nk。
5.实验结果
性能量化比较:
视觉效果:
消融实验: