基于近红外图像的人眼定位算法

2014-09-10 01:18朱维宁任明武
计算机工程与设计 2014年5期
关键词:人眼瞳孔分类器

朱维宁,任明武

(南京理工大学 计算机科学与技术学院,江苏 南京210094)

0 引 言

本文提出了一种基于近红外图像的人眼定位算法。目前基于可见光环境下的人眼定位算法的研究受光照强度影响比较大,而且在夜间很难在图像中找到人眼,因此这些方法很难有效地识别驾驶员的行车状态。采取近红外光源照射人眼时,瞳孔吸收了大部分红外光,而虹膜反射的比较多,这样在人眼位置就会出现亮瞳特性,利用此特性可以检测人眼[1]。

目前用与人眼定位的方法有很多种,主要有基于模版匹配的方法、基于统计的方法以及基于规则的方法。文献[2]先对红外图像通过投影找到人脸区域,然后找出眉眼区域,最后根据梯度特征精确定位出人眼。文献 [3]是先在具有亮瞳与暗瞳特性的图像里做差分,然后选择眼睛的候选区域,根据眼睛的几何特性去除一些候选区域,最后用SVM分类器检测到双眼。文献 [4]在只有亮瞳的图像的面部图像里,先对图像进行二值化,然后进行区域标记再根据人脸几何特征找出人眼。人眼相对于整幅图像所占面积比较小很难直接检测到,因此可先检测到人脸,再根据人脸区域检测到人眼。文献 [5]认为在虹膜与巩膜的结合处的像素可形成一个圆,而且这些圆的像素值几乎一样,即是接近等强度的,因此根据这一特性可以准确定位到人眼中心。

本文是在整个图像中直接定位人眼,具体的算法流程如图1所示。

1 瞳孔分割

图1 算法

文献 [6]的方法,采用隔行扫描相机,配备两个照明光源,当临近相机镜头的红外灯组点亮时,得到亮瞳孔图像,内圈熄灭时,得到的是暗瞳孔图像。于是通过设置相机就能得到瞳孔处亮暗相间的连续视频。而本文所使用的都是具有亮瞳效应的图像,如图2所示,分辨率为600×450,可以运用形态学上的开运算去除瞳孔上的较亮的区域,得到的结果如图3所示。经过差分,图像中大部分区域就会被排除,如图4所示。

图2 原图

图3 开运算图像

图4 差分图像

接下来就是对差分图像进行二值化。这里阈值的选取十分重要,太小容易丢失瞳孔候选区域,太大则会产生很多噪声,导致后面算法复杂度的增加。本文采取的方法是:对当前图像的像素值进行直方图累积,取一定数量的最亮像素,其余像素值设为0。由于本文图像背景复杂,实验发现选取前500个最亮像素较为合适。瞳孔区域面积较小,可以把二值图像里连通区域面积大的像素值也设为0。结果如图5所示。

图5 二值化图像

2 SVM算法检测人眼

二值化后的图像会出现多个瞳孔候选区域,本文根据图5获得每个候选区域的坐标位置,在原图上用子窗口覆盖这些区域。由于瞳孔不会出现在图像的边界附近,这样可以排除一部分离边界比较近的候选区域。如果一些子窗口重叠得较多,则只需保留其中一个。得到的结果如图6所示。接下来的任务就是找出包含人眼的子窗口。

图6 瞳孔候选区域标记

本文所采用的是基于PCA和SVM[7]的人眼检测算法。选取468张包含人眼的正样本图片以及869张负样本图片进行训练。先对图像进行Gabor变换[8],这样得到的图像更平滑,有利于人眼的识别。由于眉毛经常被误检为眼睛,为了提升SVM的检测率,本文将人眼的检测区域放大至包含眉毛的区域。为了使子窗口能覆盖眉毛区域,设定其宽度为65,高度为75,正负样本的尺寸与子窗口保持一致。对样本使用RBF核函数和交叉验证的方法进行训练,找出最佳的惩罚参数c和核参数g。训练之后,得到一个SVM分类器进行测试,把分类错误的图片加到训练集,得到第二次的分类器。如此进行几次,得到了一个性能很好的分类器。实验发现,此分类器可以很好地对图像的候选区域进行分类,准确率达到97.8%。结果如图7所示,图中去除了不包含人眼的子窗口。

图7 瞳孔区域标记

3 基于快速对称变换的瞳孔候选区域的选取

虽然亮瞳效应是一个非常好的可以利用的特征,可是在有的一些图像中,由于人眼的位置并不是正对着主动光源而是有些偏离角度,这时候会在巩膜附近出现一个明亮区域;另一方面,因为主动光源的存在,戴眼镜时将会产生不同程度的反光,经常会产生比较大的亮斑干扰;此外由于角度关系,人眼可能只吸收没有反射红外光即没有亮瞳效应;还有一种情况,当人眼处于半闭合或闭合状态,图像中会没有瞳孔。此时,若再用上述方法,差值图像里很难出现瞳孔区域。

