人脸检测中眼睛定位算法研究论文

时间:2022-10-11 10:59:00

人脸检测中眼睛定位算法研究论文

摘要眼睛是一个在人脸检测中极为重要的人脸特征,因此一种快速可靠的精确定位眼睛的算法对许多实际的应用是十分重要的。本文分析了几种常用的眼睛定位算法,并提出了一种基于肤色信息、人脸面部几何特征和人眼灰度信息的算法。算法采用由粗到细的检测策略,先对AnilK.Jain的Cb、Cr椭圆聚类方法进行了改进,用改进的算法进行肤色提取,经过肤色区域的分析,对人脸区域进行预检测,然后结合人眼几何特征进行初步定位,再利用人眼的灰度信息进行精确定位。该算法定位效率高,并对背景、尺寸等细节具有很好的适应性,在人脸实时检测系统中具有很好的应用价值。

关键词眼睛定位;肤色提取;几何特征;复杂度

1引言

双眼是人脸的突出特征,它们在人脸中占据比较固定的位置,双眼间的距离刻画了人脸的大小,是人脸识别中尺度归一化的依据。因此双眼的精确定位成为人脸识别前处理阶段非常关键的一步,绝大部分的人脸识别算法都强烈地依赖于双眼的准确定位。只要人眼被精确定位,则脸部其他特征,如眉、鼻、嘴等,可由潜在的分布关系比较准确地定位。人脸可以较好地归一化,预处理的效果也更明显,同时也可提高识别速度和降低识别算法的复杂度。

正因为眼睛定位在人脸识别中具有如此重要的地位,于是人们研究各种算法来实现眼睛定位,主要可以分为以下几类:霍夫变换法、变形模板法、边缘特征分析法和对称变换法等,本文结合人脸的肤色和几何特征以及人眼的灰度信息提出了一种快速、稳定的人眼定位算法。

2常用的几种眼睛定位算法

(1)霍夫变换法

假设经预处理已经得到包含眼球的图像Ep,为了节省检测眼球的时间并避免镜片反光点边缘产生的干扰,先用小灰度聚类法粗定眼球中心点,以此缩小检测范围,聚类的过程是将图像Ep中灰度值最小的n个像素,按列递增的顺序排序,若相邻的列数差值都未超过预先设定的门限T1,说明只有一个聚类中心,求出这些像素行列的平均值就是要找的眼球中心点;若超过了门限T1,说明这n个像素可以聚成两类,对左眼,因为阴影、镜脚集中在左边,所以取右边那类的平均值;对右眼,则取左边那类的平均值;n的选择可根据图像Ep的总像素数目及眼球占图像的大致百分比决定。

在用霍夫变换检测眼球前,先用Canny算法提取边缘。对于比较细长的眼睛,由于眼球的上半部分较多地被眼皮覆盖,所以改用检测下半圆,这样更可靠且省时。设图像空间为(i,j),i和j分别表示行和列,三维变换空间为(ie,je,R),其中ie、je分别代表眼球圆心的行和列,R为半径。下半圆表达式为:

(1)

对于变换空间的每一个坐标点(ie,je,R),在图像空间都对应一个半圆,在这个半圆上存在的边缘点数就是变换空间上坐标点(ie,je,R)对应的值。变换空间上的峰值点坐标即为所求的眼球半圆参数。实验证明,霍夫变换确实具有抗干扰能力强的优点。当眼球与眼白的对比度较低时,提取出来的边缘是断裂或不很规则的,即使如此,仍能根据变换空间中的峰值点准确地定位眼球圆心[2]。

(2)变形模板法

模板匹配法主要是模板的选择,根据所选模板的维数可分为二维可变形模板和三维可变形模板。图1为二维简单眼睛模板,由于人脸的旋转角度是任意的,当旋转角度比较大时,其中一部分眼白就会看不见,所以为了适应人脸向两侧作较大角度的旋转,就增加了两个单眼白的简单眼睛模板,当垂直旋转角度大于30°时,就使用仅有左眼白的简单眼睛模板,如图1a所示,当旋转角度大于-30°时,就使用仅有右眼白的简单眼睛模板,如图1b所示,若旋转角度介于-30°和30°之间,就使用正常的双眼白简单眼睛模板,如图1c所示。

