基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法

基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第1张图片

本文用途仅仅是在前人经验下,自我总结,以供以后学习使用,若有错误,敬请您批评指正。

【导读】人脸检测在实际中主要用于人脸识别的预处理,即在图像中准确标定出人脸的位置和大小。人脸图像中包含的模式特征十分丰富,如直方图特征、颜色特征、模板特征、结构特征及Haar特征等。人脸检测就是把这其中有用的信息挑出来,并利用这些特征实现人脸检测。

人脸检测的目标是找出图像中的所有人脸存在的位置,各类方法的输出是人脸矩阵在图像中的坐标位置。虽然人脸的结构是固定的,但是由于人脸表情、姿态等变化,光照以及遮挡等影响,想要准确检测处于各类条件下的人脸不是一件容易的事情。

评价人脸检测算法的指标:检测率、误报率。性能好的表现是:检测率高,误报率低

从大方向来说,人脸检测可以分为三种方向:

  • 基于特征的人脸检测技术:通过采用颜色、轮廓、纹理、结构或者直方图特征等进行人脸检测。
  • 基于模板匹配人脸检测技术:从数据库当中提取人脸模板,接着采取一定模板匹配策略,使抓取人脸图像与从模板库提取图片相匹配,由相关性的高低和所匹配的模板大小确定人脸大小以及位置信息。
  • 基于统计的人脸检测技术:通过对于“人脸”和“非人脸”的图像大量搜集构成的人脸正、负样本库,采用统计方法强化训练该系统,从而实现对人脸和非人脸的模式进行检测和分类。

下文参考来源:一文综述人脸检测算法(附资源)_数据派THU-CSDN博客_候选框 ensemble 置信度 剔除

  • 早期方法

模板匹配技术:用一个人脸模板图像与被检测的图像的各个位置进行匹配,确定此位置是否存在人脸。

  • Adaboost学习框架

boost算法是基于PAC学习理论(probably approximately correct)而建立的一套集成学习算法(ensemble learning)。

  1. 主流的人脸检测方法基于以上直方图特征、颜色特征、模板特征、结构特征及Haar特征等特征采用Adaboost学习算法,Adaboost算法是一种用来分类的方法,它把一些比较弱的分类方法合在一起,组合出新的很强的分类方法。人脸检测过程中使用Adaboost算法挑选出一些最能代表人脸的矩形特征(弱分类器),按照加权投票的方式将弱分类器构造为一个强分类器,再将训练得到的若干强分类器串联组成一个级联结构的层叠分类器,有效地提高分类器的检测速度。
  2. DPM算法(Deformable Part Model),本身是一种基于组件的检测算法,所以对扭曲,性别,多姿态,多角度等的人脸都具有非常好的检测效果(人脸通常不会有大的形变,可以近似为刚体,基于DMP的方法可以很好地处理人脸检测问题)。DPM的方法采用的是FHOG进行特征的提取,但是由于该模型过于复杂,判断时计算复杂,很难满足实时性的要求。后续有了一些列改进的流程,比如加入级联分类器,针对特征计算采用了积分图的方法等。
  • 深度学习方法

卷积神经网络在图像分类问题上取得成功之后很快被用于人脸检测问题,在精度上大幅度超越之前的AdaBoost框架,当前已经有一些高精度、高效的算法。直接用滑动窗口加卷积网络对窗口图像进行分类的方案计算量太大很难达到实时,使用卷积网络进行人脸检测的方法采用各种手段解决或者避免这个问题。

1. Cascade CNN

Cascade CNN可以认为是传统技术和深度网络相结合的一个代表,其包含了多个分类器,这些分类器采用级联结构进行组织,Cascade CNN采用卷积网络作为每一级的分类器。该框架的第一级还是基于密集滑动窗口的方式进行窗口过滤,在高分辨率存在大量小人脸(tiny face)的图片上限制了算法的性能上限。

基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第2张图片

2. DenseBox

DenseBox目标检测算法,适合人脸这类小目标的检测。这种方法使用全卷积网络,在同一个网络中直接预测目标矩形框和目标类别置信度。通过在检测的同时进行关键点定位,进一步提高了检测精度。

检测流程:

对待检测图像进行缩放,将各种尺度的图像送入卷积网络中处理,以检测不同大小的目标。
经过多次卷积和池化操作之后,对特征图像进行上采样然后再进行卷积,得到最终的输出图像,这张图像包含了每个位置出现目标的概率,以及目标的位置、大小信息。
由输出图像得到目标矩形框。
非最大抑制,得到最终的检测结果。

基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第3张图片

3. Faceness-Net

Faceness-Net是一个典型的由粗到精的工作流,借助了多个基于DCNN网络的facial parts分类器对人脸进行打分,然后根据每个部件的得分进行规则分析得到Proposal的人脸区域,最后通过一个Refine的网络得到最终的人脸检测结果。

检测流程:

根据attribute-aware深度网络生成人脸部件map图,由局部推理出人脸候选区域。上一阶段proposal生成的候选框已经有较高的召回率,通过训练一个人脸分类和边界回归的CNN可以进一步提升其效果。

