【研究意义】随着社会的发展,基于生物特征的身份验证技术发展迅猛,包括指纹识别、人脸识别、步态识别、虹膜识别、视网膜识别、声音识别等。与其他的生物识别相比较,人脸识别[1]具有直接、安全、方便等优势,是近些年研究比较活跃的领域。在人脸识别应用中,人脸检测[2]和人眼定位是必不可少的步骤,直接影响到人脸识别结果的准确性。人眼定位是指在人脸范围内,检测出人眼在人脸中的准确位置,属于目标检测的范畴。【前人研究进展】目前国内外在人眼定位领域提出了很多行之有效的研究方法,主要有3类:第1类方法基于人眼在人脸的几何特征[3]、人脸肤色[4]及灰度变化等先验知识,如利用眼睛区域灰度比面部肤色灰度低的积分投影函数[5]、利用眼睛区域灰度变化率大的特点的方差投影函数以及基于人脸特征部位相对固定的几何关系的方法,此类方法相对简单实用。第2类方法基于模板匹配[5],将待搜索的图像与预先定义好的人眼模板进行对比,通过一定的匹配标准(如曼哈顿距离、欧式距离等)选取出相似度最大的结果。基于相似度模板匹配的方法虽然原理简单,但需要大量的人眼模板,且计算量大、耗时久。第3类方法是基于统计学习的Adaboost方法[6],首先训练若干弱分类器,训练结束后,对分类误差率小的分类器加大其权重,减少分类误差率大的分类器的权重,从而组成一个分类能力好的强分类器。此类方法实时性和准确性都较高。【本研究切入点】前述已有算法取得了一定成功,但是实际情况中的人眼定位应用可能遇到很多问题,例如,人脸由于外貌、表情的不同,具有可变性;人脸图像容易受到光照的影响,光照强度的不同,图像的明暗度将会改变;眉毛与人眼的位置相近,且具有一定的相似性,特别是在头部有偏转角度时,会造成错误的定位;还有人脸面部佩戴的眼镜等装饰物或遮挡物也影响定位的准确性。【拟解决的关键问题】在现有基于肤色与几何特征的人眼定位算法基础上,提出一种基于边缘检测与双向灰度投影的人眼定位方法,以期能够有效地解决肤色检测容易受到光照影响的问题,且能够更加精确地定位到人眼瞳孔位置。
1 算法设计 1.1 总体思路本算法采用“由粗略到精确”的定位策略。对于输入的人脸图像,先通过肤色检测和边缘检测粗略检测出左右眼的大概位置,相比在整张人脸图中去定位人眼的位置,该步骤能够减少大量的计算量。然后对数变换处理左右眼框图,人脸图像在不同的光照强度下,明暗度不近相同,对数变换的目的是将图像的低灰度值部分扩展,将其高灰度值部分压缩,以达到强调图像低灰度部分的目的,使图像灰度分布不至于过亮或过暗以至于影响最后的定位结果。之后利用双向灰度投影[7]更进一步地定位到人眼瞳孔所在的精确位置,输出人眼所在人脸图像中的准确位置信息。采用灰度投影的原因是其能够很好地利用人眼瞳孔区域的灰度值比瞳孔周边区域的灰度值低的特点获取鲁棒性更高的结果。具体的算法流程如图 1所示。
人脸主要特征部位包括鼻子、嘴巴、眼睛和头发等,本研究利用肤色检测,将这些特征从人脸中独立分割出来。
算法模型:自然界中,我们将R、G、B定义为三原色,其他的所有颜色都可以用RGB颜色空间组合出来。但是RGB颜色空间将图像的色度信息和亮度信息混合在一起,不利于本研究所需要的肤色提取。经实验证明,人脸肤色在YUV色彩空间[8]具有很好的聚类性。YUV是指亮度参量和色度参量分开表示的像素格式,所以运用YUV就可以避免亮度与色度的相互干扰。我们以RGB颜色空间为基础构建YUV色彩空间。RGB转换成YUV的标准公式如公式(1):
$\left[ \begin{array}{*{35}{l}} Y \\ U \\ V \\ \end{array} \right]=\left[ \begin{matrix} 0.257 & 0.504 & 0.098 \\ -0.148 & -0.291 & 0.439 \\ 0.439 & -0.368 & -0.071 \\ \end{matrix} \right]\left[ \begin{matrix} R \\ G \\ B \\ \end{matrix} \right]+\left[ \begin{matrix} 16 \\ 128 \\ 128 \\ \end{matrix} \right]。$ | (1) |
转换之后通过设定阈值进行图像二值化处理,将人脸肤色区域置1,其他区域置0。经过图像二值化处理,人脸图像就变成了两部分,眼睛、眉毛、嘴巴和头发组成的黑色区域和人脸肤色的白色区域。图 2展示了一例采用肤色分割处理的结果。
实验发现,当受到强烈光照和干扰背景的影响,基于肤色的人脸特征分割就不是很理想。所以本研究利用边缘检测和肤色检测相结合的办法来处理。
1.3 基于边缘检测的人脸特征分割边缘检测[9]是图像处理和计算机视觉中的基本问题,边缘检测的基本思想是通过检测每个像素和其邻域的状态,以决定该像素是否位于一个物体的边界上。一个像素位于一个物体的边界上,则其邻域像素的灰度值的变化就比较大,边缘检测就是标识出数字图像中灰度值变化明显的点,其实质是采用某种算法来提取出图像中对象与背景间的交界线。边缘检测的算法有Sobel算子、Prewitt算子、Laplacian算子、Canny算子等。本研究采用的是Sobel算子,原因在于Sobel算子利用快速卷积函数,简单有效。
算法模型:Sobel算子包含两组3×3的矩阵,分别为横向及纵向,将之与数字图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。横向和纵向两组卷积因子分别列出如下:
$H=\left[ \begin{matrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \\ \end{matrix} \right],$ | (2) |
$V=\left[ \begin{matrix} 1 & 2 & 1 \\ 0 & 0 & 0 \\ -1 & -2 & -1 \\ \end{matrix} \right]。$ | (3) |
以横向的卷积因子为例,假设原始灰度图像为P,大小为m×n,p(i, j)为P图像中对应位置(i, j)处的灰度值,经过Sobel边缘检测之后的图像为S,大小仍为m×n,s(i, j)为S图像中相应坐标的灰度值,则满足:
$S=P\otimes H\left( 1\le i\le m,1\le j\le n \right)。$ | (4) |
用图 2中的原图为例,图 3a为在MATLAB中边缘检测得到的结果。由图 3a可以看到图像中存在一些噪点且其特征聚类不明显。图 3b为进行多次图像形态学的开闭运算、腐蚀和膨胀算法消除噪点影响后的结果。最后将上述基于肤色和基于边缘检测的特征分割结果逻辑或然后取反,就能得到图 3c中特征分明的效果。
经过上述步骤之后,人脸的特征基本成块分离开来。然后根据人眼在人脸的基本几何位置关系粗略地找出人眼块的位置。“三庭五眼”是人脸长与脸宽的一般标准比例,如图 4所示,设定人眼在人脸图中的几何位置关系如下(假设人脸图像高度为h,宽度为w):
人眼位于人脸的上半部分(≤h/2),且在额头的下面(≥h/5);
眼角外侧到同侧发际边缘,刚好一个眼睛的长度,所以人眼满足w/5≤人眼位置≤4×w/5;
人眼块与噪声块的区分:当白块面积≤8时,本算法认为此白块为噪声块,算法将自动消除掉这些噪声块的影响;
人眼块和眉毛块的区分:当白块数量≥3时,取纵坐标大的两个白块为人眼块;当白块数量≤1时,则检测人眼失败。
1.5 基于灰度投影的人眼精确定位根据上述方法分别截取出左眼和右眼框图,采用对数变换来增强眼球的对比度。对数变换的公式如(5) 所示:
$g=c\text{log}~\left( f+1 \right),$ | (5) |
其中f为左右眼的灰度图像,c为常数,g为对数变换之后的图像,且f和g的取值范围均为[0, 1]。
当人的左右眼经过对数变换的处理后,就可以单独分析左右眼的眼球所在位置,提高准确性。在将前面处理后的灰度图像做水平和垂直方向的灰度投影时发现,灰度投影图像中,在人眼瞳孔位置的灰度值要明显低于周边眼球部位的灰度值,所以我们将垂直和水平方向的投影图做曲线拟合,用光滑的曲线去拟合灰度投影图,然后求取光滑曲线的极值。在水平和垂直方向得到的极值组成的横纵坐标就是人眼瞳孔所在的精确位置,这样就完成了人眼的精确定位。图 5是通过曲线拟合进行人眼定位的例子。
为了验证本算法的可行性和准确性,本研究在MATLAB的平台(CPU:Intel core i7-4510U、主频:2.00 GHZ)上进行试验。本研究的照片数据来源:网上随机抽取了100张具有不同代表性的人脸照片和由数码摄像头拍摄的20张照片,其中包括不同年龄段、不同干扰背景、不同光照、不同姿态的人脸图(图 6)。为了有效评估本算法,选择了传统的肤色检测算法进行比较,两种算法在120幅人脸图像上的实验结果如表 1所示。
图 7是部分人眼定位的效果图,其中图 7a是正常拍摄的图片,图 7b是低头照片,图 7c是背景较暗的侧脸照,图 7d是背景较暗的偏头照,图 7e是强光照下的抬头图,图 7f是有遮挡物的照片,图 7g是强光照下的侧脸图,图 7h是偏头角度大的照片,图 7i是成人戴眼镜的照片,图 7j是小孩佩戴眼镜的照片。
为了检验本算法的抗噪声干扰能力,本研究将上述的120张人脸图片人为的添加上不同的高斯噪声(μ为高斯噪声的均值,σ2为高斯噪声的方差),实验结果如表 2所示。
由以上结果可以看出,本算法相对于传统的肤色检测而言,在检测的精准度上有所提升,并且对于不同光照和干扰环境有一定的适应性,对于不同姿势的人脸也能准确地定位。但是本算法无法很好地处理低分辨率或者存在噪声的人脸图像,在人脸受到环境或者噪声干扰严重的时候,本算法的定位成功率明显降低。
3 结论本算法在检测出人脸的基础上,采用由粗略到精确的人眼定位策略,肤色检测和边缘检测相结合,几何规则粗略地定位左右眼,最后运用灰度投影和曲线拟合精确地检测出瞳孔的位置。实验证明,本算法在一定的程度上能有效地定位人眼。但是鉴于目前人眼定位成功率有很大的提升空间,所以该算法还有需要改进的地方,未来的工作方向包括:增加滤波模块,增强算法的抗干扰能力;改进投影的方式,使得投影的结果能明显地体现出瞳孔与眼球周边遮挡物的不同。
[1] |
TURK M, PENTLAND A. Eigenfaces for recognition[J]. Journal of Cognitive Neuroscience, 1991, 3(1): 71-86. DOI:10.1162/jocn.1991.3.1.71 |
[2] |
梁路宏, 艾海舟, 旭光祐, 等. 人脸检测研究综述[J]. 计算机学报, 2002, 25(5): 449-458. LIANG L H, AI H Z, XU G Y, et al. A survey of human face detection[J]. Chinese Journal of Computers, 2002, 25(5): 449-458. |
[3] |
李璇, 罗敏, 施荣华, 等. 复杂背景下基于肤色和几何特征的人眼定位[J]. 计算机测量与控制, 2005, 13(3): 281-283. LI X, LUO M, SHI R H, et al. Eyes location based on skin color and geometry characteristics in complex background[J]. Computer Measurement & Control, 2005, 13(3): 281-283. |
[4] |
阳崇云, 桑农, 陈张一, 等. 基于肤色模型与Adaboost算法的多视角人脸检测[J]. 华中科技大学学报:自然科学版, 2015, 43(S1): 271-275. YANG C Y, SANG N, CHEN Z Y, et al. Multi-view face detection method based on skin-color model and Adaboost algorithm[J]. Journal of Huazhong University of Science and Technology:Natural Science Edition, 2015, 43(S1): 271-275. |
[5] |
王江波, 李绍文. 基于AdaBoost算法和模板匹配的人眼定位[J]. 计算机测量与控制, 2012, 25(5): 1347-1349, 1353. WANG J B, LI S W. Eyes location based on AdaBoost algorithm and template matching[J]. Computer Measurement & Control, 2012, 25(5): 1347-1349, 1353. |
[6] |
曹莹, 苗启广, 刘家辰, 等. AdaBoost算法研究进展与展望[J]. 自动化学报, 2013, 39(6): 745-758. CAO Y, MIAO Q G, LIU J C, et al. Advance and prospects of AdaBoost algorithm[J]. Acta Automatica Sinica, 2013, 39(6): 745-758. |
[7] |
王文成, 常发亮. 一种基于区域投影的人眼精确定位方法[J]. 光电子·激光, 2011(4): 618-622. WANG W C, CHANG F L. A precise eye localization method based on region projection[J]. Journal of Optoelectronics·Laser, 2011(4): 618-622. |
[8] |
GONZALEZ R C, WOODS R E, EDDINS S L. 数字图像处理(MATLAB版)[M]. 阮秋琦, 译. 北京: 电子工业出版社, 2005: 144-178. GONZALESR C, WOODS R E, EDDINS S L.Digital image processing using MATLAB[M].RAUN Q Q(trans).Beijing:Publishing House of Electronics Industry, 2005:144-178. |
[9] |
乔闹生, 邹北骥, 邓磊, 等. 一种基于图像融合的含噪图像边缘检测方法[J]. 光电子·激光, 2012(11): 2215-2220. QIAO N S, ZOU B J, DENG L, et al. An edge detection method based on image fusion in a noisy image[J]. Journal of Optoelectronics·Laser, 2012(11): 2215-2220. |