• 查询稿件
  • 获取最新论文
  • 知晓行业信息
官方微信 欢迎关注

基于RetinaFace的人脸多属性检测算法研究

随玉腾, 阎志远, 戴琳琳, 景辉

随玉腾, 阎志远, 戴琳琳, 景辉. 基于RetinaFace的人脸多属性检测算法研究[J]. 铁路计算机应用, 2021, 30(3): 1-4.
引用本文: 随玉腾, 阎志远, 戴琳琳, 景辉. 基于RetinaFace的人脸多属性检测算法研究[J]. 铁路计算机应用, 2021, 30(3): 1-4.
SUI Yuteng, YAN Zhiyuan, DAI Linlin, JING Hui. Face multi-attribute detection algorithm based on RetinaFace[J]. Railway Computer Application, 2021, 30(3): 1-4.
Citation: SUI Yuteng, YAN Zhiyuan, DAI Linlin, JING Hui. Face multi-attribute detection algorithm based on RetinaFace[J]. Railway Computer Application, 2021, 30(3): 1-4.

基于RetinaFace的人脸多属性检测算法研究

基金项目: 中国国家铁路集团有限公司科技研究开发计划课题(N2019X016)
详细信息
    作者简介:

    随玉腾,工程师

    阎志远,研究员

  • 中图分类号: U29 : TP391

