基于肤色模型的人脸检测研究

网友投稿 383 2024-03-04


  本文对基于肤色分割结合模板匹配的人脸检测方法进行了改进,提出基于“光照预处理+肤色模型+模板匹配”的人脸检测解决思路,即在光照预处理的前提下,利用肤色特征建立肤色模型;根据肤色模型进行肤色检测和阈值分割;在对分割区域特征分析的基础上,将筛选出的人脸候选区域与人脸模板相匹配;最后将匹配较好的区域在原图像中用矩形框标示出来。

基于肤色模型的人脸检测研究

  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为转换后的二值图。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:检测模拟电路时的一些方法技巧
下一篇:基于ZigBee协议的红外入侵检测系统的设计
相关文章

 发表评论

暂时没有评论,来抢沙发吧~