一种改进的基于人脸图像的瞳孔精确检测方法

2018-04-13 10:03姜太平汪小帆
小型微型计算机系统 2018年4期
关键词:人眼瞳孔人脸

姜太平,汪小帆,潘 祥,刘 恒

(安徽工业大学 计算机图像处理研究所,安徽 马鞍山 243000) E-mail:Wang_xiaofan427@163.com

1 引 言

在计算机视觉研究领域,通过提取人眼特征开展技术研究一直是该领域的主要研究方向之一.瞳孔检测作为人眼检测中一个重要的中间环节,在表情识别,人机交互,人工智能,眨眼检测等领域有着重要的应用前景.T.Megaw等[1]通过提取瞳孔的参数特征来评估驾驶员的疲劳程度,避免交通事故的发生.文献[2]中通过提取的瞳孔特征参数进行眼球空间建模和视线估计建模,实现效果更好的人机交互系统.此外,利用精确的瞳孔检测提取的瞳孔直径、位置、大小等检测结果,可用于注意力监测,心理研究,医学研究等方面的应用.Kaklauskas等[3]设计开发了一套通过提取分析学生的瞳孔特征来评估学生学习状态的分析系统.本文的瞳孔检测方法是通过图像处理的手段将在正常光照条件下获得的人脸图像中的瞳孔精确检测出来,包括瞳孔区域的分割和瞳孔轮廓的拟合.

瞳孔的检测往往会受到人眼周边如睫毛、眼睑、眼镜等信息的干扰,同时也受图像噪声、白光边缘的影响,这给瞳孔的检测精度带来了一定的难度.Hansen等[4]通过人眼周边纹理,颜色分布和相似性度量等特征构造人眼模型,提出一种基于人眼形状、外观和两者混合的人眼瞳孔检测技术.该方法人眼模型构造较为复杂,且花费大量的时间.王德朋等[5]提出了一种融合Hough变换和ASM定位瞳孔中心点的方法,显著改善了人眼瞳孔特征点定位的准确性,但该方法只能对相对完整的瞳孔进行定位,在有遮挡的情况下准确性达不到要求.张勇忠等[6]提出了一种基于改进对称变换的瞳孔定位方法,根据人脸的梯度信息,人眼瞳孔区域与人眼反光区域梯度方向不同的特征,改进对称变换算法,完成瞳孔的定位.该方法简单,但准确性较低.研究表明,尽管现有的瞳孔检测方法取得了卓有成效的研究成果,但是对瞳孔检测的精度和效率的需求仍迫切需要解决.

充分考虑算法的复杂度,检测精度,遮挡等因素,本文将在人眼定位的基础上,提出一种结合瞳孔分割和轮廓匹配的瞳孔精确检测方法,主要是在瞳孔分割的基础上完成瞳孔的轮廓匹配,避免了在以往算法中存在的一些盲目搜索,实验结果证明了方法的有效性和可行性.

2 结合瞳孔分割与轮廓匹配的瞳孔精确检测方法

通过对已有人眼检测以及瞳孔检测方法的研究分析,本文提出一种改进的基于人脸图像结合瞳孔分割与轮廓匹配的瞳孔精确检测方法,方法具体流程如图1所示.

图1 方法流程框图Fig.1 Flow diagram of the algorithm

首先,提取人眼图像.通过对大量人眼检测算法的研究分析,本文对人脸图像采用了基于AdaBoost的人脸检测算法,对获得的人脸图像利用水平积分投影和区域特征的算法快速定位人眼区域,然后利用区域投影的方法实现了人眼定位[8].

其次,瞳孔的分割.对获得的人眼图像采用行扫描线法定位瞳孔的中心,然后采用改进的星射线法完成瞳孔边缘轮廓的提取,进而实现了瞳孔的分割,也为下一步瞳孔轮廓的匹配缩小范围.

再次,瞳孔边缘的椭圆拟合.考虑到人眼存在开度较小的情况,本文采用椭圆拟合来实现瞳孔特征的提取.瞳孔拟合样本点的选取对瞳孔拟合的精度至关重要,本文通过改进的样本点选取方案来提高瞳孔拟合的效率.

最后,根据椭圆拟合率的评价方法选出最优椭圆.本文将边段样本点的拟合率作为衡量椭圆拟合程度的指标,提高了椭圆拟合的精确性.

2.1 提取人眼图像

2.1.1 人脸检测