Face multi-attribute detection algorithm based on RetinaFace

  • 摘要: 为提高铁路刷脸检票业务中人脸检测的平均精度,通过研究分析人脸检测算法RetinaFace,针对闸机应用场景制定损失函数,提出了一种基于RetinaFace的人脸多属性检测算法,实现了人脸框位置、人脸是否佩戴墨镜以及人脸遮挡程度等信息的准确输出。算法使用轻量化骨干网络MobileNet-0.25网络结构,移除非必要的分支,减少计算开销,在铁路标准人脸遮挡数据集上检出率达到95.4%,不同遮挡程度的识别准确率达到了99.2%。
    Abstract: In order to improve the average accuracy of face detection in railway face brushing and ticket checking, this paper proposed a face multi-attribute detection algorithm based on RetinaFace by studying and analyzing the face detection algorithm retinaface and formulating the loss function according to the application scene of the gate. It was implemented the accurate output of the information such as the face frame position, whether the face was wearing sunglasses, and the degree of occlusion. The algorithm used the lightweight backbone network MobileNet-0.25 network structure, and removed unnecessary branches to reduce the computational cost. The detection rate of the algorithm on the railway standard face occlusion data set reached 95.4%, and the recognition accuracy of different occlusion degrees reached 99.2%.
  • 人脸识别技术经不断发展,已广泛应用于支付、身份核验等多种场景。从图像中快速、准确检测到人脸是人脸识别的基础,识别的准确率受到人脸质量的影响,其中,人脸遮挡是影响较大的一个因素。当旅客佩戴口罩、墨镜等出行时,人脸信息被严重遮挡,这对铁路实名制进站核验系统的人脸算法提出了挑战[1]。现有人脸检测算法存在遮挡人脸检出率低,不能区分出人脸有无遮挡的问题。且在遮挡情况下,人脸识别算法不能快速、有效完成人脸识别,造成进站闸机识别通过率下降,导致旅客进站时间增长等情况,影响旅客出行体验。因此,在人脸检测算法中添加对遮挡类型(墨镜、口罩等)和遮挡程度的判断功能,从而对不同遮挡类型和不同遮挡程度的人脸进行分别处理,提高算法的识别成功率和可靠性。

    由于进站闸机设备计算能力有限,对人脸算法要求更轻量、高效、多功能,需要一种计算开销较小、同时满足多任务识别的算法。目前常用的检测算法主要有:双阶段目标检测的R-CNN[2]系列算法,使用区域建议网络生成一系列候选区域,对这些候选区域进行更细致的边框回归和分类,精度较高但是推理速度较慢;单阶段目标检测的YOLO[3](You Look Only Once )算法,将图像分为多个小的区域,并在每个小区域上使用不同形状和大小的目标框进行回归,推理速度较快,但存在小物体检测能力较差等精度问题;单阶段目标检测的SSD[4](Single Shot Detector)算法,通过使用不同层级的特征图,结合不同大小、形状的目标框对物体进行匹配,提高了对小物体的检测能力,但没能较好地利用特征信息。

    其中,单阶段目标检测算法在速度方面较优秀,更适合进站闸机这种要求在工控机上完成人脸检测、识别等一系列任务的资源受限设备。本文基于RetinaFace单阶段目标检测算法,设计了一种能区分遮挡类型和遮挡程度的人脸检测模型。

    RetinaFace[5]是一种专门检测人脸的单阶段目标检测算法,在多级特征图信息的基础上使用了特征金字塔网络[6](FPN,Feature Pyramid Networks)的方法,更充分地使用特征信息,网络结构如图1所示。RetinaFace使用多级特征的特征图(P2~P6)构成特征金字塔,在不同层级的特征图上设计了大小不同、数量众多的锚点框,使其获得了出色的检测性能。

    图  1  RetinaFace算法网络结构

    RetinaFace的主干网络使用了ResNet152[7]网络结构,特征金字塔中的P2~P5层级对应ResNet152的C2~C5层级残差网络模块,P6则是使用步长为2、卷积核大小为3×3的卷积对C5的特征图进行卷积计算后得到的特征图。P6层级采用Xavier[8]方式对参数进行随机初始化。并对特征金字塔的每一层使用独立的语义模块,提高感受野并增强刚性语境的建模能力。

    RetinaFace采用多任务损失函数,对于训练阶段的每一个锚点框,使用优化算法寻求如式(1)的多任务损失函数的最小化。

    $$\begin{aligned} &L= {L_{cls}}\left( {{p_i},p_i^{\rm{*}}} \right) + {\lambda _1}p_i^{\rm{*}}{L_{box}}\left( {{t_i},t_i^{\rm{*}}} \right) + {\lambda _2}p_i^{\rm{*}}{L_{pts}}\left( {{l_i},l_i^{\rm{*}}} \right)+\\ & {\lambda _3}p_i^{\rm{*}}{L_{pixel}}\\[-12pt] \end{aligned}$$ (1)

    其中,$ {L}_{cls}\left({p}_{i},{p}_{i}^{\mathrm{*}}\right) $是人脸分类的损失函数,$ {p}_{i} $是预测第i个目标框是否为人脸的概率,$ {p}_{i}^{\mathrm{*}} $是真实的标签,人脸样本记为正样本,标签为1,反之记为负样本,标签为0;$ {L}_{box}\left({t}_{i},{t}_{i}^{\mathrm{*}}\right) $是人脸框回归的损失函数,$ {t}_{i} $$ {t}_{i}^{\mathrm{*}} $分别代表网络预测的坐标和标签中人脸框的真实坐标,采用与R-CNN[2]一致的标签处理方式,归一化人脸框的标签;$ {L}_{pts}\left({l}_{i},{l}_{i}^{\mathrm{*}}\right) $是人脸关键点的回归损失函数,${l}_{i}={\{l}_{{x}_{1}},{l}_{{y}_{1}},\cdots ,{l}_{{x}_{5}},{l}_{{y}_{5}}\}$${l}_{i}^{\mathrm{*}}=\left\{{l}_{{x}_{1}}^{\mathrm{*}},{l}_{{y}_{1}}^{\mathrm{*}},\cdots ,{l}_{{x}_{5}}^{\mathrm{*}},{l}_{{y}_{5}}^{\mathrm{*}}\right\}$,分别代表预测的5个关键点坐标和标签中人脸5点的真实坐标,人脸的5个关键点的坐标同样采用与人脸框坐标一致的归一化方式。5点坐标的标签回归函数使用均方误差函数计算,如式(2)所示:

    $${\rm{MSE}}\left( l \right) = \frac{{\displaystyle\sum\nolimits_{i = 1}^5 {\left( {{l_i},l_i^{\rm{*}}} \right)} }}{5}$$ (2)

    $ {L}_{pixel} $是人脸密集点回归损失函数;$ {\lambda }_{1} \sim {\lambda }_{3} $为损失函数权重,控制每一个损失函数在多任务损失函数中的贡献,在RetinaFace中将4个任务的权重分别设置为1、0.25、0.1和0.01。

    对于输入大小为640×640的图像,在P2~P6构成的特征金字塔中共生成102300个锚点框,每个层级的锚点框大小如表1所示。设置锚点框大小按照$\sqrt[3]{2}$的比例逐步递增,长宽比均为1∶1,锚点框的大小从16×16到406×406,适应原图中不同大小的人脸。其中,P2层级共生成76800个锚点框,占据了所有锚点框个数的75%。通过设计P2层级使用较低级别的特征图和密集的锚点框,旨在提高模型对面积较小、质量较差的人脸的识别能力,进而提高人脸检测模型在Wider Face数据集[10]上的成绩,但这种方式会带来更多的计算开销和更高的假阳性的风险。

    表  1  各个层级目标框的数目
    特征金字塔步长锚点框
    P2(160$ \times $160$ \times $256)416,20.16,25.40
    P3(80$ \times $80$ \times $256)832,40.32,50.80
    P4(40$ \times $40$ \times $256)1664,80.63,101.59
    P5(20$ \times $20$ \times $256)32128,161.26,203.19
    P6(10$ \times $10$ \times $256)64256,322.54,406.37
    下载: 导出CSV 
    | 显示表格

    一般而言,人脸检测网络只区分人脸和背景,为了提高检出率,对被遮挡的人脸及遮挡物不做细致的区分,然而受到遮挡的人脸会造成识别准确率下降。本文提出的模型可增加检测的类别输出,在一个模型中实现口罩、墨镜等遮挡类别的检测,以便直接、有效地对存在人脸遮挡的旅客进行相应处理,降低遮挡对人脸识别的影响,加快旅客进站过程,提高旅客出行体验。考虑到密集损失函数在原损失函数中贡献较少,在移除密集点回归损失函数后,本文优化后的损失函数为:

    $$\begin{aligned} &L={L}_{cls}\left({p}_{i},{p}_{i}^{\mathrm{*}}\right)+{\lambda }_{1}{p}_{i}^{\mathrm{*}}{L}_{box}\left({t}_{i},{t}_{i}^{\mathrm{*}}\right)+{\lambda }_{2}{p}_{i}^{\mathrm{*}}{L}_{pts}\left({l}_{i},{l}_{i}^{\mathrm{*}}\right)+\\ &{\lambda }_{3}{p}_{i}^{\mathrm{*}}{L}_{cls}\left({g}_{i},{g}_{i}^{\mathrm{*}}\right)+{\lambda }_{4}{p}_{i}^{\mathrm{*}}{L}_{cls}\left({m}_{i},{m}_{i}^{\mathrm{*}}\right)\\[-12pt] \end{aligned} $$ (3)

    其中,gi${g}_{i}^{\mathrm{*}}$分别为预测佩戴墨镜的概率和佩戴墨镜的真实标签,根据是否佩戴墨镜,标签$ {g}_{i}^{\mathrm{*}}\in \left\{\mathrm{0,1}\right\} $mi${m}_{i}^{\mathrm{*}}$分别为预测遮挡的概率和遮挡的真实标签,根据遮挡程度的不同,标签$ {m}_{i}^{\mathrm{*}}\in \left\{\mathrm{0,1},2\right\} $$ {\lambda }_{1} \sim {\lambda }_{4} $为第2~第5个任务的权重,本公式中共有5个学习任务,权重分别设置为1、0.25、0.1、1、1。

    对神经网络而言,轻量化网络的研究目的是在模型识别准确率接近大型网络的前提下,通过一系列方式提高模型参数的有效性,得到参数量、计算开销均较小的模型。常见的提高模型参数有效性的方式包括使用特殊的卷积核(深度可分离卷积和分组卷积)和特殊网络结构等。MobileNet[9]是一种适用于资源受限设备的深度学习网络,该网络使用了深度可分离卷积代替标准卷积,在ImageNet数据集的验证集上取得70.6%的准确率。为进一步减少计算开销,本文采用0.25倍通道数量的MobileNet作为骨干网络。

    通过对闸机场景下采集到的带有人脸的图像进行分析,检票的旅客人脸面积在原图中占比适中,因此移除P2和P6这两部分结构,可在不过度降低模型精度的前提下,大幅提高模型推理速度。综上,本文改进算法的网络结构如图2所示。

    图  2  改进算法网络结构

    目前,常用的人脸检测质量评估数据集是WiderFace[10]数据集,但是Wider Face中存在大量小的、质量差的人脸,与闸机的使用场景较为不同。目前并无该场景的公开数据集,因此,本文仿照闸机使用场景搭建实验平台,进行数据采集。共采集、标注10000张图,得到12601张人脸,并对于每一张图像的人脸标注了人脸框的左上点和右下点、遮挡程度、是否佩戴墨镜,并根据不同遮挡情况标注关键点信息。不同类型的样本如图3所示。

    图  3  各类型样本示意

    本文算法在Ubuntu18.04操作系统环境下运行,基于PyTorch深度学习框架,使用Python3.6进行编程。机器硬件部分参数:CPU为Inter Xeon Gold 5218 @ 2.3 GHz$ \times $2,GPU为NVIDIA TeslaV100@16 GB$ \times $4,RAM为250 GB。

    (1)训练过程采用带有动量的随机梯度下降优化算法,动量大小为0.9,权重衰减系数为0.0005,批次大小为16×4。学习率下降采用热身的方式,在初始的10个轮次学习率设置为$ {10}^{-3} $,随后加大到$ {10}^{-2} $,在第75轮、100轮、115轮时分别下降10倍,在120轮停止训练。

    (2)训练过程中,当锚点框与标签中人脸框的交并比(IoU,Intersection over Union)大于0.5时认为是正样本,IoU小于0.3时认为是负样本,其余的锚点框训练时被忽略。这种策略会导致超过99%的锚点框为负样本,存在样本不均衡现象。因此本文采用在线难例挖掘方式,将训练过程中正负样本的比例控制在3∶1。

    (3)因数据增广能有效提高模型表现,本文按原图短边长度0.3~1的大小裁剪一块方形区域,并将图像缩放到640$ \times $640,通过这种方式产生更多的人脸图像,提高模型的鲁棒性。

    (4)对于每个训练样本,本文以50%的概率进行随机水平镜像或颜色失真处理。使用相同的训练方式和数据集对骨干网络为MobileNet-0.25的RetinaFace算法进行训练,得到一个输出人脸坐标和5点信息的模型。

    为验证算法在铁路场景下的可靠性,按照铁路使用场景建立一个标准测试数据集。该数据集按照人脸检出难易程度分为简单和困难数据集,其中,简单数据集的人脸较清晰、无面部遮挡,困难数据集存在较为严重的人脸遮挡。使用铁路人脸标准数据集对本文提出的改进算法和RetinaFace算法模型分别进行测试,在推理速度几乎相同的情况下,本文提出的改进算法不仅能准确检测出被遮挡的人脸,且能识别出是否佩戴眼镜、遮挡程度。对各个任务的表现如表2所示。

    表  2  实验结果
    模型CPU时间简单数据集
    检出率
    困难数据集
    检出率
    墨镜检出率遮挡程度
    准确率
    本文改进
    模型
    35 ms95.4%89.7%99.4%99.2%
    RetinaFace32 ms95.3%85.4%--
    下载: 导出CSV 
    | 显示表格

    本文基于对RetinaFace算法的研究与改进,对闸机使用场景进行分析后,提出了一种基于RetinaFace的人脸多属性检测算法。该算法不但能输出人脸框位置而且能准确检测人脸是否佩戴墨镜和遮挡程度等。在自建数据集上人脸检出率为95.4%,推理速度35 ms,同时能准确识别遮挡程度,从而对不同遮挡方式的旅客进行不同的处理,有效提高旅客进站效率,提升旅客使用体验。在接下来的研究中,可以对数据集的标注信息进行优化,增加人脸角度、性别、年龄等标签,对人脸质量进行更加细致的区分。

  • 图  1   RetinaFace算法网络结构

    图  2   改进算法网络结构

    图  3   各类型样本示意

    表  1   各个层级目标框的数目

    特征金字塔步长锚点框
    P2(160$ \times $160$ \times $256)416,20.16,25.40
    P3(80$ \times $80$ \times $256)832,40.32,50.80
    P4(40$ \times $40$ \times $256)1664,80.63,101.59
    P5(20$ \times $20$ \times $256)32128,161.26,203.19
    P6(10$ \times $10$ \times $256)64256,322.54,406.37
    下载: 导出CSV

    表  2   实验结果

    模型CPU时间简单数据集
    检出率
    困难数据集
    检出率
    墨镜检出率遮挡程度
    准确率
    本文改进
    模型
    35 ms95.4%89.7%99.4%99.2%
    RetinaFace32 ms95.3%85.4%--
    下载: 导出CSV
  • [1] 贾成强,戴琳琳,徐海涛,等. 基于人脸识别技术的铁路实名制进站核验系统研究及设计 [J]. 铁路计算机应用,2018,27(7):49-53, 63. DOI: 10.3969/j.issn.1005-8451.2018.07.012
    [2]

    Kaiming H, Georgia G, Piotr D, et al. Mask R-CNN [J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2020, 42(2): 386-397.

    [3]

    Redmon J, Divvala S, Girshick R, et al. You only look once: unified, real-time object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Los Alamitos: IEEE Computer Society Press, 2016: 779-788.

    [4]

    W. Liu, D. Anguelov, D. Erhan, et al. SSD: single shot multibox detector[C]//Proceedings of the 14th European Conference onComputer Vision. Amsterdam, the Neterlands, 2016: 21-37.

    [5]

    Deng J, Guo J, Ververas E, et al. RetinaFace: Single-Shot Multi-Level Face Localisation in the Wild[C]//2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2020.

    [6]

    Lin T Y, Dollar P, Girshick R, et al. Feature Pyramid Networks for Object Detection[C]//IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE Computer Society, 2017.

    [7]

    K. He, X. Zhang, S. Ren, et al. Deep residual learning forimage recognition[C]//IEEE Conference on Computer Visionand Pattern Recognition (CVPR). Las Vegas, 2016: 770-778.

    [8]

    GlorotX, Bengio Y. Understanding the difficulty of training deep feedforward neural networks [J]. Journal of Machine Learning Research, 2010(9): 249-256.

    [9]

    Howard A G, Zhu M, Chen B, et al. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications [J]. IEEE Access, 2017(6): 1-14.

    [10]

    Yang S, Luo P, Loy C C, et al. WIDER FACE: A Face Detection Benchmark[C]//IEEE Conference on Computer Vision & Pattern Recognition. IEEE, 2016.

  • 期刊类型引用(7)

    1. 裴燚,刘光宇,雷远彬,张吉磊,陈波波,赵洪一,赵恩铭. 基于RetinaFace和FaceNet算法的佩戴口罩人脸识别系统研究. 大理大学学报. 2024(12): 51-57 . 百度学术
    2. 任爽,张敏,王珂,司培培. 照片同源检测技术研究及在电话实名制中的应用. 信息通信技术与政策. 2023(03): 91-96 . 百度学术
    3. 陈亮,郑伟. 基于Retina-Face的人眼关键点检测算法研究. 计算机仿真. 2023(09): 213-216+354 . 百度学术
    4. 付博闻,李闯闯,梁爱华. 基于改进YOLOv4-tiny的人脸关键点快速检测. 计算机科学. 2022(S2): 450-454 . 百度学术
    5. 孙金龙,吴振宁,肖仲喆,黄敏. 关于人脸识别算法对不同照明技术的鲁棒性研究. 电子器件. 2022(05): 1123-1128 . 百度学术
    6. 佟昕宇,陆诗慧,聂康善,魏舒祥,张欣然. 基于帧内关系建模的人脸深度伪造视频帧间检测模型. 信息与电脑(理论版). 2022(24): 56-58 . 百度学术
    7. 单杏花,张志强,宁斐,李士达,戴琳琳. 中国铁路电子客票关键技术应用与系统实现. 中国铁道科学. 2021(05): 162-173 . 百度学术

    其他类型引用(7)

图(3)  /  表(2)
计量
  • 文章访问数:  164
  • HTML全文浏览量:  905
  • PDF下载量:  51
  • 被引次数: 14
出版历程
  • 收稿日期:  2020-11-16
  • 刊出日期:  2021-03-25

目录

/

返回文章
返回