2020-12-24:人脸识别理论学习(二)

注意:转载出处忘记了。

一、人脸检测的目标

人脸检测的目标是找出图像中所有的人脸对应的位置,算法的输出是人脸外接矩形在图像中的坐标,可能还包括姿态如倾斜角度等信息。

二、人脸检测算法要解决的几个核心问题

        虽然人脸的结构是确定的,由眉毛、眼睛、鼻子和嘴等部位组成,近似是一个刚体,但由于姿态和表情的变化,不同人的外观差异,光照,遮挡的影响,准确的检测处于各种条件下的人脸是一件相对困难的事情。

  • 人脸可能出现在图像中的任何一个位置

  • 人脸可能有不同的大小

  • 人脸在图像中可能有不同的视角和姿态

  • 人脸可能部分被遮挡

扫描二维码关注公众号,回复: 12518948 查看本文章

三、人脸检测算法评价指标

        评价一个人脸检测算法好坏的指标是检测率和误报率。我们将检测率定义为:

        

        算法要在检测率和误报率之间做平衡,理想的情况是有高检测率,低误报率。

四、人脸检测算法分类

1、传统的人脸检测算法

(1)经典(初始算法)

        用大量的人脸和非人脸样本图像进行训练,得到一个解决2类分类问题的分类器,也称为人脸检测模板。这个分类器接受固定大小的输入图片,判断这个输入图片是否为人脸,即解决是和否的问题。

        早期的人脸检测算法使用了模板匹配技术,即用一个人脸模板图像与被检测图像中的各个位置进行匹配,确定这个位置处是否有人脸;此后机器学习算法被用于该问题,包括神经网络,支持向量机等。以上都是针对图像中某个区域进行人脸-非人脸二分类的判别。

  • 存在问题:耗时,即多尺度+扫描。由于人脸可能出现在图像的任何位置,在检测时用固定大小的窗口对图像从上到下、从左到右扫描,判断窗口里的子图像是否为人脸,这称为滑动窗口技术(sliding window)。为了检测不同大小的人脸,还需要对图像进行放大或者缩小构造图像金字塔,对每张缩放后的图像都用上面的方法进行扫描。由于采用了滑动窗口扫描技术,并且要对图像进行反复缩放然后扫描,因此整个检测过程会非常耗时。

  • 能解决的问题:多角度人脸检测。

(2)Adaboost(VJ算法)

        在深度学习出现以前,人脸检测采用的框架。

  • 由来:在2001年Viola和Jones设计了一种人脸检测算法[10]。它使用简单的Haar-like特征和级联的AdaBoost分类器构造检测器,检测速度较之前的方法有2个数量级的提高,并且保持了很好的精度,我们称这种方法为VJ框架。VJ框架是人脸检测历史上第一个最具有里程碑意义的一个成果,奠定了基于AdaBoost目标检测框架的基础

  • 算法思想:(1)多分类器集成。用多个AdaBoost分类器合作完成对候选框的分类,这些分类器组成一个流水线,对滑动窗口中的候选框图像进行判定,确定它是人脸还是非人脸。(2)强分类器:在这一系列AdaBoost分类器中,前面的强分类器设计很简单,包含的弱分类器很少,可以快速排除掉大量的不是人脸的窗口,但也可能会把一些不是人脸的图像判定为人脸。如果一个候选框通过了第一级分类器的筛选即被判定为人脸,则送入下一级分类器中进行判定,以此类推。如果一个待检测窗口通过了所有的强分类器,则认为是人脸,否则是非人脸。这种思想的精髓在于用简单的强分类器在初期快速排除掉大量的非人脸窗口,同时保证高的召回率,使得最终能通过所有级强分类器的样本数很少。这样做的依据是在待检测图像中,绝大部分都不是人脸而是背景,即人脸是一个稀疏事件,如果能快速的把非人脸样本排除掉,则能大大提高目标检测的效率。(3)弱分类器:弱分类器使用了简单的Haar-like特征,这种特征源自于小波分析中的Haar小波变换,Haar小波是最简单的小波函数,用于对信号进行均值、细节分解。这里的Haar-like特征定义为图像中相邻矩形区域像素之和的差值。这种特征捕捉图像的边缘、变化等信息,各种特征描述在各个方向上的图像变化信息。人脸的五官有各自的亮度信息,很符合Haar-like特征的特点。弱分类器采用最简单的深度很小的决策树,甚至只有一个内部节点。决策树的训练算法此处不做详细的阐述,需要注意的是这里的特征向量是稀疏的,即每一棵决策树只接受少量特征分量的输入,根据它们来做决策。

  • 解决的问题:在VJ算法问世之后,较好的解决了近似正面人脸的检测问题。此后出现了大量改进方案,在深度学习技术出现之前,一直是人脸检测算法的主流框架。这些方案的改进主要在以下几个方面:(1)新的特征,包括扩展的Haar特征[4],ACF特征[15]等,它们比标准的Haar-like特征有更强的描述能力,同时计算成本也很低。(2)使用其他类型的AdaBoost分类器。VJ框架中采用的是离散型的AdaBoost算法,除此之外,还有实数型,Logit型,Gentle型等各种方案。实数型、Logit型和Gentle型AdaBoost算法不仅能输出分类标签值,还能给出置信度,有更高的精度。(3)分类器级联结构,如Soft Cascade,将VJ方法的多个强分类器改成一个强分类器(该算法后面会有介绍)。另外,检测处于各种角度和姿态的人脸是研究另一个重点,VJ方法的分类器级联只有一条路径,是瀑布模型,改进的方案有树状级联,金字塔级联等.

  • 存在的问题:(1)Haar-like特征是一种相对简单的特征,其稳定性较低;(2)弱分类器采用简单的决策树,容易过拟合。因此,该算法对于解决正面的 人脸效果好,对于人    脸的遮挡,姿态,表情等特殊且复杂的情况,处理效果不理想(虽然有了一些改进方案,但还是    不够彻底)。(3)基于VJ-cascade的分类器设计,进入下一个stage后,之前的信息都丢弃了,分类器评价一个 样本不会基于它在之前stage的表现----这样的分类器鲁棒性差。    样本不会基于它在之前stage的表现----这样的分类器鲁棒性差。

