王 丽, 王 威
(西安航空学院电子工程学院,西安 710077)
人脸识别技术[1]是对图像的灰度值进行范围划定,将背景和人像分割开来。这种方式简单,但容易受到光照或者背景颜色的影响,导致相近的颜色都被划入目标范围内,准确性不高,适用范围较窄[2]。人脸图像分割[3]作为人脸检测和人脸识别最为关键的步骤,分割质量对人脸检测和识别的准确性有重要的影响。人脸肤色检测技术[4],不会受到图像背景、光照和人脸数量的限制,也不会受到人脸与检测设备距离的影响,因此检测效果较好。
随着科学技术的发展,人脸识别技术要求更高的准确性,能够满足不同领域,如机场安检[5]、公安系统信息追踪[6]、车辆识别[7]等的需求。研究人脸分割技术,不断提高人脸分割的准确性和精确性,对拓宽人脸检测技术的应用发展有现实意义。
本文系统阐述了人脸图像分割的相关算法,介绍了RGB、HSV、YCrCb 三种颜色空间的基本原理;分析了从RGB 颜色空间到HSV 颜色空间和YCrCb 颜色空间的空间变换算法,详细介绍了基于HSV 和YCrCb 颜色空间的分割算法,对不同测试图像进行基于颜色空间的分割,对分割效果进行对比分析。
颜色模型是将坐标体系中的灰度和子空间进行合并的统一性描述,坐标体系中的每个颜色点以单个不同的灰度作为表示方式。
RGB 颜色空间[8]以红绿蓝三种颜色为基础,在坐标体系中进行叠加,进而产生较为丰富的颜色,因此RGB 颜色空间是最经典的模型。RGB 颜色模型的工作原理源于颜色三刺激理论,该理论基于以下假设:在人体眼睛中心处,存在对于色彩敏感的三种圆形锥状细胞对,其中一类位于可见光谱中间位置,呈现绿色,其他两对细胞则被辨认为蓝色和红色。
由于只存在三种不同颜色类型的圆形锥状体细胞,只要将这三种颜色进行适当的混合,均可以直接产生白光的视觉效果,但任意两种颜色的组合无法产生第三种颜色。满足该条件后,将这三种颜色称为三原色。RGB 颜色空间直观,但也有很大的局限性。由于R,G,B 这三个分量具有非常高的相关性,如果其中任意一个分量发生变化,则构成的整个颜色都会跟着改变。同时,每个人对于不同颜色的感观是不同的,使得RGB 颜色空间色彩不够均匀,需要运用线性或非线性变换将RGB 颜色空间变换到其他颜色空间。
HSV 模型[9]是基于锥体颜色直观数学属性的六维空间,也被称为六维三角锥体颜色模型。该颜色空间模型中,每种颜色的参数为:色调(Hue),饱和度(Saturation)和明度(Value)。
色调H:H参数表示颜色信息,也就是不同颜色在光谱中所处的位置。该参数使用角度量来表示,其取值范围是0°~360°。
饱和度S:S 参数表示颜色接近光谱色的程度,范围从0 到1。其中光谱色所占的比例越大,颜色接近光谱色的程度就越高,颜色的饱和度也就越高,通常取值在0%~100%。
明亮度V:V 参数表示颜色明亮的程度,通常取值范围为0%(黑)到100%(白)。
YCrCb 颜色空间[10]的设计目的是优化彩色黑白视频信号的无线传送,其技术优势在于每个色度光纤都只占用很小的传输频宽。其中,Y表示亮度,Cr和Cb分别表示色调和饱和度,而“亮度”主要是通过RGB颜色空间输入输出信号的多种组合来进行计算。
由于RGB 颜色空间的均匀性不够好,受背景和光照颜色的影响较大,无法很好地完成对肤色的处理,可以将其转换成YCrCb颜色空间。对于人脸图像,人脸和手臂等肤色区域的CrCb值与其他背景的CrCb值有很大的差别,容易将肤色区域分割出来。根据经验可知,当某个像素点的CrCb值满足:133 ≤Cr≤173,77 ≤Cb≤127时,该点就被认为是肤色点,其他的就为非肤色点。
选定颜色空间后,建立肤色模型[11],肤色模型建立的原理就是使用数学的统计分析方法将区域进行分割,得到肤色检测结果,从而分割出肤色区域部分。常用的肤色模型包括:简单肤色模型、统计直方图模型和高斯模型。
简单肤色模型的基本原理是:将RGB 颜色空间转换为其它颜色空间,转换的目的是区分亮度和色度,再通过选定的阈值进行分割。模型的关键在于阈值的选取,如果肤色和背景的颜色相近,分割效果难以保证。此模型的最大优点是算法简单。
统计直方图模型:利用直方图表示肤色信息分布,当检测样本较多时,直方图能明显地展示出不同的人脸特征分布,使用起来非常便捷。分割效果取决于样本的数量,如果样本的数量过多,导致分割时间较长,适用范围较窄。
高斯模型:采用高斯密度函数的分布来展现人脸肤色特征的分布状况,计算像素的概率值得到皮肤概率图,再根据皮肤的颜色大小来完成对肤色区域的确认。该模型可以单独对某个像素点进行肤色区域的判断,精确性较高,但效率较低。
大多数情况下,图像信息都以RGB 为颜色体系进行保存,在进行肤色检测之前,一般将RGB颜色空间转换为HSV颜色空间。
RGB 颜色空间包含三个向量(R,G和B),使用归一化方法将部分颜色的亮度进行分量消除,得到[r,g,b]空间,从而将三维空间转换成二维空间。归一化处理公式为
HSV 颜色空间通过RGB 变换计算得到,色度H、饱和度S和亮度V的计算公式为
YCrCb 颜色空间中,分量Y是亮度值,Cb是红色至蓝色的光道分量,Cr是蓝色至红色的光道分量,其中亮度Y可以单独作为通道进行传输彩色信号。
RGB 彩色空间与YCrCb 颜色空间具有线性关系,转换关系为
其中,
根据肤色模型的特点,本文选用简单肤色模型,首先对颜色空间进行转换,然后采用阈值法完成人脸图像分割。本文采用的测试图像如图1所示。
图1 仿真实验图像
将RGB 颜色空间变换到HSV 颜色空间,能够将物体的亮度变化信息和色度变化信息清晰地分离出来。H分量表示图像的颜色符号信息,即表示纯色图像的所有颜色深度信息。S分量表示图像的颜色饱和深浅程度系数信息,即描述图像所有颜色的饱和深浅。V分量表示图像所有颜色的明亮度系数信息,即表示该图像所有颜色的明亮度。
采用阈值分割算法,设定基于HSV 颜色空间的分割阈值为
如果计算得到的H、S、V分量满足公式(10),则该像素点属于肤色检测区域。
对测试图像1 进行基于HSV 颜色空间的图像分割,得到的基于HSV的分量检测图像如图2所示,对肤色检测结果进行图像分割,分割结果如图3所示。对测试图像2进行基于HSV的颜色空间的分量检测,结果如图4所示,其肤色检测和分割结果如图5所示。
对比图2 和图3,可以看出肤色和背景颜色接近的情况下,无法将二者区分开。对比图4和图5,可以很明显地发现,当背景颜色单一时,可以看到基于肤色分割的效果清晰明显。
图2 测试图像1的HSV分量检测结果
图3 测试图像1的肤色检测和分割效果图(基于HSV颜色空间)
图4 测试图像2的HSV分量检测结果
图5 测试图像2的肤色检测和分割效果图(基于HSV颜色空间)
将RGB 颜色空间变换到YCrCb 颜色空间,将肤色分割阈值设置为
计算每个像素点的Cr,Cb的值,若满足公式(11),则该像素点所在的区域为肤色区域,否则属于背景区域。
对测试图像1 和测试图像2 进行基于YCrCb颜色空间的肤色检测,再将该二值化图形映射到RGB 颜色空间,得到的肤色检测结果和分割效果如图6和图7所示。
图6 基于YCrCb颜色空间分割效果(测试图像1)
图7 基于YCrCb颜色空间分割效果(测试图像2)
测试图像1的背景比较单一,背景和人物被分割在一起的情况会被弱化。而测试图像2的背景和人脸的差异较大,分割图的分割边缘相比图6会更加清晰。
基于HSV 和YCrCb 两种颜色空间的图像分割效果如图8 和图9 所示。可以发现,基于YCrCb 颜色空间的分割效果优于HSV 颜色空间,在给定不同颜色通道阈值的条件下,背景与肤色差异较大的图像能够得到更加清晰完整的分割结果。
图8 测试图像1在两种颜色空间下的分割效果对比
图9 测试图像2在两种颜色空间下的分割效果对比
本文研究了三种颜色空间的数学模型,包括RGB,HSV 和YCrCb 颜色空间,并阐述了从RGB 颜色空间至HSV 颜色空间,以及至YCrCb颜色空间的变换算法,利用MATLAB 仿真软件完成不同图像颜色空间的变换和人脸图像分割。对比分析了不同颜色空间分割算法的分割效果,发现在简单肤色模型下,背景与肤色差异较大的图像能够得到更加清晰完整的分割结果,且基于YCrCb颜色空间的分割效果好。