人脸检测算法对比分析



https://blog.csdn.net/twinkle_star1314/article/details/53318689


人脸识别包括以下5个步骤:人脸检测、图像预处理、特征提取、匹配、结果输出。

人脸检测是人脸识别中的第一个环节,是一项关键技术。人脸检测是指假设在输入图像中存在一个或者多个人脸区域的情况下,确定图像中全部人脸的位置、大小和姿势的过程。从教学理论上来讲,人脸检测本质上是对一副图像的特征提取,如果提取了M个体征,则此模式可以用一个M维特征向量描述:x=(x1,x2,x3......xm),表现为M维欧式空间中的一个点。按照统计学的观点,好的特征提取方法必须满足以下条件:特征之间相互独立,减小类内距离的同时增大类间距离,特征向量的维数m尽量小。参考文章:《几种人脸检测算法的对比研究》赵东方、杨明、邓世涛

人脸检测算法一般包括两大类:基于统计的方法、基于结构特征的方法;


方法1   基于直方图粗分割和奇异值特征的人脸检测算法((基于统计的方法))

适应:复杂背景下的人脸检测

方法:在灰度基本均匀的平面上,双眼、鼻、口成一定结构分布特征。先根据平滑的直方图对图像进行粗分割,再根据一定的灰度空间对人眼进行定位,进而确定出人脸区域。

第一步:用高斯函数对直方图进行平滑处理

第二步:眼睛的定位

第三步:基于奇异值特征的人脸验证

效果:检测率较高,但耗时较长,平均每个图像需10~15秒,而且待检测的图像中人脸姿势、表情等比较固定,当脸部光照变化较大或脸部有阴影(特别是眼部区域)时,图像很难被检测到。

方法2 基于二进小波变换的人脸检测(基于统计的方法)

二进小波变换得到的低频分量和高频分量不是下采样型的,他们具有平移不变性。而二进小波变换有两个过程组成:学习过程和检测过程。

缺点:在统计学习的过程中,对原始图像的要求比较高,当图像的背景相对复杂时,比如从侧面拍摄人脸时,水平方向的和垂直方向的高低频分量很难获取,这将直接影响到自由参数的准确性,从而很大程度上影响人脸检测的检准率。

方法3基于AdaBoost算法的人脸检测

2010年viola和Jones引入积分图的概念,提出了基于Haar-like特征、级联结构的AdaBoost算法,成功应用于模式识别领域,实现了实时人脸检测,使人脸检测技术取得了突破性进展。为适应背景的复杂性,研究者提出了将肤色等人脸特征和AdaBoost算法相结合的人脸检测新算法。算法首先结合人脸特征,利用人脸特征确定人脸的大致方向,然后用级联结构的AdaBoost算法进行验证。下图为该算法的人脸检测流程图

第一步:肤色区域检测

肤色的差别主要是亮度的差别而非我们表面认知的色彩差别,因此检测肤色区域时极容易受光照的影响,采用YCbCr色彩空间,可以使肤色有较好的聚类性。

第二步:人脸候选区域分割

在YCbCr色彩空间中,眼睛与皮肤的Cb和Cr分量有很大的差异,眼睛的灰度值相对较低,Y分量集中分布在(0,120)内,而且眼睛的Cb分量普遍比Cr分量的值高,由此将眼睛的色彩和亮度映射结合起来就能检测出眼睛区域的大小和位置。多数情况下嘴巴的方向和人脸的方向一致,具有很强的稳定性,嘴巴检测的情况类似眼睛的检测,此时Cb比Cr分量的值高很多,也就是说,嘴巴相对眼睛更容易检测到。最后根据人体学特征,根据人脸各部件的大体位置很容易确定人脸候选区域。

第三步:人脸候选区域分类

这一步利用AdaBoost算法,通过对人脸候选区域进行积分图计算,快速计算Harr-like特征,利用AdaBoost算法将Harr-like特征生成的弱分类器叠加成为强分类器,再将多个强分类器级联成人脸检测分类器。

方法4 基于面部双眼结构特征的人脸检测

首先在原始灰度图像上计算各像素点的梯度方向对称性,然后以梯度方向对称性高的点为特征点,并进一步组合成特征块,通过一种简单的抑制方法,滤去大部分孤立的非人脸部件的特征点,再运用一定的规则对各个特征块进行组合得到候选人脸区域最后对候选人脸进行人脸部件的验证,剔除假脸,得到真正的人脸区域。

第一步:梯度方向对称分布特征点的提取

第二步:双眼特征块的提取

第三步:人眼的验证

猜你喜欢

转载自blog.csdn.net/childbor/article/details/79716747