根据计算机色彩理论,对一种颜色而言,在计算机中有不同的表达方式,这样就形成了各种不同的色彩空间。当然各种色彩之间只不过是颜色在计算机内不同的表达形式而已,每一种色彩空间也都有其各自的产生背景、应用领域等。主要的色彩空间有以下几种。
1.RGB格式(红、绿、蓝三基色模型)
由于彩色图像是多光谱图像的一种特殊情况,对应于人类视觉的三基色即红、绿、蓝三个波段,是对人眼的光谱量化性质的近似。因此利用R、Q、B三基色这三个分量来表征颜色是很自然的一种格式。而且多数的图像采集设备都是以电荷耦合器件(CCD)为核心,直接感知色彩的R、G、B三个分量,这也使得三基色模型成为图像成像、显示、打印等设备的基础,具有十分重要的作用。
2.HSI格式(色度、饱和度、亮度模型)
这是Munseu提出的色彩系统模型,经常为艺术家所使用。这种格式反映了人类观察色彩的方式,同时也有利于图像处理。在对色彩信息的利用中,这种格式的优点在于它将亮度(I)与反映色彩本质特性的两个参数即色度(H)和饱和度(S)分开。我们提取一类物体(比如现在研究的人脸)在色彩方面的特性时,经常需要了解其在某一色彩空间的聚类特性,而这一聚类特性往往体现在色彩的本质特性上,而又经常受到光照明暗等条件的干扰影响。光照明暗给物体颜色带来的直接影响就是亮度分量(I),所以若能将亮度分量从色彩中提取出去,而只用反映色彩本质特性的色度、饱和度来进行聚类分析,会获得比较好的效果。这也正是HSI格式在彩色图像处理和计算机视觉的研究中经常被使用的原因。
3.YCbCr(YUV)格式
这种色彩空间是以达到演播室质量标准为目标的CCIR601编码方案中采用的彩色表示模型,被广泛地应用在电视的色彩显示等领域中。它同样具有HSI格式中将亮度分量分离的优点,但由于它可以从RGB格式线性变化得到,所以直接应用于物体色彩聚类分析的情况不多,相比之下,建立在其基础上的变换模型的应用更为普遍。
以上介绍了在计算机视觉领域,特别是肤色信息的提取中,比较常用的几种色彩格式,目前这几种色彩空间在建立物体色彩模型中都有应用。例如:RGB色彩空间在利用查找表建立的肤色模型中很常见;也有作者在提取唇色在色彩空间中的聚类特性时,直接利用了YCb Cr(YUV)色彩空间;A.K.Jain等人利用变形的YCbCr色彩空间,进行了彩色图像中的人脸检测问题的研究。
下面来说一下肤色模型的建立:
肤色模型是人脸非常重要的一个特性。研究表明:尽管不同种族、不同年龄、不同性别的人的肤色看上去不同,但这种不同主要集中在亮度上,在去除亮度的色度空间里,不同肤色的分布具有聚类性。为了利用肤色在色度空间的聚类性,本书在多种色彩空间中选取YCbCr色彩空间进行肤色提取。
图5-1 肤色在YCbCr色度空间中的高斯模型分布
经过对大量肤色像素的分析看出,肤色聚类在YCbCr色度空间的一个很小的范围内。归一化色度分布图,可以看出不同的肤色具有相同的二维高斯模型G=(m,C),如图5-1所示。其中,m为均值,m=E(x);x=(Cb,Cr)T,C为协方差矩阵,C=E[(x-m)(x-m)T]。
通过这个肤色模型分布可得到待检测彩色图像中任意一个像素点属于皮肤的概率。对于某像素点s,从RGB空间转换到YCbCr色彩空间得到色度值(Cb,Cr),则该像素的肤色概率密度可由下式计算得到:
p(Cb,Cr)=exp[-0.5(x-m)TC-1(x-m)] (5-1)
式中,x=(Cb,Cr)T。
实验证明,此高斯模型能较好地分出肤色和非肤色像素。
阈值的选取很重要,过低会使肤色的数量增加,过高则会使过多肤色被误认为背景,两者都会影响后续检测的效果。因此,能够依据待检测图像本身自动优选阈值,就显得非常重要和必要。经过分析比较,本书最终选用由Ostu提出的最大类间方差阈值分割法,它是在最小二乘法原理基础上推导出来的,其基本思路是将直方图在某一阈值处理分割成两组,当分成两组的方差为最大时,决定阈值。
设一幅图像的灰度值为1-m级,灰度值为i的像素数为ni,此时得到总像素数N和各值的概率pi为
然后用k将其分成两组C0={1-k}和C1={k+1,…,m},由C0和C1产生的概率ω0、ω1为
C0组和C1组的平均值μ0和μ1为(www.xing528.com)
式中,μ是整体图像的平均值,是阈值为k的平均值,。
因此,全部采样的灰度平均值为μ=ω0μ0+ω1μ1,则类间方差由下式求出:
从1-m间改变k,求max(σ2(k)),此时k值便是所求阈值。
肤色模型建立的步骤:对于一幅被检测的彩色图像image(见图5-2a),首先将它由RGB空间转换到YCbCr色彩空间,然后根据(Cb,Cr)值,通过式(5-1)找到该值所对应的肤色似然度,并且得到整幅图像的最大肤色似然度。每一点像素的肤色似然度除以最大肤色似然度所得到的值,作为该像素点的灰度值,从而得到肤色似然图像,其中每一个像素点的灰度值表征了这个像素点属于皮肤的概率。设置一定的阈值变化范围[0.2,0.7],按照0.05的步长逐步增加,根据式(5-6)计算在不同阈值下肤色似然图像y的σ2(k)值,当σ2(k)最大时,确定阈值T。根据此阈值将灰度图像转化为二值图像,其中0和1分别表示非肤色点和肤色点。
图5-2 肤色分割图像
a)原始图像 b)肤色似然图像 c)二值图像
进行肤色分割后,首先采用中值滤波来去除人脸图像中的噪声。由肤色分割得到一系列连通的肤色区域,但其中也包含了裸露在外的身体皮肤和与肤色相近的背景,接着就要根据一些先验知识对分割出来的区域进行预处理。
面积占有率是指肤色区域的像素占整幅图像总像素数的比例。通常在一幅图像中,人脸区域范围为13×13像素到占整幅图像的3/4,太大或太小的人脸均不易清晰提取。在本书中,当面积占有率达于3/4或小于1/500时,此部分区域被认为是非人脸区域。
由于人脸区域包含眼睛、眉毛、嘴唇等非肤色区域,因此人脸区域应包含1个到多个孔。欧拉数表示在封闭区间中的孔洞数量,定义为E=C-H。其中,E为连通区域的欧拉数;C为连通区域数目,这里为1;H为连通区域内孔洞数。对于每个连通区域,若其欧拉数大于0,则该区域不可能是人脸区域;若太小,也不可能是人脸区域。本书中,若计算出的欧拉数小于-10,则认为该区域不是人脸区域。
首先求出每一块肤色区域中肤色像素的坐标均值和协方差矩阵:
式中,N是肤色区域的肤色像素的总数;Xi是该区域的像素点在二值图像中的坐标向量。
研究表明,被测肤色区域内的像素点呈椭圆分布,该椭圆的中心就是均值代表的坐标,主轴方向与协方差矩阵的特征向量方向一致,椭圆轴长由协方差矩阵的特征值决定。检测算法如下:
1)根据人脸长宽比检测肤色区域。通常情况下,人脸的长宽之比一般为1左右,但由于颈部常被作为肤色区域提取出来连接着脸部,因此肤色区域的长宽会比较大。如果椭圆轴长之比不在[0.33,3]范围内,则被认为是非人脸区域而除去。
2)根据椭圆面积准则检测肤色区域。椭圆面积准则表达式为
式中,l1和l2为椭圆的轴长;N为肤色区域像素点数。
这样,根据椭圆面积准则就可以算出每个肤色区域属于人脸区域的概率。如果被测区域的Se的值超过0.7(阈值),则该区域包含人脸。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。