基于数字图像处理的眼球控制精度提高方法

2018-11-22 09:37严德赛
计算机应用 2018年10期
关键词:人眼虹膜瞳孔

严德赛,曾 诚,2

(1.湖北大学 计算机与信息工程学院,武汉 430062; 2.湖北省教育信息化工程技术研究中心(湖北大学),武汉 430062)(*通信作者电子邮箱zc@hubu.edu.cn)

0 引言

眼球控制技术很早就出现了,但是由于精度不高并没有被大面积地推广运用。眼球追踪是一项科学应用技术:一是根据眼球和眼球周边的特征变化进行跟踪;二是根据虹膜角度变化进行跟踪;三是主动投射红外线等光束到虹膜来提取特征。眼球追踪技术的主要设备包括红外设备和图像采集设备,在精确度方面,红外线投射方式有比较大的优势,能在30 in的屏幕上精确到1 cm以内,可以在一定程度上代替鼠标、触摸板进行一些有限的操作。此外,其他图像采集设备,如电脑或手机上的摄像头,在软件的支持下也可以实现眼球追踪,但是在准确性、速度和稳定性上不够理想。

2014年5月三星发布Galaxy S Ⅲ,该手机通过前置摄像头检测用户眼睛状态,当检测用户眼睛正盯着手机屏幕看,即使用户没有进行任何操作,屏幕也不会自动熄灭。此外,LG的Optimus手机也支持通过眼球运动控制视频播放,只要用户转移视线,视频播放器会自动暂停,直至视线重回屏幕。2013年一家瑞典公司Tobii计划推出一款产品,让旧电脑也能接入眼球追踪。这款设备名叫Rex,是一个电脑外设设备,只要把它放置在屏幕顶部,再通过通用串行总线(Universal Serial Bus, USB)接口接入,用户就能利用视线来控制电脑完成部分操作,比如操控IE页面滚动、使用Windows 8地图应用等。这些眼球控制方法只能实现简单的滑动和翻页操作,不能胜任很多复杂性的操作,如果想要让眼球控制进行更多的操作,提高眼球控制精度是必不可少的。因此,本文提出基于数字图像处理技术的人眼焦点在屏幕上映射的方法来提高眼球控制精度,使眼球能够对带有屏幕设备实行更多复杂性操作。该方法精度随传感器捕捉眼球图片分辨率的提高而进一步提高,且比目前市面上通过远距离多摄像头捕捉眼球转动角度方法精度要高。

1 理论基础

目前有很多远距离眼球追踪技术。例如Bozomitu等[1]提出一种基于圆形霍夫变换技术的瞳孔中心坐标检测的强大技术来实现眼球追踪,不能满足实时性要求;沈海平等[2]提出一种基于瞳孔检测的注视点方法来实现眼球追踪,但是精度不高、误差较大;Soltany等[3]提出一种实时眼球跟踪的快速瞳孔定位算法是对目前主要算法的准确性改进,但识别精度达不到要求;Chen等[4]针对霍夫变换算法检测瞳孔中心效率低的问题提出边缘梯度算法,但算法复杂、满足不了性能要求;Sateesh[5]提出一种快速高效的瞳孔分割和检测的简单方法,但该方法不具有足够的准确性;Amir等[6]介绍了一种基于硬件的眼睛检测嵌入式系统,但在追踪过程中检测精度不高;Fuhl等[7]提出一种目前最先进的远距离瞳孔检测算法,但算法复杂、运行时间长;Sugawara等[8]介绍了一种眼镜佩戴式的眼球追踪装置,虽然外观新颖但是眼球跟踪精度不高。科学实验结果表明,目前的瞳孔检测与追踪方法的准确性或实时性还不能满足实际需要。

人眼的结构相当于一个凸透镜,物品反射的光源经过人眼晶状体的折射在视网膜上成像并转化为神经信号传入到大脑内部。

图1为人眼结构图。图2为人眼聚焦原理,可看出人眼看到的物点和像点确定的直线正好经过晶状体的圆心,而该圆心位置也就是瞳孔的正中心位置。瞳孔中心的点就是人眼看物体时聚焦的点,例如Zhu等[9]采用一种基于图像处理技术的瞳孔边界曲率特性算法来计算出瞳孔圆心位置以确定人眼观看屏幕上的位置。用户通过鼠标操作电脑时就是眼睛先看到想要点击的图标后移动光标到需要点击的应用图标处进行操作,当人眼焦点聚集在应用图标时,该应用图标位置就映射到瞳孔圆心处。人之所以能看见物体就是因为物体自身发光或反射的光进入到眼睛里。目前各种屏幕或是投影仪会自发光或反射光到眼球里,并且这个屏幕的高亮轮廓会映射在眼球上,通过瞳孔圆心和眼球上的轮廓关系能很容易找到人眼聚焦点在屏幕上的位置。

