复杂背景下基于时间差分的人脸检测算法Face Detection Based on Time Difference in Complex Background姚静梅雪林锦国Yao Jing Mei Xue Lin Jin-guo(南京工业大学,自动化学院,江苏南京 210009)摘要:本文主要结合序列图像的运动信息和肤色信息进行复杂背景下的人脸检测。
首先利用连续三帧间的运动信息进行粗检测,采用自适应阈值法从差分图像中提取出运动区域,再对差分图像进行相与操作,限制搜索范围;然后利用人脸肤色信息,在YCbCr色彩空间内检测出肤色区域;最后利用人脸的几何特征信息对肤色区域作进一步验证,得到精确人脸。
该方法综合了帧间和帧内的分析结果,实现简单、高效。
实验证明,在复杂背景下对光照和其他噪声有较好的鲁棒性。
关键词:人脸检测;时间差分;运动信息;肤色特征中文分类号:TP391.41 文献标识码:AAbstract: A method of combining motion and skin-color information of successive images to detect faces in complex background is presented. First, the motion information between three continuous frames is used for coarse detection to obtain the difference images, from which the motion areas can be detected by self-adaptive threshold method, and then take and operation to limit the searching range. Second, the skin-color areas are detected in YCbCr color-space. Finally, g eometry feature information is used to further validate the skin-color areas, which can obtain the fine face. This method combines the inter-frame and intra-frame processing, which is simple and effective to realize, and is proved to be robust to illumination and other noises in complex background. Keywords:Face Detection;Time Difference;Motion Information;Skin-color Feature1、引言人脸检测(Face Detection)是一切人脸处理系统的基础。
近年来,由于计算机技术的迅猛发展,数字图像处理技术的日益完善,人脸检测作为人脸信息处理中的一项关键技术,已成为图像处理、模式识别与计算机视觉领域内的热点课题[1]。
目前人脸检测方法多数是在一般环境下的单幅图像中检测人脸。
如基于对称性、器官分布、纹理等的人脸检测,以及神经网络的学习、特征脸模式等方法。
这些方法或者计算复杂度太高,或者鲁棒性较差,适应面很窄。
视频序列图像的人脸检测算法要比单幅静态图像的人脸检测算法复杂得多,需要考虑更多噪声因素的影响,如随机噪声、室内亮度变化、室外背景纹理的慢变化等。
本文使用了一种基于时间差分的人脸检测方法,从粗到细实现人脸的精确检测。
首先利用连续三帧图像间的运动信息进行粗检测,在两两差分得到差分图像后,利用形态学方法分别对差分图像进行预处理,去除光线等因素引起的干扰,并采用自适应阈值法从差分图像中提取出运动区域,再对两幅差分图像相与,去除非本帧图像的目标区域,即只提取当前帧图像的运动目标区域,进一步限制搜索范围;然后利用肤色和形状信息对人脸区域作进一步检测和验证[2], 得到精确人脸。
该方法综合了帧间和帧内的分析结果,实验证明,该方法实现简单、高效,并且在复杂背景环境下仍具有对光照、噪声等的鲁棒性。
2、算法的总体框架该算法按照从粗到细的检测模式,主要采用图像的运动特征信息与人脸的肤色、形状特征信息相结合的检测法,通过运动检测缩小搜索范围,并将肤色、形状特征信息作为验证手段。
算法流程如图1所示,由3大步骤组成[3]。
(1)帧间的时间差分处理在视频序列图像中,人脸是一个运动区域,所以利用运动信息可以去除图像中静止背景区域的干扰。
本文在三帧序列图像之间采用基于像素的两两差分,使用自适应阈值化来提取各自差分图像中的运动区域,然后对两幅差分图像二值化后相与来缩小目标范围。
但是由于背景的复杂性和光线、图像的噪声等干扰因素引起的波纹和小块仍没能去除,因此加上形态学处理方法。
该模块缩小了后续人脸检测和定位部分的搜索范围,从而减少了运算量。
该方法实现简单,计算速度快,并且在静止的复杂背景下有很好的鲁棒性。
(2) 基于肤色的人脸检测在提取的运动目标中,找出肤色部分,进行肤色区域分割,并对分割的结果进行区域的去噪、形态学处理,获得人脸候选区域。
该模块可以获得大致的人脸区域,但是也可能包含了非人脸区域,比如运动着的手臂等。
(3) 人脸验证和最终定位为了找到正确的人脸区域,对第(2)步中得到的所有候选人脸区域,通过人脸的几何特性分析,进一步进行验证,去掉非人脸假区域,准确定位人脸。
3、具体算法描述3.1 帧间的时间差分处理本文讨论的视频序列其背景基本不变,因此,可以采用帧间差分算法来提取视频图像中的运动区域,该算法简单,计算速度快,比较适合于实时处理。
将图像中的运动目标从背景中分割出来,就可以缩小人脸的候选区域。
时间差分处理的主要思想是在两个相邻帧间,采用基于像素的时间差分并且阈值化来提取图像中的运动区域。
采用基于两帧差分的方法时,运动物体的重叠部分往往检测不出,造成运动物体不完整,或者检测出物体在两帧中的信息,即将目标扩大了。
本文采用三幅图像两两差分,为了提高运动检测的鲁棒性,对差分图像使用了一种自适应的阈值选择方法。
首先对视频序列图像中的连续三帧进行灰度化,然后采用三幅图像两两差分,见式3-1、3-2、3-3。
其中f (x,y)表示图像的灰度值,从RGB 空间灰度化的公式见3-1式。
1f (x,y,t)∆、2f (x,y,t)∆分别为帧2与帧1、帧3经过差分运算后的变化值。
则帧差f (x,y,t)∆中包含了运动引起的变化和噪声引起的变化。
121223f=0.299r+0.587g+0.114b (3-1)f (x,y,t)abs(f (x,y,t )f (x,y,t )) (3-2)f (x,y,t)abs(f (x,y,t )f (x,y,t )) (3-3)∆=−∆=−在阈值的选定上,本文采用自适应阈值法。
一般情况下,运动区域内各像素的变化幅度要大于整个图像变化幅度的平均值,另外,考虑到噪声等因素的影响,选择整个图像变化幅度的均方差作为运动区域像素变化幅度的附加值,见式3-4、3-5、3-6。
N 1M 1x 0y 01aver f (x,y,t); (3-4)N M (3-5)t=aver (3-6)σσ−−===∆×=+∑∑ 式中N 和M 分别为图像的宽度和高度,aver,,t σ分别表示帧差图像的均值、均方差和自适应阈值。
如果f (x,y,t)∆大于t ,则该点为运动点,输出图像的灰度值等于后帧图像的值;否则为不动点,附值为0。
实验结果表明采用式(3-6)作为自适应阈值进行运动检测的效果要比固定阈值法进行判别的结果好。
固定阈值法的适应性不强,在光照等因素影响下,阈值的选择波动性大,不具有通用性,往往需要重新设定阈值;而该自适应阈值法,它不仅适应性好,而且抗噪性强。
通过自适应阈值获得的两幅差值图像二值化后,经过对应像素与运算,就可以更正确地提取出运动区域。
一般情况下,该差分图像已经大大减小了下一步的搜索范围,即可以直接进入下一步操作。
但是,在实际的图1 算法总体框架工作条件下,由于背景的复杂性和光线、图像的噪声等自然条件干扰因素的影响,使得帧间的时间差分算法不能很好的提取出真正所关心的目标物体,即产生的差分图像的范围非常广,这对人脸检测带来了严重的干扰和负面影响。
因此,本文在阈值化之前先对差分图像进行预处理,使用数学形态学方法,利用腐蚀和膨胀运算过滤细小边界和噪声点,并恢复有用信息,将产生的运动区域控制在目标范围内,减少下一步的搜索范围。
图2是利用帧差信息进行运动检测结果。
从图2(d)和图2(e)的比较可以看出,由于户外风力和光线等干扰因素的影响而产生的尖点和细线,已大部分被过滤,大大缩小了下一步的检索范围,并且可以使试验不仅仅局限在实验室内部,还可以在户外复杂环境下进行。
从图2(e)可以看出,两帧图像差分获得的是目标在两帧中的信息,即将目标扩大了。
因此引入三帧差分,利用两两差分后相与来缩小目标范围。
图2(f)即为三帧差分的结果,实验证明,利用上述形态学预处理、自适应阈值法、三帧图像的时间差分,可以有效地去除环境因素干扰和背景中的类肤色区域,提取出所要的运动目标,大大缩小了下一步肤色检测的搜索范围。
(a ) (b ) (c ) (d ) (e ) (f )图2(a)第一帧图像;(b)第二帧图像;(c)第三帧图像;(d)未经形态学处理的差分图像;(e)形态学处理后的差分图像;(f)两差分图像相与的结果3.2 基于肤色的人脸检测在不同光照条件下,肤色在色度空间都具有很好的聚类特性。
基于肤色的检测方法具有运算速度快、容易实现等特点。
但是,对于复杂背景的图像来说,肤色检测容易受到类似肤色的背景区域干扰。
本文结合基于差分图像的运动区域提取方法和基于肤色的人脸检测算法,既可以排除背景的干扰,又可以保证人脸检测的实时性。
使用肤色信息进行人脸检测的关键问题是色彩空间的选取和肤色辨别方法。
本文采用YCbCr 色彩空间,只利用色度和饱和度信息进行判断。
该空间具有与人类视觉感知过程相类似的构成原理,并且将亮度信息和色彩信息相分离,受亮度变化的影响小,同时计算过程和空间坐标表示形式比较简单,被广泛地应用在各个领域。
RGB 空间到YCbCr 色彩空间的转换矩阵见式3-7。
b r Y 0.2990 0.5870 0.1140R 0C -0.1687 -0.3313 0.5000G +128 (3-7)0.5000 -0.4187 -0.0813B 128C ⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎣⎦ 通过大量实验,发现人脸肤色在YCbCr 空间内的Cb 和Cr 值分布非常集中,在特定的范围之内,通过选取合适的阈值,可以把彩色差值图像转换为二值差值图像,白色代表肤色点,黑色代表非肤色点。