论文:PFLD: A Practical Facial Landmark Detector
Github:http://sites.google.com/view/xjguo/fld
https://github.com/polarisZhao/PFLD-pytorch
论文基于mobilbeNet v2的主干结构,设计了一个快速准确的人脸关键点检测模型,PFLD。其中,PFLD 0.25X仅仅2.1Mb,速度达到了140fps。
难点挑战:
- Local Variation,包括表情,局部光照,遮挡
- Global Variation,包括姿态,图片质量
- Data Imbalance,数据集中类别和属性分布不均匀
- Model Efficiency,模型的大小和计算量
主要贡献:
- 训练过程加入人脸几何约束geometric constraint,使得大角度,难样本,传递更大的loss。
- 加入人脸属性信息(profile-face, frontal-face, head-up, head-down, expression,
and occlusion),解决数据不平衡data imbalance
Loss设计:
n表示第n个关键点
m表示第m个输入图片,
rn表示随机的权重
d表示loss的距离,例如L1,L2
θ1, θ2, and θ3 (K=3),表示预测的欧拉角,yaw,pitch,roll和groundtruth之间的偏差。
w表示人脸属于profile-face, frontal-face, head-up, head-down, expression,occlusion这几种类别里面的分数。
网络结构:
网络输入图片为112*112,数据增强方法包括,随机水平翻转,[-30,30]之间每5度的角度旋转,20%的人脸随机遮挡。
网络以mobileNetv2作为主干网络结构。后续分为绿色和红色2个分支。红色的分支为主干分支,用于回归预测68个关键点,绿色的分支为辅助分支,用于预测欧拉角。对于推理阶段,只使用红色的主干分支。
红色主干分支的结构:
绿色辅助分支的结构:
实验结果:
总结:
- 以mobilenetv2作为主干网络结构,简单实用,模型够小,速度够快,更加贴合实际工业应用。
- 手机端模型实际测试,效果还是差些,可能需要加更多的数据进行训练。