本文采用了Adaboost算法实现了人脸的检测.Adaboost算法是一种基于弱分类器的迭代算法,其核心思想是针对同一个训练集训练不同的分类器,即弱分类器,然后把这些弱分类器集合起来构造一个更强的最终分类器.文献[9]中深入分析了基于Haar-Like小波特征和AdaBoost算法构造强分类器的人脸检测算法.Adaboost算法能够实现人脸的快速定位,整个过程包括:图像预处理,载入分类器,人脸检测.如图2所示,为由原始人脸图像检测出人脸的效果图.

2.1.2 人眼定位

根据图2所示的定位好的人脸图像,首先进行图像的预处理,根据人脸的面部特征缩小定位范围,然后进行图像增强和图像水平灰度投影,进一步缩小人眼的范围.本文采用的人眼定位方法综合了边缘检测,膨胀处理及区域连通性分析算法.

1)边缘检测

本文采用Sobel算子对图像进行边缘处理.Sobel算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘.对噪声具有平滑作用,提供较为精确的边缘方向信息.

2)膨胀处理

对一幅二值图像的膨胀结果是用结构元素在图像上移动,只要结构元素中有一个点与图像中的点是重叠的就可以了.本文首先对边缘检测后的图像进行阈值分割,然后再进行采用圆形结构元素的膨胀处理来恢复目标区域的大小.

3)区域连通性分析

本文采用区域增长法的区域连通性分析.区域增长法是一种递归式的区域增长算法,该算法采用了一个下推堆栈来实现区域增长,下推堆栈可以临时保存区中有关像素的目标.经过连通性分析后,可以得到若干个子区域,通过设定区域像素点个数来筛选出眼睛区域.由此实现在人脸基础上的人眼定位,如图3所示.

图2 人脸检测效果Fig.2 Effectoffacedetection图3 提取的人眼图像Fig.3 Extractionofhumaneyeimage

2.2 瞳孔分割

2.2.1 瞳孔中心的定位

在上文获得了简单的人眼图像,为准确提取出瞳孔的特征参数,需进一步缩小检测的范围.虽然瞳孔图像中的灰度信息丰富,但灰度级相对明显.文献[11]中直接计算图像灰度,灰度最小值点作为瞳孔内的任意一点,以灰度最小值作为阈值对图像进行分割.本文利用瞳孔的几何特性进行瞳孔的定位,由于瞳孔的灰度值最小而且其均值很小,所以在灰度直方图中该区域像素点非常集中,这样就很容易选定瞳孔与非瞳孔区域之间的阈值,根据此阈值遍历图像,粗略求取瞳孔的中心坐标.当瞳孔区域内像素数小于5时,则默认当前瞳孔图像中无瞳孔信息.

具体的实现方法如下:

首先需要进行图像的预处理,包括归一化处理和平滑处理.归一化处理能够将待处理的图像转换成相同形式的标准图像,平滑处理能消除无关的噪声像素点.然后建立人眼区域图像的灰度直方图.如图4所示,由灰度直方图可以看出,图中有三个波峰,分别代表眼睛的三个区域,其中灰度均值最小的一类就是瞳孔区域,适当的在第一,二波峰间选取灰度值作为阈值,就可以将瞳孔从采集的人眼图像中区分出来[10].然后根据此阈值每隔5个像素单位扫描图像,检测灰度值低于阈值点的像素点,并记录.满足阈值条件的像素点有多个,设定低于阈值灰度的像素点为(xi,yi),1≤i≤n,瞳孔的圆心为(x0,y0),则

(1)

图4 人眼图像的灰度直方图Fig.4 Gray histogram of human eye image

根据瞳孔中心的坐标,向四周取尺寸为20*20大小的图像,将瞳孔图像切割出来,作为下一步瞳孔轮廓匹配的基础.图5为该人脸图像瞳孔切割后的效果.

图5 分割后的瞳孔图像Fig.5 Segmentationofthepupilimage图6 星射线法示意图Fig.6 Illustrationofstarraymethod

2.2.2 瞳孔边缘点的提取