图1眼睛的变形模板

简单二维眼睛模板可以用如下数学形式表示:

(2)

在进行眼睛定位时,不断改变简单眼睛模板的尺寸参数S和眼球中心位置参数(x,y),当模板与人脸图像取得最佳匹配时的对应的尺度S就是眼睛的大小,中心位置(x,y)就是眼睛在人脸图像中的位置。匹配时采用的能量函数与三维可变形模板中的能量函数类似。

三维可变形眼睛模板的生成源于人脸合成时用到的一般三维人脸模型。在一般三维人脸模型中,把眼睛特征点分截取出来,作为可变形眼睛模板的基本点。三维可变形眼睛模板是由10个基本三维点构成的,如图2所示,其中外部8个点组成了上、下眼睑,内部2个点,决定眼球的所有边界,其余的眼睑三维点是由外部8个基本点线性插值得来的,而眼球上的三维点是通过内部2点构成的空间来定的。

图2三维眼睛模板

三维可变形眼睛模板可以用以下的数学形式来表示:

(3)

其中,参数X=(x1,x2,x3…,y1,y2,y3,…,z1,z2,z3,…)是由10个三维基本点的坐标组成,S表示三维可变形眼睛模板的尺度大小,θ表示眼睛模板的垂直旋转角度,表示眼球的中心,也是整个三维眼睛模板的中心坐标。眼睛模板的可变形性就体现在不仅模型的尺度S、角度θ和眼球的中心是可变化的,而且眼睛模板的形状参数X也是可变化的。当所有参数都进行变化时,将产生各种各样的三维眼睛模板。在模板匹配时,需要把这些三维模板影射成如图3所示的二维眼睛映射模板,然后针对这些二维眼睛模板定义相应的能量函数,用最小值搜索算法求得最佳匹配。此时所对应的眼睛模板坐标就是需要求的眼球中心。

图.3三维眼睛模型在不同旋转角度下的二维映射

(3)边缘特征分析法

此算法所处理的图像为单人灰度图像,是利用图像的垂直灰度投影曲线,根据凸峰宽度确定人脸的左右边界,然后利用人脸区域的水平灰度投影曲线确定头顶及鼻子中部形成的上下边界。利用预测法先确定人眼在眉眼区域的大概位置,通过检测眉眼部位的边缘及边缘分组,确定双眼的坐标位置。

观察不同单人脸图像的垂直灰度投影曲线,可以发现人脸所在区域将使垂直灰度投影曲线形成一个具有一定宽度的凸峰。这个凸峰的左右边界大致代表了人脸的左右边界。当人脸的左右边界确定之后,取左右边界之间的人脸区域作为研究对象,作该图像的水平灰度投影曲线,观察人脸区域图像的水平投影曲线可以发现,此曲线的第一个极小值点对应人的头顶,因为头发的低灰度产生了水平投影曲线的低谷,而曲线的最大值点和次最大值点分别对应人的额头部位和人的鼻中部,这样就可以轻易地求得人眼所处的大致水平位置(如图4所示)。

在边缘检测前先对眉眼区域进行去噪、增强处理,使图像平滑,这是保证下面边缘检测获得较好效果的关键步骤。然后用Canny算子求出眉眼区域的边缘图像[4],求解时阈值取得较高,使得边缘点仅由眉毛和眼睛的强边缘以及瞳孔产生的强边缘组成,而不会包含由鼻子的轮廓产生的弱边缘。随后将边缘点进行分组,可以得到几组分离的边缘,其中位于下面的两组分别为左右两眼产生的边缘,取这两个边缘组的中心作为人眼的中心。边缘分组算法中,将分别包含每个边缘分组的最小矩形作为人眼检出,最先检出的两个分组分别对应左眼和右眼。当出现两个分组后算法立即结束,提高了执行效率。

(a)原图像

(b)在水平方向上的投影

(c)在垂直方向上的投影

图4水平方向和垂直方向的投影结果示意图

