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

[  论文链接: A Convolutional Neural Network Cascade for Face Detection

人脸特征检测(face feature detection)又叫 “facial landmark detection”, “facial keypoint detection” and “face alignment”

人脸检测的两大难题:提高人脸识别速度;识别的准确性和计算复杂度的冲突.人脸识别效率低的原因有:图像的分辨率太高;网络自身的特性[网络越深则越耗时].

为了解决上述难题而提出了基于CNN的级联框架,具有性能好且识别能力强的特点.级联思想在人脸检测的运用: 在特征图上用滑动窗口,特征图上每个点对应于原始图像的一部分;人脸关键点定位也可以用cascade.级联CNN 在人脸检测的基础上预测人脸特征点位置,并将预测的相对位置转换成图像上的绝对坐标。

学术界的人脸检测数据集 FDDB、AFW 和 MALF

 1. Overall framework 

给定一张测试图像, 12 net用滑动窗口扫描整张图像,将原始输入resize成\large 12\times 12 大小的图,做简单的分类就可以快速过滤掉很多[ 90% ] 的 不属于人脸的检测[ 窗口 ]框;

NMS[ Non-maximum suppression ,非极大值抑制 ]把高度重合的框整合成一个;再把剩余的窗口crop 并resize 成\large 24\times 24大小,输入到 24net中,再做一遍人脸检测,进一步过滤到多[ 90% ] 的检测框;

最后一个48net 把剩余的框再进行一次NMS和过滤,得到最终的 output detections.

2.CNN structure 

实际中,如果可接受的最小的人脸尺寸为 F, 那么测试图像 is first built into image pyramid to cover faces at different scales and each level in the image pyramid is resized by \large \frac{12}{F},作为12-net的输入图像;

 12-calibration-net  是一个浅层CNN, N calibration patterns被预先定义为具有一个三种尺度变换的集合和[ offset vectors]偏移向量\large \left \{ \left [ s_{n}, x_{n}, y_{n} \right ] \right \}_{n=1}^{N} ,给定一个在左上角 \large \left ( x,y \right ) 处的size为 \large \left ( w,h \right )  的检测框 \large \left ( x,y,w,h \right ) ; calibration pattern 将这个框调整为:

 本文中 N = 45 patterns,因为 \large s_{n} 为scale  [ 对框的尺寸进行缩放],有以下5种变换, \large x_{n} ,\: y_{n}  分别有三种[ 分别表示沿着x,y轴的平移调整 ],则共有45种变换,用calibration net 对框进行调整. 

对平均结果做以下调整: 

 t是一个过滤掉低置信度的 patterns的阈值.

OpenCV里可以用来训练级联分类器的是opencv_haartraining和opencv_traincascade.

LBP特征是整数特征,因此训练和检测过程都会比Haar特征快几倍。LBP和Haar特征用于检测的准确率,是依赖训练过程中的训练数据的质量和训练参数。

注: 去了解相关函数工具(如图像预处理:去均值、归一化,卷积网络,相对坐标和绝对坐标互转等).

[参考:CascadeCNN人脸检测学习笔记 ]

猜你喜欢

转载自blog.csdn.net/qq_29831163/article/details/89026163