为提高瞳孔轮廓匹配的精确度,提取瞳孔边缘点的步骤至关重要.许多文献在提高边缘检测的准确性上进行了算法研究.文献[11]中使用Laplacian边缘检测算子检测瞳孔区域,然后根据圆的对称性计算边缘的圆心和半径.本文根据定位的瞳孔中心(x0,y0),从中心点进行边界的跟踪,采用改进的星射线法找到瞳孔的边缘.传统的星射线法是以中心点为起始点,每隔5度向四周发散射线,对每条射线经过的像素,搜索出具有最大梯度值的像素作为瞳孔的边缘点.由于受眼睑和睫毛的影响,如文献[12]提到当遮挡程度超过一定的瞳孔面积时,瞳孔检测结果就会失去准确性,同时考虑到人在闭眼时上眼睑覆盖的面积比下眼睑多,因此射线的角度区域限制在[-70°,60°]和[120°,250°]内,分别为图6中的α和β角范围内.本文方法可以处理更大遮挡条件下的瞳孔图像.

2.3 瞳孔边缘的椭圆拟合

2.3.1 最小二乘法的椭圆拟合原理

由于人眼的瞳孔近似为圆形,所以人们最早使用Hough圆变换来拟合瞳孔轮廓.文献[13]中采用圆变换算法,但是标准Hough圆变换基于三维参数空间,且受到噪声边缘、睫毛边缘、眼睑边缘的影响,检测结果并不准确,且其计算量非常的大.基于最小二乘法的椭圆拟合是在随机误差为正态分布时由最大似然法推出的一个最优估计方案,它可使椭圆拟合时误差的平方和最小,且在有噪声的影响下仍然能拟合出椭圆来.最小二乘椭圆拟合算法基本原理如下[13]:

椭圆拟合的算法公式:

F(x,y)=Ax2+Bxy+Cy2+Dx+Ey+F=0,B2-4AC<0

(2)

其中A,B,C,D,E,F是椭圆参数表达式的系数,(x,y)是椭圆上的点.

当边缘点个数足够时(至少6个点唯一确定一个椭圆)即可得到椭圆参数,通过椭圆拟合可以得到A、B、C、D、E及F的值.根据拟合的椭圆公式可以得到如下瞳孔参数:

瞳孔中心坐标:

(3)

长短轴坐标:

(4)

(5)

长短轴比:

(6)

本文采用最小二乘椭圆拟合算法对瞳孔边界上的边缘点计算,具体过程如下:

设E为瞳孔分割后的实际边缘,首先随机选取瞳孔边缘上的6个边缘点(离散数据中至少6个点才能得到一个椭圆),然后进行椭圆拟合,得到多个拟合的椭圆边缘,使用非线性最小二乘法找到与实际边缘的欧氏距离最小的拟合椭圆边缘.

算法如下:

实际边缘到椭圆中心的欧式距离表示为:

(7)

拟合椭圆边缘到椭圆中心的欧式距离表示为:

(8)

拟合椭圆边缘到实际边缘的欧式距离表示为:

(9)

取所有实际边缘到拟合椭圆边缘距离平方和小的椭圆作为最小二乘意义下的最优拟合

(10)

式中:

(11)

(12)

2.3.2 最小二乘椭圆拟合的改进

最小二乘椭圆拟合算法提取瞳孔参数的方法使得瞳孔边缘上的所有样本点都参与了运算,因此会对椭圆拟合的最后结果产生偏差且耗时较长.在文献[14]中提出了椭圆拟合算法是基于代数距离提取瞳孔参数,不是基于几何距离,因此在拟合含有噪声的数据时,如果样本点距离较近,拟合出来的最终椭圆和真实的椭圆误差较大,拟合过程及结果就不具有意义,浪费了时间和效率.

EaEb图7 椭圆拟合样本点的选取Fig.7 Selectionofsamplepointstoellipsefitting图8 瞳孔拟合结果Fig.8 Resultofpupilfitting

图9 人脸图像瞳孔拟合结果Fig.9 Result of Face image pupil fitting

图10 瞳孔参数Fig.10 Pupil parameters

最终,该人脸图像的瞳孔拟合结果如图9所示,瞳孔参数如图10所示.

2.4 评价方法

由于采用最小二乘法椭圆拟合完成的瞳孔轮廓匹配没有考虑实际的拟合程度,因此仅能得到具有最小误差的椭圆.为了使获得的椭圆参数与实际的瞳孔参数更为吻合,本文设计了衡量所得椭圆拟合程度—拟合率的评价标准对所得椭圆进行快速筛选评估获得最优椭圆.具体的过程如下:

