《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》

论文地址:https://arxiv.org/abs/1708.05234

caffe 框架实现:https://github.com/lippman1125/faceboxes_lqy

prtorch 框架实现:https://github.com/zisianw/FaceBoxes.PyTorch

https://github.com/XiaXuehai/faceboxes

1、主要创新点

文中的主要要点是提出了 RDCL (Rapidly Digestes Convolutional Layers) 以及 MSCL(Multiple Scale Convolutional Layers),还有 anchor 致密化(Anchor densification strategy)

  • RDCL 通过快速降输入图片的分辨率,实现在 CPU 上的实时速度。
  • MSCL 通过利用来自不同层的 anchor 来增加感受视野,解决不同尺寸的人脸问题。
  • anchor 致密化则是来增加小脸的召回率。

2、整体网络结构

总体的流程图如下所示:

本质上并不复杂,熟悉fasterRcnn,或者熟悉rpn就可以很快搞清楚。

faceBox相当于在fasterRcnn的基础只保留了rpn结果,去掉了roi pooling,并且采用fpn,已经对anchor进行了改进,还有一点主干网络(不算什么亮点了)。

3、创新点解析

3.1、 RDCL (Rapidly Digestes Convolutional Layers)

在 CPU 上,当卷积层的输入,输出,卷积核尺寸都很大时,是很耗时的,所以这里本文的 RDCL 就是将输出的图片尺寸通过合适的卷积核尺寸快速收缩,以达到在 CPU 实时的速度。

主要设计思路如下:

  • 如上图1,通过 7x7-s-4(Conv1) , 3x3-s-2(Pool1)5x5-s-2(Conv2)3x3-s-2(Pool2) 四层,快速将分辨率降到了原来的 1/32。
  • 这里对前面 RDCL 部分卷积核尺寸的选择,首先应该尽可能的小来减少计算量,但是应为输入图片的尺寸会快速下降,卷积核又应该足够大学习足够的特征来减轻因为分辨率快速下降带来的影响,所以综合考虑,本文使用了 Conv1,Conv2 卷积核依次是 7x7,5x5, Pool 尺寸是 3x3 。
  • 降低输出通道数。 这里文中用了 C.ReLU 激活函数来降低图片的输出通道。这里我的理解是如果是想最后输出 256 个通道, 使用 C.ReLU 的特性,卷积层的输出为 128个通道,经过 C.ReLU 以后输出的通道会自动翻倍,达到 256 个通道的输出效果,但是参数远比直接输出 256 个通道,或者通过额外的 1x1卷积层将 128 改变为 256 的少。

C.ReLU 结构如下:

3.2、MSCL(Multiple Scale Convolutional Layers)

主要是对 RPN 网络的思考与改进。

首先 RPN 网络只采用了整个特征提取器的最后一层输出,这样对于不同尺寸的人脸特征是不够的,第二点就是用一系列的 anchor 一般都是去检测单一尺寸的人脸,对多尺寸的人脸就不使用了,因此文中做了下面两部分改进:

  • 如图1,类似于 SSD 的思想,检测人脸使用了来自多层的特征, Inception3, Conv3_2, Conv4_2,这样不同分辨率的 anchor 就可以处理不同尺寸的人脸了。
  • 网络结构中使用了 Inception 模块来增加网络的宽度,即同一层使用不同分辨率的卷积核,增加网络学习的感受野,也是为了更有效的学习同一张图片中不同尺寸的人脸。

Inception 模块如下图所示:

3.3、anchor 致密化(Anchor densification strategy)

anchor 致密化如下如所示:

Inception3 中使用的 anchor 尺寸是 32,64,128。

Conv3_2,Conv4_2 则分别是 256,512。

在网络学习过程中,32,64,这类的小尺寸 anchor 相较于较大的 128,256,512 更少,这样就会造成在小脸上的低召回率。为了消除这一现象,本文提出了 anchor 致密化的方法,围绕着每一个 anchor 的中心,将 32 的扩展成原来的 4 倍,64 的扩展为原先的 2 倍。

4、Experiment

主要是对不同方法在 CPU 上的运行速度做了对比,并且对文中的 3 大特点做了对比实验:

RDCL 主要就是将 C.ReLU 换成 ReLU;

MSCL 主要是将 Inception 转成传统的 3x3 卷积层;

anchor 致密 主要是用不用这个方法做了对比,可以看到致密性可以提高 1.1% 的性能。

Inception 也是增加了 1% 左右的 mAP。

RDCL 则更有效,虽然对网络性能降低了2%,但大大增加了网络的速度。

5、效果图

6、参考来源

https://zhuanlan.zhihu.com/p/58705459

