人脸检测算法:PyramidBox++(论文阅读笔记)

11 篇文章 0 订阅
10 篇文章 0 订阅

论文:《PyramidBox++: High Performance Detector for Finding Tiny Face》

原文链接:https://arxiv.org/abs/1904.00386

PyramidBox的改进版本,见我之前的博客:https://blog.csdn.net/weixin_40671425/article/details/89299953

先放上效果图:

图3 该图片中据报道有1000张人脸,PyramidBox++检测到了916张人脸,左边的颜色条代表置信度,性能超越了之前的PyramidBox,主要是对小人脸进行了改进。

摘要

    随着深度卷积神经网络的快速发展,人脸检测技术近年来取得了很大的进步。WIDER FACE数据集作为一个主要的基准,对这一区域有很大的贡献。PyramidBox设计了一种有效的数据增强策略(数据anchor采样)和基于上下文的人脸检测模块。在本文中,我们对每个部分进行了改进,以进一步提高性能,包括平衡数据anchor采样Dual-PyramidAnchor密集上下文模块。具体地说,平衡数据anchor采样得到了不同大小的人脸的更均匀的采样。双金字塔anchors通过引入渐进anchor损失来促进特征学习。紧密连接的密集上下文模块不仅扩大了感受野,而且有效地传递信息。结合这些技术,构建了PyramidBox++,并在hard set上实现了最好的性能。

1 引言

    人脸检测是在自然图像中检测和定位人脸区域,是人脸跟踪[1]、对齐[2,3]、识别[4,5]、合成[6,7]等人脸分析的基本步骤之一。然而,由于无约束环境下的人脸具有较大的类内变化,如大尺度方差、遮挡、姿态、光照等,对人脸的精确检测具有一定的挑战性。

    到目前为止,人脸检测已经取得了很大的进展。开创性的工作Viola-Jones检测器[8]是第一个有效的检测器,它采用haar类特征和AdaBoost算法训练级联的二类分类器。此后,大量后续工作[9,10]被提出以提高性能。特别地,还引入了可变形零件模型(DPM)[11]来模拟人脸的不同部位。这类方法主要依靠手工特征和精心设计的分类器。

    随着深度学习的突破,图像分类[12]和目标检测[13-15]有了长足的进步。人脸检测作为通用对象检测的一个特例,也得益于基于cnn的表示。在现代目标检测器的基础上,最先进的人脸检测算法大致可以分为两类:二阶段人脸检测算法(如R-CNN [13], Fast R-CNN [16], Faster R-CNN[14]等)和单阶段测器(SSD [15], YOLO[17]等)。它们具有互补的优点和缺点:二阶段检测器性能较好,但推理时间较长,而单阶段检测器速度较快。由于人脸检测在实际应用中对速度的要求较高,单阶段人脸检测受到越来越多的关注[18-20]。

    得益于图像分类和目标检测的发展,我们进一步改进了PyramidBox[20],包括数据增强特征学习上下文感知预测模块和多任务训练提出了一种平衡数据anchor采样方法,使不同尺度的人脸分布更加均匀。此外,我们将PyramidAnchor[20]和dual shot结构[21]结合起来,称为双Dual-PyramidAnchors,以充分利用上下文信息。受DenseNet[22]的启发,利用密集连接机制有效地传递信息和梯度。此外,多任务训练策略,包括分割和anchor free任务,被用来提供额外的监督。通过集成这些技巧,我们在WIDER FACE的hard set(小人脸)上取得了最好的结果。    

2 相关工作

    通用目标检测。近年来,基于cnn的目标检测技术已成为研究的热点。在两阶段方法和一阶段方法的里程碑式的研究工作之后,提出了大量的后续方法来促进它们的发展。级联和细化思想在两阶段(cascade rcnn[23])和一阶段(RefineDet[24])探测器中都得到了生动而深刻的体现。为了增强基于cnn的探测器对大尺度方差的处理能力,SNIP[25]、SMOPER[26]和AutoFocus[27]系列采用了一种新颖的思想,迫使探测器在一定范围内对目标进行精确的检测,并通过多尺度测试来扩大探测范围。因此,它们在COCO数据集上实现了最好的性能。此外,设计了一个质量评估模块(IoUNet[28]和scoring MaskRCNN[29])对预测的bbox进行重新评分,其目标是解决分类概率与bbox定位得分不一致的问题。为了获得较高的召回率,需要在高分辨率特征图上平铺大量密集的anchors。然而,这导致了类的极度不平衡,严重影响了检测[30]时的分类任务。提出了一种自适应anchor平铺策略,如MetaAnchor[31]和Guided Anchor[32],有效地缩小了搜索空间。

    人脸检测。由于建立了WIDER FACE数据集,提出了大量的人脸检测器来定位具有挑战性环境下的人脸,如低分辨率图像、小尺度人脸、大姿态变化和视频监控中的遮挡等。其中寻找微小的人脸是研究热点之一。S3FD[19]和[33]提出了anchor匹配策略,提高了人脸的召回率。PyramidBox[20]充分利用上下文信息,为小人脸提供额外的监督。将基于GAN[34]的超分辨率技术引入人脸检测中,弥补了低分辨率人脸的不足。SRN[35]在RefineDet[24]的基础上,研究了各层次的级联回归和分类的有效性,并发现浅层采用两步分类,深层采用两步回归。DSFD[21]改进了PyramidBox的几个部分,并获得了最好的性能。

