许昌学院电气信息工程学院 李跃磊
积分投影曲线的面部特征提取方法
许昌学院电气信息工程学院 李跃磊
【摘要】在人脸精确定位的基础上,利用垂直积分投影曲线定位面部特征器官的横坐标,利用水平积分投影曲线定位面部特征器官的纵坐标,最后将面部特征器官嘴巴和眼睛从精确定位后输出的脸部图像中提取出来。实验结果表明,该方法有较高的定位精度,并且该方法不仅能定位标准正面人脸,而且也适用于有轻微偏转的人脸图像。
【关键词】垂直积分;灰度;积分投影
从某种意义上讲,面部关键特征点(Landmark)的定位,是人脸识别中最核心的问题之一。错误的特征定位会导致提取的面部特征器官的严重变形,因此,即使是不精确定位也会带来识别性能的快速下降。在这方面进行了很多努力,以期能够准确快速的提取面部的关键特征点。边缘提取法是首先进行对人脸图像进行边缘提取,然后用霍夫变换,检测眼球,构造一个包括眼睛、眼睑的眼部模板,用一系列函数从能量角度找出眼睑[1]。本文在人脸精确定位的基础上,利用垂直积分投影曲线定位面部特征器官的横坐标,利用水平积分投影曲线定位面部特征器官的纵坐标,最后将面部特征器官嘴巴和眼睛从精确定位后输出的脸部图像中提取出来。
根据垂直积分投影曲线确定人脸的左右边界,并把边界内的人脸提取出来以便消除头发等背景因素对积分投影算法结果的影响,求出人脸面部特征点的位置,由特征点的位置确定面部特征在人脸图像中的实际坐标并将人脸的面部特征器官提取出来。
2.1面部特征点位置的确定与面部特征器官的提取
人脸特征点的选择不仅要反映人脸识别中最重要的特征,特征点的个数要包含足够的信息,但又不能太多,以免增加运算量。本文选取人脸识别的7个特征点,分别为4个脸角点、鼻尖和两个嘴角点,如下图1所示。这些特征点的分布具有角度不变性的特点,同时,与其它采用测量特征点的系统相比,这7个特征点比较容易从图像中提取出来并加以测量。
由于特征点所在区域的灰度特征与人脸部其它部位有明显的不同,采用积分投影很容易得到特征点的位置。面部的特征点对应于积分投影方式产生出的波峰或波谷,所以在进行人脸定位之后,本文用积分投影进行特征定位。这种方法不需要对图像进行过多的处理,算法简单,准确率高,速度快。积分投影可以直接对灰度图像,也可以先将图像二值化,然后对二值图像进行积分投影。二值图像是只有两个灰度级的图像,即只有0和1两级灰度:
T为阈值,g(x,y)为二值化后的图像。
图1 人脸基本结构示意图
本文对ORL图像库中的图像采用的是对灰度图像进行投影,对驾驶室内实际采集的人脸图像是对边缘检测后图像的二值图像进行投影,因为实际采集的人脸图像存在大量的噪声特别是光照不均匀所带来的光照噪声,使得直接对灰度图像进行积分投影的投影曲线毫无规律,不能用于人脸面部特征坐标的确定。
在图1中,x1,x3代表眼的中心点;x2代表鼻子的中心点;y1→y5分别代表眉、眼、鼻、嘴、下巴,它们之间一般满足如下的比例关系:
人脸轮廓确定后,就可以大致确定出人脸各特征点的位置关系,即可由上到下区分出脸、鼻、嘴等特征的区域,在这些局部区域内再运用积分投影法,就可精确定位出面部特征器官。
2.2垂直投影与水平投影算法原理
假设图像的大小为M×N,积分投影法是根据图像在某些方向上的投影分布特征来进行检测的,这种方法在本质上是一种统计方法,主要有水平积分投影和垂直积分投影[2,3]:
在式7中,(x,y)表示像素所处的位置,I(x,y)表示该像素点的灰度值,N表示一行所有的像素点数,可见水平投影就是将一行所有的像素点的灰度值进行累加后再显示。在式7中,(x,y)表示像素所处的位置,I(x,y)表示该像素点的灰度值,M表示一列所有的像素点数,可见垂直积分投影就是将一列所有的像素点的灰度值进行累加后再显示[4]。
3.1 眼睛与嘴部的提取算法验证
在ORL标准人脸图像库中选取一幅图像进行垂直积分投影,对上述的面部特征提取算法进行验证。定位面部特征的积分投影算法在MATLAB平台采用M语言编程实现。实验研究的原始图像为100幅,50幅取自ORL(Olivetti Research Laboratory)人脸图像数据库,其余的50幅取自由驾驶室内实际采集的人脸图像组成的小型彩色人脸图像库。其实验结果如图2所示:
图2 垂直积分投影曲线图
图2(b)中人脸所在区域对应的垂直灰度投影曲线是具有一定宽度的凸峰,这个凸峰的左右边界大致就是人脸的左右边界。因为人脸区域的灰度与周围不同,在人脸左右边界处,亮度值的总和迅速减小,从而使整个投影曲线形成一个明显的凸峰。因此,只需确定垂直灰度投影曲线中主要凸峰的左右边界,即可得到人脸的左右边界,将边界内的人脸图像提取出来得到的图像如图3(a)所示。
图3 边界之内的图像和其水平投影曲线
当得到左右边界之后,提取左右边界内的人脸图像并对图像进行水平积分投影,可以减少人脸两侧头发等背景因素的干扰,使得下一步投影的波峰和波谷更明显,从而更容易判断眼睛和嘴巴所在区域。假设左右边界之间的图像大小为n,那么此时的图像大小就变为M×n,使用的水平投影函数公式7。其中,H(y)称为水平灰度投影曲线,如图3(b)所示。
正常情况下,由于眉毛眼睛等五官的灰度值比较小,所以在脸的左右轮廓范围内对图像做水平投影的话,特征(五官)所在行的投影值就会比较小,而在投影图中就对应着极小值。在图3(b)中,看到的水平灰度投影曲线的前段谷区域对应于人的头顶部分,因为头发的低灰度产生了水平投影曲线的低谷;而曲线的最大值点和次最大值点分别对应人的额头部位和人的鼻中部。并且可以很明显得看出将要提取的特征点的五个纵坐标y1→y5正好就是水平投影曲线的五个谷点[5]。
上述脸部特征定位试验所得数据y1→y5的值如表1。最终提取出的面部特征眼睛和嘴巴如图4所示:
表1 实验所得数据y1→y5的值
图4 实验最终提取的面部特征眼睛和嘴巴
图5 实际采集人脸图像在左右边界内的面部图像及其水平投影曲线
3.2驾驶室内实际采集人脸图像面部特征提取的试验结果
驾驶室内实际采集的人脸图像的积分投影曲线及面部特征的提取:
由于实际采集的图像含有大量的噪声,不能像上面那样直接对标准图像库中的人脸图像的灰度图像进行积分投影,因为直接对灰度图像进行积分投影的投影曲线毫无规律,不能用于人脸面部特征坐标的确定,如图5(h)所示。
为了排除噪声的干扰,应该对人脸精确定位后所提取的人脸图像的二值化图像进行垂直积分投影和水平积分投影,以消除驾驶室内噪声的影响,特别是光照噪声的影响。图6(a)就是图像6(b)是对应的二值图像。
图6 人脸精确定位后的图像及其对应的二值图像
下面对图像进行处理时执行和上节中的对ORL标准人脸图像进行处理时相同的处理步骤。
第一步:首先进行垂直积分投影,获取脸部的左右边界,然后把边界内的人脸提取出来,如图7所示。
第二步:对上步提取出的左右边界内的人脸图像进行水平积分投影,以减少人脸两侧头发背景等因素的干扰,并确定y1→y5的值,图8为边界内人脸图像的水平积分投影曲线,由于是对边缘检测图像的二值图像进行投影,所以和上节直接对标准图像的灰度图像的水平投影不同,此时特征点的纵坐标为波峰的值。
第三步:根据上步确定的纵坐标y1→y5的值,由上到下区分出眼睛和嘴巴所在的局部区域,然后将眼睛和嘴巴所在的局部区域分别提取出来,对这两个局部区域分别进行垂直积分投影,求取眼睛和嘴巴的横坐标,结合第二步中纵坐标y1→y5的值实现眼睛和嘴巴的定位。下图9(a)为眼睛所在的局部区域,9(b)为其垂直积分投影曲线,(b)图中两个对称的凸起所在的位置分别对应人脸的左右眼。图9(c)为嘴巴所在的局部区域,9(d)为其对应的垂直积分投影曲线,其中第一个凸起的第一个波峰和最后一个波峰之间的区域对应嘴巴所在的位置。
图7 二值图像的垂直投影曲线及在左右边界内的人脸图像
图8 左右边界内人脸图像的水平积分投影曲线
图9 眼睛和嘴巴所在的局部区域和对应的垂直积分投影曲线
表2为上面的步骤得出的y1→y5,x1→x3的值。
表2 y1→y5,x1→x3的值
第四步:提取出人的眼睛,嘴巴等特征,作为最终输出,如图10所示:
图10 最终输出的面部特征眼睛和嘴巴
本章提出了一种利用积分投影曲线定位面部特征的方法,用ORL人脸图像库中的标准人脸图像验证了方法的有效性,针对驾驶室内实际采集的人脸图像光照噪声干扰严重,不能直接对灰度图像进行积分投影的现状,提出对面部边缘检测后图像的二值图像进行积分投影的方法,很好地消除了噪声的影响,实现了面部特征的定位,最后将眼睛和嘴巴提取出来。实验结果表明,该方法有较高的定位精度,并且该方法不仅能定位标准正面人脸,而且也适用于有轻微偏转的人脸图像。
参考文献
[1]冯慧扬,王申康,王宏伟.人脸定位算法的研究[J].计算机工程与应用,2003,30(3):101-119.
[2]邢藏菊,曲延锋,王守觉.静态灰度图像中的人脸快速检测[J].计算机辅助设计与图形学学报,2002.41(5):401~403.
[3]盛敬,杨军平,刘国满.基于机器视觉的驾驶员疲劳监控系统中的嘴唇定位算法[J].南昌工程学院学报,2007,26(1):54~58.
[4]沈洁,杜宇人,高浩军.图像边缘检测技术研究[J].信息技术,2005.
[5]童兵亮.基于嘴部状态的疲劳驾驶和精神分散状态监测方法研究[D].吉林大学硕士学位论文,2004,5.
作者简介:李跃磊(1984-),男,河南许昌人,助理实验师,研究方向:信号处理。
基金项目:河南省高等学校重点科研项目,15A470020。