(3)DMP算法

  • 概述:DPM(Deformable Part Model),正如其名称所述,可变形的组件模型,是一种基于组件的检测算法,其所见即其意。该模型由Felzenszwalb在2008年提出,并发表了一系列的CVPR,NIPS会议。并且还拿下了2010年,PASCAL VOC的“终身成就奖”。

  • 能解决的问题:由于DPM算法本身是一种基于组件的检测算法,所以对扭曲,性别,多姿态,多角度等的人脸都具有非常好的检测效果(人脸通常不会有大的形变,可以近似为刚体,基于DMP的方法可以很好地处理人脸检测问题)。

  • 存在的问题:效率低,很难满足实时性要求。DPM的方法采用的是FHOG进行特征的提取,作者对HOG进行了很大的改动,没有直接采用4*9=36维向量,而是对每个8x8的cell提取18+9+4=31维特征向量。作者还讨论了依据PCA(Principle Component Analysis)可视化的结果选9+4维特征,能达到HOG 4*9维特征的效果。基于DPM的方法在户外人脸集上都取得了比Viola-Jones更好的效果,但是由于该模型过于复杂,判断时计算复杂,很难满足实时性的要求。后续有了一些列改进的流程,比如加入级联分类器,针对特征计算采用了积分图的方法等,但都还没有达到VJ方法的效率。

2、深度人脸检测算法

(1)Cascade CNN

        Cascade CNN是传统技术和深度网络相结合的一个代表,和VJ人脸检测器一样,其包含了多个分类器,这些分类器采用级联结构进行组织,然而不同的地方在于,Cascade CNN采用卷积网络作为每一级的分类器。

  • 算法步骤:

    • 扫描和快速剔除:构建多尺度的人脸图像金字塔,12-net将密集的扫描这整幅图像(不同的尺寸),快速的剔除掉超过90%的检测窗口,剩下来的检测窗口送入12-calibration-net调整它的尺寸和位置,让它更接近潜在的人脸图像的附近。

    • 合并和筛选:采用非极大值抑制(NMS)合并高度重叠的检测窗口,保留下来的候选检测窗口将会被归一化到24x24作为24-net的输入,这将进一步剔除掉剩下来的将近90%的检测窗口。和之前的过程一样,通过24-calibration-net矫正检测窗口,并应用NMS进一步合并减少检测窗口的数量。

    • 输出:通过之前所有层级的检测窗口对应的图像区域归一化到48x48送入48-net进行分类得到进一步过滤的人脸候选窗口。然后利用NMS进行窗口合并,送入48-calibration-net矫正检测窗口作为最后的输出。

  • 解决的问题:一定程度上解决了传统方法在开放场景中对光照、角度等敏感的问题

  • 存在的问题:该框架的第一级还是基于密集滑动窗口的方式进行窗口过滤,在高分辨率存在大量小人脸(tiny face)的图片上限制了算法的性能上限。