图1 人眼结构Fig. 1 Human eye structure

图3是用红外摄像机拍摄的人眼瞳孔图片并基于Matlab运用Hough改进算法找出瞳孔圆心的实验效果图,瞳孔圆心处也正好是人眼看物体的聚焦点。图3中瞳孔上的三个最亮光点是实验屏幕四角处红外发光二级管(Light-Emitting Diode, LED)在眼球中的反射,该三个最亮光点唯一确定的矩形就是实验屏幕边框在眼球中形成的映射。运用Matlab软件能够捕捉到虹膜的圆形和圆心位置以及计算屏幕反射亮框的像素点长度。耿新等[10]利用混合投影函数可以相当精确地确定眼睛中心的位置,Szczepanski等[11]则介绍了一个简单而强大的瞳孔和虹膜检测方案来确定虹膜中心和瞳孔半径。

图2 人眼聚焦原理Fig. 2 Human eye focus schematic

图3 Hough改进算法找瞳孔圆心Fig. 3 Hough improved algorithm to find pupil center

2 人眼焦点与屏幕联系

2.1 正面角度下人眼焦点与屏幕联系

人眼焦点与屏幕的联系可由图4直观反映出。图4中瞳孔里三个最亮光点确定的唯一矩形就是实验屏幕在眼球中形成的映射,瞳孔圆心处就是人眼焦点位置。人眼焦点与映射边框的位置关系能间接表示人眼焦点在屏幕上的具体位置。由这个关系就能确定该时刻人眼焦点在实验屏幕上的具体位置,当每一帧图片中位置关系都能确定时就能实现对眼球焦点的追踪,进而能实现眼球对屏幕的控制及操作。通过这个关系能够将人眼焦点和屏幕上的注视点联系起来,该关系的准确性随拍摄图片分辨率的提高而进一步提高,以至提高对屏幕控制的精度。

图4 人眼焦点和屏幕关系Fig. 4 Relationship between human eye focus and screen

用某种高清传感器放在眼睛附近来实时捕捉眼球图片,该图片就是人眼焦点在屏幕上的位置图,将拍摄照片放大一定倍数后最终出现的就是每个正方形的像素点。以下所有计算均以像素点为单位。如图5可知眼球上反射的屏幕边框纵向长为BC,横向长为AB,焦点距离屏幕左边框长为GH,焦点距离屏幕上边框长为EF。真实屏幕以左上角为原点,横向为X轴,纵向为Y轴,人眼焦点在屏幕上位置为(X,Y),设实际屏幕横向长为M,纵向长为N。人眼看到的屏幕和传感器拍摄得到的屏幕是左右颠倒的。

人眼焦点在屏幕上的横坐标X的计算公式为:

(1)

人眼焦点在屏幕上的纵坐标Y的计算公式为:

(2)

正面角度下人眼焦点在屏幕上的具体坐标位置(X,Y)的计算公式为:

(3)

图5 抽象化的人眼焦点和屏幕关系Fig. 5 Relationship between abstract human eye focus and screen

2.2 眼球单向转动45°内人眼焦点与屏幕联系

上面叙述的是理想情况下传感器正对着眼睛拍照得出的人眼焦点与屏幕联系。真实情况下传感器捕捉眼球反射画面是在不干涉视觉情况下与瞳孔直视方向具有一定角度,如图6(a)所示。

图6 两种眼球俯视图Fig. 6 Two eyeball top views

摄像头传感器是固定在眼镜等类似框架上,传感器拍摄眼球画面时与瞳孔直视方向有一定的角度,因此传感器拍摄人眼虹膜会是椭圆的,且椭圆中心点不是人眼焦点位置。人类眼球平均直径为24 mm,虹膜平均直径为11.4 mm,计算出虹膜圆心角为56.74°,根据电脑屏幕15.6 in观看距离60 cm计算眼球观看屏幕转动角度不超过45°,如图6(b)所示,传感器不在图中阴影区内就不会因为眼球转动而导致自身阻挡传感器拍摄图片。当传感器和瞳孔正中心具有一定夹角时拍摄出来的人眼虹膜照片就不是正圆而是椭圆,椭圆的中心点也不是人眼焦点位置。设图片上椭圆人眼虹膜的短半轴为a,长半轴为b,眼球半径为R,α为虹膜对应的圆心角度,θ=arccos(a/b),眼球里屏幕映射纵向长度为BC,眼球里屏幕映射左边框在椭圆左边为正值右边为负值,屏幕左边框到椭圆中心点距离为GH,屏幕上边框到椭圆中心点距离为EF,屏幕的长宽比为k。

