基于人脸检测和多线索融合的实时人脸跟踪系统*

2013-12-30 09:48
电子器件 2013年3期
关键词:光流肤色人脸

杨 彦

(盐城纺织职业技术学院,江苏盐城650500)

人的脸部为外界提供了大量的视觉信息,计算机的多种感知通道,如人脸检测、表情识别等,都建立在人脸处理技术的基础上。人脸检测与跟踪技术[1]则是人脸信息处理中的关键环节。人脸检测[2](Face Detection)是指在输入图像中自动确定是否存在人脸,如果存在,则同时给出人脸在图像中的位置、人脸区域大小等参数信息。人脸跟踪[3](Face Tracking)则是指在图像序列中确定人脸信息随时间变化的情况,给出各帧之间人脸的对应关系,并在后续图像帧中跟踪出已检测到人脸的运动轨迹。

人脸检测与跟踪技术已经取得了十分迅速的发展,一些研究成果已经转化为商用软件。但由于人脸属于复杂的非刚体,对人脸的检测和跟踪涉到许多领域,如模式识别、图像处理、生理学、计算机视觉等方面的诸多知识,如何获取快速有效的人脸检测与跟踪效果仍然是一个极富挑战性的课题。本文对较为经典的人脸检测与跟踪算法进行了深入的研究,并结合各算法之间性能上的互补性,对各种线索进行有效的融合,搭建了一个实时人脸检测与跟踪系统,在实验室环境下进行了测试和性能评价。

1 基于Adaboost算法的人脸检测

1.1 Viola-Jones快速人脸检测算法

Viola和Jones在2001年首次提出的基于Ada-Boost算法的人脸检测方法[4],首次实现了实时人脸检测,是目前为止最好的检测方法。该方法主要包含Haar-like特征、积分图、AdaBoost迭代算法和级联分类器等内容,方法框架可以分成为以下3大部分:

(1)选用Haar-like特征来表示人脸,使用“积分图”来快速计算分类器训练所用的Haar-like特征;

(2)利用AdaBoost算法挑选出少量最能代表人脸的特征,形成一系列的强分类器;

(3)将训练得到的强分类器进行级联,利用级联的强分类器构成最终的分类器。

Haar-like型特征是一系列带有权重的矩形模板(如图1所示),将某一模板运用到图像某一区域时,特征提取结果为白色矩形覆盖区域的灰度值总和与灰色矩形覆盖区域的灰度值总和之差。

图1 Viola-Jones所用Haar-like特征

积分图像是一种用来加速Haar-like型特征计算的中介图像表示方法。灰度图像的积分图像I(u,v)定义为:

其中I(x,y)为图像的灰度,可见,积分图像中一点P的值就是灰度图像中以远点和P为对角点的矩形区域的灰度总和。借助积分图像,可以通过类似查表的方式快速计算Haar-like型特征。

通过上述方法计算出来的Haar-like特征的数量是十分巨大的,每一个Haar-like特征就对应了一个弱分类器,但不同的弱分类器对人脸的分辨能力是不同的,对于每个弱分类器,Viola和Jones运用AdaBoost方法进行训练,对所有的分类器排序,然后从中选取少数效果最好的弱分类器组成一个强分类器。

其中hi是弱分类器,T为弱分类器的个数,b为阈值。

通过分类器级联技术,运算速度可以显著加快,级联分类器是由若干个强分类器的组成的,每一个强分类器都是由AdaBoost算法训练得到。利用较简单的分类器在前期将绝大部分的非人脸子窗口筛除掉,然后再利用较为复杂和可靠的强分类器来提高最终的分类性能。级联分类器如图2所示。

图2 级联分类器示意图

1.2 基于肤色和运动区域的人脸检测

Viola-Jones人脸检测算法能够满足一定的实时性要求,且具有较好的检测效果,但本文人脸检测部分同时负担着对人脸跟踪部分的初始化的任务,故要求实时性更好,且具有更低的误检率。所以我们提出了运用运动检测和运动区域内的肤色检测缩小人脸检测的搜索范围,提高检测速度,降低检测的误检率。

