关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 人脸自动定位及其系统实现

人脸自动定位及其系统实现

作者:王 猛,冀 中时间:2008-10-27来源:现代电子技术收藏

1 引 言

本文引用地址:http://www.eepw.com.cn/article/88985.htm

  人脸的自动定位是应用视觉研究领域的一个重要课题。它首先需要检测到人脸的位置和特征点,然后采用一定的控制策略控制摄像机运动将人脸定位到图像的中心。属于人脸跟踪的范畴,在人脸识别、人机交互、智能视频通信、监视和安全以及娱乐等领域有着广泛的应用,发展前景巨大。例如在人脸识别应用中,首先需要获得符合一定大小的正面清晰人脸;又如在安全监控应用中,需要对人的各项特征进行有针对性的监视,对于监控对象的身高、衣着等特征,可以在较模糊图像中获得,但是对人脸部分的特征,却必须要清晰的图像才能获得,因此需要对人脸做针对性的监控。

  人脸定位到图像中心比之人脸跟踪,主要有以下几个区别:

(1)人脸跟踪不需要定位人脸到图像的中心,只需将人脸限定在图像区域内即可,而人脸定位要求人脸必须在图像的中心;

(2)人脸跟踪实时性要求很高,人脸运动速度较快,而人脸定位只是针对静止目标或目标只做小范围的动作。

  目前图像中心系统尚不多见,参照人脸跟踪系统,可知相关算法主要有两类:基于目标跟踪的方法、人脸检测和目标跟踪算法相结合的方法。基于目标跟踪的方法完全依赖于好的运动目标跟踪算法,从运动目标中找出人脸,没有充分利用人脸的特征,因此在人脸跟踪中很少单独使用。人脸检测和跟踪算法相结合的方法是在基于目标跟踪的方法上,利用人脸的相关信息(例如肤色、器官分布等)达到快速跟踪的目的。在一些典型的约束环境下(如背景简单静止的视频、工作台前的人脸或头肩部人脸视频等)可以取得很好的人脸跟踪效果。需要说明的是,这些方法一般建立在人脸初始位置大致已知的基础上,需要使用其他方法解决起始帧中人脸的检测问题,这就增加了系统实现的难度。

  目标跟踪的实现算法主要有3类:帧间变化检测法、运动矢量法和偏移量法。其中帧间变化检测法主要适用于静止背景下的运动目标检测,利用相关帧间的信息恢复背景并进行运动目标的提取。运动矢量法主要用于运动背景下的运动目标的检测,一般配合卡尔曼滤波器使用。首先建立运动模型,然后根据运动模型得出目标点在图像平面上的位置、速度和加速度的相关信息,再利用卡尔曼滤波器根据这些信息预测下一帧图像中目标点的位置、速度和加速度等相关信息,最后将这些预测信息反馈给控制设备驱动摄像机运动,从而将运动目标定位在图像中心。以上2种方法主要针对运动目标的跟踪,都需要利用帧间信息,计算量偏大。而偏移量法则是首先通过图像预处理方法检测目标位置距图像中心的偏差(△x,△y),然后计算摄像机的水平调整量α和垂直调整量β,根据调整量控制摄像机运动,从而将目标定位在图像中心。偏移量法的优点是算法非常简单,缺点是精度低,可拓展性差,不利于今后进一步的研究。另外,以上几种方法在控制摄像机运动定位目标时均需要利用摄像机成像的参数,而这些参数需要标定。标定内容包括摄像机焦距、计算机图像中心坐标、像平面单位距离上的像素数等。由于摄像机存在着许多畸变,所以标定的精度直接影响算法的精度。

  目前的标定方法虽然多种多样,但是大部分方法都是利用成像几何性质,首先建立一定的模型形式,然后将需要标定的各个参数分解,分别进行计算。由于摄像机镜头存在着多种非线性失真,所以要得到较高的标定精度,计算方法复杂而且计算量大。

  鉴于此,本文提出一种基于肤色的人脸检测和基于人工神经网络的控制方法相结合的的方法。首先,采用基于KL肤色的人脸初定位、积分投影法和小灰度值聚类法确定眼球中心的人脸检测和特征点获取的方法检测人脸的位置。该方法逐步缩小图像处理的区域,检测速度快,能够满足实时性的要求。然后提出一种新的基于人工神经网络反向传播算法的目标定位图像中心的控制方法,用来控制摄像机快速定位人脸到图像中心区域。该方法克服传统跟踪算法中需要利用帧间相关信息和需要标定摄像机的缺点,只需通过目标检测程序给出目标特征点在计算机图像中的坐标,就可直接得出摄像机水平调整量和垂直调整量,根据调整量控制摄像机运动即可将目标自动定位在图像中心。最后通过VC++编程实现该系统。该系统主要针对简单背景下单个静止正面人脸的定位,但是对于其他较为复杂的情况,也有很好的拓展性。

