人脸检测
人脸检测是自动人脸识别系统中的一个关键环节。早期的人脸识别研究主要针对具有较强约束条件的人脸图象(如无背景的图象),往往假设人脸位置一直或者容易获得,因此人脸检测问题并未受到重视。
随着电子商务等应用的发展,人脸识别成为最有潜力的生物身份验证手段,这种应用背景要求自动人脸识别系统能够对一般图象具有一定的识别能力,由此所面临的一系列问题使得人脸检测开始作为一个独立的课题受到研究者的重视。今天,人脸检测的应用背景已经远远超出了人脸识别系统的范畴,在基于内容的检索、数字视频处理、视频检测等方面有着重要的应用价值。
导读
高性能人脸检测仍然是一个非常具有挑战性的问题,特别是在有很多小尺度人脸的情况下。今天分享的作者就提出了一种新的single-shot人脸检测方法-选择性细化网络(SRN),它将新的两步分类和回归操作选择性地引入到基于锚点的人脸检测器中,以减少假阳性,同时提高定位精度。
特别是SRN由两个模块组成:选择性两步分类(STC)模块和选择性两步回归(STR)模块。STC的目的是从低层检测层中筛选出大多数简单的负样本锚,以减少后续分类器的搜索空间,而STR的目的是粗略地调整高层次检测层中锚的位置和大小,以便为后续的回归器提供更好的初始化。
此外,还设计了一个感受野增强(RFE)模块,以提供更多样化的感受野,这有助于更好地捕捉一些极端姿势的面孔。因此,所提出的SRN检测器在所有广泛使用的人脸检测基准(包括AFW、PASCAL人脸、FDDB和WIDER FACE数据集)上都取得了最优的性能。
相关工作背景
上世纪90年代,人脸检测就是一个极具挑战性的研究领域。Viola和Jones首先使用Haar特征和Adaboost对人脸检测器进行训练,具有很好的准确性和效率,之后激发了几种不同的方法(【1】Liao, S.; Jain, A. K.; and Li, S. Z. 2016. A fast and accurate unconstrained face detector. TPAMI;【2】Brubaker, S. C.; Wu, J.; Sun, J.; Mullin, M. D.; and Rehg, J. M. 2008. On the design of cascades of boosted ensembles
for face detection. IJCV)。除了那些之外,另一个重要的工作是引入可变形的部件模型(DPM)。
最近,基于CNN的方法已经在人脸检测占据了重要位置。Cascade CNN通过训练一个复杂的CNN提高了检测精度。Qin等人建议对级联的CNNs进行联合训练,实现端到端优化(Qin, H.; Yan, J.; Li, X.; and Hu, X. 2016. Joint training of cascaded CNN for face detection. In CVPR.)。MTCN提出了多任务级联的检测和对齐方法。Faceness将人脸检测作为对人脸部件进行评分,以检测严重遮挡下的人脸。UnitBox引入IoU损失用于边界框预测。EMO提出了一个预期的最大重叠分数,以评估锚匹配质量。SAFD开发了一个尺度候选阶段,该阶段自动标准化检测前的人脸尺寸。SSAP注意力在图像金字塔中的特定比例和每个刻度层中的有效位置。最近的工作(Bai, Y.; Zhang, Y.; Ding, M.; and Ghanem, B. 2018. Finding tiny faces in the wild with generative adversarial network. In CVPR)设计了一种新的网络,从一个很小的模糊中以直接产生清晰的超分辨率人脸。
此外,人脸检测还继承了一般目标检测器的一些成就,如 Faster RCNN、SSD、FPN和RetinaNet 。
Face R-CNN(Ren, S.; He, K.; Girshick, R. B.; and Sun, J. 2017. Faster R-CNN: towards real-time object detection with region proposal networks. TPAMI)将Faster R-CNN 与难样本挖掘结合起来,并取得了优秀的结果。Face Boxes引入了一种基于SSD的CPU实时检测器。Face R-FCN在人脸检测中应用R-FCN ,并做出相应的进行改进。人脸检测模型为了寻找微小人脸为不同的尺度训练单独的探测器。S3FD在SSD上提出了多种策略,以补偿小面孔的匹配问题。SSH在每个预测模块上使用大型过滤器对上下文信息进行建模。PyramidBox利用具有改进的SSD网络结构的上下文信息。FAB提出了一个anchor-level的注意力引入RetinaNet,以检测被遮挡的人脸。
作者受RefineDet中的多步分类和回归启发和RetinaNet的focal loss,开发了一种最先进的人脸检测器。
主框架
Backbone
框架的主干是ResNet-50,有着6层特征金字塔结构用于SRN。特征图主要从C2、C3、C4和C5提取获得,C6和C7仅仅通过两个简单的下采样得到。自下而上和自上而下通道之间的横向结构是相同的。
Dedicated Modules
STC模块选择C2、C3、C4、p2、p3和p4执行两步分类,而STR模块选择C5、C6、C7、p5、p6和p7进行两步回归。RFE模块负责丰富特征的感受野用于预测目标的类别和位置。
Loss Function
作者在深层结构的末尾附加了一个混合损失,它利用focal loss和平滑的L1损失的优点,促使模型专注于更多的难训练样本,并学习更好的回归结果。
Selective Two-Step Classification
STC的损失函数由两部分组成,即第一步损失和第二步损失。对于第一步,计算这些样本的focal loss选择以执行两步分类;对于第二步,只关注那些在第一步过滤后仍然存在的样本。根据这些定义,将损失函数定义如下:
Selective Two-Step Regression
在检测任务中,如何使边界框的定位更加准确一直是一个具有挑战性的问题。现有的一步回归方法依赖于基于不同特征层的回归,这在一些具有挑战性的场景中是不准确的,如Ms COCO的评价标准。近年来,采用级联结构进行多步回归是提高检测边界框准确性的有效方法。
然而,盲目地在特定任务( 即人脸检测)中添加多步回归往往适得其反,实验结果(见下表 )表明三个较低金字塔水平的两步回归损害了性能。
这种现象背后的原因有两个: 1) 三个较低的金字塔层次是相关的,有大量的小锚来探测小面孔。 这些小面孔的特征是非常粗糙的特征表示,因此这些小锚很难进行两步回归; 2) 在训练阶段,如果让网络太关注难样本的回归,在低金字塔水平上的任务,它会导致更大的回归损失和阻碍更重要的分类任务。
在上述分析的基础上,我们选择性地对三个较高的金字塔水平进行了两步回归。这种设计背后的动机是充分利用三个较高金字塔层次上大面的详细特征来回归更精确的边界框位置,并使三个较低的金字塔层次更加关注分类任务。这种分而治之的策略使整个框架更加有效。STR损失如下:
Receptive Field Enhancement
实验结果
各种设计的有效性
在不同数据集上的评估
WIDER FACE上的PR曲线
END
如果想加入我们“计算机视觉战队”,请扫二维码加入学习群。计算机视觉战队主要涉及机器学习、深度学习等领域,由来自于各校的硕博研究生组成的团队,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。