对图像序列中的运动区域进行检测主要有帧间差分、背景减除和光流分割3种方法[4],本文使用三帧差分法进行运动区域检测,三帧差分是将相邻三帧图像作为一组进行差分,能够较好地检测出中间帧运动区域。三帧差分的基本原理可以描述如下。

设Ii(x,y)表示图像序列中的第i帧图像,(x,y)表示图像帧中的像素的坐标。对连续三帧图像Ii-1(x,y)、Ii(x,y)、Ii+1(x,y),分别对相邻两帧之间进行差分:

然后通过适当的阈值筛选得到二值化图像:

将得到的两幅二值化图像做进一步的处理,得到最终的二值化图像,从而确定图像序列中当前帧的运动区域:

经过运动区域检测以后,我们在运动区域内通过肤色检测进一步缩小人脸检测的搜索范围,更好地提高检测速度并降低误检率。肤色检测采用了Jure等人提出的RGB空间进行肤色检测的方法,该方法简单稳定,考虑到了亮度对肤色检测的影响,算法模型根据光照条件分为了两个不同的模型。

一般光照条件下,肤色应该满足的模型表示为:

强光照的条件下,肤色应该满足的模型表示为:

根据上述模型,扫描运动区域的像素点,确定运动区域内的肤色区域,将扫描得到的区域进行x,y的投影获得矩形区域作为运用基于Adaboost方法的Viola-Jones快速人脸检测的搜索区域。

2 基于多线索融合的人脸跟踪

2.1 Meanshift算法跟踪过程

Meanshift算法[6]是一个迭代的过程,首先计算得出当前点的偏移均值,然后移动该点到这个偏移均值处继续迭代过程,直到满足一定的迭代结束条件为止。其算法实现的基本步骤为:

(1)对目标区域进行初始化,即设定跟踪窗口的初始位置、大小等信息。

(2)计算跟踪窗口的质心。

利用跟踪窗口的零阶矩和一阶矩就可以计算得到窗口的质心,在图像分析中,阶矩主要用来刻画图像的几何特征,式(8)描述了图像的零阶矩M00的为:

式(9)描述了x方向一阶矩M10和y方向一阶矩M01的计算方法为:

式中I(x,y)为坐标点(x,y)的像素值,x,y的取值范围为跟踪窗的大小。

设跟踪窗口的质心坐标为(xc,yc),其坐标值可通过式(10)计算得到,

(3)将跟踪窗口的中心调整到质心的位置。

(4)重复进行第2步和第3步的过程,不断地将搜索窗口进行移动,当单次移动的转移量小于设定的阈值或者达到了最大迭代次数时,迭代结束。

Meanshift算法是一种快速的模式匹配方法,能够满足系统实时性的要求,在目标被初始化以后,后面的整个跟踪过程不再需要进行参数输入。该方法对目标的形变、旋转等都具有较好的鲁棒性,相对于其他跟踪方法,具有明显的优势,已在许多目标跟踪系统中得到成功的应用。

2.2 Lucas-Kanade光流法人脸跟踪

光流法[7]以光流技术为基本手段,通过光流场的模式分类来进行运动目标的跟踪,它不仅能够跟踪到运动物体的位置,而且可以同时获取目标的速度场。光流可以看成带有灰度的像素点在图像平面上运动而产生的瞬时速度场,设图像点(x,y)在时刻t的照度值为I(x,y,t),假设该点经Δt的时间运动到(x+Δx,y+Δy)位置时照度值保持不变,同时设Ix=∂I/∂x,Iy=∂I/∂y,It=∂I/∂t,则光流基本方程可表示为:

