自动提取人脸关键特征点

               

自动提取人脸关键特征点

                                                                                                                                          作者:顾华 苏光大 杜成

近年来,人脸识别的研究成为模式识别和人工智能领域的一个研究热点。人脸识别过程受到很多因素的干扰,准确地提取人脸的合适特征是进行正确识别的关键,在人脸识别的各类方法中,对基本特征如眼睛、鼻子和嘴巴等的定位都是必不可少的步骤。我国的科研人员在人脸图像特征提取方面,进行了大量的研究工作,主要集中在面部几何特征点的提取;变换域中的面部特征提取;利用变形模板进行特征提取等几个方面;另外还有利用Snake以及ASM 等提取特征边缘的迭代算法来定位特征。

    本文提出了基于人类视觉特性原理,利用人脸的几何特征,提取具有尺寸、旋转和位移不变性的人脸特征点方法,可以快速、有效地确定出人脸主要器官——眼睛、鼻子和嘴巴等部位的关键特征点位置;在进行处理前无需对样本进行尺寸的规范化,有助于提高对人脸正面像识别的准确率和增强抗干扰能力。

人脸的关键特征点

    根据人类视觉特性在人脸识别中的应用,人脸特征的整个几何结构足够用于识别。常用的方法有提取眼、口、鼻、眉等几个特征,利用它们之间的距离比例关系来区别人脸(即常用的三停五眼标准)见图1所示;还有利用可变形模板来精细地描述人脸几何形状。

   对于一幅人脸图像,通过定位特征点可以方便地抽取人脸的各部分特征,若以这些特征点为基准对抽取的各个特征值进行归一化,则这些特征值具有平移、旋转和尺度上的不变性,通过这样对人脸进行规范化处理,可以将不同大小、方向和水平旋转等情况的人脸统一起来,扩大人脸库的入库范围,提高人脸识别的速度。

    人脸关键特征点的定位方法:选取人脸的9个特征点(如图2所示),这些特征点的分布具有角度不变性,分别为2个眼球中心点、4个眼角点、两鼻孔的中点和2个嘴角点。在此基础上可以容易地获得与识别有关的人脸各器官特征以及扩展的其他特征点位置,用于进一步的识别算法。

特征点提取算法

    在进行人脸特征提取时,由于无法将局部的边缘信息有效地组织起来,传统的边缘检测算子不能可靠地提取人脸的特征(眼睛或嘴的轮廓),但从人类视觉特性出发,充分利用边缘及角点的特征来进行人脸关键特征点的定位,则会大大提高其可靠性。

    其中选择Susan算子用于提取局部区域的边缘和角点特征。Susan算子的原理为:以半径为像素(本文实验中取 = 4)的圆形区域(面积覆盖像素位置)为掩模,考察图像中的每个点在该区域范围内的所有点的像素值与当前点的值的一致程度:

    其中,表示当前像素点,表示区域范围的其它点,代表该像素的灰度值;是两个像素灰度值的相关性度量;为像素间差异阈值,表明两个像素灰度值相差多少被判作不同,一般可设为27;代表USAN面积,USAN面积越小,则边缘强度越大;为几何阈值,可以理解为USAN面积的最大值,超过这个值就认为该点不是边缘,通常可以设定为;

    根据Susan算子的特性,它既可用来检测边缘,又能用来提取角点。因此与Sobel、Canny等边缘检测算子相比较而言,Susan算子更适合进行人脸眼部和嘴巴等特征的提取,尤其是对眼角点和嘴角点的自动定位。

眼球及眼角的自动定位

    在眼球及眼角的自动定位过程中,首先采用归一化模板匹配的方法初步定位人脸,脸部模板见图3(a)。在整个人脸图像中确定出脸部的大概区域。通常的人眼定位算法根据眼睛的谷点性质来定位,而此处则采用将谷点的搜索和方向投影以及眼球的对称性相结合的方法,利用两眼之间的相关性可以提高眼睛定位的准确度。对脸部区域的左上和右上部分进行梯度图积分投影,并对积分投影的直方图进行归一化,首先根据水平投影的谷点确定出眼睛在y方向的大致位置,然后让x在较大的范围内变化,寻找此区域内的谷点,将检测到的点作为两眼的眼球中心点。眼球的定位过程见图3所示。

    在获得两眼球位置的基础上,对眼部区域进行处理,首先采用自适应二值化方法确定门限阈值,得到眼部区域的自动二值化图像,然后结合Susan算子,利用边缘和角点检测的算法在眼部区域内准确定位内外眼角点。

    经过上述算法获得的眼部区域边缘图像见图3(b)所示。在此基础上对图中的黑色边缘曲线进行角点提取即可获得准确的两眼内外眼角点位置,提取结果见图3(c)所示。
      