4. MTCNN多任务级联卷积神经网络

MTCNN(Multi-task Cascaded Convolutional Networks)是 一种多任务级联卷积神经网络,用以同时处理人脸检测和人脸关键点定位问题。作者认为人脸检测和人脸关键点检测两个任务之间往往存在着潜在的联系,然而大多数方法都未将两个任务有效的结合起来,MTCNN充分利用两任务之间潜在的联系,将人脸检测和人脸关键点检测同时进行,可以实现人脸检测和5个特征点的标定。

检测过程:

Stage 1:使用P-Net是一个全卷积网络,用来生成候选窗和边框回归向量(bounding box regression vectors)。使用Bounding box regression的方法来校正这些候选窗,使用非极大值抑制(NMS)合并重叠的候选框。
Stage 2:使用N-Net改善候选窗。将通过P-Net的候选窗输入R-Net中,拒绝掉大部分false的窗口,继续使用Bounding box regression和NMS合并。
Stage 3:最后使用O-Net输出最终的人脸框和特征点位置。和第二步类似,但是不同的是生成5个特征点位置。

基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第4张图片

5.腾讯优图-DSFD 人脸检测算法

DSFD 人脸检测算法主要有 3 点创新:

(1)设计了一种新的「特征增强」模块(FEM:Feature Enhance Module)

FEM 在采用 Top-Down 层间信息融合的同时,在同一「感受野」内做了更多的 enhancement。因此在 width and depth 上学习到了更有效的 context 和 semantic 信息。

(2)提出了「分层锚点渐进」式的代价函数监督(PLA:Progressive Anchor Loss)

模型采用 2 个层级(hierarchy),基于第一层(low-level)和第二层(high-level)的差异性,适配了不同尺寸的 anchor。在训练过程中,PAL 对整个模型形成了更有效的监督。

(3)设计了一种「改进的锚点匹配策略」(Improved Anchor Matching Strategy)

One-stage detector 由于在输出层分配有密集的 anchor,anchor 与 face 匹配的好坏直接影响训练效果。优图的研究人员 data augmentation 过程中充分考虑了不同大小的 face 和各个 anchor 的关系,提出了一种新的数据扩增法。

基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第5张图片

6. Dlib人脸检测

Dlib的核心原理是使用了图像Hog特征来表示人脸,和其他特征提取算子相比,它对图像的几何和光学的形变都能保持很好的不变形。该特征与LBP特征,Harr特征共同作为三种经典的图像特征,该特征提取算子通常和支持向量机(SVM)算法搭配使用,用在物体检测场景。

Dlib 实现的人脸检测方法便是基于图像的Hog特征,综合支持向量机算法实现的人脸检测功能,该算法的大致思路如下:

  • 对正样本(即包含人脸的图像)数据集提取Hog特征,得到Hog特征描述子。
  • 对负样本(即不包含人脸的图像)数据集提取Hog特征,得到Hog描述子。 其中负样本数据集中的数据量要远远大于正样本数据集中的样本数,负样本图像可以使用不含人脸的图片进行随机裁剪获取。
  • 利用支持向量机算法训练正负样本,显然这是一个二分类问题,可以得到训练后的模型。
  • 利用该模型进行负样本难例检测,也就是难分样本挖掘(hard-negtive mining),以便提高最终模型的分类能力。具体思路为:对训练集里的负样本不断进行缩放,直至与模板匹配位置,通过模板滑动串口搜索匹配(该过程即多尺度检测过程),如果分类器误检出非人脸区域则截取该部分图像加入到负样本中。
  • 集合难例样本重新训练模型,反复如此得到最终分类模型。

注:知乎大神有做了个时间线描述深度学习检测算法和非深度学习检测算法,大家可直接查阅参考文献【5】学习:YaqiLYU:人脸检测背景介绍和发展现状

深度学习人脸检测算法对比:

基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第6张图片

非深度学习人脸检测算法对比:

基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第7张图片

参考文献:

一文综述人脸检测算法(附资源)_数据派THU-CSDN博客_候选框 ensemble 置信度 剔除​blog.csdn.net
基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第8张图片
人脸检测之Haar-like,Adaboost,级联(cascade)_Tony的博客-CSDN博客_haar-cascade和adaboost关系​blog.csdn.net
基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第9张图片
BBuf:人脸识别系列二 | FisherFace,LBPH算法及Dlib人脸检测​zhuanlan.zhihu.com
基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第10张图片
腾讯优图开源人脸检测算法DSFD,刷新两项数据集纪录_Anchor​www.sohu.com
基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第11张图片
YaqiLYU:人脸检测背景介绍和发展现状​zhuanlan.zhihu.com
基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第12张图片
人脸检测算法_何以清风-CSDN博客_人脸检测算法​blog.csdn.net
基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第13张图片
我们认真研究了FaceID的工作原理,用iPhoneX的可以安心睡觉了​www.techwalker.com
基于adaboost算法的人脸检测_人脸识别系统之人脸检测算法_第14张图片

你可能感兴趣的:(怎样下载人脸级联分类器引擎,目标识别,adaboost)