首先从处理分割后的瞳孔图像出发,由于本文分割的瞳孔边缘点为满足同心条件的双弧段,因此通过ADM(Absolute Difference Mask,绝对差分模板)算子[17]检测瞳孔图像边缘,它能够产生准确的边点集合,然后采用8-联通方向链码边界跟踪方法提取边界[15].由于本文改进的最小二乘椭圆拟合方法存在对瞳孔区域的限制条件,故可以得到两个边段的混合集.通过计算边段组合上的边点落在拟合椭圆上的数量与边段数量的比率来作为椭圆是否在图像中合理存在的依据.比率越高的椭圆即拟合程度越高,将该依据作为选取拟合椭圆的一项指标可以大大降低拟合的误差.

3 实验分析

为了验证本文改进方法的有效性,实验采用在Microsoft Visual Stdio 2010的环境下,应用Windows 7.0 操作系统,同时借助OpenCV开源库.从人脸数据库中选取人脸图像(图像大小均为800*600)作为实验数据,利用文献[8]中的方法(方法1)、文献[13]中的方法(方法2)与本文方法(方法3)对同样的图像做对比测试,完成人脸图像的瞳孔提取实验.

图11 原始图像Fig.11 Source image

本文给出了该3种方法对两幅不同瞳孔姿态的人脸图像的右眼瞳孔拟合结果,以此来比较3种方法的拟合率.

图12 对图像a的瞳孔提取实验结果Fig.12 Experimental result of pupil extraction from image a

实验证明,本文改进后的方法可以准确地实现瞳孔的分割与椭圆拟合.对正常瞳孔的正面人脸图像进行拟合的效果如图12中所示,和方法1,2比较,采用方法3定位更加准确,处理得到的最优拟合椭圆与瞳孔边界几乎吻合.图13为非正常瞳孔姿态下的人脸图像的拟合效果图,和方法1,2相比较,方法3可以减小遮挡情况下的误差,在瞳孔不完整的情况下仍然拟合出较为精确的瞳孔边界.

图13 对图像b的瞳孔提取实验结果Fig.13 Experimental result of pupil extraction from image b

观察表1中各项结果值,方法3的拟合率达到94%左右,明显高于传统的方法.虽然方法2的拟合率与方法3相近,但是方法3简化了椭圆拟合样本点的选取过程,大大缩短了瞳孔拟合时间.此外,当人眼瞳孔受到眼镜干扰时,方法3在准确拟合出瞳孔轮廓的基础上,拟合时间基本稳定.

表1 三种方法拟合率的比较
Table 1 Comparison of three methods′s fitting rate

方 法拟合率(%)运行时间(ms)图a图b图a图b方法189.3383.55398417方法293.5590.53142181方法394.1293.678285

为验证本文方法对人脸图像提取瞳孔特征的普遍有效性,本文从人脸数据库中采集200幅人脸图像用于实验.实验结果表明该方法可以实现瞳孔的精确检测,拟合率达到92%以上,运行时间较少.此外在受到睫毛,眼睑、眼镜等信息的干扰时,保证拟合率的同时,运行时间基本不会受到影响,具有良好的鲁棒性.

4 结束语

在人脸图像研究领域,本文基于现有方法进行分析改进,提出一种结合瞳孔分割和轮廓匹配的单张人脸图像瞳孔精确检测方法.在定位人眼的基础上,首先采用改进的星射线法完成瞳孔的分割,然后在瞳孔拟合过程中改进了常规最小二乘拟合方法,简化该方法中选取最优椭圆的过程,在准确度提高的同时,缩短了运行时间,最后在完成瞳孔拟合步骤之后设计了拟合率评价标准,减少了瞳孔的误检率.本方法在单张人脸图像上可直接分割瞳孔并完成瞳孔轮廓的拟合,具有检测精度高和检测速度快的优点,对后续的基于视频的人脸瞳孔的识别具有重要的意义.

[1] Megaw T,Sen T.Visual fatigue and saccadic eye movement parameters[C].Human Factors and Ergonomics Society Meeting,1983:728-732.

[2] Wu Yan-fan.The human-computer interaction system based on eye tracking[D].Changchun:Gilin University,2014.

[3] Kaklauskas A,Vlasenko A,Raudonis V,et al.Student progress assessment with the help of an intelligent pupil analysis system[J].Engineering Applications of Artificial Intelligence,2015,26(1):35-50.

[4] Hansen D W,Ji Q.In the eye of the beholder:a survey of models for eyes and gaze[J].IEEE Transactions on Software Engineering,2010,32(3):478-500.

