基于肤色模型的人脸检测研究
扫描二维码
随时随地手机看文章
0 引言
在人脸检测领域,人脸特征的选取是基础与核心。目前主要的人脸检测方法可以分为基于特征的方法和基于统计的方法两大类。基于特征的方法可以处理较大尺度和视角变化的人脸检测问题,但其最大的困难在于很难找到相对稳定的特征,因为图像的显示特征容易受到光照、噪声等的影响;基于统计的方法可以避免特征提取和分析过程,但存在计算量大,以及非人脸样本收集和样本训练难的问题。
为此,本文对基于肤色分割结合模板匹配的人脸检测方法进行了改进,提出基于“光照预处理+肤色模型+模板匹配”的人脸检测解决思路,即在光照预处理的前提下,利用肤色特征建立肤色模型;根据肤色模型进行肤色检测和阈值分割;在对分割区域特征分析的基础上,将筛选出的人脸候选区域与人脸模板相匹配;最后将匹配较好的区域在原图像中用矩形框标示出来。
1 肤色模型
人脸的肤色不依赖于面部的其他特征,对于人脸姿态和表情的变化不敏感,具有较好的稳定性,而且明显区别于大多数背景物体的颜色。大量实验证明,不同肤色的人脸对应的色调是比较一致的,其区别主要在于灰度。人脸的肤色特征主要通过肤色模型来描述。肤色模型是在一定色彩空间描述肤色分布规律的数学模型。本文选用备受青睐的高斯模型。
1.1 色彩空间
一般说来,色调和饱和度相对亮度来说,是相互独立的。在不同的光照条件下,虽然物体颜色的亮度会产生很大的差异,但是它的色度在很大范围内具有恒常性,基本保持不变。研究表明,人类的肤色在YCbCr色彩空间的分布相对比较集中(被称为肤色的聚类特性),不同种族之间肤色的差异主要是由亮度引起,而与颜色属性无关。利用此特性,将图像像素分为肤色和非肤色像素两类,这样可以大大提高人脸检测的效率和正确性。
在YCbCr色彩空间中,Y表示亮度,Cb和Cr是颜色差别信号,代表色度。因此,本文的肤色模型只选用YCbCr色彩空间的Cb和Cr色度分量,并用这两个分量建立色度分布图。实验中,需要先将普遍采用RGB色彩空间描述的图像转换到YCbCr色彩空间。
1.2 建立肤色样本
建立肤色模型需要使用大量包含不同肤色、不同大小人脸的RGB图像。本文从互联网、人脸库和日常的生活照中选用了100幅肤色各不相同的人脸图像,然后从中裁剪出人脸皮肤区域的一小部分,作为肤色样本。接着将其从RGB色彩空间转换为YCrCb色彩空间。
经过色彩空间转换之后,人脸图像不可避免地会出现噪声。本文采用滑动窗口为3×3的二维中值滤波器来去除椒盐噪声,并在速度和效果上都取得了很好的结果。
1.3 建立肤色模型
滤除噪声后,先用二维高斯分布来描述这种Cb-Cr的色度分布,然后对肤色样本进行训练,以此得到一个分布中心,再根据所观察的像素离该中心的远近来得到一个肤色的相似度。最后利用均值和方差计算得到高斯分布模型,这就是实验中的肤色模型。二维高斯分布的表达式为:
2 人脸检测
2.1 光照预处理
由于受外界光照环境的影响,尤其是光源颜色,采集来的彩色图像经常会发生彩色偏移。本文使用Gray World彩色均衡方法来消除这种彩色偏移。该方法首先通过图像的R,G,B三个分量中各自的平均值avgR,avgG,avgB确定出图像的平均灰度值avgGray,然后调整每个像素的R,G,B值,使得调整后图像的R,G,B三个分量中各自的平均值都趋于平均灰度值avgGray。实验结果表明,消除彩色偏移能有效提高算
法的检测率和准确率。
2.2 类肤色检测
本文算法最为关键的一步便是人体皮肤区域的粗检测。检测方法是计算图像像素与肤色模型的相似度,这个值描述了像素与肤色的相似程度。相似度计算公式为:
通过计算图像中每个像素与肤色模型的相似度,生成一幅类肤色灰度图像,如图1所示。
2.3 阈值分割
由于人体皮肤区域的像素与肤色模型的相似程度较高,计算得到的相似度值就比较大,因此在类肤色灰度图中,皮肤区域显得比其他部分更亮。这样一来,通过选取合适的阈值即可分割出肤色区域。
本文实验选择的阈值以0.1为间隔从0.65逐渐减小到0.05。通过对选择的相邻两个阈值的图像相减,可以找到分割区域数量变化最小的阈值取值点,这个阈值就是最佳阚值。根据这个阈值,就可以将类肤色灰度图转换为二值图。
图2为转换后的二值图。
2.4 区域特征分析
由于阈值分割得到的二值图中包含多个类肤色区域,这就需要先对这些区域进行标记,以便逐个处理。为了不影响对人脸整体形状的检测,采用形态学操作对标记后的肤色区域进行特征分析,以决定该区域是否包含一个人脸。这些特征主要包括孔洞、质心坐标、方向角、面积和高宽比。
由于人脸上包含有眼睛、眉毛、鼻子和一张嘴,因此在分割出来的人脸区域中至少包含一个孔洞,而且人脸的高宽比值通常接近1,这个特征参数就可以排除掉大部分的非人脸区域。实验中的高宽比值限定在0.6~1.2之间,当检测区域的高宽比值落在该区间时,则认为该区域是一个人脸候选区域。
3 模板匹配
模板匹配就是将预先建立的人脸模板与筛选出来的人脸候选区域进行相关性匹配。匹配时,首先根据候选区域的大小、质心坐标和方向角度调整人脸模板的尺寸、方向和位置,然后才进行匹配。预先建立的人脸模板如图3所示。首先用16个不同的人脸灰度图像计算得到一张平均脸,然后从中分割出人脸的主要部分,作为实验中使用的人脸模板。
模板匹配常用的一种测度为模板与原图像对应区域的误差平方和。确定这个值的一种方法便是使用归一化互相关系数(以下简称相关系数)。
两个图像矩阵的相关性匹配通过计算式(3)得到:
经过多次测试发现,当相关系数取值大约为0.6时,两个矩阵匹配较好。如果人脸模板矩阵和人脸候选区域矩阵的相关系数是0.6或者更高,则认为该区域包含一个人脸。测试完所有的肤色区域后,在原图中用矩形框标示检测到的每个人脸。检测结果如图4所示。
4 结语
实验中用包含有60个不同人脸(包括黑人、白人和黄色人种)的20幅图像对算法进行测试,其中相关系数和高宽比值都选择最佳值。测试结果表明,本文算法对实际生活中人脸图像的正确检测率达到了84%,对姿态和表情同样具有较高的鲁棒性,基本上达到了预期的目标。