APP下载

基于高斯肤色模型与Blob算法的人脸检测

2018-09-13岚,张

咸阳师范学院学报 2018年4期
关键词:肤色高斯人脸

李 岚,张 云

(兰州文理学院 数字媒体学院,甘肃兰州 730000)

人脸识别与虚拟现实技术相结合是目前非常活跃的课题,在出入安全检测、个人信息验证、人机交互、目标跟踪等领域有很好的实用价值[1]。虽然人脸识别的准确性要低于虹膜、指纹的识别,但是由于它的无侵害性和对用户最自然、最直观的方式,使人脸识别成为最容易被接受的生物特征识别方式。人脸识别通常包含两部分内容:一是人脸检测,二是人脸识别。正确的人脸检测就是指对于任意一幅给定的图像,采用一定的策略对其进行搜索,确定是否存在人脸,如果有则返回人脸所在的位置、姿态、大小。

典型的人脸检测方法有模板法、基于示例的学习法、基于器官特征的方法、神经网络法等[2]。由于肤色信息对方向、位置的无关性,因此基于肤色的人脸检测和基于灰度图像的人脸检测[3]相比,可以很好地缩短检测时间,提高检测的实时性和鲁棒性。但是肤色信息也有自身的缺点,如环境光照、肤色种类、遮挡、旋转、胡须等客观因素的影响,也会加大检测的难度。

针对以上出现的问题本文进行了探讨和测试,先将人脸检测的过程划分为三步。第一步:建立颜色空间——对颜色进行光照补偿,对比肤色模型,找出对肤色具有更好的聚类的颜色空间,在一定程度上可以消除日照、光源等客观环境的影响。基于文献[4],在RGB三基色颜色空间对受光不好的图像进行光线补偿,修复色彩偏移问题;通过空间变换,在YCgCr空间上对输入图像进行肤色分割,尽可能减少搜索区域。第二步:建立肤色模型——采用高斯肤色混合模型,将YCgCr肤色空间中的Cg、Cr通道分离,并结合Y分量建立混合高斯肤色模型,将肤色区域从背景图像中分割出来,并利用肤色相似度等知识粗选人脸区域。第三步:人脸分割——利用Blob分析人脸上的眼、嘴几何信息和彩色信息,用来检测候选人脸的特征部位,根据分割结果进行检测和定位人脸,确定人脸的位置,整个过程如图1所示。

图1 人脸检测流程图

YCgCr色彩空间的高斯检测模型,具有和人视觉感知的一致性、对肤色聚类效果好以及亮度和色度相互独立的特点,对光照、旋转、遮挡有很好的鲁棒性,所以本文采用YCgCr颜色空间进行肤色初检测。再通过Blob分析算法,找出连通区域,结合人脸的特征,确定出准确的人脸位置。实验结果表明,该算法能够快速、准确检测人脸,为人脸识别与跟踪做好准备。

1 人脸区域定位

1.1 色彩空间

肤色检测中最常用的色彩空间是三基色RGB色彩空间,在该色彩空间中,颜色被定义为由R、G、B 3种色光按照不同的比例相加混合得到,这3个分量都包含亮度信息,他们之间存在着很大的相关性,不利于肤色的检测和分割。其他肤色空间用来进行人脸检测,有归一化RGB色彩空间和YCbCr、YUV、HSI等色彩空间。YCbCr色彩空间是由YUV空间派生出来的一种,与人类对颜色的感知能力非常接近[5]。

YCbCr空间中的Cb分量反映的是RGB空间中蓝色分量与亮度分量之间的差值,而在人的肤色中蓝色分量所占比重比较小,Cb分量不利于肤色分割。后来De Dios提出了YCgCr空间[5],其中Cg分量表示绿色分量与亮度Y的差,可以很好地分离出肤色特生。文献[6]验证了肤色在YCgCr色彩空间比在YCbCr色彩空间具有更好的聚集性,所以本文采用了YCgCr色彩空间。其中,YCgCr空间与RGB空间的转换公式如式(1)。

1.2 高斯肤色模型

高斯肤色模型是在忽略亮度的情况下,色度分量都趋于一致,利用正态分布来拟合肤色的概率密度分布,近似地呈现二位高斯模型。其核心内容是:在设定的条件下,比如光照条件一定,肤色之间的差异在于概率密度,而与颜色无关,肤色的分布是属于正态分布[7]。在YCgCr空间下,建立高斯肤色模型的具体步骤如下:

Step1收集海量的带肤色的彩色图像,采用相关方法进行光照补偿,然后再进行剪裁,得到肤色图片。

Step2将Step1的肤色图片从RGB色彩空间转换到YCgCr色彩空间,统计每个肤色图片的像素点的Cg、Cr值。通过统计出来的Cg、Cr值,确定出二维高斯模型G=(m,C)中的参数,其中m表示均值,C表示协方差矩阵,具体计算公式如下:

1.3 肤色分割

根据上述建立好的高斯肤色模型,输入待检测图像,再根据式(1)中YCgCr空间与RGB空间的转换,将输入图像从RGB空间转换到YCgCr空间,对Cg和Cr应用Mahalanobis距离,通过考察各像素点的Cg和Cr值距离其均值的远近得到图像每个像素属于肤色的相似度,其相似度计算公式为

计算完成之后,对所求得的每个P(Cg,Cr)值进行归一化处理,使得各像素点的相似度值在[0,1]之间,并且属于肤色区域的亮度值更高。其中,相似度值越大,表示属于肤色的可能性越大,反之越小。

2 人脸区域判定