该式是一个关于速度分量u,v的直线方程,仅这一约束条件还不能唯一的确定出u和v,即只利用一个点上的信息是不能确定光流的,为此Lucas-Kanade光流计算[8]假定场景中物体被跟踪的部分的亮度保持不变,且帧与帧之间时间很短,可以假设图像上的局部小范围内(如一个小的空间邻域Ω)相近像素点的光流速度相等,如果这个局部小范围内有m个点,根据基本的光流约束方程,我们就可以得到这样一个方程组:

该方程组为一个超定的方程组,可以采用最小二乘法进行求解,求得最终结果为:

其中的ATA其实为一个2×2的矩阵,

当矩阵ATA是非奇异矩阵时,就可以得到光流v的解析解。可以通过矩阵ATA的特征值来判断光流估计值v的可靠性,假设矩阵ATA的特征值为λ1和λ2,且λ1≥λ2。如果λ1和λ2均大于某一个阈值γ,则根据式(13)计算光流值,如果不能够满足λ1和λ2均大于某一个阈值γ的条件,则不进行光流值的计算。

2.3 多线索融合的人脸跟踪

上文所介绍的两种跟踪方法都可以对图像序列中的人脸进行有效的跟踪,Meanshift算法是基于肤色的跟踪方法,我们首先需要根据肤色形象计算图像的颜色概率直方图,并根据颜色概率直方图对待处理图像进行反向投影,得到反向投影图后再运用Meanshift算法进行迭代处理,实现对人脸目标的跟踪。基于光流法的人脸跟踪则首先运用图像角点检测技术[9],将一系列特征点被自动初始化在人脸图像中细节丰富的边角处,例如眼角,嘴角,唇线,眉边等处。然后再根据光流计算的原理进行跟踪。

基于肤色的Meanshift算法计算迅速,对人脸目标的形变、旋转等都具有较好的鲁棒性,但其对头部快速运动和人脸深度方向的改变不鲁棒,而基于光流法的人脸跟踪则对快速运动和深度方向的改变都很鲁棒,只是在人脸旋转时特征点丢失严重。本文将各种跟踪线索进行有效的融合,充分利用各算法之间性能上的互补性,以实现更好的跟踪效果。

本文系统主要分为人脸检测和人脸跟踪两个模块,人脸检测模块运用上述的改进的AdaBoost人脸检测算法,跟踪模块则将Meanshift方法和光流法相结合,系统的最终输出分为以下几种情况,但人脸处于正面姿态时,检测模块可以有效地检测到人脸,此时将人脸检测的输出作为系统的最终输出,但人脸检测部分不能够检测到人脸时,人脸处于复杂姿态,此时人脸跟踪模块对人脸目标进行跟踪输出,当光流特征点的个数满足一定的阈值时,则将光流法的输出作为最终输出,当光流特征点丢失严重时,则将Meanshift方法作为输出并重新初始化区域进行角点信息的检测。系统实现的框图如图3所示。

图3 系统实现基本框图

3 人脸检测与跟踪系统的实现及结果

OpenCV由英特尔微处理器研究实验室的视觉交互组开发,用于辅助计算机视觉处理及应用的共享文件,该库中的图像存储结构次采用Intel的IPL中的图像存储结构,在IPL的支持下,可轻松实现物体轮廓跟踪、图像的几何处理、形态学处理、图像特征提取、背景分离、姿势的识别等很多操作。此处我们利用Microsoft Visual C++6.0技术,结合OpenCV优良的算法实现了上述实时人脸检测与跟踪系统。

为了验证系统的人脸检测与跟踪性能,我们利用NRC-IIT视频人脸数据库进行了实验。NRC-IIT视频人脸数据库是为人脸识别研究而设计的开放资源库。其中包含有11个人参与拍摄的22组短视频。每个视频中都只含有一个人脸,但具有丰富的人脸表情和多样的头部运动。视频是通过放置在显示器顶部的普通摄像头拍摄的。该视频库主要是用来测试人脸识别算法的性能,但在进行人脸识别之前必须先进行人脸检测,NRC-IIT人脸检测的实现也是基于OpenCV实现的Adaboost方法的人脸检测,其检测的性能可以与本系统的检测跟踪性能做一定的对比分析。图4是本文系统在NRC-IIT视频人脸数据库上的部分样帧。