[5] Wang De-peng,Lou Zhen.A method combining hough transformation with ASM to locate pupil landmarks[J].Computer System & Applications,2016,25(3):182-186.

[6] Zhang Yong-zhong,Lin Fu,Sun Ling-ming,et al.Pupil precise location method based on symmetry transform[J].Journal of Jilin University,2009,27(3):268-272.

[7] Mahadeo N K,Paplinski A P,Ray S.Model-based pupil and iris localization[C].International Joint Conference on Neural Networks,2012:1-7.

[8] Li Hong-xia.The human eye pupil location a lgorithm based on OpenCV[J].Electronics Quality,2012,33(11):14-17.

[9] Liao Hong-wen,Zhou De-long.Review of adaboost and its improvement[J].Computer System & Applications,2012,21(5):240-244.

[10] Lin Jing,Qin Hua-biao.An eyes location algorithm based on gray histogram and geometrical features[J].Microcomputer Information,2009,25(9):252-254.

[11] Zhao Jing.Iris inner edge location algorithm based on adaptive threshold segmentation and edge detection[J].Science,2012,29(16):41-42.

[12] Pan Lin,Lin Lin,Wei Li-fang,et al.The pupil diameter precise measurement under occlusion[J].Journal of Chinese Computer Systems,2011,32(8):1652-1654.

[13] Yan Pei,Wang Bin,Li Yuan.Optimal ellipse fitting method based on least-square principle[J].Journal of Beijing University of Aeronautics,2008,34(3):295-298.

[14] Lin Jin-long,Shi Qing-yun.Circle recognition through a point hough transformation[J].Computer Engineering,2003,29(11):17-18.

[15] Cui Jia-li,Gong He,Wang Yi-ding,et al.Optimazation and research on ellipse fitting and application based on algebraic distance[J].Computer Science,2014,41(s2):88-90.

[16] Hu Hai-ou,Zhu Jian-zhong.Direct least squares elliptic fitting based on arc combination[J].Journal of Hangzhou Normal University(Natural Sciences Edition),2011,10(6):556-560.

[17] Alzahrani F M.A real-time edge detector:algorithm and VLSI architecture[J].Real-Time Imaging,1997,3(5):363-378.

附中文参考文献:

[2] 吴艳繁.基于视线追踪的人机交互系统[D].长春:吉林大学,2014.

[5] 王德朋,娄 震.一种融合Hough变换和ASM定位瞳孔中心点方法[J].计算机系统应用,2016,25(3):182-186.

[6] 张勇忠,刘 富,孙令明,等.基于对称变换的瞳孔定位方法[J].吉林大学学报信息科学版,2009,27(3):268-272.

[8] 李红匣.基于OpenCV的人眼瞳孔定位算法[J].电子质量,2012,33(11):14-17.

[9] 廖红文,周德龙.AdaBoost及其改进算法综述[J].计算机系统应用,2012,21(5):240-244.

[10] 刘 婧,秦华标.基于灰度直方图的几何特征人眼定位方法[J].微计算机信息,2009,25(9):252-254.

[11] 赵 静.基于自适应阈值分割及边缘检测的虹膜内边缘定位算法[J].科技信息,2012,29(16):41-42.

[12] 潘 林,林 琳,魏丽芳,等.遮挡条件下瞳孔精确检测方法[J].小型微型计算机系统,2011,32(8):1652-1654.

[13] 闫 蓓,王 斌,李 媛.基于最小二乘法的椭圆拟合改进算法[J].北京航空航天大学学报,2008,34(3):295-298.

[14] 林金龙,石青云.用点Hough变换实现圆检测的方法[J].计算机工程,2003,29(11):17-18.

[15] 崔家礼,宫 贺,王一丁,等.基于代数距离的椭圆拟合的优化及应用研究{J].计算机科学,2014,41(s2):88-90..

[16] 胡海鸥,祝建中.基于弧段组合的直接最小二乘椭圆拟合[J].杭州师范大学学报(自然科学版),2011,10(6):556-560.

猜你喜欢
人眼瞳孔人脸
田志强
有特点的人脸
一起学画人脸
玻璃窗上的人脸
瞳孔
闪瞎人眼的,还有唇
看人,星光璀璨缭人眼
瞳孔大,决策力差
长得象人脸的十种动物
人眼的视力为何达不到3.0?