级联人脸检测--A Convolutional Neural Network Cascade for Face Detection

A Convolutional Neural Network Cascade for Face Detection
CVPR2015

https://github.com/anson0910/CNN_face_detection
https://github.com/mks0601/A-Convolutional-Neural-Network-Cascade-for-Face-Detection
https://github.com/IggyShone/fast_face_detector

本文早期使用级联CNN网络进行人脸检测代表性文献,在速度和精度上效果和以前算法相比都有所提升。
缺点:各个CNN trained sequentially, 不是 end-to-end, which may not be desirable

最早最经典的级联人脸检测算法是 Viola-Jones face detector,使用了 Haar feature,这个检测器对于正面的人脸效果还是不错的。但是对于实际应用环境中人脸姿态的变化,人脸表情的多样性,光照的多样性,使其检测性能降低很多。 究其原因主要还是 Haar feature 过于简单了。

后来很多学者就对 Viola-Jones face detector 提出改进,使用更先进的特征,虽然先进特征的计算量增加了,但是相应级联的层数也减少了,所以总体上计算量可能减少了,精度提高了。所以我们认为将更先进的特征应用于人脸检测效果应该更好。考虑到CNN特征的计算量很大,所以我们使用级联CNN来进行人脸检测。

3.1. Overall framework
我们的思路大致如下:首先使用一个小型网络 12-net 对图像进行全局搜索人脸候选区域,检测区域是 12×12图像块,搜索步长是4个像素,可以快速排除90%的非人脸区域,使用非极大值抑制排除一些重叠区域,再对剩下的候选区域使用一个小网络 12-calibration-net 进行人脸矩形框微调,包括位置和尺度。微调后再使用一个中型网络 24-net 对微调后的人脸候选区进行二分类,检测区域是 24×24 图像块,再排除90%的非人脸区域,再对剩下的候选区域使用一个中型网络 24-calibration-net 进行人脸矩形框微调,包括位置和尺度,使用非极大值抑制排除一些重叠区域,微调后再使用一个大型网络 48-net 对微调后的人脸候选区进行二分类,检测区域是 48×48 图像块,非极大值抑制,最后用
48-calibration-net 进行人脸矩形框微调 输出结果。

检测示意图:
级联人脸检测--A Convolutional Neural Network Cascade for Face Detection_第1张图片

3.2. CNN structure

三个人脸二分类CNN网络结构
级联人脸检测--A Convolutional Neural Network Cascade for Face Detection_第2张图片

三个人脸矩形框矫正CNN网络结构
级联人脸检测--A Convolutional Neural Network Cascade for Face Detection_第3张图片

矫正效果示意图:
级联人脸检测--A Convolutional Neural Network Cascade for Face Detection_第4张图片

有无多尺度检测对比
级联人脸检测--A Convolutional Neural Network Cascade for Face Detection_第5张图片

AFW dataset
级联人脸检测--A Convolutional Neural Network Cascade for Face Detection_第6张图片

FDDB
级联人脸检测--A Convolutional Neural Network Cascade for Face Detection_第7张图片

The proposed detector is very fast, achieving 14 FPS for typical VGA images on CPU and can be accelerated to 100 FPS on GPU

你可能感兴趣的:(人脸检测识别)