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

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

人脸检测已经研究了很多年,有很多算法。但是目前基于深度学习CNN网络的人脸检测算法效果是不错,但是计算量太大,如果使用CPU很难做到实时处理。本文设计了一个CNN网络用于人脸检测,在速度和精度上实现了很好的平衡。 the proposed detector runs at 20 FPS on a single CPU core and 125 FPS using a GPU for VGA-resolution images

人脸检测的挑战主要来自两点:1)人脸在复杂背景图像中的多变性,检测器需要完成一个复杂的人脸有无问题的二分类;2)人脸位置和尺度的搜索空间较大,这就要求检测器的计算效率要高。这两点是有点相互矛盾的,因为高精度的人脸检测器通常计算量都是很大。 怎么平衡这两者之间的矛盾,算法上主要有两条思路:第一条路就是基于手工设计特征,代表性检测器有基于 Adboost 的 Viola-Jones face detector 和 基于级联结构的 DPM ,但是这些方法过于依赖不鲁棒的手工设计的特征,各个模块分开优化,使得整个系统是次优的sub-optimal。 第二条路是最近几年基于深度学习CNN网络的人脸检测器。基于 CNN 的人脸检测虽然性能有较大提升,但是计算量太大。后来有学者提出 cascaded CNN 来 boost the performance and keep efficient。但是 cascaded CNN 有三个问题:1)检测的速度和图像中人脸数目有关,人脸越多,检测速度越慢。2)基于级联的检测器每个模块分开优化,导致模型的训练难度加大,得到 的模型是 sub-optimal,3)对于 VGA-resolution,cascaded CNN在 CPU上的速度是 14 FPS,没有得到实时

3 FaceBoxes 本文提出的系统 受 Faster R-CNN 的 RPN 和 SSD 中的多尺度机制 启发,我们提出了一个在CPU可以实时检测人脸的 FaceBoxes

FaceBoxes 中含有三个主要的contributions: 1)the Rapidly Digested Convolutional Layers (RDCL), 2) the Multiple Scale Convolutional Layers (MSCL) , 3)the anchor densification strategy

3.1. Rapidly Digested Convolutional Layers 这个模块主要是解决速度问题 对于CPU来说,大多数CNN网络的计算量很大主要是因为 卷积层的 输入 输出 和 卷积核 尺寸较大 the convolution operation for CPU is extremely time-consuming when the size of input, kernel and output are large

我们的 RDCL 通过选择合适尺寸的卷积核和降低输出特征图通道的数量 来减小输入特征图的尺寸,具体是以下三个步骤: 1) Shrinking the spatial size of input: the stride size of Conv1, Pool1, Conv2 and Pool2 are 4, 2, 2 and 2, respectively 2)Choosing suitable kernel size: to keep efficient as well as effective, we choose 7×7, 5×5 and 3×3 kernel size for Conv1, Conv2 and all Pool layers, respectively 3)Reducing the number of output channels: 采用 C.ReLU activation function,C.ReLU can double the number of output channels by simply concatenating negated outputs before applying ReLU. Using C.ReLU significantly increases speed with negligible decline in accuracy.

3.2. Multiple Scale Convolutional Layers 这个模块主要是负责解决多尺度人脸的检测问题 1)Multi-scale design along the dimension of network depth:多个尺度递减的网络层得到多尺度特征图 2)Multi-scale design along the dimension of network width: 采用 Inception module

3.3. Anchor densification strategy default anchors 模板长宽比是 1:1,因为人脸是正方形的。因为 scale of anchor 和 卷积层的 stride size 多样性,导致 anchor 的采样密度在不同尺寸特征图上不一致。导致的问题是 对于小尺寸的人脸检测效果不好 small anchors (i.e., 32 × 32 and 64 × 64) are too sparse, which results in low recall rate of small faces

这里我们要做的是 different scales of anchor have the same density

3.4. Training Training dataset: 在 WIDER FACE 12,880 张图像上训练的 Data augmentation: 数据增强 Color distortion, Random cropping, Scale transformation,Horizontal flipping, Face-box filter Hard negative mining:挑选好的负样本进行训练,保持正负样本比例 3:1

4 Experiments

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

R-CNN目标检测第三弹(Faster R-CNN)

今天,重看了 R-CNN 的终极改进版本 Faster R-CNN(NIPS 版)-本文提到的paper,若为特别指明,说的就是此版本。 先说一个学术趣事吧,...

4118
来自专栏新智元

从0上手Kaggle图像分类挑战:冠军解决方案详解

【新智元导读】这篇文章介绍了作者在Kaggle植物幼苗分类比赛使用的方法,该方法连续几个月排名第一,最终排名第五。该方法非常通用,也可以用于其他图像识别任务。

1650
来自专栏智能算法

卷积神经网络工作原理直观解释

其实我们在做线性回归也好,分类(逻辑斯蒂回归)也好,本质上来讲,就是把数据进行映射,要么映射到一个多个离散的标签上,或者是连续的空间里面,一般简单的数据而言,...

1402
来自专栏机器学习之旅

应用:数据预处理-缺失值填充

2.直接根据没有缺失的数据线性回归填充,这样填充的好会共线性,填充的不好就没价值,很矛盾

823
来自专栏算法channel

BAT面试题5:关于LR

接下来,每天一道BAT面试题陪伴你,只要你坚持下来,日积月累,你会在不知不觉中就步入机器学习的大门,并且越走越远。同时,还能助你顺利拿到OFFER. 你应该学会...

1952
来自专栏张俊红

机器学习中非平衡数据处理

总第97篇 这一篇主要说一下机器学习中非平衡数据的处理方式以及用python如何实现. 在前面的一篇推文中我们提到过,非平衡数据会影响最后的评判效果,严重的会...

3765
来自专栏CVer

论文精读 | 目标检测之R-CNN

R-CNN作为R-CNN系列的开山鼻祖,其首次将CNN用于目标检测,在PASAL VOC 2010测试集上实现了53.7% mAP,也从此开启了R-CNN系列"...

911
来自专栏MelonTeam专栏

深度学习简易入门

深度学习是机器学习中的一个重要的方向,深度学习其实就是神经网络学习,这里“深度”就是说神经网络中众多的层。

2207
来自专栏机器之心

盘点 | 对比图像分类五大方法:KNN、SVM、BPNN、CNN和迁移学习

选自Medium 机器之心编译 参与:蒋思源、黄小天、吴攀 图像分类是人工智能领域的基本研究主题之一,研究者也已经开发了大量用于图像分类的算法。近日,Shiyu...

7788
来自专栏磐创AI技术团队的专栏

多核学习方法介绍

【磐创AI导读】:本文为SVM多核学习方法简介的续篇。想要学习更多的机器学习知识,欢迎大家点击上方蓝字关注我们的公众号:磐创AI。SVM多核学习方法简介

721

扫码关注云+社区