广义的对称变换[9]可以在不使用任何先验知识的情况下检测到图像里感兴趣的区域,但是计算量很大且比较耗时。本文所采用的是快速辐射对称变换法[10]。利用快速辐射对称变换首先是计算原始图像的梯度图像,然后根据图像尺寸在1个或多个尺度上寻找原始图像中辐射对称性较强的点。根据梯度图像,设像素点为p,则p的正影响像素为沿着p的梯度方向与p相距n的像素,与梯度方向相反的像素则为p的负影响像素。定义如图8所示。其中n=2。

设像素坐标为p,梯度为g(p),定义正影响像素

图8 正负影响像素坐标

负影响像素

式中:round()指的是取整。在每一个尺度n上,引入两个中间变量,分别为正负方向映射矩阵On和梯度映射矩阵Mn。On和Mn中坐标p+ve(p)所对应的值分别加1和, 坐 标 p-ve(p)所 对 应 的 值 分 别 减 1 和。即

将Fn和An卷积后,得到图像在n上的对称变换结果

其中

An是二维高斯函数。高斯函数的标准差σ=0.28n。参数α用来调节候选点的个数。经过实验比较,选取α=1。最后将对称变换结果相加得

图9 对称映射

实验选取n=1、3和5,结果如图9所示。对于亮的径向对称区域S中的值为正数;相反,对于暗的径向区域,S中的值为负数。瞳孔较周围像素值低,呈辐射对称,所以S中瞳孔中心附近的值为负数。设min为S中最小值。对S进行二值化,图像较为复杂,实验表明可把阈值设定为0.39*min,S中小于阈值的置为255,其余设置为0。所得结果如图10所示。最后也是根据SVM分类器找到包含人眼的子窗口。

图10 二值化的对称映射

4 瞳孔中心的定位

在本文中,经过开运算后得到的图像如图3所示,可以看出瞳孔较其周围比较暗,因此瞳孔边界点的梯度方向向外指,而沿着这些边界点的梯度方向直线一定会交于瞳孔中心[11]。根据这一性质,假设瞳孔区域的圆心坐标为c,xi为其边界点坐标,di为单位位移向量,gi为单位梯度向量,c为圆心坐标,如图11所示。

图11 示例

当c是圆心时,di与gi同向。由点积的性质知 (digTi)2在同向时取得最大值。于是瞳孔的圆心位置c*可以由下面的表达式求出

其中

归一化得:

由于图像中可能还存一些小的连通区域,它们与背景的差别也比较大,这样目标函数并不能准确地定位到瞳孔中心。为了精确定位到瞳孔中心,可以先对图像进行高斯平滑,此方法可以对灰度矩阵的每个像素点做一定范围邻域内的加权平均,可有效消除高斯噪声。本文设定的方差Sigma=1,Knersize=3用来确定核矩阵的维数。设得到平滑后的图像矩阵为I*。由于圆心处的灰度值比较小,于是可以对式 (10)加一个权值w,其中w=255-I*(x,y),这样在圆心处的权重就会比较大。最终的目标函数如下

该算法需要四重循环,下面是对此算法做出的一些设定。有上面步骤得到的子窗口中包含眉毛,对瞳孔定位会产生一定的影响,因此在定位之前先缩小子窗口的尺寸,这样不仅排除一些噪声点的干扰还减少了运算时间。由于瞳孔比较暗且所占面积较小,可设定阈值pixelThresh,pixelThresh为所检测区域像素和的平均值,这样当xi=[x,y],有I*(x,y)<0.6*pixelThresh。本文的梯度图像用Sobel算子求得,瞳孔边界处的梯度比较大,可忽略梯度值小于最大梯度20%的点,令这些点的gx=0,gy=0。最后一点,由点积的性质可知:如果两个向量方向相反,那么它们的点积为负。根据图6,gi的方向背离圆心向外指,假若c为圆心,则得到的di与gi会具有相同的方向。因此若算出的digTi<0,可设置digTi=0,这样很大程度上减小了计算量。

5 实验结果与分析

本文采集了320张近红外图片,其中包括了98张戴眼镜的图片。部分实验结果如图12所示。

图12 部分实验效果

实验去除人眼完全闭合的图片,在不戴眼镜的图片里,算法定位率达到了98.6%;而在戴眼镜的图片里,算法定位率下降到了89.7%.本文采取了式 (17)来衡量眼睛定位的准确性