https://blog.csdn.net/u014365862/article/details/84866191

人脸检测——FaceBoxes之解读与效果展示相关推荐

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

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

  2. 【Python】监控视频中运动目标检测的代码实现及效果展示

    0.介绍 基于python,使用opencv库函数,实现监控视频中的运动目标检测,Mark一下! 干扰性和灵敏度的权衡,可通过调节代码中的参数(高斯模糊核.面积阈值.帧差间隔等)进行设置. 1.代码 ...

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

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

  4. 如何用 200 行 JavaScript 代码实现人脸检测?

    在超市.地铁.车站等很多场景中,人脸识别已经被广泛应用,但是这个功能究竟是怎么实现的? 在本文中,将以 pico.js 库为例,分享实现轻量级人脸识别功能的具体开发过程 . 作者 | tehnokv ...

  5. caffe 人脸关键点检测_全套 | 人脸检测 人脸关键点检测 人脸卡通化

    点击上方"AI算法与图像处理",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源:CVPy 人脸检测历险记 可能跟我一样,人脸检测是很 ...

  6. 这就是神经网络 19:深度学习-人脸检测-S3FD

    概述 本文介绍1篇人脸检测方面的工作,这是2017年的工作.S3FD是SSD类的检测器,为人脸检测做了相应优化和修改.即使放在今年(2019),这个工作的结果也都是SOTA级的存在. 前段时间写了文章 ...

  7. 人脸检测总结报告(2018_1_20-2018_1_30)

    一.总述 根据Yang,Kriegman,and Ahuja(2002)的分类,人脸检测的方法分为基于特征的.基于模板的和基于表观的方法. 基于特征的方法,尝试寻找有区分性的图像特征的位置,比如眼睛. ...

  8. FaceBoxes —— CPU上实时的人脸检测

    一篇速度还可以的多尺度人脸检测文章. 方法和SSD大同小异. 文章链接: <FaceBoxes: A CPU Real-time Face Detector with High Accuracy ...

  9. 模型仅1MB,更轻量的人脸检测模型开源,效果不弱于主流算法

    乾明 编辑整理  量子位 报道 | 公众号 QbitAI AI模型越来越小,需要的算力也也来越弱,但精度依旧有保障. 最新代表,是一个刚在GitHub上开源的中文项目:一款超轻量级通用人脸检测模型. ...

最新文章

  1. 700页!分享珍藏很久的《推荐系统学习手册》(附下载链接及入门经验)
  2. JavaScript之面向对象学习三原型语法升级
  3. linux系统reboot怎么退出,Linux系统肿么退出?
  4. 读书感悟 1 孙子兵法虚实篇(最重要的事情只有一件)
  5. GitHub命令使用步骤
  6. JSP指令、动作和对象
  7. 脑电波 睡眠分期 分类 预测 MATLAB 代码 数据 BP NN PNN 模型 特征设计 滑动窗口机制
  8. 百度竞价开户优化的细节到底是哪些
  9. 软件工程实训项目(一)——IDEA连接Mysql数据库
  10. IDEA 有个很牛逼的功能
  11. 怎么关闭win10虚拟机服务器,大神为你win10系统彻底关闭退出vmware虚拟机的方案...
  12. 圣斗士星矢-我至爱的动画片-Phoenix
  13. CSGO 播放DEMO 闪退跳出到桌面无法播放问题解决
  14. Facebook的语音助手Aloha疑曝光
  15. 在c语言中fun的作用是什么,c语言的fun函数用法
  16. java版状态机Squirrel源码分析
  17. ireport 生成一维码 和 二维码 小记
  18. 写论文看这一篇就够了
  19. Flutter实践——仿开眼短视频APP
  20. Walmart沃尔玛ERP多店铺管理系统功能详细介绍!

热门文章

  1. ArcGIS拼接多张dem影像(含裁剪、dem负值处理)
  2. 途志;抖音这样在评论区引流,让你快速涨粉
  3. 红帽企业版RHEL7.1在研域工控板上,开机没有登陆窗口 -- 编写xorg.conf 简单三行解决Ubuntu分辩率不可调的问题...
  4. activiti7 关于并行网关,一个人审核通过,一个人审核不通过,如何走流程
  5. 近世代数 笔记和题型连载:第四章(半群和独异点)
  6. 如何优雅地生成那些花里胡哨的复杂样式 Excel 文件?
  7. 计算机控制系统中常用的过程通道,计算机控制系统3第三章 (1).ppt
  8. 高中数学这些解题的思维你是否掌握(名师总结)
  9. 《计算机操作》实训报告,计算机操作统实训报告.doc
  10. 基于单片机的智能窗户窗帘衣架设计(毕业设计资料)