李明,平凯,年福忠
LI Ming,PING Kai,NIAN Fuzhong
兰州理工大学计算机与通信学院,兰州730050
College of Computer and Communication,Lanzhou University of Technology,Lanzhou 730050,China
人脸检测技术来自于人脸识别中的定位需求,检测的准确与否直接影响到后续的人脸识别进程。目前,国内外学者提出了很多有效的人脸检测算法[1-3]。其中肤色检测算法较为简单但易受自然界类肤色的影响,误检率比较高,多用于人脸区域的粗检。通常在其粗检得到的区域中再用其他的方法作进一步的验证,以降低误检率。验证的方法可分为两类:一类是根据人脸区域存在孔洞、眼睛、唇色等其他特征来进行验证[4-5],但其不够精确;另一类是利用如神经网络,AdaBoost,模糊集等基于统计的方法进行验证[6-8],此类方法算法较为复杂。本文通过整合人脸的细节色彩信息,在色彩空间建立人脸模板,并利用此模板来进行验证,其算法复杂度相对于基于统计的方法有所降低。考虑到该算法对色彩要求较为严格,因此在预处理中采用了光线补偿的方法来减少光照对图片的影响,进一步提高检测的准确性。
在低光照强度下进行肤色分割时肤色区域漏识现象比较明显,在对图像中的肤色进行提取之前采用文献[9]中的光照补偿法先对图像进行预处理,可以有效减少肤色遗漏现象。其算法步骤是首先将图像从RGB空间转换到灰度级为255的灰度图像空间,然后将灰度图像中的所有像素按亮度从高到低进行排列,取亮度值的前5%像素并将它们对应色彩R、G、B分量值都调整到最大的255,最后把图像中其他像素点的色彩值也按该调整尺度进行变换。图1为光线补偿前后肤色提取效果对比图。
图1 光线补偿前后肤色提取效果对比图
2.2.1 色彩空间选取
色彩空间是一个三维坐标系统,每一种颜色由一个点表示。目前常见的色彩空间有RGB,HIS,YUV以及YCbCr等。其中RGB色彩空间和YCbCr色彩空间的使用比较广泛。在RGB颜色空间中,红,绿,蓝是基本元素,三基色(R,G,B)既代表颜色信息,又代表亮度信息,对光照变化敏感,不适合建立肤色模型。
YCbCr色彩空间是一种具有与人视觉感知同一性的空间。其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量。YCbCr的色彩空间将图像中的色度信息与亮度信息分开,能更好地利用皮肤颜色在色彩空间的聚类性。因此本文采用YCbCr色彩空间来建立肤色模型。YCbCr色彩与RGB色彩的线性关系如下:
YCbCr色彩格式的图像可直接由RGB色彩格式图像通过空间转化得到。
2.2.2 肤色模型建立
常用的肤色模型有区域模型,椭圆模型以及高斯模型。区域模型是一种较简单的肤色模型,便于理解和运用;椭圆模型是在区域模型上进行的一种改进;高斯模型相对区域模型能更好地表示肤色分布,肤色检测率较高,但其算法比较复杂。考虑到本文中要提取的颜色较多,对精度要求不高的特点,为了减轻算法的复杂度,因此选择区域模型来做肤色模型。
区域模型是统计大量肤色样本分布分析出Cb、Cr的集中分布区域Cb∈[a,b],Cr∈[c,d]。由数学判断公式表示人脸的肤色即
式中,P(i,j)表示一张图像上的横坐标为i,纵坐标为j的像素点,a,b为肤色Cb的上限值和下限值,c,d为肤色Cr的上限值和下限值,如果该像素点的Cb和Cr均落在肤色的范围之内,则判定该像素点为肤色,否则就判定其不为肤色。
在选取大量肤色样本进行统计和实验后,得到肤色的Cb集中分布在[77,127]范围内,Cr集中分布在[137,177]范围内。
同理得到唇色中的Cb集中分布在[109,150]范围内,Cr集中分布在[152,180]范围内。眼色中的Cb集中分布在[120,145]范围内,Cr集中分布在[130,150]范围内。经上述模型提取到的肤色,唇色及眼色如图2所示。
图2 各颜色提取效果
2.2.3 肤色分割及人脸候选区域的确定
上面获得的经肤色分割后得到的二值图像由于受到噪声的影响,存在一些孤立的小块,或者因其他因素(如眼睛、嘴巴等)影响存在漏检的小孔区。在进一步检测之前,需要用膨胀、腐蚀等数学形态学算子对其进行操作。从而使输出图像中的待检区边缘平滑,有助于后续的人脸候选区域的选择。经形态学处理前后的效果对比如图3所示。
图3 形态学处理前后效果对比图
经过上述处理之后,仍会存在较多的候选区域,这些候选区域有不同的形状,大小,有些明显地区别于人脸的几何特征,因此可利用几何约束首先排除明显的非人脸的区域。首先在图像中人脸区域具有一定的大小,面积过小的区域则不能判定为人脸,因此可以设定一个像素点个数的阈值,将面积过小的区域滤除;其次标准的正面人脸图像的高宽比近似为1,太长或太宽的也均不是人脸,再设定一个宽高比的阈值,将太长或太宽的区域滤除;最后对剩下的每个区域建立一个外接矩形,该矩形即为可能存在人脸的区域。
采用传统肤色模型进行人脸检测的方法,就是将检测到的肤色区域进行形态学处理和简单的几何约束,满足条件的肤色区域均认定是人脸,因此导致误检率较高。文献[4]中所采用的方法是在肤色粗检的区域里面检测是否有人眼存在,再通过人眼来进行人脸的细定位,从而在一定程度上降低了误检率,检测精度也得到提高。本文提出一种建立彩色人脸模板的思想,其实质是把一幅人脸图像视为一个整体进行考虑,利用五官色彩的分布信息来进行是否为人脸的判断,通过将五官的色彩信息模板化,然后利用此模板在肤色粗检的区域内进行搜索比对,实现起来也较为快速,简单。
确定一幅图片中是否存在人脸,关键是要看其中是否有满足人脸特征的部分,人脸特征中最主要的是肤色和五官特征,而这些特征在一幅彩色图片中的体现均为色彩信息。如何利用这些色彩信息进行是否为人脸的判断是本节研究的主要内容。
一幅人脸图像中,除了占大部分的肤色区域外,在其上面还分布着眼眉、眼睛、鼻子以及嘴巴。人类五官的几何分布具有一致性,而且各部分的颜色在YCbCr空间中具有很好的聚类性,据此本文将人脸五官的几何分布信息与五官的色彩信息相融合,建立一个彩色人脸模板。模板中除了包含肤色信息以外还选择容易提取且包含信息量较大的眼睛和嘴唇来做模板的构成元素。模板的整体框架是一个正方形,边长为两只眼睛外角的距离,正方形的上边紧贴眼眉的上侧。具体的几何模板如图4所示。
图4 模板效果图
在对大量的人脸进行检测统计后发现,落在整个框架内的肤色像素占整个框架内像素的85%左右,落在左眼框的眼色像素比例约占整个框架内眼色像素的30%,落在右眼框的眼色像素比例同样约占整个框架内眼色像素的30%,落在嘴唇框里面的唇色像素占整个框架内唇色像素的40%左右。为了加大模板的冗余度,在进行比对时应适当减少各部分所占的百分比,模板的比对流程如图5所示。
为了提高检测的准确性,在肤色分割出的区域中用模板进行搜索比对时,不同于传统的逐层缩小待检图像的方法,本文采用大小可变的模板,从小到大按比例缩放,最大不能超过待检区域的大小。从肤色分割出的区域的左上端开始比对,检测完后模板向右移动一个距离,当模板的最右端移动超出区域最右端时为止,然后向下移动设定的距离从最左端开始重新搜索,直至整个区域搜索完为止。
将建立好的人脸模板比对和搜索方案嵌入到整个人脸检测过程中,其整体流程如图6所示。
图5 模板比对流程图
图6 人脸检测流程图
本文的测试环境为Pentium4 2.93 GHz处理器,512 MB内存,操作系统为Windows XP,在Matlab 7.0平台上编程实现。实验中的人脸图片主要来源为AR人脸库部分图片,数码相机拍摄以及Internet上下载的各种不同环境、不同复杂背景下的图片。为作比对本文设计了3组实验,分别是单一肤色模型人脸检测算法,文献[4]中的人脸检测算法,再就是采用本文提出的算法,结果对比如表1所示。
由表1可知利用单一的肤色模型检测算法的正检率相对于文献[4]算法和本文算法稍高,然而在三种算法中它的误检率却是最高的,从图7(a)可以很好地看出其原因所在,主要是因为它将所有的肤色区域和自然界类肤色区域都判定为人脸;采用文献[4]的算法对每个肤色区域都进行一个是否存在人眼的判断,以确定此区域是否是人脸,在一定程度上降低了误检率;本文则利用建构的模板来进行比对,验证其中是否存在人脸,结果表明经模板判定后误检率最低且运行速度也较快。
表1 实验结果对比
图7 部分图像检测效果对比
在人脸检测中随着对人脸的判定标准的提高,会造成如表1所示的正检率的下降。其原因可以通过图7(b)进行说明,文中的模板针对的是正面人脸,不能有效检测出侧面人脸,因此会存在漏检的情况。从漏检率,误检率之和这一综合指标来说采用本文算法所得实验结果是三种方法里最优的。
实验中还发现采用本文算法能够有效解决多个人脸或人脸与其他部位之间的肤色粘连问题,从而使检测结果更加精确,从图7(c)可以明显看出,采用本文提出的算法框选出的人脸区域显然要更加准确,从而为后续的人脸识别,表情分析的进程打下了良好的基础。
本文所提出的算法是在肤色粗检的基础上利用文中设计的彩色人脸模板进一步地进行比对判断以降低误检率。彩色人脸模板能够很好地融合人脸五官的几何分布信息和五官的色彩信息,而且有效解决了多个人脸或人脸与其他部位之间的肤色粘连问题,由于搜索比对的过程是通过改变模板的大小进行的,提高了检测的精度。但目前此算法仍存在一些问题,如在对不同姿态的人脸图像以及较为模糊的图像进行检测时单一的模板不能够很好地满足需求。建立更多姿态的人脸模板或适应性更强的彩色人脸模板将是下一步研究的主要内容。
[1] 梁路宏,艾海舟,徐光佑,等.人脸检测研究综述[J].计算机学报,2002,25(5):449-458.
[2] Viola,Jones.Robust real-time face detection[J].International Journal of Computer Vision,2004,57(2):137-154.
[3] Sun Hungming.Skin detection for single images using dynamic skin color modeling[J].Pattern Recognition,2010,43(4):1413-1420.
[4] 俞王新,王志中,庄珺.一种基于肤色模型和眼睛定位的人脸检测方法[J].计算机工程与应用,2008,44(26):21-22.
[5] 齐永锋,火元莲.一种基于肤色的人脸检测与定位方法[J].计算机应用,2009,29(3):785-788.
[6] 齐永锋,张家树,火元莲.一种基于肤色与改进的LBP的人脸检测方法[J].光电子·激光,2009,20(6):816-821.
[7] 曲仕茹,熊波.基于Gabor滤波和神经网络的人脸检测方法研究[J].西北工业大学学报,2011,29(5):690-694.
[8] Li Gang,Xu Yinping,Wang Jiaying.An improved adaBoost face detection algorithm based on optimizing skin color model[C]//Natural Computation(ICNC),2010:2013-2015.
[9] Sun Yanfeng,Liang Yongtao,Su Shiqian,et al.Face detection based on skin-color model and gravity-center template[J].Journal of Beijing University of Technology,2006,32(5):467-472.