式中:dleft,dright——算法定位到的左右两眼中心与手工标定的人眼中心的距离,w表示手工标定的左右两眼中心之间的距离。如果e<0.25,则认为检测结果是正确的,否则错误。本文测试了e在不同值的情况下,算法定位的准确率,如图13所示。当e∈ {0.05,0.10,0.15.0.20,0.25},最上面曲线表示测试的图片有较明显的亮瞳孔,最下面曲线表示测试的图片中亮瞳孔不明显或有镜面反射等情况,中间曲线表示平均的定位准确率。

图13 定量分析

本文算法分别与文献 [2,3]的算法做了对比。文献[2]先用积分投影方法分割出人脸区域,但此方法没有考虑到具有复杂背景的图像,采用Robert边缘检测求梯度最大值的方法很难精确定位到瞳孔中心。文献 [3]用SVM分类器直接检测双眼,很容易受到眉毛、深色镜框的干扰,而且没有考虑镜面反射、是否有亮瞳等情况。3种算法定位结果见表1。

表1 实验结果定位率比较 (%)

6 结束语

本文介绍了一种基于近红外图像的快速人眼定位算法,首先,根据亮瞳效应获取瞳孔的候选区域,然后通过SVM算法检测到瞳孔区域,最后用此区域的梯度信息和瞳孔几何特征定位到瞳孔中心。由于在某些角度,瞳孔没有反射红外光以及配戴眼镜会产生严重的反光,对算法的定位率影响很大。为了提高实验的精确性和鲁棒性,加入了对称变换来获取瞳孔的候选区域。本文算法很难定位完全闭合的人眼;对于镜框颜色深且眼睛闭合程度大、镜面有很大亮斑的情况,瞳孔中心的定位率比较低。如何解决这些问题是本文后续研究的重点。

[1]Stan Z Li.Illumination invariant face recognition using near-infrared Images [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2007:627-639.

[2]XIE Xiuzhen,TANG Jin,CHEN Shouming,et al.Method for eyes localization in infrared image [J].Computer Engineering and Applications,2011,47 (5):202-205 (in Chinese).[谢秀珍,唐琎,陈守明,等.一种在红外图像中定位人眼的方法 [J].计算机工程与应用,2011,47 (5):202-205.]

[3]JI Qiang,ZHU Zhiwei,Kikuo Fujimura.Real-time nonintrusive monitoring and prediction driver fatigue [J].IEEE Trans on Vehicular Technology,2004,53 (4):1052-1068.

[4]TIAN E,MO Yimin,LIAO Zhanghua.Inafared-based realtime eye detection for driver observation [J].Computer Engineering,2007,33 (7):225-257 (in Chinese). [田娥,莫易敏,廖张华.基于红外光源的驾驶员眼睛实时监测 [J].计算机工程,2007,33 (7):225-257.]

[5]Roberto Valenti,Theo Gevers.Accurate eye center location through invariant isocentric patterns [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2012,34 (9):1785-1798.

[6]YANG Youlin,WANG Yuanqing,FAN Kefeng.Real-time

detection of eye position for stereoscopic display [J].Modern Electronics Technique,2012,35 (18):125-127 (in Chinese).[杨友林,王元庆,范科峰.用于立体显示的人眼位置快速检测 [J].现代电子技术,2012,35 (18):125-127.][7]LI Lei.A fast face detection method based on PCA [J].Journal of

Qingdao University of Science and Technology,2010,31 (5):528-532 (in Chinese).[李磊.基于PCA降维的SVM 人脸快速检测方法 [J].青岛科技大学学报,2010,31 (5):528-532.][8]LIU Peng,JIANG Chaohui,XIONG Jin.Algorithm of eye localization and eye state recognition in driving fatigue detection[J].Computer Engineering and Applications,2010,46 (24):185-188 (in Chinese). [刘鹏,江朝辉,熊进.用于驾驶疲劳检测的人眼定位及状态判别算法 [J].计算机工程与应用,2010,46 (24):185-188.]

[9]Bai Li,Shen Linlin,Wang Yan.A novel eye location algorithm based on radial symmetry transform [C]//International Conference on Pattern Recognition,2006:511-514.

[10]Gareth Loy,Alexander Zelinsky.A fast radial symmetry transform for detecting points of interst [J].Pattern Analysis and Machine Intelligence,2003,25 (8):959-973.

[11]Fabian Timm,Erhardt Barth.Accurate eye center location by means of gradients [C]//Proceedings of the Int Conference on Imaging Theory and Applications,2011:81-86.

猜你喜欢
人眼瞳孔分类器
人眼X光
人眼为什么能看到虚像
瞳孔里的太阳
基于差异性测度的遥感自适应分类器选择
瞳孔
基于实例的强分类器快速集成方法
闪瞎人眼的,还有唇
看人,星光璀璨缭人眼
瞳孔
基于层次化分类器的遥感图像飞机目标检测