该算法的优势在于首先通过灰度投影曲线确定眉眼区域,使数据量大大减少,然后在有效的边缘检测之后,使用了高效的边缘分组策略,在保证正确率的基础上,提高了算法速度。此算法的定位错误出现在头部倾斜度过大,以及侧光太强,还有头部在图像中所占区域过小的情况。

(4)对称变换法

在计算机视觉研究中,对称性被认为是物体的基本性质之一,通常在将物体从背景中分割出来后,用来简化物体形状的描述,或物体的近似。目前研究最多的是点对称(也叫中心对称)和轴对称,对人脸而言,眼睛、鼻子、嘴巴等都有很弱的点对称性,广义对称变换正是用来描述物体的点对称。文献[3]利用广义对称变换定位人眼进而提取脸部特征,文献[4]在广义对称变换的基础上,定义了一种方向对称变换DST(DirectionalSymmetryTransform),用于人眼的精确定位。以上的对称变换利用了人眼的中心强对称和脸部特征的生理几何分布,对人脸偏转、脸部表情变化、光照变化等因素的左右不敏感,因而具有很好的鲁棒性。但是,以上对称变换的计算需要在大范围的尺度上进行,计算量很大,而且,由于只是描述了各点的局部对称性,当它用于人眼的定位时产生的候选点较多,不太利于眼睛的精确定位。

结合广义对称变化和方向对称变换的优点,于是有了一种新的对称变换——离散对称变换,它不仅具有广义对称变换描述物体对称性大小的特点,而且通过对各点领域的考察,去除那些处于规则区域外的点,可大大降低计算量,实现眼睛定位的快速算法。广义对称变换把图像中的所有像素点同等对待,每个像素点都计算其对称值。事实上,在图像中物体的单一背景区域中,大面积的灰度均匀区域上的像素点在一定的尺度范围内不具有明显意义的对称性,所以就不必计算它的对称值,而这样的像素点在人脸图像中占了很大一部分,如头发、脸部除眼、嘴等特征区域之外的区域及部分身体区域。眼、嘴、鼻子等特征区域在大于其轮廓的范围内灰度有变化,这样的区域我们把它称为灰度不均匀区。离散对称变换以减少计算量为出发点,在计算对称之前加入一个对图像灰度不均匀区域的检测步骤以减少计算量,然后定义了一个与广义对称变化相似的对称算子来计算点对称。

离散对称变换实际上可看成一种非线形滤波,由于对每个像素点都进行相同的领域处理,适合于并行处理,在定位圆形物体圆心时,算子领域采用圆环。通过图像的离散对称变换后,眼睛中心点附近像素的对称值一般都处在对称值最大的前四、五位,对具有强对称值的候选点,采用两条简单的规则进行筛选。规则(1):邻近像素合并,一般选取对称值内最大的前10位候选点,将其中位置相邻的候选点合并到它们中对称值最大的像素处;规则(2):几何约束判别,对经过规则(1)筛选后的候选点,利用眼在脸部的几何分布性质进一步筛选,取基本符合眼睛分布规律的两点作为最终的定位双眼结果。

3基于肤色、几何特征和灰度信息的人眼定位

根据人眼灰度变化非常明显这一显著特点,本文提出的基于肤色、几何特征和灰度信息的人眼定位算法主要由以下几步组成。

(1)肤色提取

肤色是人脸的重要信息,不依赖于面部的细节特征,对于旋转、表情等变化情况都能适用,具有相对的稳定性并且和大多数背景物体的颜色相区别。AnilK.Jain曾专门统计研究了皮肤的色彩模型,他提出的方法属于色彩空间中的聚类模型,这一类肤色模型的建立要选取一种合适的色彩空间。文献

[1]采用非线形分段肤色分割得到肤色区域在CbCr空间中近似于椭圆,可用如下公式表示:

(5)

a=25.39,b=14.03,ecx=1.60,ecy=2.41,

θ=2.53,cx=109.38,cy=152.02,

若大于1则不是肤色,否则为肤色。

