RetinaFace: Single-stage Dense Face Localisation in the Wild
1. Motivation
- 在wilder数据集进行准确有效的面部定位仍然是一个公开的挑战。
2. Contribution
- 提出了一种鲁棒的单阶段人脸检测器,名为RetinaFace,该方法采用多任务学习策略,同时预测人脸评分、人脸框、五个人脸关键点以及每个人脸像素的三维位置和对应关系。
单级逐像素人脸定位方法(常用于解决密集人脸检测)利用外监督和自监督的多任务学习同时包含人脸框分类及回归分支。
- 在WIDER FACE数据集上手动注释5个面部标志,并观察到在额外的监督信号的帮助下,hard face检测的显著改进。
- 进一步添加了一个自监督网格解码器分支,用于与现有的监督分支并行预测像素级3D形状人脸信息。
- 通过使用轻量级骨干网,RetinaFace可以在单个CPU核上实时运行vga分辨率的图像。
- Performance:在WIDER FACE的hard级别的测试集中,RetinaFace超出the state of the art 平均精度(AP) 1.1%(达到AP=91.4%)。在IJB-C测试集中,RetinaFace使state of the art 方法(Arcface)在人脸识别中的结果得到提升(FAR=1e6,TAR=85.59%)。
3.Method
3.1 Loss
-
L
c
l
s
L_{cls}
Lcls?:人脸分类,这里
p
i
,
p
i
?
p_i,p_i^*
pi?,pi??分别对应的是第i个anchor为人脸的预测概率和真值(是人脸为1,不是为0),分类的loss是softmax loss二分类情况
-
L
b
o
x
L_{box}
Lbox?:人脸框回归,
t
i
=
{
t
x
,
t
y
,
t
w
,
t
h
}
t_i = \{t_x,t_y,t_w,t_h\}
ti?={tx?,ty?,tw?,th?},对应positive预测框的中心点以及宽高比,
t
i
?
t_i^*
ti??就是对应的真值框。
-
L
p
t
s
L_{pts}
Lpts?:人脸landmark,
l
i
=
{
l
x
1
,
l
y
1
,
.
.
.
,
l
x
5
,
l
y
5
}
l_i = \{l_{x_1},l_{y_1},...,l_{x_5},l_{y_5}\}
li?={lx1??,ly1??,...,lx5??,ly5??}分别对应五个人脸关键点,
l
i
?
l_i^*
li??为对应的真值。
-
L
p
i
x
e
l
L_{pixel}
Lpixel?:Dense回归,loss调节参数
λ
1
?
λ
3
\lambda_1 -\lambda_3
λ1??λ3?设置为0.25,0.1和0.01,这意味着在监督信号中,我们增加了边界框和关键点定位的重要性。
3.2 Dense Regression Branch
Mesh Decoder:网格编码器(网格卷积和网格上采样)一种基于快速局部谱滤波的图卷积方法。为了实现进一步的加速,还使用了联合形状和纹理的解码器。 图卷积:原理和2d卷积相似,但是邻接距离是通过计算连接两个顶点的最小边数来计算的。
定义一个彩色人脸网络:
G
=
(
V
,
ε
)
,
V
∈
R
n
×
6
G = (V,\varepsilon),V \in R^{n \times 6}
G=(V,ε),V∈Rn×6是一组包含联合形状和纹理信息的人脸顶点集合。
ε
∈
{
0
,
1
}
n
×
n
\varepsilon \in \{0,1\}^{n\times n}
ε∈{0,1}n×n是一个稀疏邻接矩阵,它编码了顶点之间的连接状态。图卷积的内核
g
θ
g_{\theta}
gθ?是可以表示为K项的递归切比雪夫(Chebyshev)多项式:
其中图拉普拉斯定义为
L
=
D
?
ε
∈
R
n
×
n
,
D
L = D - \varepsilon \in R^{n \times n},D
L=D?ε∈Rn×n,D是对角矩阵,
D
i
i
=
∑
j
ε
i
j
D_{ii} = \sum_j \varepsilon_{ij}
Dii?=∑j?εij?。
θ
\theta
θ是一个切比雪夫系数的向量。
T
k
(
L
~
)
T_k(\tilde{L})
Tk?(L~)表示切比雪夫多项式在缩放拉普拉斯算子
L
~
\tilde{L}
L~上求值。 推导公式如下:
x
~
k
=
T
k
(
L
~
)
x
x
~
k
=
2
L
~
x
~
k
?
1
?
x
~
k
?
2
x
~
0
=
x
x
~
1
=
L
~
x
\tilde{x}_k = T_k(\tilde{L})x\\ \tilde{x}_k = 2\tilde{L}\tilde{x}_{k-1} - \tilde{x}_{k-2}\\ \tilde{x}_0 = x\\ \tilde{x}_1 = \tilde{L}x
x~k?=Tk?(L~)xx~k?=2L~x~k?1??x~k?2?x~0?=xx~1?=L~x 整个滤波操作非常高效,包括K稀疏矩阵-向量乘法和一次密集矩阵-向量乘法。 在预测形状和纹理参数
P
S
T
P_{ST}
PST?之后,使用一个高效可微的3D网格渲染器将一个着色网格DPST投影到一个2D图像平面上。其中相机参数:
在得到渲染的2D人脸R(
D
P
S
T
,
P
c
a
m
,
P
i
l
l
DPST,P_{cam},P_{ill}
DPST,Pcam?,Pill?)之后使用以下函数来比较渲染和原始2D人脸的像素级差异:
4. Experiment
4.1 Dataset
- WIDER FACE数据集包括32203幅图像和393703个人脸边界框,在尺度、姿态、表情、遮挡和光照方面具有高度差异性。
- 数据集分为训练(40%)、验证(10%)和测试(50%)子集。基于EdgeBox的检测率,通过逐步合并困难样本来定义三个难度等级(Easy、Medium和Hard)
- 额外标注:在WIDER FACE的训练和验证子集上标注五个人脸Landmark(即眼中心,鼻子和嘴角)。
4.2 Implementation details
ReTinaFace使用基于具有独立上下文模块的特征金字塔,如下图所示。
特征金字塔:RetinaFace使用从P2到P6的特征金字塔级别,其中P2到P5是通过自上而下和横向连接从相应的ResNet剩余阶段(c2到C5)的输出计算出来的。 上下文模块(Context Module):受SSH和PyramidBox的启发,我们还在五个特征金字塔层次上应用了独立的上下文模块,以增加接受域,增强刚性上下文建模能力。 Multi-task Loss:对于负锚点,只应用分类损失。对于正锚点,计算提出的多任务损失。 数据增强:随机裁剪,从原始图像上裁剪正方形小块,大小在原始图像短边的[0.3,1]之间。此外还有水平翻转以及色彩增强。
4.3 Ablation Study
检验标注五点和密集回归分支对人脸检测性能的影响。
- 加入5个人脸地标回归分支后,人脸框的AP(0.408%)和mAP(0.775%)在Hard子集上显著提高。
- 密集回归分支在具有挑战性的场景下难度较大,但是在Easy以及Medium子集上可以增加AP。增加landmark有助于密集回归。
4.4 Face box Accuracy
数据集是WIDER FACE,在验证集和测试集上测试模型。为了获得测试集上的评价结果:
- 验证集的AP值为96.9%(简单)、96.1%(中等)和91.8%(困难),测试集的AP值为96.3%(简单)、95.6%(中等)和91.4%(困难)。
4.5 Five Facial Landmark Accuracy
和MTCNN比较,数据集是AFLW: (a):与MTCNN相比,RetinaFace显著降低了归一化平均误差(NME),从2.72%降低到2.21%。 (b):WIDER FACE验证集上的累积误差分布(CED)曲线。与MTCNN相比,RetinaFace将失败率从26.31%显著降低到9.37% (NME阈值为10%)。
4.6 Dense Facial Landmark Accuracy
除了人脸框和5点,Retinaface还输入密集人脸关键点,并且是自监督训练。在AFLW2000-3D数据集上评价密集人脸关键点定位。
- (a)(b)是SOTA方法以及RetinaFace的CED曲线。(a)是68个二维landmark。(b)是所有landmark都带有3D坐标。
- ? 比较了来自RetinaFace和Mesh Decoder的密集回归结果。RetinaFace可以很容易地处理姿态变化的人脸,但在复杂的场景下很难预测准确的密集对应关系。
4.7 Face Recognition Accuracy
分别比较了使用MTCNN和Retinaface来检测和对齐所有的训练数据(MS1M)以及测试数据(LFW,CFP-FP,AGEDB-30,IJBC),保留原Arcface中使用的Resnet100基础网络以及损失函数。 基于CFP-FP,证明Retinaface可以提升Arcface的验证正确率从98.37%到99.49%。这个结果展示了正脸-侧脸的人脸认证已经达到了正脸-正脸的人脸认证水平。
4.8 Inference Efficiency
开发了一个轻量级的模型(MobileNet-0.25,1M,AP=78.2%在WIDER FACE难样本集合上)来加速预测。
- 上表是不同骨干网(ResNet-152和MobileNet-0.25)在不同输入尺寸(VGA@640x480, HD@1920x1080和4K@4096x2160)上的RetinaFace推断时间(ms)。
- “CPU1”和“CPU-m”分别表示Intel i7-6700K CPU上的单线程和多线程测试。
|