NRC-IIT人脸检测所采用的也是基于AdaBoost方法的人脸检测算法,且系统在OpenCV平台下实现,图5给出了本文系统的检测率和最终正确输出率与NRC-IIT系统检测性能的对比曲线图。

图4 NRC-IIT视频人脸数据库上输出结果的部分样帧

图5 本文与NRC-IIT系统性能对比曲线

从图5可以看出,两个系统的人脸检测器使用的算法和实现平台基本一致。然而,NRC-IIT的检测结果(平均74.8%)却高于本文系统(平均50.2%)。这是由于本文的人脸检测部分不仅要检测人脸,同时还担负着人脸跟踪部分的初始化任务,故我们在最小搜索窗口尺寸和结果分组阈值的设置上都追求低误检率。同时,由于本文采用了运动区域检测和肤色检测,更进一步的降低了误检率,在NRC-IIT视频人脸库上保持了0%的误检率,而NRC-IIT系统则存在误检现象,个别视频序列误检十分严重。另外,虽然本文在NRC-IIT视频人脸库上的检测率不高,但是由于系统在检测部分不能检测人脸时采用跟踪器的整合输出作为最终结果,系统的总体性能得到了提高,最终输出的平均正确率为96.7%。

另外我们对系统的实时性也进行了考察,统计系统处理每帧数据所用的时间,利用采集得到的视频序列进行试验得到的统计结果如图6所示。从图6可以看出,系统的平均的帧处理时间为58.83 ms,即可以达到17帧/s的帧处理速度,可以满足实时性的要求。

图6 系统帧处理时间分析

4 结论

研究分析了基于Adaboost的人脸检测算法和基于Meanshift和光流法的人脸跟踪算法,利用各算法性能上的互补性,基于OpenCV开发资源库构建了一多线索融合的人脸检测与跟踪系统,通过实验室录制视频和NRC-IIT视频人脸数据库对系统进行了性能测试。测试结果表明系统具有较好的实时性和鲁棒性。

[1]梁路宏,艾海舟.基于人脸检测的人脸跟踪算法[J].计算机工程与应用,2001(17):42-45.

[2]梁路宏,艾海舟,徐光佑,等.人脸检测研究综述[J].计算机学报,2002,25(5):449-458.

[3]Lin Y T.Real-Time Visual Face Tracking and Recognition Techniques Used for the Interaction between Humans and Robots[D].National Taiwan University of Science and Technology,2008.

[4]Huang T S,Tao H.Visual Face Tracking and Its Application to 3d Model-Based Video Coding[C]//Picture Coding Symposium,2001:57-60.

[5]甘明刚,陈杰,刘劲,等.一种基于三帧差分和边缘信息的运动目标检测方法[J].电子与信息学报,2010,32(4):894-897.

[6]刘宝弟,王延江,马海,等.基于均值漂移算法的人脸自适应跟踪[J].中国石油大学学报(自然科学版),2007,31(8):153-157.

[7]贾云得.机器视觉[M].北京:科学出版社,2000:235-240.

[8]Lucas B,Kanade T.Iterative Image Registration Technique with an Application to Stereo Vision[C]//Proc of the 7th International Joint Conference on Artificial Intelligence.1981(2):674-679.

[9]赵文彬,张艳宁.角点检测技术综述[J].计算机应用研究,2006,23(10):17-19.

猜你喜欢
光流肤色人脸
利用掩膜和单应矩阵提高LK光流追踪效果
有特点的人脸
一起学画人脸
Conversation in a house
人的肤色为什么不同
为什么人有不同的肤色?
三国漫——人脸解锁
一种改进的基于全局最小能量泛函光流算法
融合光流速度场与背景差分的自适应背景更新方法
长得象人脸的十种动物