AnilK.Jain的Cb、Cr椭圆聚类方法肤色分割效果较好,但是对于亮度较低的区域容易误判为肤色,对于亮度较高的肤色区域会误判为非肤色区域。本文针对AnilK.Jain的Cb、Cr椭圆聚类方法肤色分割的缺点,首先对亮度信息进行分段判断,这样克服了在高亮度区域和亮度较低的区域中存在的不足。通过多次实验统计表明,对于亮度小于80的非肤色像素点会误判为肤色点,比如眼睛区域等。对与大于230的肤色像素点会误判为非肤色点(如图1所示)。因此采用如下分段方法:

①对于亮度低于80像素点直接判决为非肤色像素点。

②对于亮度在80—230之间的像素点采用肤色的椭圆聚类方法

③对于亮度大于230的像素点进行判决时,将肤色的聚类时的椭圆的长短轴同时扩大为原来的1.1倍

(a)原图像(b)AnilK·Jain的方法(c)本文的方法

图5肤色提取示意图

图5.c与图5.b比较,在人眼区域此图有更好更细致的检测效果。实验结果表明本文的方法较之其它的肤色提取方法在人的五官部分有更好更细致的检测效果。

(2)肤色区域分析

因为人脸肤色建模是根据皮肤颜色来确定的,有可能把脖子、肩膀、手臂等肤色区域或是与肤色相近的其他物体也包括了进去,所以得到的只能是人脸的大致区域,需要进一步通过各种算法将那些非人脸区域尽可能都去除掉。为了排除非人脸区域,依据人脸区域的空间特征,本文选取了连通区域像素数、区域填充率和长宽比判断因素。

●连通区域像素数

因为人脸有一定的大小,通常人脸小于19*19则无法识别,因此对于n值小于300的块我们认为是非人脸将其值置为背景是合理的。

●区域填充率

对于二值化之后的一个连通区域,系统中使用该区域的像素数与外接矩形的像素数的比值来表征这个区域的空间属性。假设S’是外接矩形的像素数,S为目标区域的像素数,若0.5<S/S’<0.9,就暂时保留该区域,否则就将其删除。

●长宽比

通过对人脸特征的统计,人脸的长宽比应该大致在这样的一个范围内:0.6<人脸长宽比<1.5。考虑到人脸区域和脖子区域大都是连通的,所以实际处理中将比例修正到如下的范围内:0.6<人脸长宽比<2。

通过以上判断规则,得到的人脸候选区域结果(如图6(a)所示)。

(3)形态学图像处理

肤色提取后,图像中仍然含有一些噪声(主要在背景中)。噪声的存在显然会使后续的操作更为复杂。为了既能把图像中的噪声点去掉又能保持图像有用信息不发生变化,本文使用形态学滤波器对人脸候选区域进行除噪。通过形态学处理不但可以过滤由于噪音或者其他原因引起的一些较小的不可能为人脸的类肤色区域,减少候选区域和提高检测速度,而且可以填补肤色区域内的较小空洞,防止这些空洞被误认为是人脸器官所造成,为后续检测区域降低了误判的可能性。

(a)标记人脸侯选区域(b)形态学滤波后的图像(c)人眼粗定位结果

图6眼睛粗定位示意图

(4)基于几何规则的人眼粗检测

经过以上步骤处理,系统基本上可以得到人脸器官的色块图,而各个色块的中心点是眼睛的候选点。通过人脸面部的几何特征规则,可以迅速粗略检测出人眼,其结果如图6(c)所示。规则如下:

①在候选人脸区域上面的1/2区域内,搜索孤立黑块,并求出各个黑块的中心点坐标。在求中心点坐标时,本文使用公式(6)计算黑块像素点的平均坐标点作为中心点坐标,并将中心点的坐标按x坐标值由小到大进行排序。Bm×2是黑块像素点的坐标矩阵,一共m行,B(i,1)是黑块像素点的横坐标,B(i,2)是黑块像素点的纵坐标。

(6)

②双眼中心距应在某个范围之内(如30~100个像素距离)。

③双眼中心点的连线与x轴正向夹角应在一定范围之内(如-π/18~π/18)。