鼻域特征点的自动定位

    将人脸鼻子区域的关键特征点确定为两个鼻孔中心连线的中点处,即鼻唇中心点。人脸鼻唇中心点的位置相对较稳定,而且对于人脸图像归一化预处理时也可起到基准点的作用。

    以找到的两眼球位置为基础,采用区域灰度积分投影的方法确定两个鼻孔的位置,如图5所示。

    首先截取两眼瞳孔宽度的条状区域,进行Y方向积分投影,然后对投影曲线进行分析。可以看到,沿着投影曲线自眼球位置的Y坐标高度向下搜索,找到第一个谷点的位置(通过调整选择适当的峰谷Δ值,忽略中间可能由于脸部疤痕或眼镜等因素产生的毛刺影响),将这个谷点作为鼻孔位置的Y坐标基准点;第二步选取以两眼球X坐标为宽度,鼻孔Y坐标上下δ像素(本文中选取δ=[鼻孔Y坐标-眼球Y坐标]×0.06)为高度的区域进行X方向积分投影,然后对投影曲线进行分析,以两眼瞳孔中点的X坐标作为中心点,分别向左右两侧进行搜索,找到的第一个谷点即为左右鼻孔的中心点的X坐标。计算两个鼻孔的中点作为鼻唇中点,获得鼻唇中心点的准确位置,并划定鼻子区域。

嘴角的自动定位

    由于人脸表情的不同可能会引起嘴巴形状的较大变动,而且嘴巴区域比较容易受到胡须等因素的干扰,因此嘴部特征点提取的准确性对于识别影响较大。由于嘴角点的位置受表情等影响相对变动较小,角点的位置较准确,所以采取嘴部区域的重要特征点为两个嘴角点的定位方式。

    在确定了双眼区域以及鼻域特征点的基础上,首先利用区域灰度积分投影的方法确定自鼻孔以下Y坐标投影曲线的第一个谷点(同理,需要通过适当的峰谷Δ值来消除由于胡须、痣痕等因素产生的毛刺影响)作为嘴巴的Y坐标位置;然后选定嘴巴区域,对区域图像利用Susan算子进行处理,得到嘴部边缘图后;最后进行角点提取,便可以获得两个嘴角的精确位置,如图6所示。

实验结果及分析

    本文实验主要基于清华大学建立的270人脸库,库中包含每个人7张照片(正面、左右旋转小角度、左右旋转大角度以及表情变化和光照变化等),图像大小为336*480,人脸在图像中所占的面积大于50%。实验结果如图7中所示,自动定位的结果与手工标定位置相比差5个像素以上则视为定位错误,全部正面脸的关键特征点定位准确率达到98%以上。对于小角度旋转的人脸也取得较好的定位效果,处理大角度旋转人脸时定位准确率略有下降。同时定位算法对表情变化不敏感,如果图像质量较好对配戴眼镜和光照变化也不敏感,当然,强侧光会造成部分影响。采用本文算法在整张图像中检测全部特征点需要约265ms时间。与以往的人脸特征点提取方法相比较,本文方法简单、快速、准确,是一种可行的人脸特征点定位方法。

    另外,利用摄像头实时动态采集的人脸集进行大量测试,也同样取得了不错的效果,基本可以达到实用的要求,见图7中的(b)所示。

    分析人脸关键特征点定位的结果,如果仅利用灰度图积分投影的峰谷来判定特征点的Y坐标位置,对于多样化的人脸结构和图像质量来说不够鲁棒,个别情况会发生较大误差。因此本文充分利用人脸结构的视觉先验知识,在对关键特征点定位时加入了经过训练的先验比例尺关系,即从额头到眼睛、眼睛到鼻孔、鼻孔到嘴巴和嘴巴到下颌的Y坐标比例关系,由此可以排除明显的单个关键点的错误定位,获得比较满意的结果。

    本文针对人脸识别中关键特征点提取,给出一种自动获得人脸9个关键特征点精确位置的方法。实验证明该方法对人脸图像特征点自动定位准确、速度快,有助于提高人脸识别算法的识别率。在此基础上,提出用两眼的外眼角点代替两眼瞳距作为水平基准,以鼻唇中心点位置到两瞳孔中点的距离作为竖直基准,来进行图像预处理的旋转和尺度校正,将图像调整到标准的状态,为进一步的人脸特征提取和识别工作提供了很大的帮助。

    人脸的结构非常复杂,准确地定位每一幅人脸图像的特征是相当困难的。本文方法本身并不受图像大小的约束,对绝大多数灰度正面人脸图像的特征点都能准确地自动定位。在小角度旋转人脸也取得较好的定位效果,并且对表情和光照不敏感,但处理大角度旋转人脸仍然有一定的局限,定位准确率稍降。有待于继续研究,进一步提高自动定位的鲁棒性。

    (作者单位:图像图形研究所,清华大学电子工程系)


           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/qq_43747700/article/details/87707420