2 人脸检测及特征点获取

2.1 基于KL肤色的人脸初定位

  本文采用肤色信息进行人脸的初定位。人脸具有比较稳定的特征,在灰度图中表现为眉毛、眼睛、鼻子和嘴相对脸部其他区域而言灰度要深一些;在彩色图像中,从颜色上观察,发现消除了亮度的影响后,眼睛和眼睛周围的颜色分布具有很分明的特点,除了眼睛颜色偏黑外,眼睛周围大部分均为肤色,而且脸颊部分在一般情况下都可成功地将肤色检测出来。在人脸检测算法中加入对肤色信息的运用,目的是希望通过利用肤色信息判断图像中的各点像素是否属于肤色,从而排除非肤色区域,即不可能存在人脸的区域,以达到减小搜索空间、提高人脸检测算法的时间效率、降低误报率的作用。由此可见,选择恰当的聚类空间和肤色区间阈值以确定最终的肤色模型是非常重要的,它将影响到人脸检测的正确率和实用性。

  经过大量实验的验证,最终选取KL肤色坐标系建立肤色模型。它的特点是通过采用降维的特征脸空间描述人脸,使得每个人脸都是特征脸的线性组合,因而能用一组系数简单而完备地表示。这样,可以将人脸识别和特征检测过程转换到代数空间进行,这种变换对于肤色有更好的聚类特性。这里借鉴了文献[9]中的KL肤色坐标系。通过KL变换,得到其变换矩阵为:

 

通过对4000个肤色样本进行分析,得出KL肤色过滤器的阈值为:

 

  对任一待处理彩色图像,先用式(1)对其进行色彩转换,然后按式(2)的阈值进行判断:在该范围内则置1,否则置0,即可得到过滤肤色后的二值图像。在此二值图像上可实现人脸的初定位。

2.2 积分投影法确定眼睛区域

  在初步获得人脸区域后,接下来的工作就是人脸重心的获取。由于眼睛在人脸中的重要性,所以把眼睛作为人脸的特征点,两眼间的中点作为人脸的重心点。具体方法是先采用积分投影的方法确定眼睛区域,再采用小灰度值聚类法计算眼球中心。然后根据人脸的几何特征即可确定人脸重心,为下一步的自动定位做好充分的准备。

  眼睛具有明显的特征。相对于鼻子、嘴和眉毛而言,眼睛特征较为稳定且成对出现,与周围区域具有较强的灰度对比度。在通常情况下,通过边缘检测都可以将眼睛提取出来。选用Robinson算子和Laplacian of Gaussian算子对图像进行边缘提取,然后在水平、垂直两个方向上对经过边缘提取的灰度图像利用积分投影法产生投影曲线。积分投影法的基本原理如下:设原图像I(n,m)大小为N×M矩阵,其中n,m分别为图像的列、行坐标,则水平方向和垂直方向上的积分投影曲线J(n),I(m)分别定义如式(3)和式(4)所示。垂直投影曲线在眉毛、眼睛、鼻子、嘴巴、下颚等位置上形成驼峰,驼峰的大小和峰值点位置反映了各个特征部件的大小和形状信息。根据J(n),I(m)的极值点信息及眼睛在人脸中的几何特性,即可检测出眼睛区域。如图1所示。图1中Ⅰ和Ⅱ区域是水平方向投影的结果,在其上方做竖直方向投影得A和B区域,即为眼睛区域。

 
 

