Face Detection through Scale-Friendly Deep Convolutional Networks
http://shuoyang1213.me/projects/ScaleFace/ScaleFace.html

本文针对多尺度人脸检测问题,采用分而治之的思路来解决,提出不同尺度的人脸需要不同的网络结构来进行检测。然后我们将这些网络组合成一个网络,使用端对端的方式优化学习。另一种理解方式是在尺度上采用级联检测器来检测多尺度人脸

We believe that faces with different scales possess different inherent visual cues and thus lead to disparate detection difficulties, which can be more effectively modeled with different specialized network structures. These networks can be seamlessly combined into a single network (e.g., resembling the structure of ResNet-50), and thus optimized in an end-to-end fashion.

上图显示对于特定尺度范围的人脸检测,我们需要设计一个特殊的网络,不需要有很多层,精心设计 depth and spatial pooling 可以达到很好的检测效果

2 Related Work
针对多尺度人脸检测,目前主要有两类做法:

(1) Scale-invariant methods : 这类方法主要学习尺度不同的特征表示。例如 Faster-RCNN [9] 中通过使用 region of interest (ROI) pooling 来提取 尺度不变得特征。 Cascade-CNN [10] 归一化物体到一个固定尺度,通过对输入图像金字塔进行检测达到多尺度检测。但是 Faster-RCNN and Cascade-CNN 都不是专门准队大范围尺度的人脸检测设计的。尤其是 Faster-RCNN 将 背景和前景 的 ROIs 映射到深度特征的同一位置上,对分类器产生了不确定性(similar overlap mapping problem)。而 Cascade-CNN 由于其网络结构的简单性限制了其解决 large appearance and scale variances

(2) Scale-variant methods: 这类方法主要是学习 scale-variant features,对不同尺度使用不同的网络进行检测。代表性的工作有 SSD【13】和 cascaded CNN【18】。 直接将 SSD 用于人脸检测效果不好,为什么了? 针对小尺寸人脸的 scale-variant templates 不同很好的处理 large-scale variance(小尺寸范围较大),在后面的阶段,SSD 又面临和 Faster-RCNN 类似的 similar overlap mapping problem

Differences with previous methods. 我们认为每个给定的CNN网络对特定的尺度范围检测效果是最佳的。术业有专攻啊!
We argue that given a deep neural network there exists a best range of scale for detection

3 Learning a Scale-Friendly Face Detector
ScaleFace pipeline

我们的框架包含 由不同尺寸的 spatial pooling stride and depth 的三个 scale-variant 检测器,这三个 scale-variant 检测器构成了一个backbone network,其网络结构 和 ResNet-50 一样。我们从backbone network 不同的 res-block 提取特征,用于训练候选区域提取网络和 Fast-RCNN 分类器。

为了展开讨论,我们这里提出三个问题:
1)给定一个网络结构,该网络在什么尺度范围的检测效果是最佳的? 这里我们发现 network structure and detection scale 是有内在关联的。
2)给定一个范围的尺度,我们需要多少个网络来完成这个尺度范围的目标检测
3)怎么设计这些网络是最合理的?

3.1. Finding a network for specific scale range
这里我们假设不同尺度的人脸可以使用不同 spatial pooling结构来更好的 表示,特别是人脸的尺寸需要和 ROI 池化尺寸匹配。 接着我们验证了这个假设的有效性。

从上图我们发现:对于小尺度人脸(10px − 40px),使用 stride=8 的网络检测效果最好。对应的特征图中人脸尺寸是 2px − 5px,它和 ROI 模板的尺寸是类似的。这个相似性对于 medium 和 large 尺寸的人脸检测都是一样的。

This experiment shows that the spatial resolution of a network is the key factor to achieve good detection performance for samples falls within a certain range of scales

3.2. How many scale-variant detectors
下面接着第二个问题,需要多少个检测器,也就是对一个 very wide range of scales 怎么切分的问题
一个直观的切分方法就是 均匀切分,但是因为人脸 appearance variation 在尺寸上不是均匀分布的。
我们注意到下面的现象: 对于小于 40 个像素高度的小人脸, small faces 丢失了主要的 appearance information,主要通过 rigid structures and context 来表示。Medium faces (40px − 140px) 具有较高的 variance,因为这些人通常表示摄影者主要关注的对象,他们的姿态方向角度是多样性的,Large faces (140px or more) 通常具有较小的 variance,他们是摄影者主要的关注对象,所以这些人的人脸通常是 frontal or profile pose。这个简单的现场为我们切分大范围的尺度提高了一个重要的线索。



由上面的图表我们可以得到 Three splits [10,40], [40,140], [140,1300] 这种切分方式效果是最好的。

This experiment shows that partitioning the scale range based on face variation, and at the same time considering network selection of suitable spatial pooling stride, would give us useful clues on how many scale-variant detectors we should build

3.3. How to combine the scale-variant detectors
怎么组合这些检测器了? naive ensemble 和 joint optimized 独立检测和统一框架检测

This experiment suggests that we should try best to share representation between scale-variant detectors for joint optimization

3.4. Training and implementation details

