人脸检测中的眼睛定位算法研究(1)(2)
2014-02-22 02:38
导读:图1 眼睛的变形模板 简单二维眼睛模板可以用如下 数学 形式表示: (2) 在进行眼睛定位时,不断改变简单眼睛模板的尺寸参数S和眼球中心位置参数(x,
图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],求解时阈值取得较高,使得边缘点仅由眉毛和眼睛的强边缘以及瞳孔产生的强边缘组成,而不会包含由鼻子的轮廓产生的弱边缘。随后将边缘点进行分组,可以得到几组分离的边缘,其中位于下面的两组分别为左右两眼产生的边缘,取这两个边缘组的中心作为人眼的中心。边缘分组算法中,将分别包含每个边缘分组的最小矩形作为人眼检出,最先检出的两个分组分别对应左眼和右眼。当出现两个分组后算法立即结束,提高了执行效率。