2.3 小灰度值聚类法获取人脸重心

  确定了眼睛区域A和B后,在这2个矩形区域内采用小灰度值聚类法确定眼球中心。聚类的过程是将图像中灰度值最小(即颜色最深)的n个像素按列递增顺序排序,若相邻的列数差值都未超过预先设定的门限T1,说明只有一个聚类中心,求出这些像素行列的平均值就是要找的眼球中心点;若超过了门限T1,说明这n个像素可以聚成2类,对左眼,因为阴影集中在左边,所以取右边那类的平均值;对右眼则取左边那类的平均值。n的选择可根据图像的总像素数目及眼球占图像的大致百分比决定。检测结果如图2所示。确定了眼睛的位置后,根据人脸的几何模型,重心的位置即可确定。考虑到自动定位要求将人脸定位到显示屏幕的中心,而对人脸主要感兴趣的特征就是眼睛,所以规定2眼之间的中点即为人脸的重心。

 

3 基于人工神经网络的目标定位图像中心方法

  检测到人脸并且获取人脸重心后,下一步就要定位人脸到图像的中心了。本文提出一种新的基于人工神经网络的目标定位图像中心方法。利用人工神经网络反向传播算法对非线性函数超强的拟合能力,只需通过目标检测程序给出目标在计算机图像中的坐标点,就可直接得出摄像机水平调整量α和垂直调整量β,根据调整量控制摄像机运动即可将目标定位在图像中心。此外,该方法只需对图像中心坐标进行简单的预标定,基本上摆脱了摄像机标定这一繁琐的步骤。作为目标定位的一个特例,将人脸检测程序中计算出的人脸重心点替换目标点,即可完成人脸的自动定位图像中心。下面详细介绍这种方法。

  首先确定摄像机模型。摄像机模型就是对景物成像到图像平面的物理过程的一个数学描述,依据该模型,可以确切地掌握图像所成的几何关系。本文采用Pin-hole模型(如图3所示),也就是透视投影模型。Pin-hole模型是在计算机视觉中广泛采用的一类模型,其物理上相当于薄透镜成像,该模型最大的特点是成像关系是线性的。而且,由于摄像机的焦距相对于物距很小,所以无论是在仿真实验还是在实际实验中,都可以不考虑物距对精度的影响。在图3中,C为摄像机光学中心,CO′为摄像机光轴,CO′的距离为摄像机的焦距f,O′u′v′为像平面坐标,P是目标在像平面上的投影。仿真实验需要对对摄像机模型进行简单的预标定(实际定位算法中不需要):设f=10 mm;计算机图像平面为768×576,中心坐标(Cx,Cy)为(384,288),单位pixel;像平面单位距离上对应的像素数Sx=Sy=100,单位pixel/mm。

 

  然后,根据摄像机模型,依据神经网络的理论,建立网络结构。Hornik等利用泛函分析理论,证明在很宽的条件下,具有至少一层S型神经元隐含层的前向反馈网络神经网络,用标准BP算法经过足够的训练,能以任意精度逼近任意函数及其各阶导数。Elsken证明使用单隐含层网络为好,增加隐含层数目可导致网络性能的下降,所以通常用单隐含层的网络。经实验验证,采用单隐含层网络优于2个隐含层的网络,隐含层节点采用10个为好,隐含层使用Log-Sigmoid函数,输出层使用线性函数,网络的输入为目标在计算机平面图像中的坐标点(u,v),输出为摄像机水平调整量α和垂直调整量β。

  因为Log-Sigmoid函数的灵敏区有限,因此有必要对样本数据进行归一化处理。本文采用式(5)所示的归一化方法:

 

  根据计算机图像坐标(u,v)和像平面坐标(u′,v′)的关系,即式(5),可得像平面坐标(u′,v′)。

 

  再根据三角形关系,即可得摄像机水平调整量α和垂直调整量β。计算可知α∈[-0.3666,0.3666],β∈[-0.2804,0.2804],单位弧度。

  由于标准BP算法收敛速度较慢、容易陷入局部极小点,所以采用BP改进算法。通过对几种改进算法的比较试验,最终采用基于启发式信息的动量方法(MOBP)。

  在计算机平面上每隔10个像素取1点作为训练样本,水平方向78组,垂直方向59组,共得到4 602组训练样本。对这些样本反复实验,得出在2-10-2型网络下,训练2 000次后的测试结果如图4所示。其中,测试样本共192组,水平方向16组,垂直方向12组。取与训练样本不同的点,x,y坐标分别表示计算机水平方向和垂直方向的像素点,z坐标表示误差,

  由图4可以看出,由水平调整量α和垂直调整量β可以精确的控制摄像机将目标定位到计算机图像中心,误差一般小于2个像素(即RMS小于1.77×10-3),只是在u=[0.768],v=[0,50],也就是计算机上方50个像素的水平带上误差稍大一些,在5个像素(即RMS≤4.47×10-3)左右。可在这些区域多取一些样本减小误差。

 

