快速人脸检测系统的综合研究
2011-07-12侯智卿李仰军王高
侯智卿,李仰军,王高
(中北大学 仪器科学与动态测试教育部重点实验室 山西省太原市尖草坪区030051)
0 引言
人脸检测是人脸信息处理中的一项关键技术。人脸检测是指使用计算机对任意一幅给定的图像,采用一定的策略对其进行搜索确定其中是否含有人脸,如果有则返回脸的位置、大小和姿态。人脸检测问题的研究主要分为4类方法:基于知识的方法、特征不变量方法、模板匹配方法、基于表象的方法。虽然这些方法已经取得较高精度,但算法都需要复杂的训练,运算量大,在实时性要求严格的场合速度很难满足要求,因此,寻求精度和速度的平衡检测方法是人脸检测系统实现的关键。
实现人脸检测主要包括5个模块:图像的预处理、人脸区域检测、眼睛的检测与定位、人嘴的检测与定位、人脸及主要特征的标定。本文采用Ycbcr肤色模型检测出图像的肤色部分,然后对肤色部分进行膨胀、腐蚀,去除非人脸区域,而后检测与定位人脸的眼睛和嘴,最终定位出人脸区域,提高了人脸检测的速度,实验结果显示该方法获得良好的效果。
1 肤色分割
肤色分割就是在合适的颜色空间中,建立肤色模型,提取肤色信息。通过直接定义肤色区域的方法,实现快速人脸分割。
1.1 颜色空间转换
因为在RGB色彩空间中,三基色(R,G,B)既代表颜色信息,还代表亮度信息。且RGB色彩空间3个变量建立的肤色模型将使相应的人脸检测系统非常复杂,会影响检测的速度和精确度。所以选用YcrCb空间作为肤色分布统计的映射空间,该空间受亮度变化的影响较小,而且是二维独立分布,能较好的限制肤色分布区域。在YcrCb颜色模型中,Cr和Cb分量分别表示红色和蓝色的色度。从相关性较高的RGB格式线性变换到颜色分量互不相关的YcrCb颜色空间,其转化公式如下:
1.2 肤色建模
虽然不同人的皮肤颜色可能差异很大,但他们在色度上的差异小于亮度上的差异,也就是说,不同人的肤色在色度上往往相近,只是在亮度上差异大,不同的肤质有相同的2D Gaussian模型
通过建立肤色模型,将彩色图像转换为二值图像(见图1),用O,1分别表示非皮肤区域与皮肤区域。
图1 肤色建模
2 去除非人脸区域
在得到的二值图像难免会有一些类似于肤色区域或者虽是肤色区域但不是人脸区域的部分,如面部以外的其他裸露在外的人体皮肤,这部分区域会给后面的匹配检测带来很多不必要的工作量,所以我们有比较将其去除,去除时首先要进行肤色区域的膨胀腐蚀,之后再根据人脸区域的特征进行非人脸区域的去除。
2.1 膨胀腐蚀
对分割出来的皮肤区域进行腐蚀或膨胀操作,是为了除去被误判为肤色的孤立点或小块孤立区域和由于人脸局部区域如眼睛、嘴唇等非肤色区域而导致的整个人脸区域非完全填充对肤色分割的影响,如图2所示。
图2 膨胀腐蚀
2.2 去掉非人脸区域
对分割出来的皮肤区域进行腐蚀或膨胀后,然后通过人脸肤色区域的统计特征分析,得到最为可能的人脸区域,如图3所示。
处理步骤可以表示为:
(1)人脸区域存在眼睛嘴巴眉毛等非肤色区域,因此在人脸区域中会存在多个孔。首先检测出有孔区域的尺寸大小求出平均值,得到整幅图像人脸的大小,根据该值剔除尺寸过大或过小的肤色区域。
(2)通过计算肤色区域的方差,可以进一步剔除其中胳膊和手等非人脸区域。人脸区域由于存在眼睛嘴巴眉毛等非肤色区域,其方差比统一的手和胳膊等非人脸区域要大。
(3)对于可能的人脸区域来说,相对于水平方向的旋转角度在45°~135°之间,因此可以判断旋转角度小于45°或大于135°的区域为非人脸区域
(4)对余下的肤色区域做进一步处理,对人脸来说,其长宽之比一般为1左右。首先求出肤色区域的质心及其偏离垂直方向角度A,并将肤色旋转A使其垂直于水平方向,计算此区域的长宽比。
图3 去除非人脸区域
3 面部特征提取
人脸包括很多不同的面部特征,但是,在人脸检测系统中最常用到的是眼睛和嘴,通过对眼睛和嘴的检测与定位,就可以标出可能的人脸区域。
3.1 眼睛与嘴的检测与定位
眼睛的检测与定位主要由眼睛的匹配,去掉非眼睛区域,眼睛的膨胀,获取眼睛中心几部分处理组成。关于眼睛色度匹配,根据先验知识,参考Cr,Cb的值分别143和120,通过设定门限选取门限内的像素点为目标区域。关于眼睛亮度匹配,设定亮度空间为120~160之间。经过双重匹配后的人眼提取图像不可避免的包含其他区域,利用人脸检测定位区域进行去掉非眼睛区域处理。眼睛区域定位条件即标定出双眼中心点的位置,根据提取出眼睛的区域,计算出各区域中心的位置,满足一定条件即为双眼中心,如图4所示。
人嘴的检测与定位主要由嘴的匹配,嘴的区域腐蚀,去除嘴区域离散点,定位最中心及部分组成。同样根据先验知识,参考Cr,Cb的值分别157和118.由嘴的区域中心作为嘴中心,如图5所示。
图4 眼睛的定位
图5 嘴的定位
3.2 人脸主要特征的标定结果
根据人脸的几何特征,很容易发现,正面人脸图像中,人的双眼和嘴能形成一个三角形对应的三顶点。那么根据三角形的这一特征,就可以确定人的双眼和嘴的位置,可能的人脸也就能被确定下来。对前面提取的人脸区域,人眼的中心和嘴巴的中心在原始图上进行标注。将人脸区域用矩形框标出,并将双眼中心和嘴巴中心用三角形连接,如图6所示。
图6 人脸定位结果
4 实验结果
为了检测这种基于肤色建模知识进行人脸检测的方法,我们对50张不同光照条件、不同格式、不同大小、不同来源的单人脸和多人脸图像进行了检测,结果除1张由于肤色变化太大,未能定位出眼睛外,其他检测全部成功,成功率达98%。以上6张图片是针对50张图像中的1张图像(见图7)所做的图像处理的实验结果。
图7 所用实验原图
实验结果可以说明,利用预先设定的肤色建模知识进行人脸区域检测及区域标定的方法是可行的,有效的,同时本文所提出的方法避免了复杂的矩阵运算,可以有效地提高检测速度,从而实现了速度与精度的平衡。
[1]齐永锋,火元莲.一种基于肤色的人脸检测与定位方法[J].计算机应用,2009.29(3):785-788.
[2]李宏伟,陶亮.复杂背景不同光照条件下彩色图像中人脸检测[J].计算机技术与发展,2009,19(2):52-57.
[3]张立刚, 何东健.基于肤色模型和区域特征的人脸检测方法[J].计算机工程,2008,34(19):209-211.
[4]潘翔,王万森,黄远鸣.彩色静态图像的人脸检测研究[J].计算机工程与设计,2009,30(11):2785-2787.
[5]杨宏梅.人脸检测算法的研究与实现[D].兰州:兰州理工大学,2009:7-24.
[6]伍杰华,陈有青.一种基于灰度图像的人脸检测及眼睛定位算法[J].计算机与数字工程,2009,37(1):118-120.
[7]徐峰, 越怀勋.人脸检测方法研究[J].电脑知识与技术,2009,5(9):2438-2439.
[8]俞王新.计算机人脸检测与识别方法的研究[D].上海:上海交通大学,2009:17-22.