
摘要
我们提出了一种新的损失函数,即Wing损失函数,用于基于卷积神经网络(CNNs)的鲁棒面部关键点定位。首先,我们比较和分析了不同的损失函数,包括L2、L1和光滑L1(smooth L1)。对这些损失函数的分析表明,在训练基于CNN的关键点定位模型时,应更加关注小范围和中等范围的误差。为此,我们设计了一种分段损失函数。新的损失函数通过从L1损失切换到一个改进的对数函数来放大区间(-w, w)内的误差影响。为了解决训练集中大角度平面外头部旋转样本代表性不足的问题,我们提出了一种简单但有效的增强策略,称为基于姿态的数据平衡(pose-based data balancing)。具体而言,我们通过复制少数类训练样本并注入随机图像旋转、边界框平移以及其他数据增强方法来解决数据不平衡问题。最后,所提出的 方法被扩展为一种两阶段框架,以实现鲁棒的面部关键点定位。在AFLW和300W数据集上获得的实验结果展示了Wing损失函数的优势,并证明了该方法优于现有最先进的方法。
代码仓库
open-mmlab/mmpose
pytorch
noelmat/facelandmarks_wingloss
GitHub 中提及
mktoid/made-thousand-facial-landmarks
pytorch
GitHub 中提及
xialuxi/arcface-caffe
GitHub 中提及
mikgur/MADE_CV_1000_facial_landmarks
pytorch
GitHub 中提及
parthapratimbanik/facial-keypoint-detection-udacity-ppb
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| face-alignment-on-300w | Wing | NME_inter-pupil (%, Challenge): 7.18 NME_inter-pupil (%, Common): 3.27 NME_inter-pupil (%, Full): 4.04 |
| face-alignment-on-aflw-19 | Wing | AUC_box@0.07 (%, Full): 53.5 NME_box (%, Full): 3.56 NME_diag (%, Full): 1.65 |
| face-alignment-on-cofw | Wing (Feng et al., 2018) | NME (inter-ocular): 5.07 |
| face-alignment-on-wflw | Wing | AUC@10 (inter-ocular): 55.4 FR@10 (inter-ocular): 6.00 NME (inter-ocular): 5.11 |