黄福珍,佘星星
(上海电力学院电力与自动化工程学院,上海 200090)
人脸轮廓是一种重要的脸部特征信息,它在人脸检测、人脸识别、人脸跟踪,以及基于模型的编码等方面有着广泛的应用[1,2].传统的人脸轮廓提取方法主要是利用边缘检测算子进行边缘的提取,然后根据人脸轮廓特点去除杂散的冗余边缘并进行边缘的修补.其缺点是精确度不高,计算量大,并且对噪音比较敏感.活动轮廓模型是近年来提出的一种新的人脸轮廓检测方法[3],该方法的检测效果较好,但对初始轮廓很敏感,且计算量大.主动形状模型和主动外观模型也可用于人脸轮廓提取[4,5],但这两种方法都需要大量的样本训练,一般都只能检测相对于训练图像而言有较小视点变化的人脸轮廓.
肤色在人脸检测中的作用至关重要[6,7],它不依赖于面部的细节特征,并且不会随着人脸的旋转,以及面部表情、面部被部分遮挡(如头发、眼镜)等情况变化而变化,而是具有相对的稳定性.多数情况下,肤色都会和背景物体的颜色有较大的区别,因此肤色特征是人脸检测中最有效的特征之一.同时,基于肤色的人脸检测有着原理简单、实现速度快的特点,故适合实时使用.本文提出一种基于肤色和人脸形状约束的正面人脸轮廓提取方法.实验结果表明,该方法能够较好地将颈部从人脸区域中去除,并最终得到一个满意的封闭人脸轮廓,而且运算速度较快.
为了将人脸区域从非人脸区域分割开来,需要使用适合不同肤色和不同光照条件的可靠的肤色模型.应用于肤色检测的颜色空间有许多,如RGB,YCbCr,YUV,YIQ,HSI等[6].大量实验证明,YCbCr颜色空间是人脸检测的最好选择,因为其受亮度变化的影响小,能较好地限制肤色分布区域,而且其肤色聚类特性比较好[8].YCbCr空间中的Cb分量是蓝色分量B与亮度Y的差,而在肤色中B分量所占比重较小.De DIOS[9]提出了YCgCr空间,其中Cg是绿色分量G与亮度Y的差,能更有效地反映肤色的特征.由于肤色在YCgCr颜色空间比在YCbCr颜色空间具有更好的聚类性,所以本文采用YCgCr空间.
RGB空间到YCgCr空间的转换格式为[10]:
肤色模型是在一定颜色空间描述颜色分布规律的数学模型,是肤色检测的前提.一般情况下,常用的肤色检测模型都是基于统计特征给出一个色度值范围.本文将采样得到的肤色样本中的每个肤色像素点的R,G,B值转换到YCgCr色彩空间,得到每个肤色像素点的色度值(Cg,Cr),并在CgCr空间中对肤色像素进行统计分析,最终得到肤色的阈值范围为:Cg∈[85,135],Cr∈[-Cg+260,-Cg+280].
得到肤色阈值范围后,对图像中的每一个像素点,先进行颜色空间的转换,再由上述阈值判断是否属于肤色点.肤色检测结果如图1所示.
图1 肤色检测结果
由肤色检测结果可以看出,图像中检测到的候选人脸区域中存在许多非肤色点和块,这主要是由肤色点误判,以及人脸中诸如眼睛、嘴唇等位置的颜色和肤色范围相差迥异造成的.本文采用一系列形态学处理和连通区域标记的方法来剔除那些明显不是人脸的区域,该方法可以有效地去除那些明显不是人脸的区域.图2为对肤色提取区域进行多次膨胀和腐蚀运算处理后的结果.从图2可以看到,经形态学处理后背景中的一些类肤色孤立点已被消除,人物的鼻子区域被去除,嘴部和脖子区域也变得更加像素化,这为后续处理打下了基础.
然后,通过连通区域标记法对图像中的连通区域进行标记,根据连通区域内的像素数量,分析并去除连通区域中明显不是人脸的区域.再将计算出的连通区域像素数量从大到小进行排列,取最大值进行保留,其余部分变为与背景同色.经过连通区域标记筛选后的人脸区域如图3所示.从图3可以看出,图像中人脸区域杂点及背景中的误检测全部被成功去除,只剩下面部及颈部区域.
图2 数学形态学处理结果
图3 连通区域标记结果
人脸轮廓初步提取的算法十分简单,即图像中的每个像素点,若为黑色且其8邻域内所有像素点均为黑色,则将该点置为白色;其余点不做改变.初步提取后的人脸轮廓如图4所示.
上述处理后得到的人脸轮廓并不是真正意义上的“人脸”轮廓,除了人脸区域外,还包括一部分颈部轮廓.为了能得到一个较完美的人脸轮廓,有必要去除颈部轮廓并重新构造一个下巴轮廓.至今对人脸轮廓提取中关于颈部轮廓处理和下巴轮廓重建的算法有很多,但其中大多数算法要么运算时间长,要么实现效果欠佳,真正实现效果较好的算法很少.本文根据人脸形态特征进行颈部轮廓的去除和下巴轮廓的构建.
颈部区域去除方法十分简单,即根据人脸的长宽比例来去除颈部轮廓.我们对前期搜集来的大量人脸图像中的近百幅人脸区域进行了长宽比例统计,最终得出人脸长宽近似比例为21∶17,即R≈1.23.由于该数据只是起到了一个估算颈部起始位置的作用,故本文对其要求并不严格.但考虑到有些图像中由于存在着装风格的原因而导致不存在颈部区域的情况,因此判断图像是否存在颈部区域还是十分必要的.具体判断方法如下.
(1)从矩阵含有1的第一行开始向下继续扫描H-1行.
(2)判断该行元素中是否含有1.如果有,则表明该行仍位于人脸区域内;如果不含1,则表明扫描已经越出人脸区域,可以确定此图像中并不含有颈部区域,进而跳过颈部区域的去除步骤,直接给出结果.
本文仅对存在颈部区域的情况进行颈部去除算法介绍.首先,通过区域宽度计算出人脸宽度W,则人脸长度H=R×W,由于所得到的人脸的长度H值是从下巴到额头之间的距离,那么如果从下巴最低点开始去除轮廓,则必然还会留有一部分颈部轮廓.通过分析,我们将H的值适当缩小到原有长度的80%,即保留初始人脸轮廓长度的80%H.颈部轮廓去除效果如图5所示.
图4 初步人脸轮廓提取结果
图5 颈部轮廓去除效果
构造人脸下巴轮廓的方法很多,本文所使用的是基于轮廓位置信息的数据拟合方法.由于人脸轮廓近似于一个椭圆形,因此可以将图5中断开的两点用平滑曲线连接起来.首先由人脸轮廓区域得到与该区域近似的椭圆长短轴以及中心点等参数,然后由这些参数拟合椭圆,进而构建出人脸下巴轮廓.由于提取出的人脸轮廓是单像素线条,不易观察,故需要对轮廓加粗处理.最简单的加粗方法就是通过膨胀算法.图6中白色曲线即为经过加粗的人脸轮廓曲线.从图6可以看出,人脸下巴轮廓可以较好地拟合出来.
图6 人脸轮廓最终提取结果
本实验中的图片均来源于美国Caltech Faces标准人脸库,该数据库中共有450幅896×592的正面人脸图像,由27个不同的人在不同的光照、表情、背景下得到.本文对其中的多数图像进行检测并得到较好的轮廓提取曲线,部分成功提取到的人脸轮廓结果如图7所示.
由图7可以看出,对于正面人脸,本文所用算法能够正确检测不同光照条件下,不同肤色、大小的人脸,基本上去除了颈部区域,并且能够提取到较为完整的人脸轮廓.但实验中也存在少量误检现象,通过分析误检的实验结果.认为造成误检的主要原因包括以下3个方面.
(1)肤色模型不够精确 不同种族不同地域的人脸肤色存在较大差异,尽管YCgCr颜色空间中肤色聚类性较好,但不同颜色对光的反射和吸收比存在差异,这必然会导致肤色误检的发生.
(2)去除颈部区域算法不够精准 本文所提出的颈部区域去除方法是建立在人体形态特征上的,但每个人的面部长宽比例不可能都符合本文所提出的比例.因此,对于面部偏胖或者偏瘦的人像,在去除颈部区域上可能会发生去除量失衡的情况.
(3)添加下巴轮廓算法需要改善 多数情况下,下巴轮廓需要程序自行拟合构造,故轮廓与真实人脸吻合度取决于前期提取出的人脸轮廓几何特征.但是由于存在肤色误检以及系统误差等因素,通过椭圆拟合得到的数据可能并不十分符合真实情况,故会对下巴轮廓拟合构建产生一定的影响.
图7 部分正确的人脸轮廓实验结果
本文提出的一种基于肤色和人脸形状约束的正面人脸轮廓提取算法,较好地克服了下巴轮廓难以从颈部提取的问题,并且能够从背景较复杂的图像中提取出完整、封闭的人脸轮廓.本算法简单,速度较快,易于实现,适于实时使用.今后的工作是提高肤色检测的正确率和继续尝试修改面部细节的验证规则,以进一步提高人脸轮廓提取的正确率,同时考虑有较大偏转的人脸轮廓的提取问题.
[1]胡元奎,汪增福.快速的人脸轮廓检测及姿态估计算法[J].模式识别与人工智能,2006,19(5):652-657.
[2]吴绿芳,雷蕴奇,吴众山.基于肤色模型和梯度算子的正面人脸轮廓提取[J].电脑与信息技术,2008,16(1):1-4.
[3]YOKOYAMA T,YAGI Y,YACHIDA M.Active contour model for extracting human faces[C]//Proceedings of the 14th International Conference on Pattern Recognition,1998:673-676.
[4]SUN Da-rui,ZHOU Zhao-jie,WU Le-nan.Face boundary extraction by statistical constraint active contour model[C]//Proceedings of the IEEE International Conference on Neural Networks and Signal Processing,2003:371-373.
[5]LI Yong,ZHANG Chang-shui,LV Xiao-guang,et al.Face contourextraction with active shape modelsembedded knowledge[C]//Proceedings of 5th International Conference on Signal Processing,2000:1347-1350.
[6]KAKUMANU P,MAKROGIANNIS S,BOURBAKIS N.A survey of skin-color modeling and detection methods[J].Pattern Recognition,2007,40(3):1 106-1 122.
[7]徐战武,朱淼良.基于颜色的皮肤检测综述[J].中国图象图形学报,2007,12(3):377-388.
[8]徐战武,朱淼良.肤色检测最优空间[J].计算机辅助设计与图形学学报,2006,18(9):1 350-1 356.
[9]De DIOS J,GARCIA N.Face detection based on a new color space YCgCr[C]//Proceedings of International Conference on Image Processing,2003:909-912.
[10]张争珍,石跃祥.YCgCr颜色空间的肤色聚类人脸检测法[J]. 计算机工程与应用,2009,45(22):163-165.