论文:FaceBoxes: A CPU Real-time Face Detector with High Accuracy

代码地址:https://github.com/TropComplique/FaceBoxes-tensorflow

CPU上的高精度实时人脸检测器

综述

人脸识别是计算机视觉和模式识别的基础问题,过去几十年取得了长足进步,但是由于计算量较大,在CPU上的实时检测一直没有很好的被解决。面临的主要问题,一是人脸和背景的可变性都太大(种类太多),二是由于人脸的不同尺寸,使得搜索空间快速上升。 
       过去的主流方法,一种是基于手动构建的特征(hand-craft features),这种方法在CPU上速度尚可,但是面对种类繁多的图像变体精确度不足。另一种是基于CNN的方法,精确度足够,但是在CPU上过于耗时,很难达到实时效果。 
本文受Faster-RCNN中RPN、SSD中多尺度技术的影响,提出了一种名为FaceBoxes的人脸检测器并且可以在CPU上达到实时检测的效果。网络结构是一个完整的CNN架构,可以实现端到端的训练,虽然网络结构轻量,但效果突出。

网络结构

faceboxes的三个spotlight:

  • 设计RDCL层:加速faceboxes在cpu上至实时处理速度,有三个策略:

  1. 快速减少feature map尺度:在这个模块中,卷积的滑动步长是很大,属于比较稀疏的滑动卷积。其中conv1滑动步长为4,使得feature map缩小1/4,conv2使得滑动步长为2,使得feature map缩小1/2,pool1,pool2分别缩小1/2,最终feature map缩小1/32。这样就使得feature map减小的比较快,速度也就会提升。
  2. 选择合适的卷积核尺度:conv1、conv2、所有的pooling操作中,卷积核尺度为7 x 7、5 x 5、3 x 3,作者认为使用大尺度可以获取更大的感受野,进而获取更多的上下文信息;这个需要和1配合着理解,1快速减少了feature map尺度,丢失了很多信息,2通过更大的卷积核匹配上1中快速下降尺度造成的感受野与feature map尺度不匹配的问题,这样就达到了一个折中的效果;
  3. 使用C.Relu替代Relu,可以减少卷积核数目,但经过C.Relu后卷积核数目(对应的就是feature map changel数目)又可以翻倍;论文中作者在 AlexNet 的模型上做了一个有趣的实验,发现:低层卷积层中的一些滤波器核存在着负相关程度很高的滤波器核,而层次越高的卷积层,这一现象越不明显。作者把这一现象称为pairing phenomenon;这样在CNN中较低的层,C.ReLU减少一半输出通道(output channels)的数量,通过简单的连接相同的输出和negation使其变成双倍数量,即达到原来输出的数量,这使得2倍的速度提升而没有损失精度;个人理解,减少一半channel数目是根据conv filters数目降低一半得到的先减少一半channels的feature map,再通过C.ReLU可以扩充一倍的channels数目,这样就达到了对比原先channel扩充2倍的conv filters的目的;conv filters减少了一倍,自然速度就提升了两倍

设[⋅]+=max(⋅,0),则 C.ReLU 定义:CReLU(x)=([x]+,[−x]+), 比如 −3→[0,3] 3→[3,0];

CReLU有二维输出,而一般的激活函数只有一维输出,因此可以将 CReLU 视作一维输入二维输出的激活函数

RDCL中使用C.ReLU可以显著提升计算速度,却不影响精度;具体操作方式如下图所示:

  • 设计MSCL层:丰富感受野和离散化anchor至不同的feature map上,在实现原理上很简单:
  1. 丰富感受野,使用了googlenet的inception结构,由于Inception包含多个不同的卷积分支,因此可以进一步使得感受野多样化

2. 离散化anchor至不同的feature map复用了SSD的做法,以处理人脸的大尺度变化

  • anchor密集采样策略
  1. 对浅层feature map(如faceboxes中的inception3)检测的小尺度目标,其对应anchor(小目标对应的anchor一般预定义比较小,如32 x 32、64 x 64等),做更加密集的anchor采样,使得小目标anchor的采样密集与大目标采样密度一致,这样可以提升对小目标的召回率;-----CVPR2018 ZCC针对anchor密集采样给出了更合理的解释,提出了emo score,从理论上认证了采用anchor密集采样的优点:https://zhuanlan.zhihu.com/p/35856534
  2. SSD和Faster R-CNN此类方法对小目标效果不好,一定程度上是因为小目标所能对应的anchor比较少,导致训练不足。

    下图是本文网络三个分支默认anchor的大小,以及每个分支对应的spatial stride。 
    我们可以据此定义anchor密度为(anchor大小 / stride)。 显然,第一个分支的一些anchor密度不足。这也是为什么小目标检测效果不佳的重要原因。

对上图进行一些说明:inception3分支中有三个anchor尺度,3.3小节提到了anchor采样密度不一致的情形,如果32 x 32、64 x 64、128 x 128的anchor都使用stride为32的采样,那么采样密度为1、2、4;为了生成相同的采样密度,将32 x 32、64 x 64改为stride为8、16的采样密度,那么原先feature map上一个位置对应到原图一个anchor,现在feature map上一个位置就对应到原图4 x 4、2 x 2个anchor(横、纵坐标方向均做密集采样)。