2.1 Blob算法

在本文中采用Blob分析[8]算法,其思想是模仿人的视觉处理过程,在一块图像区域内,通过分割图像,得到若干互不相交的封闭区域,然后再对这些区域进行处理,区域中的像素在空间上连通并且具有相似的特征,这个连通区域称为Blob。复杂背景下,肤色分割得到的人脸待选区域中,可能会存在很多和人脸肤色相近或相同的其他区域,也有可能裸露的手臂或脖颈被误判为人脸。二值图像Blob分析方法能够计算每个连通成分的形状参数,提供连通区域的数量、位置、形状等,因而可用于剔除非人脸区域。本方法采用的具体判定依据及过程如下:

(1)空洞数(1>h):根据图像分割结果,应用Blob分析眼睛和唇部的颜色同人脸肤色对比度比较大,在进行肤色分割时必然产生人脸内部的空洞,故只有空洞数大于1的区域才可能是人脸区域;

(2)长短轴比(0.8<r<1.6):根据大量的实验,人脸轮廓呈椭圆状,其长短轴比例在一定的范围内,而其他人体肤色区域的长宽比显然比人脸大;

(3)倾斜角(-90 °<θ<90°):在一般情况下,人脸中的中轴线(脸可以对称分为两部分的线)不应该是向下倾斜的。

具体实现中,r和θ采用椭圆拟和方法计算。值得注意的是,为获得准确的拟和参数,需填补待选区域中的空洞。若记像素坐标为(xi,yi),则区域C的最佳拟和椭圆参数重心、倾斜角 θ、短轴a和长轴b如下:

根据θ,可对候选区域进行校正得到接近竖直的人脸区域。

2.2 人脸区域判定

通过肤色高斯模型将人脸与背景区域分割,这时候会产生类肤色区域,结合Blob算法,根据人脸上的特征,最后确定出人脸区域。具体步骤如下:

(1)输入图像进行光照补偿;(2)根据肤色信息,将RGB色彩转换到YCgCr空间;(3)根据颜色空间中Cg、Cr值建立二维肤色高斯模型,求出颜色均值m和方差C;(4)应用Mahalanobis距离公式求出Cg、Cr的相似度值,进行归一化处理,其值在范围[0,1]之间的颜色即为肤色;(5)应用Blob分析,结合人嘴、眼特征确定空洞数,再根据人脸的长宽比例确定出正确人脸。

3 实验结果及分析

本文建立了一个具有光照和复杂背景的彩色人脸库(600×480),其中包含单人脸和多人脸图片,也包含旋转角度较大、姿态和表情变化较大的人脸图片。本文实验硬件环境采用Intel Pentium Dual-coreTM2.8HZ的PC机上进行的实验。将图像形成两个测试集:(1)简单测试集,包括头肩部图像、人脸面积,无背景或者较简单背景,光照有变化,人脸旋转角度任意;(2)复杂测试集,有类肤色复杂背景存在,人脸个数、大小、位置未知,光照有变化,人脸多姿态、旋转角度较大。实验分别用本文方法与文献[4]进行了比较,表1和表2是两种方法对两个测试集的实验结果数据。

测试中分别选取170张人脸图片和90张人脸图片,通过表1和表2的实验结果数据可以看出,对于简单测试集,本文提出的方法检测结果很好;对于复杂测试集,肤色检测时,应用Blob分析方法后,有5个人脸漏检,是因为遮挡严重并旋转幅度太大而漏检,同时误检人脸数极大减少。

表1 测试集(1)单独肤色YCgCr检测方法和本文方法比较

表2 测试集(2)单独肤色YCgCr检测方法和本文方法比较

图2 本文算法单人脸检测结果

图3 单独的YCgCr肤色模型多人脸检测结果

图4本文算法多人脸检测结果

图2 、图3、图4是实验结果的部分实例。图中矩形框指示了检测到的人脸的位置和大小。图2是利用本文提出的方法针对单人脸,有背景的图像进行检测的结果;图3是采用文献3进行的多人脸的简单环境检测结果,图中胡子特别多的2个人脸被漏掉了;图4是本文算法,结合了Blob分析,提高检测的准确率。可以看到,本文提出的方法很好地解决了多角度人脸检测的间题。与单独的肤色检测相比较,本文算法在复杂场景的检测具有更好的鲁棒性。

本文利用Blob分析算法获取目标图像中所有Blob的位置、周长、面积及外接矩形参数。然后再根据Blob的位置及外接矩形等先验知识,将非人脸区域滤除,最终实现目标区域的提取工作。

4 结论

针对复杂背景的彩色图像,本文提出了一种融合肤色与Blob分析的人脸检测方法。该算法首先利用了肤色信息在颜色空间YCgCr中对彩色图像进行分割,然后通过高斯肤色模型计算人脸候选区域,结合Blob分析对旋转角度人脸进行检测与定位。实验结果表明,本文改进的方法有效地解决了多角度旋转人脸的检测问题,能够对不同光照环境、不同遮挡、姿态变化的人脸有较好的检测效果,在肤色检测过程中,有可能形成人脸与背景相似而产生真正人脸丢失的现象,我们下一步的工作是在该工作基础上,解决更加复杂人脸区域准确判定的问题,提高检测的正确率。

猜你喜欢

肤色高斯人脸
有特点的人脸
一起学画人脸
肤色(外一首)
Conversation in a house
人的肤色为什么不同
为什么人有不同的肤色?
数学王子高斯
天才数学家——高斯
三国漫——人脸解锁
从自卑到自信 瑞恩·高斯林