(2)DenseBox

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

  • 算法步骤:

    • 对待检测图像进行缩放,将各种尺度的图像送入卷积网络中处理,以检测不同大小的目标。

    • 经过多次卷积和池化操作之后,对特征图像进行上采样然后再进行卷积,得到最终的输出图像,这张  图像包含了每个位置出现目标的概率,以及目标的位置、大小信息。

    • 由输出图像得到目标矩形框。

    • 非最大抑制,得到最终的检测结果。

(3)Faceness-Net

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

  • 第1阶段:生成partness map,由局部推理出人脸候选区域。根据attribute-aware深度网络生成人脸部件map图(partness map),如上图Faceness(a)中的颜色图,文章共使用了5个部件:hair,eye,nose,mouth,beard. 通过part的结合计算人脸的score.部件与部件之间是有相对位置关系的,比如头发在眼睛上方,嘴巴在鼻子下方,因此利用部件的spatial arrangement可以计算face likeliness. 通过这个打分对原始的人脸proposal进行重排序. 如图Faceness(b)。

  • 第2阶段:Refining the face hypotheses.上一阶段proposal生成的候选框已经有较高的召回率,通过训练一个人脸分类和边界回归的CNN可以进一步提升其效果。Faceness的整体性能在当时看来非常令人兴奋。此前学术界在FDDB上取得的最好检测精度是在100个误检时达到84%的检测率,Faceness在100个误检时,检测率接近88%,提升了几乎4个百分点;除了算法本身的精度有很大提升,作者还做了很多工程上的优化比如:通过多个网络共享参数,降低网络参数量 83%;采用多任务的训练方式同一网络实现不同任务等。

(4)MTCNN

        MTCNN顾名思义是多任务的一个方法,它将人脸区域检测和人脸关键点检测放在了一起,同Cascade CNN一样也是基于cascade的框架,但是整体思路更加巧妙合理,MTCNN总体来说分为三个部分:PNet、RNet和ONet,如图1所示:

  

                                     圖1                                                                                            圖2

        Cascade CNN第一级的12-net需要在整张图片上做密集窗口采样进行分类,缺陷非常明显;MTCNN在测试第一阶段的PNet是全卷积网络(FCN),全卷积网络的优点在于可以输入任意尺寸的图像,同时使用卷积运算代替了滑动窗口运算,大幅提高了效率。图2为不同尺度图像经过PNet的密集分类响应图,亮度越高代表该区域是人脸的概率越大(dense predictionresponse map)。

        除了增加人脸5个关键点的回归任务,另外在calibration阶段采用了直接回归真实位置坐标的偏移量的思路替代了Cascade CNN中的固定模式分类方式,整个思路更为合理。

  • MTCNN的整体设计思路很好,将人脸检测和人脸对齐集成到了一个框架中实现,另外整体的复杂度得到了很好的控制,可以在中端手机上跑20~30FPS。该方法目前在很多工业级场景中得到了应用。

上述方法都存在存在問題:小目標下效果不好。

(5)faster-rcnn

  • 该方法基于Faster R-CNN框架做人脸检测,针对人脸检测的特殊性做了优化。

  • 对于最后的二分类,在softmax的基础上增加了center loss。通过加入center loss使得类内的特征差异更小(起到聚类的作用),提高正负样本在特征空间的差异性从而提升分类器的性能。

  • 加入在线困难样本挖掘(OHEM),每次从正负样本中各选出loss最大的N个样本加入下次训练,提高对困难样本的的分类能力。

  • 多尺度训练,为了适应不同尺度影响(或者更好地检测小目标),训练阶段图片会经过不同尺度缩放。

(6)SSH

        SSH最大的特色就是尺度不相关性(scale-invariant),比如MTCNN这样的方法在预测的时候,是对不同尺度的图片分别进行预测,而SSH只需要处以一个尺度的图片就可以搞定。实现方式就是对VGG网络不同level的卷积层输出做了3个分支(M1,M2,M3),每个分支都使用类似的流程进行检测和分类,通过针对不同尺度特征图进行分析,变相的实现了多尺度的人脸检测。

(7)PyramidBox

这张图又出现了!!!这一次是百度的“PyramidBox”[24]跑出来的结果。1000個人類中模型檢測出來880个人脸!!!

PyramidBox从论文看主要是已有技术的组合应用,但是作者对不同技术有自己很好的理解,所以能组合的很有效,把性能刷的非常高。

猜你喜欢

转载自blog.csdn.net/weixin_38192254/article/details/111628879