论文地址:RetinaFace: Single-stage Dense Face Localisation in the Wild
一、概况
本篇论文提出的RetinaFace属于single-stage的人脸检测器,它结合了额外监督和自监督多任务学习的优点。它主要有以下五点贡献:
1. 在WIDER FACE数据集上标注了5个人脸的landmarks,并且在这个额外监督信号的帮助下,提升了hard face的检测效果。
2. 添加了自监督的mesh decoder分支,与已有的监督分支并行预测像素级的3D形状人脸信息。
3. 在WIDER FACE hard测试集上,平均精度超过当前最先进的算法1.1%,达到91.4%。
4. 在IJB-C测试集上,RetinaFace能够改善现有方法(ArcFace)的人脸验证结果。
5. 采用轻量级的backbone,RetinaFace可以在单个CPU上实时运行VGA分辨率的图像。
二、多任务损失函数
其中, 是训练的第
个anchor
是人脸分类损失
表示第
个anchor是人脸的置信度
是人脸为1,非人脸为0
是人脸定位框回归损失,是使用中心归一化后的损失(smooth-L1)
表示预测的人脸定位框的坐标
表示groundtruth的人脸定位框的坐标
是人脸landmark回归损失
表示预测的5点人脸landmark
表示groundtruth的5点人脸landmark
是dense回归损失
控制损失平衡的三个参数分别设置为0.25,0.1和0.01。
三、Dense Regression分支
论文直接利用了Mesh Decoder,是一种基于快速局部谱滤波的图卷积。
二维卷积对欧式网格感受野计算加权和,而图卷积是计算连接两个顶点的最小边数。
定义彩色的face mesh
其中,是一系列包含人脸形状和纹理信息的顶点集合
是编码点间连接状态稀疏矩阵
定义图拉普拉斯算子
其中,是对角矩阵
核为的图卷积可以表示为K阶截断的递归切比雪夫多项式。
其中,是切比雪夫系数向量
是在缩放的拉普拉斯算子
下的k阶切比雪夫多项式
设,
那么就可以递归的计算
其中,,
在预测出形状和纹理参数之后,使用一个有效的3D差分mesh renderer将一个coloured-mesh
映射到二维图像平面,此过程要使用相机参数
和补光参数
。
一旦得到了渲染的2D人脸,就可以像素级的比较渲染的人脸和原来的2D人脸之间的差异。
其中,W,H是裁剪块的宽和高。
四、实验
4.1 数据集
WIDER FACE数据集包含32203张图片,共393703个人脸标注框,在尺度、姿态、表情、遮挡和照明上变化很大。
WIDER FACE的划分是训练集40%,验证集10%,测试集50%,并且划分为Easy,Medium和Hard三个等级。
论文作者根据标注人脸landmarks的难易程度将数据划分为5个等级。
4.2 实现细节
特征金字塔获取5层多尺度特征,其中
来自ResNet的残差结构
,
是在
的基础上接一个3x3,stride=2的卷积。
是ResNet-152在ImageNet-11k数据集上预训练的分类网络,
是用“Xavier”方法随机初始化的。
受SSH和PyramidBox的启发,论文在每层金字塔的后面也加入了Context Module,用以增大感受野和加强建模能力。采用的是可变卷积网络(DCN)对每个尺度的输出添加后处理模块。
损失权重部分,负样本只用分类损失,正样本则计算多任务损失,添加1x1的卷积进行训练,mesh decoder直接使用预训练模型。
Anchor的设置见下表。
训练时,与标注框的IOU大于0.5的匹配为TP,小于0.3的匹配为FP,中间未匹配部分在训练时忽略。为解决样本不均衡问题,对负样本按照损失值排序,按照与正样本3:1的比例挑选靠前的部分。
数据增广采用的策略是从原图中随机抠取正方形区域,并resize到640x640,正方形抠选区域的边长为原图最小边的0.3~1,如果某人脸标注框的中心在抠选区域内,则保留该标注为当前抠选区域中的有效人脸,同时对图像按照0.5的概率进行随机水平翻转及颜色空间变换。
训练参数:
4张NVIDIA Tesla P40(24GB)显卡
SGD optimiser
momentum 0.9
weight decay 0.005
batch size 8 x 4
learning rate, 初始1e-3,5 epochs后1e-2,55 epochs后1e-3,68 epochs后1e-4,共迭代80个epochs。
4.3 实验结果
显示多任务学习有助于提高性能。
另外,作者还设计了light-weight模型。