人眼检测及动态跟踪研究综述

2017-12-02 03:03浙江大学城市学院饶瑞琦尚丽娜石晴瑶陆宇栋
电子世界 2017年22期
关键词:人眼虹膜瞳孔

浙江大学城市学院 饶瑞琦 尚丽娜 石晴瑶 陆宇栋

人眼检测及动态跟踪研究综述

浙江大学城市学院 饶瑞琦 尚丽娜 石晴瑶 陆宇栋

随着计算机性能的不断提升以及图像处理精度的提高,人脸识别领域日趋火热,与此同时,随着应用需求的不断多样化,人眼作为脸部的重要特征,针对人眼的识别也有多方面的应用价值,因此有关于人眼识别方面的研究越来越受到重视。这些年我国科研人员也通过努力探讨,在人眼的定位与识别上取得显著成果。

人眼检测;人眼动态跟踪;Viola-Jones算法;AdaBoost算法;zernike矩特征;虹膜识别

眼睛在人与人的交流中有举足轻重的作用,在人的五官中,人眼有与众不同的魅力,两眼对视的过程里,人眼能传达出幽怨,哀伤,喜悦,愤怒等复杂情感,换而言之,人眼具有“生命”,伴随着计算机视觉技术的进步,这种生命力在该人脸识别领域也得到了很好的展现,人眼检测作为人脸识别以及表情识别的预处理步骤先验条件,其检测的精度和速度将直接影响识别的精度和速度,不仅如此,眼睛图像的独特性以及眼睛的运动特点能够反映出人的身体素质以及心理上的细微变化,这使得人眼识别在心理学、认知科学、医学生理学及公共安全等领域有广阔的应用前景。

1 基于Viola-Jones算法的人眼检测

一般判断人眼的关注度主要是通过对摄像头检测到的图像中眼镜区域的黑色像素点的大小变化来判断的。通过摄像头记录下不同时刻眼镜区域像素点的个数,对其进行统计分析,取出一个合适的值来作为判断关注度或者疲劳度的标准。在处理对象是一段视频时,则通过对视频中的每秒提取五帧,依次对每一帧进行人眼检测,检测出人眼状态之后再定义一个变量count来记录黑色像素点大小小于判断标准点大小的帧数,当一分钟内判断认为关注度低甚至疲劳的帧数达到90帧以上则认为被检测者是出于关注度较低甚至疲劳的状态的。

而另一种被普遍采用的判断人眼关注度和疲劳度的方法则首先采用Viola-Jones算法,在获取的图像中直接进行人眼定位,再对人眼图像进行处理得到人眼长宽比值Q,最后建立Q值与关注程度的关联模型。为了提高该算法的普遍性,需要在检测前确定一个标准值Q’,Q’值的确认以对被测试者眼部信息采集的样本中80%以上的概率分布点为标准。Viola-Jones算法可直接跳过人脸定位步骤,在图像中直接定位到人眼;该算法的核心原理是在一个滑动窗口中提取出harr特征,然后通过Adaboost分类器挑选出能最有效区分人眼的特征[1],最后在经过训练,就可以得到一个检测率高但是误查率低的级联分类器,通过该分类器可检测人眼[2]。

与前一种方法相比,这种方法检测速度提高了不少,而且可以适应头部的不同姿态,建立出来的“眼部相对长宽比-睁眼程度”模型具有良好的线性,即在提高检测速度的同时保证了算法的鲁棒性。并且这种判断关注度的方法还运用到了关注度衍生的判断疲劳程度中,实验过程里采用该方法的疲劳判断系统可以在一秒内对表现出疲劳状态的被测试者发出警报,这种快速且精准的疲劳判断的系统在防疲劳安全驾驶[3]领域有良好的应用前景。

2 基于AdaBoost算法的人眼检测

人眼的检测和跟踪的主要处理对象是给定的视频序列,前一帧眼睛所处的位置以及其后续运动信息都将作为人眼定位过程的重要数据。一般的人眼定位方法主要是采用基于学习、基于模版的匹配和基于特征的方法来实现人眼检测以及跟踪的。而组合型人眼检测和跟踪方法则采用了别的手段。

