概述
文章基于 MobileNet 系列网络,提出了一种轻量化的人脸识别网络 MobileFaceNet。文章首先分析了通用的轻量化的特征提取网络在人脸识别上效果不佳的原因,然后基于此进行了一系列调整,在人脸识别数据集上取得了较好效果。
原因分析
对于人脸识别问题来说,一个经典的处理流程就是:首先进行人脸图像预处理,然后输入特征提取网络获取一个特征描述,最后根据特征之间的距离来进行人脸匹配。
在预处理流程中,经典流程首先使用 MTCNN 进行人脸检测,并获取5个人脸关键点;然后根据5个关键点将人脸图像进行转换对齐。转换后的图像大小例如是 112 × 112 112×112 112×112,随后进行归一化。
预处理之后,需要通过一个特征提取网络获得人脸图像的 embedding 特征向量。在这个问题上,已经有一些论文注意到:不包含全局池化的网络比包含全局池化的网络获得了更高的精度,但是都没有进行进一步的分析。
在这里作者认为,通用的特征提取网络为了获得一个特征向量而使用全局平均池化是不合理的。如下图所示,在一个
7
×
7
7×7
7×7 的特征图中,中间的特征像素应当比边缘位置的特征像素有更大的重要性权重,而全局平均池化将所有特征像素点平均对待,抹去了这种不一致的重要性。
全局深度分离卷积
为了避免使用全局平均池化,文章提出全局深度分离卷积:卷积核大小和输入特征图尺寸一致,并且设置
p
a
d
=
0
,
s
t
r
i
d
e
=
1
pad=0,stride=1
pad=0,stride=1。具体计算公式如下图:
其中
m
m
m 为特征通道,
i
,
j
i, j
i,j 为特征像素位置。
总体网络结构
和原始 MobileNet 不同的是,文章使用 PReLU 替换 ReLU。对于 MobileNet V2 baseline 模型,在第一个卷积层使用 s t r i d e = 1 stride=1 stride=1,相比 s t r i d e = 2 stride=2 stride=2,那样有更好的精度效果,并且对于 112 × 112 112×112 112×112 大小的输入也能获得 7 × 7 7×7 7×7 大小的特征图输出。同时为了获得更高的速度性能,文章还提出将 112 × 112 112×112 112×112 大小的输入替换为 112 × 96 112×96 112×96 以及 96 × 96 96×96 96×96 两种输入大小。使用 ArcFace 损失进行训练。
总体网络结构如下图所示:
精度指标效果
在 LFW 数据集上的整体精度指标如下图所示。可以看到提出的 GDConv 对于精度提升起到了帮助。并且模型较小,可以在移动平台实时运行。
此外,在 MegaFace 数据集上,在 FAR(False Accepted Rate) 为
1
0
−
6
10^{-6}
10−6 情况下,TAR(True Accepted Rate) 达到了
92.59
%
92.59\%
92.59%,达到了与几百兆大小模型同样级别的精度。