眼球单向转动45°内人眼焦点在屏幕上的横坐标X的计算公式如式(4)所示;眼球单向转动45°内人眼焦点在屏幕上的纵坐标Y的计算公式与式(2)相同;眼球单向转动45°内人眼焦点在屏幕上的具体坐标位置(X,Y)由式(4)和式(2)中的X与Y代入所得;该坐标(X,Y)就是人眼焦点在屏幕上的位置坐标。通过该坐标能实现人眼对屏幕精确控制的第一步,确定人眼焦点在屏幕上的位置。

X=

(4)

3 实验与分析

3.1 实验数据分析

实验器材使用的是130万像素850 nm波长的红外摄像头和4个850 nm波长红外发光二级管。红外摄像头用来近距离捕捉瞳孔图片,发光二级管用来固定在屏幕四角来确定屏幕边框。用该方法进行了多次实验,挑出以下最具代表性数据进行分析。表1中前三条数据是5.5 in手机屏幕实验得出的结论数据,后三条数据是用15.6 in电脑屏幕实验得出的结论数据。虹膜反射边框分辨率表示的是屏幕边框在眼球虹膜中映射的长和宽,误差精度表示的是人眼焦点在屏幕上实际位置与实验结论相差的距离,屏幕距离表示的是人眼和观察屏幕之间的距离。该方法的误差精度总体上能和目前主流方法的误差精度持平,随日后微距高清摄像头拍摄照片分辨率提高,该方法的控制精度将随采样照片分辨率提高而进一步提高。

从表1数据可知虹膜反射边框分辨率和精度关系,精度随传感器采集的虹膜反射边框分辨率的提高而提高。

表1 精度与分辨率关系Tab. 1 Relationship of precision and resolution

3.2 方法对比分析

目前主流的眼球控制方法有二维定标方法、补偿估计方法、注视点估计方法和迭代椭圆拟合方法。其中迭代椭圆拟合方法的精度最高,能够达到视角平均角度误差为0.5°左右,但是该方法复杂且计算量巨大难以达到实时的性能要求。注视点估计方法视角平均角度误差为0.7°左右,但是该方法使用器材较多而且红外摄像头远距离捕捉的图片光点矩阵会变形导致后期图像处理工作过程复杂耗时。二维定标方法和补偿估计方法的精确度不高。本文方法操作及算法简单,容易实现且耗时较少;但缺点就是目前微距离高清摄像机捕捉的图片分辨率不高会导致精度误差较大,日后本方法的识别精度随摄像机拍摄图片分辨率提高而进一步提高。

表2 不同算法的精度对比Tab. 2 Accuracy comparison of different algorithms

根据表2可知:二维定标算法[2]的视角平均误差为2.5°,该方法原理简单、运行速度快,适合于对瞳孔的初步定位。补偿估计算法[12]的视角精度在1°内,该方法通过大量统计及计算来补偿视角误差从而提高精度,且远距离摄像机拍摄的图片会导致计算结果具有较大误差,但该方法思路新颖具有启发性。最新的注视点估计算法[13]于2017年提出,可显著提高注视性能并且视角平均误差能保持在0.7°,该方法建立的虚拟平面投影与瞳孔角膜相切以估计注视点位置,具有算法复杂、计算量大和耗时长等缺点。迭代椭圆拟合算法[14]能够检测出瞳孔旋转角度大于0.5°的转动,该方法是目前精确度最高的。该技术已运用在近距离的头戴虚拟现实设备中,且难以对远距离的手机及电脑屏幕实现精准控制。

4 结语

本文采用的方法是根据屏幕边框在眼球上的映射来确定焦点在屏幕上的位置,且精度随捕捉图片分辨率提交而进一步提高。该方法是运用数字图像处理技术对传感器拍摄图片进行计算获得焦点坐标信息,实现眼球对屏幕高精度控制。本文方法的不足之处在于必须有一个高清传感器距离眼睛很近来捕捉眼球反射画面,这就必须让使用者在眼镜框上固定一个微型摄像机装置,和远距离传感器捕捉方法相比较为不便。本文方法精度高,可以实现更多目前远距离眼球追踪技术因为精度不够而不能完成的操作,能够让许多双手不便用户实现对屏幕设备的控制。该技术也可以运用到射击类游戏里,将眼睛看到、移动鼠标、点击鼠标射击三个步骤减少为眼睛看到、点击射击两个步骤,增强游戏体验感。目前运用Matlab软件编程已经基本实现对人眼焦点追踪,后续工作中将进一步通过代码优化来提高精度,让软件和硬件有机结合并进一步提高眼球控制精度。

猜你喜欢
人眼虹膜瞳孔
田志强
双眼虹膜劈裂症一例
“刷眼”如何开启孩子回家之门
一种基于虹膜识别技术的车辆启动系统
“刷眼”如何开启孩子回家之门
瞳孔
闪瞎人眼的,还有唇
看人,星光璀璨缭人眼
瞳孔大,决策力差
人眼的视力为何达不到3.0?