4 Model compression
为了提高检测速度,我们做了模型压缩, reduce the number of filters in every layer of the backbone network

5 Results on benchmark datasets
FDDB results

WIDER FACE hard set

检测速度 NVIDIA Titan X GPU

我们的检测效果不如 HR,但是速度快
The runtime speed of HR is 0.6 fps. ScaleFace runs 6 times faster than HR

多尺度人脸检测--Face Detection through Scale-Friendly Deep Convolutional Networks相关推荐

  1. 快速多尺度人脸检测--Multi-Scale Fully Convolutional Network for Fast Face Detection

    Multi-Scale Fully Convolutional Network for Fast Face Detection BMVC 2016 如何能够快速的实现多尺度人脸检测了? 本文的思路是 ...

  2. 快速多尺度人脸检测2--Multi-Scale Fully Convolutional Network for Face Detection in the Wild

    Multi-Scale Fully Convolutional Network for Face Detection in the Wild CVPRW2017 上一篇文献的姊妹篇吧,如何能够快速的实 ...

  3. 车牌检测识别--Towards End-to-End Car License Plates Detection and Recognition with Deep Neural Networks

    Towards End-to-End Car License Plates Detection and Recognition with Deep Neural Networks https://ar ...

  4. 目标检测--Spatial pyramid pooling in deep convolutional networks for visual recognition(PAMI, 2015)

    Spatial pyramid pooling in deep convolutional networks for visual recognition 作者: Kaiming He, Xiangy ...

  5. 人脸检测--Face Detection with End-to-End Integration of a ConvNet and a 3D Model

    Face Detection with End-to-End Integration of a ConvNet and a 3D Model ECCV2016 mxnet code:https://g ...

  6. 基于激活聚类的后门检测:Detecting Backdoor Attacks on Deep Neural Networks by Activation Clustering

    Detecting Backdoor Attacks on Deep Neural Networks by Activation Clustering 网址:https://arxiv.org/abs ...

  7. 人脸检测--Scale-Aware Face Detection

    Scale-Aware Face Detection CVPR2017 针对人脸检测中的人脸多尺度问题,本文首先用一个 Scale Proposal Network (SPN) 估计出图像中人脸的尺度 ...

  8. 尺度不变人脸检测:Group Sampling

    点击我爱计算机视觉标星,更快获取CVML新技术 CV君:前几天发布了目标检测中的不平衡问题综述,引起了不少朋友的关注.在检测领域由于数据和算法都较复杂,不平衡问题很多.本文研究的是针对人脸检测中正负样 ...

  9. 人脸检测识别文献阅读总结

    1 在人脸检测的时候需要结合人脸特征点对齐来综合考虑人脸检测问题,因为人脸特征点对齐有助于提高人脸检测性能 下面的文献都论证了这个思想: Joint cascade face detection an ...

最新文章

  1. Docker的使用(一:Docker入门程序)
  2. Softmax回归——logistic回归模型在多分类问题上的推广
  3. 【深度学习】词的向量化表示
  4. shell函数与数组(了解函数,递归函数运用,了解数组,创建基数和偶数数组,冒泡排序,调试命令)
  5. JAVAEE框架之Spring AOP
  6. 解决: Spring Boot报错 This application has no explicit mapping ... a fallback
  7. 界址点圆圈怎么生成_大千世界怎么钓鱼?大千世界钓鱼方法及灵气之水获取攻略...
  8. c语言程序设计二级考试哪些题型,计算机二级考试题型及分值
  9. java打印条形码Code128C
  10. 【转载】架构师速成-如何高效编程
  11. 计算机网络TCPP是一组什么,WWW的全称是什么?WWW中文名称是啥?
  12. 360 支持linux版本下载地址,360安全浏览器国产稳定版本发布,提供deb软件包下载,附介绍...
  13. 这就是Machine Learning
  14. android 5.0三星,转自【XDA】安卓(Android 5.0)L主题
  15. Linux 运维工程师学习成长路线上要经历哪四个阶段?
  16. 十八个著名的心理学效应,生活中你一定用的到
  17. 免授权采集海天注塑机采集伊之密注塑机监控住友注塑机参数采集
  18. HDU-6447-YJJ's Salesman(离散化+01dp,线段树维护)
  19. 高精地图对自动驾驶来说有多重要?
  20. 算法-数塔问题-c语言

热门文章

  1. 在maven项目中使用Junit进行单元测试
  2. Tensorflow学习资源
  3. sangerbox平台使用(四)气泡图的绘制
  4. h5自定义相机界面_MIUI 12全新相机发布,多款相机图标进行重绘,可升级机型一览...
  5. 微生物所高程-郭良栋组(内附招聘)在菌根适应策略研究中取得进展
  6. The Innovation | 直接病原学证据:无症状患者可引起COVID-19传播
  7. 漫画 | 你看的每一篇Nature论文,都是这样出炉的!
  8. R语言笔记4:向量、矩阵的数学运算
  9. python的时间序列预测,用python中的时间序列预测
  10. R语言ggplot2可视化:通过在element_text函数中设置ifelse判断条件自定义标签文本的显示格式:例如、粗体、斜体等