选择性细化网络用于高性能人脸检测
人脸检测
高性能人脸检测仍然是一个非常具有挑战性的问题,特别是在有很多小尺度人脸的情况下。今天分享的作者就提出了一种新的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)。除了那些之外,另一个重要的工作是引入可变形的部件模型(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,开发了一种最先进的人脸检测器。
框架的主干是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模块负责丰富特征的感受野用于预测目标的类别和位置。
Selective Two-Step Classification
Selective Two-Step Regression
然而,盲目地在特定任务( 即人脸检测)中添加多步回归往往适得其反,实验结果(见下表 )表明三个较低金字塔水平的两步回归损害了性能。
这种现象背后的原因有两个: 1) 三个较低的金字塔层次是相关的,有大量的小锚来探测小面孔。 这些小面孔的特征是非常粗糙的特征表示,因此这些小锚很难进行两步回归; 2) 在训练阶段,如果让网络太关注难样本的回归,在低金字塔水平上的任务,它会导致更大的回归损失和阻碍更重要的分类任务。
在上述分析的基础上,我们选择性地对三个较高的金字塔水平进行了两步回归。这种设计背后的动机是充分利用三个较高金字塔层次上大面的详细特征来回归更精确的边界框位置,并使三个较低的金字塔层次更加关注分类任务。这种分而治之的策略使整个框架更加有效。STR损失如下:
Receptive Field Enhancement
各种设计的有效性
在不同数据集上的评估
END
如果想加入我们“计算机视觉战队”,请扫二维码加入学习群。计算机视觉战队主要涉及机器学习、深度学习等领域,由来自于各校的硕博研究生组成的团队,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。
我们开创一段时间的“计算机视觉协会”知识星球,也得到很多同学的认可,我们定时会推送实践型内容与大家分享,在星球里的同学可以随时提问,随时提需求,我们都会及时给予回复及给出对应的答复。
选择性细化网络用于高性能人脸检测相关推荐
- WiderFace数据集用于训练人脸检测模型
下载链接: http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/ 该数据集可用于进行人脸检测模型的训练 如果做训练,可以点击网页中的 (国内还是百度吧,会快一 ...
- 网络摄像头 抓拍 人脸检测
网络摄像头用过海康和大华,其他的品牌没调试过,海康和大华流程基本都一样,windows我用的是C#,用的是海康摄像头,Android用过大华摄像头 我主要是用来人脸检测,然后把数据发送到服务器,用来人 ...
- 漫画人脸检测 | 全局和局部信息融合的深度神经网络(文末源码)
人脸检测&识别依然是CV领域炙热的研究课题,不仅仅应用在各种刷脸产品,现在很多多媒体都在利用这个技术,与艺术融合,擦除不一样的火花,今天我们就来和大家分享,漫画中的人脸检测,与之前漫画人物自动 ...
- 基于深度学习的目标检测技术演进:从目标检测到人脸检测
本篇博客主要转载两篇写得好的分别介绍基于深度学习的目标检测和人脸检测的文章,最近在调研基于深度学习的人脸检测相关的文章,在网上查相关资料时,有幸看到.文末附带基于深度学习的目标检测和人脸检测相关经典文 ...
- 【读点论文】Detect Faces Efficiently: A Survey and Evaluations,关于人脸检测的思考,综述型文章
论了流行的和具有挑战性的数据集及其评估指标. 对几种成功的基于深度学习的人脸检测器进行了综合比较,通过两个指标:失败率和延迟来揭示它们的效率.本文可以指导人们根据不同的应用选择合适的人脸检测器,并开发 ...
- 深度学习人脸检测与人脸识别
一.概述 1. 基本概念 人脸是个人重要的生物特征,业界很早就对人脸图像处理技术进行了研究.人脸图像处理包括人脸检测.人脸识别.人脸检索等.人脸检测是在输入图像中检测人脸的位置.大小:人脸识别是对人脸 ...
- 人脸检测:《MTCNN》论文详解2016
Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks 作者链接:https://kpz ...
- 人脸检测概述(不是人脸识别)
目录 1 引言... 3 2 人脸检测技术的发展与现状... 4 3 人脸检测算法相关工作... 4 3.1 评价指标... 5 3.2 人脸检测常用数据库... 6 3.2.1 FDDB ...
- 遮挡人脸检测--Detecting Masked Faces in the Wild with LLE-CNNs
Detecting Masked Faces in the Wild with LLE-CNNs CVPR2017 本文针对遮挡人脸检测问题,首先建立了一个新的数据库:MAFA, with 30,81 ...
最新文章
- ASP.Net中利用CSS实现多界面两法
- 小米运动蓝牙耳机重新配对_为运动而生,韶音AS660骨传导蓝牙耳机体验
- 基于socket的简单p2p聊天项目
- C1之路 | 训练任务04-JavaScript
- 5加载stm32 keil_快速入门STM32单片机-软件篇
- python列表内数字排序_如何在Python中手动排序数字列表?
- 优化ASP.NET应用程序性能研究与探讨
- Java中的ClassLoader
- (Python)零起步数学+神经网络入门
- 持续集成及部署利器:Go
- 深入研究java.lang.Class类
- vb从入门到精通_益智 | 用VB编程开发的围棋游戏!
- Android 签名文件
- jdk和cglib动态代理
- IC卡CPU卡32位单片机S3系列接触式读写模块分类与性能攻略
- 教你快速录制gif动图
- mysql进销存表设计_ERP进销存-用户表 - 数据库设计 - 数据库表结构 - 果创云
- TCP/IP协议都有哪几层协议
- 未来无生经超级计算机,最强崩坏系统
- 科技部:中国131家独角兽企业 名单文字版