AdaBoost算法就是应用在人眼检测里的一种算法,眼睛的位置可通过AdaBoost算法构建出的人眼侧键分类器检测到,然后结合卡尔曼滤波器以及平均位移就能够追踪到瞳孔的位置。AdaBoost算法的核心思想是针对一个训练集训练出不同的弱分类器,之后将其集合起来构成一个强分类器。而人眼检测和跟踪系统中采用的卡尔曼滤波器的主要作用是估计目标在下一帧中的位置。卡尔曼滤波器可以分为预测和更新两个步骤。这一系统中采用的平均位移追踪是一种基于目标物外表的目标追踪方法。根据前一帧检测到的就可以构造出眼睛模型的密度分布,然后通过寻找Bhattachayya系数的最大值这一寻优过程来进行匹配。

人眼的检测与跟踪过程:

检测和跟踪是交替运行在系统工作时的,这是为了有效的提高系统运行速度和检测精度。在检测时,采用AdaBoost分类器尺度缩机制的人眼算法,并可采用canny裁剪技术来缩小所要分析的候选区域来提高效率。在跟踪时,使用2级眼睛跟踪的方法让卡尔曼滤波器和平均位移分类器交替工作。此外,训练分类器需要较长的时间,针对这一问题,研究人员常把已经训练好的AdaBoost分类器做成XML文件以求缩短时间,这样一来,在使用的时候只需要加载相应的级联分类器。而图片等大小不是唯一的,所以在每一次的扫描图像过程中都先用小的窗口移动扫描,若在图像上没有发现检测目标,系统便会自动调整分类器大小,在调整完成后再继续进行检测,直到检测窗口和待检测图片的大小相当。考虑到计算量较大会影响系统响应时间的因素,AdaBoost分类器在定位到人眼位置之后会对随后的每帧采用追踪的方式,这样一来就减少了计算量。可是卡尔曼滤波器只适用于脸部正面而且眼睛睁开的情况,如果出现了外部光源的干扰以及头部眼部的突然动作,卡尔曼滤波器就会失效。为了解决这一问题,学者们提出了平均位移的方法。当卡尔曼滤波器失效的时候,平均位移就接管了人眼跟踪的职责,平均位移算法根据的是眼部区域的亮度概率统计分布。而单纯就亮度分布而言,眼部区域与给定的眼部模型差别是很小的。因此无论眼睛是否闭合,平均位移算法都能够有效的追踪到眼睛。但同时平均位移算法存在易受相似目标干扰的缺点。为了避免这一缺点影响到实验结果,学者将卡尔曼滤波器所检测到的眼睛用于更新该眼睛模型,先利用卡尔曼追踪人眼瞳孔的位置,预测阶段时,通过对前一刻状态的估计预测当前状态;更新阶段时,根据当前状态的数据对预测阶段得到的预测值进行优化。如此就能减小平均位移算法造成的误差。

3 基于zernike矩特征的人眼检测

已知外部环境下的光照变化以及头部的倾斜移动等行为都有可能对人眼检测的结果造成影响,为了避免很大的误差产生,除了之前提到的平均位移追踪方法,还有基于zernik矩特征[4]的方式。低阶的zernike矩能够描述图像整体的信息,但是对噪声和微小形变不敏感;而高阶的zernike矩主要能表达图像的细节,并且高阶的zernike矩不会轻易受到光照变化带来的影响,而且对于人眼瞳孔和人眼虹膜等带有圆形轮廓的图像拥有较为不错的特征描述力。理论上可以构造任意阶的zernike矩特征来描述图像的形状信息。Zernike矩幅值在一幅图像中是具有旋转不变性的,而且它的相位角度信息在人眼定位和人眼状态识别方面都有良好的适用性。可通过relief算法去寻找出更能描述人眼形状的Zemike矩的特征向量,与相对误差范围内的向量相近的匹配法相互结合,以此实现人眼的识别与定位,并能提高人眼识别精确度。除此之外,可通过快速旋转角度估计法来消除头部倾斜对于人眼识别的引起的误差。最后通过投影法计算角度修正过度的人眼图像得到最终的人眼闭合状态。

基于Zernike矩的人眼检测与定位的具体方法如下:

3.1 对于二维图像

对于二维的离散数字图像f(x,y),其n阶m重Zernike复数矩定义为:

该式中:n表示正整数或0,m表示整数且|m|≤n,*代表共轭复数;Vnm(ρ,θ)表示将归一化的像素坐标(-1<x,y<1)映射至单位圆极坐极坐标(ρ,θ)之后计算出Zernike矩的变换核,它由是一组复数多项式构成,表达式为:

从中可得到结论是Zernike矩为图像在Zernike多项式Vnm(ρ,θ)上投影所得到的一组完备正交集。此外Zernike矩递归的性质可使其在实际应用过程中使用些效果显著的快速算法来确保实时性[5]。不仅如此它还具有旋转不变性,也就是说将一幅图像旋转α角度后,该图像的Zernike矩Z'nm与原图像Znm间存在如下关系:

依据式(4)可得出结论|Z'nm|=|Znm|,这表示图像的旋转并不会使得Zernike矩的幅值发生变化;并且图像旋转的角度α还可通过相位关系的比较由e-jmα得到。

3.2 人眼图像Zernike矩特征的选择

Relief算法是先在图像训练的样本集F={f1,f2,…,fk}中随机的抽取一个图形样本f i,之后再从人眼图像和非人眼图像样本中各自选择一个在特征空间范围内距离f i最近的样本。在这些样本中分别用H和M来表示距离f i最近的同类样本和异类样本,最后需要通过某种特征元素Zj的差异更新变换这种特征元素的权重wj,计算如下所示:

该式中:r表示抽样迭代次数,diff(Zj,f i,H)代表f i在特征Zj上的差异,diff(Zj,f i,M)代表H和M在特征Zj上的差异,可定义为:

该式中:Zj(fi)代表fi的第j个Zernike矩特征,Zj(H)代表H的第j个Zernike矩特征,max(Zj)为Zj在该样本集中的最大值,min(Zj)为最小值。

由此可得到以下结论,某一特种如果与样本分类相关性较大,那么它与同类样本的该特征存在的较小的差异,反之,与异类样本同特征的差异会显得较大。根据这种结论可得出在特征值权重的变化过程里,该特征的权重是逐渐增长的。与此相反,如果某一特征不适用于样本分类,那么其特征值权重会在更新迭代过程中不断减小,趋向于0。

4 人眼的虹膜识别

近些年来在人眼识别中,针对人眼的虹膜识别也发展的很快。因为在自然光源下,人眼的灰度差异是明显的,虹膜和巩膜的边缘很容易分辨。人眼本身是一个三维物体,在将人眼这个三维物体向二维投影的过程中信息失真是在所难免的。上下眼睑是整个虹膜识别中的危险边缘,判断结果很容易受到肤色和皮肤皱纹的影响,产生伪边缘或者发生边缘漏判。为了提高原本已有的虹膜识别系统的识别率,学者们已经提出了用于虹膜分割定位的改进算法。为了提高虹膜识别,学者们采用了二值化的方法对瞳孔进行分离,这样一来就可以得到虹膜图像;在这之后再将得到的虹膜图像进行缩小,再用改进过的Canny算子[6]来对缩小的虹膜图像进行边缘检测,这就得到了虹膜边缘;再用最小二乘法来进行曲线拟合;最后再采用Radon变换,来对眼部图像的上下眼睑部位进行图像处理,得到有效的虹膜特征值区域。该改进算法的开发者已在Matlab上采用CASIA1.0,CASIA4.0中的虹膜图像进行了实验,实验结果表示这种改进了的虹膜图像定位分割算法可以明显缩短虹膜的定位时间,而且定位准确度可以达到98.82%,这表明这种改进的虹膜图像定位分割算法是很有实际应用价值的。一个典型的虹膜识别系统主要是由下列几各部分组成:图像的采集,图像和处理,特征提取和编码,特征的匹配。在进行虹膜识别前,要求对虹膜先进行预处理,即进行虹膜定位分割,这是整个虹膜识别过程中十分重要的一步,因为整个识别结果的准确性很大程度上取决于虹膜分割的结果。而虹膜定位分割要求考虑到以下因素:瞳孔,巩膜,眼皮和睫毛;虹膜边界通常可以看成一个包含了内外两条边界的环形。Canny算子是一种被广泛应用在图像处理方面的优秀算法,该算法拥有受噪声和弱边缘干扰很小的特点,但是由于传统Canny算子难以设定实际应用中的高低阈值,现如今学者提出的虹膜定位算法中采用的Canny算子为改进后的版本,在该版本中Canny算子去除了原有的缺点,能够对高低阈值进行自适应地设置,如此一来就能够有效地滤除非虹膜边界点,并能够提高定位的精度和速度。

4.1 虹膜定位

瞳孔分离:

在进行虹膜定位时,需要先对瞳孔进行分离[7]。因为瞳孔的颜色在人眼中是最深的,所以对于虹膜和瞳孔的边界可以看到有明显的灰度变化,这带来的便利之处在于能够较为轻易的分离瞳孔和虹膜。首先对给定的图像取灰度直方图计算得到分割阈值,再对阈值进行二值化分割[8],之后通过形态学二次处理二值图像,最后即可正确地定位瞳孔[9]。

4.2 眼睑分割

人眼的眼睑和睫毛很可能会出现在识别出的人眼区域内,而这是几乎不能避免的,可若是将眼睑和睫毛的干扰带入到系统中去,虹膜识别的效率会大大降低。因为眼睑和睫毛的遮挡部位主要在虹膜的上下边缘处,学者通过将虹膜分为两部分并分别进行运算处理的方法来避免眼睑和睫毛带来的误差。虹膜上下两个方向存在遮挡部位,首先对于眼睑遮挡部分,进行水平线方向的检测,水平梯度上Canny算子的权值比竖直的方向大。而直线的位置可以通过Radon变换[10]来确定,该变换可通过任意方向对函数进行投影,然后在改变参数可求出直线的方向角以及到原点的距离这样就可以确定直线所在的位置了。

5 结束语

计算机视觉技术在人工智能和图像处理能力的进步下发展也十分迅速人脸识别领域的火热一定程度上也使得人眼识别方向的研究愈加受到重视,在此基础上,快速的人眼检测和识别已经成为人眼关注度判断的重点。本文通过回顾人眼检测及动态跟踪近20年来的主要研究成果,列举以下四种进行分析,它们分别为:基于Viola-Jones算法的人眼检测、基于AdaBoost算法的人眼检测、基于zernike矩特征的人眼检测和人眼的虹膜识别。这四种针对人眼的识别与检测各有各的长处与不足,在不同情况下准确度也会相差一定程度,因此不同情况下要采用不同的方法。在未来,对于人眼检测以及定位方面的研究会取得更多的成果。

[1]龙伶敏.基于Adaboost的人脸检测方法及眼睛定位算法研究[D].成都:电子科技大学信息学院,2008.

[2]李召荣,艾海舟.实时鲁棒的自动人眼状态分类[J].计算机辅助设计与图形学学报,2007,3(19):292-297.

[3]千承辉,王政,左濂锐,李春生,刘昊明.基于人眼识别的防疲劳驾驶系统设计与研究[J].吉林大学学报(信息科学版),2016,04:522-527.

[4]李响,谭南林,李国正,张弛.基于Zernike的人眼定位与状态识别[J].电子测量与仪器学报,2015,03:390-398.

[5]LIU C,HUANG X H,WANG M.Fast computation of Zernike moments in polar coordinates[J].IET Image Process,2012,6(7):996-1004.

[6]张玲艳.基于Canny理论的自适应边缘检测方法研究[D].兰州:西北大学,2014.

[7]陈健,郑绍华,潘林,余轮.基于图像特征的快速瞳孔提取算法[J].电子测量与仪器学报,2014,02:203-210.

[8]王延年,刘婷,牛飞婷,张双双.改进的虹膜图像定位分割算法[J].激光杂志,2015,05:11-13.

[9]穆伟斌,李靖宇,金成.基于边缘检测的虹膜图像定位分割算法研究[J].电子技术与软件工程,2014,07:138-140.

[10]涂娟,王海滨,曹林,等.基于Hough变换的快速虹膜识别算法研究[J].电视技术,2014,38(19):15-16.

饶瑞奇(1996—),浙江衢州人,大学本科,现就读于浙江大学城市学院。

尚丽娜(1980—),河南洛阳人,硕士研究生,浙江大学城市学院讲师,研究方向:集成电路设计与应用,图像处理。

石晴瑶(1996—),浙江台州人,大学本科,现就读于浙江大学城市学院。

陆宇栋(1997—),浙江嘉兴人,大学本科,现就读于浙江大学城市学院。

浙江省教育厅Y201635575;通信工程杭州市特需专业建设项目。

猜你喜欢
人眼虹膜瞳孔
双眼虹膜劈裂症一例
基于轮廓匹配和多项式拟合的虹膜分割算法
人眼X光
人眼为什么能看到虚像
瞳孔里的太阳
“刷眼”如何开启孩子回家之门
瞳孔
闪瞎人眼的,还有唇
看人,星光璀璨缭人眼
瞳孔