4 系统实现

  系统采用PC机和图像采集卡构成的图像采集系统,在实验室普通白帜灯照明的条件下,采用微视科技MVP-CI-V3C图像采集卡附带的软件开发包,进行人脸自动定位图像中心系统的二次开发。

  系统的软件环境是在Microsoft Windows 2000下采用面向对象的语言Microsoft Visual C++6.0编程。硬件环境采用Panasonic WV-CP210/G CCTV CAMERA(固定于三脚架上),镜头焦距8 mm;北京微视科技MVPCI-V3C采集卡,采集图像为768×576 pixel;利凌PIH-302云台;PC机通过北京微视科技AV2002云台解码器驱动摄像机云台转动。

  目标开始定位在计算机图像中心(384,288),然后控制摄像机云台转动,记录下转动的角度α,β和此时目标在计算机图像中的坐标(u,v),即获得一组训练样本。根据实际需要选择物距的大小(即目标距镜头的距离),这里在1,1.2(单位m)远时分别取1 500组训练样本(在计算机上方50个像素的水平带上多取一些训练样本),通过对3 000组训练样本的反复实验,误差一般在10个像素(即RMS小于8.98×10-3)以内,不超过20个像素(即RMS小于18×10-3),而且网络有较好的泛化能力,对训练样本中没有的1.1 m远处的测试也能达到较满意的结果(误差不超过20个像素)。实验表明,如果样本足够多,训练次数足够大,RMS还可以足够小,摄像机可以更加精确的定位到图像中心。

  实验结果表明,该算法简单有效,可以较精确地将目标定位在图像中心。配合目标检测程序即可完成目标跟踪任务。目前商用变速云台水平转速可达到32°/s(0.558 5 rad/s),垂直转速可达到16°/s(0.279 3 rad/s),在一些高速摄像系统中可以达到更高,完全可以用于实时的目标跟踪。在实际跟踪中,可根据情况选择样本的范围和数量,可以满足一般跟踪的要求。该方法有很好的可拓展性,如果要进行人脸跟踪的研究,只需考虑相关帧的信息,然后对人脸搜索区域加以限定以减少搜索时间,就能提高跟踪效率,达到实时跟踪的目的。该方法的缺点是前期样本的获取和神经网络的训练工作量较大。

  经过对不同年龄、不同脸型、性别不同的人进行试验,结果证明该系统简单有效,有较强的实际应用价值。由于云台设备的限制,系统没有考虑自动对焦功能的实现,这可以根据人脸区域的大小自动调整焦距。虽然系统是针对静止人脸的,但是完全可以实现动态人脸的实时跟踪功能,只要在程序中加入一个独立线程定时更新采集图像就能够实现。

  随着Internet技术的发展,家庭及企事业单位接入互联网已经成为现实。互联网不仅使人类的视野得到空前的扩大,同时也极大地缩短了人与人之间的距离。利用Internet人们不仅坐在家中或办公室就知天下之事,而且即使远离住所或办公地点,通过Internet也可获知家中或办公场所、工业现场的有关情况,并且能够对远端设备实施远程监控。所以,通过网络进行远程人脸的自动定位的操作是未来的发展方向之一。

c++相关文章:c++教程


模数转换器相关文章:模数转换器工作原理


全息投影相关文章:全息投影原理


关键词: 人脸自动定位

评论


技术专区

关闭