一种基于肤色分割的人脸检测方法研究
2019-08-27孙红艳赵辉
孙红艳 赵辉
摘要:本文通过分析人脸检测的算法,并根据手机系统的特点,提出了基于肤色分割与AdabOOSt相结合的检测方法。首先,利用肤色分割算法分割肤色区域,并对原始图像进行预处理。然后,再通过AdabOOSt算法,利用Haar特征,对预处理后的图像中是否存在人脸进行精检。
关键词:人脸检测 肤色分割 Adaboost算法 Haar特征
一、引言
人脸检测是对给定的静止或动态图像,检测里面是否包含人脸,人脸检测的方法分成两类:一种是借助人脸特征进行分析的方法,一种是根据统计理论进行建模的方法。
基于特征的检测方法分为:基于低层特征的分析方法,组群特征分析方法和变形模型方法。基于统计理论建模方法有:Adaboost法、隐马尔可夫模型、人工神经网络、支持向量机等。
本文通过肤色分割算法,在待检测图像分割出包含肤色的有效区域,并且在检测过程中,对非肤色区域进行预处理,将它们设成统一的颜色,这样,将会减小在下一步的处理中,将非肤色区域检成人脸的概率;然后,再通过Adaboost算法,利用矩形特征对经过肤色分割处理后的肤色区域中是否包含有效的人脸数据进行精检。
二、肤色分割算法
肤色特征是聚类特征,并且特征稳定、区别能力较强、计算复杂度低,因而,在算法选择上,我们首先利用肤色特征,对人脸检测进行预处理,快速地分割出肤色区域,基于肤色的人脸检测主要包含两部分:颜色空间的选取及在所选取的颜色空间上的肤色模型的建立。
本文选用在YCbCr颜色空间上,进行肤色分割的处理,借助简单阈值模型对图像中存在的肤色区域进行粗检,目的就是查找到了图像中的可能的肤色区域,并作为人脸的候选区域,同时,去除非肤色区域,从而减小图像中的非肤色区域对人脸过程的干扰,并减小人脸精检步骤的计算量。
通过颜色空间的对比,我们可以发现,YCbCr顏色空间正好可以满足我们的要求,剔除亮度Y分量以后,利用二维互相独立的Cb、cr分量构造坐标平面,就可以分析肤色的聚类区域。根据Chai的研究,如果输入图像的像素值在以下范围内,就可以认为其属于肤色像素:
利用上述公式,可以将肤色区域从图像中分割出,分割时,可以适当放宽肤色的阈值,以尽量减少在肤色分割环节漏检肤色区域的可能性。分割出来来的肤色区域,作为包含人脸的候选区域,将会被转给下一级的验证算法Adaboost处理模块来进行精检处理。
三、Adaboost算法
77≤cb≤127且133≤Cr≤173
Viola与Jones在2001年构建了一个人脸检测框架,这个框架不仅能够获得比较高的人脸检测率,而且检测速度很快,达到了真正实时的效果。在这个框架中,用到的主要技术有三项:Adaboost算法、分类器级联、矩形特征与积分图。
本文选用了Adaboost算法,在肤色模型分割出的肤色区域上,利用矩形特征来进行第二阶段的人脸检测。同时,在肤色分割过程中,对非肤色区域进行特殊处理,将所有的非肤色区域的像素值设成0.即黑色,这样,能够确保Adaboost在对非肤色区域进行检测时,不会检到满足矩形特征特征值的区域,从而,提高了检测率,同时,使Adaboost环节的处理只集中在肤色区域进行,降低了检测时间。
四、系统实现
本文实现了一个用于人脸检测的WP8.1系统,处理过程为:首先,在YCbCr空间上对图像进行预处理,提取出肤色区域,将非肤色区域设成黑色;然后,通过Adaboost+Haar特征的方法,对预处理后的图像数据进行人脸检测,以下是此系统的结构流程图。
五、实验结果与数据分析
从网络上下载了50张包含各种人脸位姿、不同人脸数目、各种背景等的测试图像,对此系统进行测试,其中单人脸图像10张(共包含的人脸数目10),2-4人脸图像10张(共包含的人脸数目33),5-10人脸图像15张(共包含的人脸数目128),10人脸以上图像10张(共包含的人脸数目156),特殊图像(如特别复杂的背景,分辩率很大的图像、人脸数目超过30的图像等)5张(用于评介此系统的性能),以下是测试的统计结果,表中的A代表利用Adaboost算法进行检测,B代表利用肤色分割与Adaboost相结合的算法进行检测。
从上表,我们可以看出,与单纯的利用Adaboost算法进行人脸检测相比,肤色分割与Adaboost相结合的算法能有效地降低误检率,同时,获得更快的检测速度,但是,对于提高检测率贡献不大。同时,对于复杂的图像,如分辨率很大的图像,检测的耗时明显增加,这主要是检测区域过大及手机处理能力有限造成的:而对于人脸数目超过50的图像,检测时间过长,甚至以几十秒计,在性能上是无法接受的,还需要对系统进一步的优化。