FaceBoxes: A CPU Real-time Face Detector with High Accuracy(论文解析)相关推荐

  1. FaceBoxes:A CPU Real-time Face Detector with High Accuracy 论文翻译和解析

    论文地址 https://arxiv.org/pdf/1708.05234.pdf 开源代码 https://github.com/sfzhang15/FaceBoxes (若失效直接复制链接打开) ...

  2. 人脸检测--FaceBoxes: A CPU Real-time Face Detector with High Accuracy

    FaceBoxes: A CPU Real-time Face Detector with High Accuracy 人脸检测已经研究了很多年,有很多算法.但是目前基于深度学习CNN网络的人脸检测算 ...

  3. 《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》论文笔记

    FaceBoxes: A CPU Real-time Face Detector with High Accuracy笔记 1. Introduction 略. 2. Related work 略. ...

  4. [论文翻译]据传比MTCCN的FaceBoxes《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》

    据传FaceBoxes比MTCCN速度还快,FaceBoxes 在cpu上FPS20,MTCNN在cpu上FPS16,到底真的是最快模型吗?我认为并不是. 论文地址:arxiv.org1708 论文代 ...

  5. [CV Paper] FaceBoxes: A CPU Real-time Face Detector with High Accuracy

    论文阅读:CPU上的高精度实时人脸检测器 综述 人脸识别是计算机视觉和模式识别的基础问题,过去几十年取得了长足进步,但是由于计算量较大,在CPU上的实时检测一直没有很好的被解决.面临的主要问题,一是人 ...

  6. 人脸检测论文:FaceBoxes: A CPU Real-time Face Detector with High Accuracy及其Pytorch实现

    论文链接:https://arxiv.org/pdf/1708.05234.pdf PyTorch:https://github.com/shanglianlm0525/PyTorch-Network ...

  7. FaceBoxes: A CPU Real-time Face Detector with High Accuracy

    Abstract 虽然在人脸检测方面取得了巨大进展,但由于人脸检测的有效模型往往在计算上难以实现,因此,在CPU上实现实时速度和保持高性能仍然是一个有待解决的难题.为了解决这一难题,我们提出了一种新型 ...

  8. java获取cpu使用率_2019年阿里P8架构师的解析:最新Java性能测试、调优策略

    一.性能测试 Ⅰ.测试方法 微基准性能测试 可以精准定位到某个模块或者某个方法的性能问题,例如对比一个方法使用同步实现和非同步实现的性能差异 宏基准性能测试 宏基准性能测试是一个综合测试,需要考虑到测 ...

  9. 【论文解析】Anchor-Free Detector and Re-Identification with Joint Loss for Person Search

    下方↓公众号后台回复"AFD",即可获得论文电子资源. 文章目录 Key words 1. Introduction 2. Related work 3. The Proposed ...

最新文章

  1. BCH现阶段面临的一些问题以及可能的解决方向
  2. MyBatis-学习笔记04【04.自定义Mybatis框架基于注解开发】
  3. JDK1.8并发包中的类
  4. 《MySQL必知必会》.pdf
  5. html自动生成工具_「写论文神器」一个好用的论文自动生成工具,内含30w 文献数据...
  6. 使用 RandomStringUtils 类来生成随机码/随机数
  7. Ubuntu16.04安装系统之后软件无法安装
  8. Jquery表单验证 只能输入数字,
  9. tensorflow: 图像处理模块 tf.image
  10. Linux IO模型漫谈(4)- 非阻塞IO
  11. 如何安装64位Windows7
  12. bootstrap专栏 06.组件 06.列表组和旋转图标
  13. 计算机程序不支持中文文件目录怎么办,电脑软件打开时提示找不到指定路径
  14. 8K摄像机研发之路有多难?一起了解你不知道的首款国产8K小型化广播级摄像机背后的故事
  15. 32位乘法器和除法器
  16. Pl/Sql 导入dmp文件时窗口一闪而过
  17. Gimy 剧迷更新快,内容超多的电影、美日韩剧、动漫片源
  18. day03链表基础_移除链表元素_设计链表_反转链表
  19. 对Slim 框架进行总结 一
  20. PS学习记录6--html5 canvas+js实现ps钢笔抠图

热门文章

  1. 苏州汽车南站到上海汽车|价格|时刻表
  2. 字符串位置的查询Python习题
  3. USB重启助手V1.0
  4. 四川大学计算机考研专业代码,[四川大学及其专业代码] 四川大学专业目录
  5. CF665C Simple Strings
  6. 永恒python奇美拉_石头山能自产甲烷,并自动燃烧,科学家称之为奇美拉火焰
  7. 【OpenGL】Shader实例分析(十)- 钻石效果
  8. 4月20日 疯狂猜成语-----第五次站立会议 参会人员:杨霏,袁雪,胡潇丹,郭林林,尹亚男,赵静娜...
  9. FFMS SQL文件执行错误
  10. Android面试总结,终于有人把安卓程序员必学知识点全整理出来了,移动架构师成长路线