在上述过程中,已经初步确定了候选眼睛对。但由于眉毛在眼睛的上方,若只依据上述规则定位眼睛,我们常常会碰到以下两种情况:①检测到眼睛对和眉毛对;②检测到眼睛对以及眼睛-眉毛对。然而,人眼既具有灰度值较低的区域,同时也具有灰度值较高的区域,且灰度值具有突变性。因此,本文就根据人眼灰度变化非常明显这一特征,通过计算候选眼睛对的灰度复杂度来进行精确定位。

假设检测出的图像块,每块总共m行n列,则图像块的复杂度Com(k)的计算公式由(7)定义。

(7)

其中,Bi,j为图像块第i列第j行像素点的灰度值。

此图像块的复杂度公式Com(k)计算了图像块灰度值的纵向一阶加权导数,min(j,m-j)即为权,离图像中心越近导数的权越大,横向坐标没有加权。实验证明,这种定义符合人脸特征器官复杂度的计算。类似的也可以有横向一阶加权导数。但是通过实验发现人眼的纵向一阶加权导数大,所以我们采用图像块灰度值的一阶纵向加权导数。

(a)相应的灰度图像(b)人眼精确定位结果

图7眼睛精确定位示意图

计算候选眼睛块的图像复杂度,根据人眼灰度变化非常明显这一特征,找出复杂度最大的两小块,即为要找的眼睛块(如图7(b)所示)。

4实验结果分析

根据上面介绍的5个步骤,对眼睛的定位实验结果如图8所示。

(a)原图像(b)肤色提取后的图像(c)标记人脸候选区域

(d)形态学滤波结果(e)人眼粗定位结果(f)人眼精确定位结果

图8基于肤色、几何特征和灰度信息的人眼定位结果示意图

通过实验结果可得到如下结论:

①采用由粗到精的检测策略,先通过肤色特征对人脸区域进行预选,再用几何特征进行人眼粗定位,具有很高的检测速度;本文针对AnilK·Jain的Cb、Cr椭圆聚类法的缺点,增加了亮度信息的判断,实验证明,该方法能很好的提取人脸面部的眼睛、嘴巴等;

②经过几何特征进行粗定位后,再充分利用人眼灰度变化明显这一特征,计算候选眼睛对的灰度复杂度,对眼睛进行精确定位;

③本检测算法具有很强的鲁棒性,受背景环境、尺寸大小影响小。

5小结

一般的眼睛定位算法分为两个步骤:(1)粗定位。在精确定位眼球中心前一般要找到眼睛的大致位置,常见的方法有:对称性法、边缘点积分投影曲线极值位置判断法、神经网络法、多分辨率的马赛克图法等。(2)眼球的精确定位。常用的方法有:基于霍夫变换、几何及对称性检测、弹性模板等等。每个算法都有自己的优点和缺点也即局限性,如计算量太大、计算速度慢、算法不容易实现或正确定位率不高等。主要原因是由于人脸作为一个非钢体,在信息输入时存在尺度、位置、姿态变化问题,很难做到面面俱到,十全十美的算法。

本文提出的基于肤色、几何特征和灰度信息的人眼定位算法有效的平衡了检测速度和稳定性之间的矛盾,实验证明,该算法定位效率高,并对背景、尺寸等细节具有很好的适应性,在人脸实时检测系统中具有很好的应用价值。

参考文献

[1]Rein-LienHsuandAnilK.Jain,FaceDetectioninColorImages[J]IEEETrans.PatternAnalysisandMachineIntelligence,may2002

[2]王磊,莫玉龙.基于霍夫变换和眼睛弹性模板的眼睛特征提取[J].红外与毫米波学报,1999,2(18):53-60

[3]CaiJ.GoshtasbyA..Detectingfaceincolorimages.ImageandVisionComputing[J],1999,18(1):63-75

[4]CannyJ.AComputationalApproachtoEdgeDetection[J].IEEETransPatternAnal&MachIntell,1986,8(6):619-698

[5]于威威,滕晓龙等.复杂背景下人眼定位及人脸检测.计算机仿真[J],2004第21卷,第7期

[6]陈杨,陈荣娟等编著.MATLAB6.X图形编程与图像处理[M].西安:西安电子科技大学出版社

[7]朱夏君.人脸识别的研究及眼睛定位算法[C].硕士学位论文,浙江工业大学,2004