3 方法

3.1 平衡数据anchor采样

    我们将原始的SSD-sampling[15]和data-anchor-sampling (DAS)方法[20]结合起来,对具有指定概率值的图片进行色彩蒸馏、随机裁剪和水平翻转。然而,我们发现DAS总是引入过多的小人脸,导致了人脸样本的不平衡。因此,我们使用平衡数据anchor采样(BDAS)策略BDAS以相同的概率选择anchor尺寸,然后在anchor尺寸附近的区间内以相同的概率获取所选择的尺寸。与DAS不同的是,更多的人脸样本将以更高的概率被调整为更大的尺寸。具体来说,与DAS相比,32到128之间的人脸样本在整个人脸样本中占的比例更大。在实现中,我们分别使用概率为 4/5 的BDAS和概率为 1/5 的SSD-sampling。

3.2 Dual-PyramidAnchors

    对于每一个目标人脸,原始的PyramidBox[20]产生一系列以人脸为中心更大区域anchros(简单的增大扩展区域),包含更多的上下文信息,如头部、肩膀和身体。PyramidAnchor通过匹配区域大小和anchor大小来选择设置这些anchor的层,这将监督更高层的层来学习更具有代表性的特征。值得注意的是,PyramidAnchor是以半监督的方式实现的,假设相同比例、不同人脸偏移量的区域具有相似的上下文特征。在我们的Dual PyramidAnchor中,我们参照DSFD[21]将渐进式anchor损失引入到PyramidAnchor中,通过在backbone附近的特征点设置一些anchors,可以帮助简化backbone附近的特征。在预测过程中,我们只在第二个shot中使用face分支的输出,因此在运行时不会产生额外的计算成本。

3.3 密集上下文模块

    以往的工作,如MSCNN[36]、SSH[18]、PyramidBox[20]等,都证明了精心设计的预测模块对人脸检测是有效的。潜在的原因可能是感受野的增加,以涵盖更多的上下文信息范围。然而,预测模块过于深入和复杂,导致优化和监督困难。受DenseNet[22]中密集连接的启发,我们将密集块合并到预测模块中,以有效地传递信息,并保持更多的多尺度上下文特性。图1中显示了详细的说明。

图1:PyramidBox++的简要概述。它包括平衡数据anchor采样、密集上下文模块、dual-PyramidAnchor和多任务损失。特别是左下部分,展示了密集上下文模块的详细结构。 

3.4 多任务学习:分割和anchor free

    多任务学习已被证明在各种计算机视觉任务中是有效的,可以帮助网络学习鲁棒的特征。我们利用分割[37]和anchor free检测[38]的任务来监督训练过程在分割子任务中,分割分支与头部体系结构中检测的分类分支和回归分支并行。使用边界框级别分割的ground truth来监督我们分割的训练过程,通过anchor匹配对不同分支,不同尺度的人脸进行处理,这与检测相同。分割子网络的感受野与检测子网的感受野是相等的,目的是保证它们都集中在相同的人脸尺度范围内。模型中引入的分割分支将有助于从人脸区域中学习更多的识别特征。因此,在检测分支中,分类子网和回归子网变得更容易,从而获得更好的性能。此外,我们还介绍了anchor free检测分支。就像yolo[17]、densebox[39]和unitbox[40]一样,这个分支可以直接获取边界框,而不需要任何anchors。


4 实验

4.1 实现细节

    我们使用resnet50作为backbone,它是由ImageNet[41]中的预训练模型初始化的。新添加的层用“xavier”初始化。我们使用mini-batch SGD,动量为0.9,权重衰减为0.0005。在4个gpu上,批处理大小被设置为28。前3000次迭代中使用了lr warming up机制从1e-6到4e-3,在迭代80k和100k时减少了10倍,训练在120k迭代时结束。值得注意的是,我们在低层fpn[42]中使用了元素级相乘,而不是元素明级求和。图像warp不用于数据增强。此外,我们使用负阈值0.99过滤掉了大部分简单的负样本,以减少后续操作[35]的搜索空间。我们的方法是基于Pytorch的。

4.2 数据集

    WIDER FACE 数据集[43]。它由32203张不同姿态、比例、面部表情、遮挡和光照条件的图像中的393703个带注释的人脸边界框组成。将数据集分为训练集(40%)、验证集(10%)和测试集(50%),并根据边缘框[44]的检测率,定义了easy、medium、hard三个难度等级。由于大尺度方差和遮挡,WIDER FACE是人脸检测中最具挑战性的数据集。所有的模型都是在WIDER FACE人脸数据集的训练集上训练的。

4.3 实验结果

    如图2所示(详细见论文原文),我们在验证集和测试集上比较了Pyramidbox++和其他最先进的人脸检测方法。对测试结果进行了评价。我们发现Pyramidbox + +与其他最好的方法在三个子集的平均精确率(AP)上达到了有竞争力的结果。在三个子集(即96.5%(easy),95.9%(medium)和91.2%(hard)的验证集,,和95.6%(easy),95.2%(medium)和90.9%(hard)的测试集。),尤其是在hard子集中包含大量的微小的人脸,我们超越一切的方法,证明了检测微小人脸的有效性。我们还在图3中展示了世界上最大的自拍的定性结果。我们的探测器能成功地探测到1000张人脸中的916张。更多的实验结果,包括尺度,模糊,表情,光照,化妆,遮挡和姿势,如图6,4,5,7所示。

 

 

 

 

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值