基于视线追踪的眼控鼠标设计*
2016-10-13朱麒文闫隆鑫张若兰张帅杨兰兰
朱麒文,闫隆鑫,张若兰,张帅,杨兰兰
(东南大学电子科学与工程学院,南京210096)
基于视线追踪的眼控鼠标设计*
朱麒文,闫隆鑫,张若兰,张帅,杨兰兰*
(东南大学电子科学与工程学院,南京210096)
以Visual Studio为平台,OpenCV计算机视觉库为基础,辅助以单片机、传感器、无线传输模块等自主研发了一套头戴式视线追踪系统,完成瞳孔提取、视线追踪定位、眨眼检测等功能,实现眼球替代鼠标完成对电脑的指令。创新性地提出了椭圆拟合与积分投影去噪法等方法,以消除头部微小移动对定位带来的影响,使系统具有高的精确度和良好的实用价值。
信息处理技术;眼控鼠标;视线追踪技术;瞳孔提取;图像处理;opencv
信息加工在很大程度上依赖于视觉,约有80%~90%的外界信息是通过人的眼睛获得的,人的视线具有直接性、自然性和双向性等其它信息所无法具备的特点。1901年,Dodge和Cline开发出第一台精确的、非强迫式的眼追踪设备[1]。目前,视线跟踪技术逐步成熟,应用广泛。主要应用于图片、广告研究(网页评估、设计评估等)、动态分析(航空航天相关领域、体育运动、汽车、飞机驾驶、打字动作分析等)、产品测试(广告测试、网页测试、产品可用性测试等)、场景研究(商场购物、店铺装潢、家居环境等)和人机交互等各种领域[2]。
1 视线追踪技术简介及本项目创新之处
视线追踪装置按照探测器是否与人体接触分为两大类:接触式和非接触式。[3~4]二者相比较而言,非接触式眼控鼠标较接触式系统更容易为使用者所接受,并且也能避免直接接触可能带来的物理伤害。而各类方法之间在应用背景、带宽、精度、抗干扰能力等各项指标上存在较大差异,其中值得一提的是光学眼球追踪法是通过摄像设备系统获取眼部图像信息,利用图形图像学原理定位眼部特征信息(例如瞳孔,内外眼角等),通过对比前后获取的眼部特征信息来分析眼球移动的方向、趋势等。随着近年来计算机处理能力的提升,处理算法优化以及图像处理学的飞速发展等因素,该方法越来越收到国内外学者的重视。
本文基于光学眼球追踪法研制了一套完整的眼控鼠标系统,相比于目前已经存在的眼控鼠标系统,本设计创新之处如下:
(1)构建了一套系统支架结构,可以通过各个关节处的调节装置,保证各个检测环节的准确性。
(2)提出了一套瞳孔周边噪点去除方案,有效去除了瞳孔周围诸如睫毛等干扰点的影响。
(3)提出了一套瞳孔轮廓提取算法,通过曲率计算,图像处理等方法准确提取出瞳孔轮廓。
(4)提出了一套瞳孔坐标与电脑鼠标坐标二者的映射算法,保证鼠标坐标映射精度。
(5)提出了一种鼠标单双击检测与执行算法。
2 视线追踪系统的构建
2.1系统原理
在本设计中,通过摄像头采集人眼瞳孔的图像,经过相关的图像处理算法,实现瞳孔轮廓的捕捉和提取,同时将其传输至PC端使用相应的算法对提取出的瞳孔轮廓进行处理,进行视线注意点到显示器屏幕坐标点的映射,从而实现对视线的追踪;此外,辅助以接近传感器和单片机来完成眨眼的检测,实现对应的鼠标单双击的行为。
其具体硬件实施方案流程如图1所示。
图1 项目硬件实施方案流程图
2.2硬件系统的选择
硬件系统主要适用于室内环境下头戴式视线追踪系统对人眼注视点的追踪和眨眼反映的检测,以视频图像为实行分析和检测的基础。硬件部分包括30万像素的CMOS摄像头传感器,配以21°窄角镜头、850 nm红外滤光片、6个红外LED进行用户眼部图像的采集;另外采用TCRT5000红外反射式接近传感器进行眨眼行为的检测,并通过蓝牙完成于PC的通信。
2.3硬件系统构建
硬件系统由主体头套部分、瞳孔图像采集部分支架、眨眼动作检测部分支架、系带固定部分构成,如图2所示,以上所述各部分依次对应图中1、2、3、4。
其中主体头套部分,整体呈弧形以与用户的前额贴合,且在两侧有系带固定部分的设计,通过在系带固定部分上系带固定在用户的头部,且在靠中间部位与瞳孔图像采集部分支架相连,在两侧分别连接有一个眨眼动作检测部分支架。
图2 项目支架系统效果图
瞳孔图像采集部分支架,其关节处可以在XYZ 3个平面内旋转调整角度,且与主体头套部分连接的主支臂可以自由调节长度,另一支臂上装有滑块用于固定采集人眼瞳孔图像的ccd摄像头。
眨眼动作检测部分支架,其关节处可以在XYZ 3个平面上旋转调整角度,且支臂上装有滑块用于固定检测眨眼动作的接近传感器。
在使用时,先将主体头套部分通过绑带固定在前额上,再运行眼控鼠标配套的软件,运行之后将在电脑屏幕上显示摄像头实时采集的图像,用于配合调节瞳孔图像采集部分支架的长度和角度,以便让用户的眼睛部位完全被摄像头采集到,避免对计算机图像处理过程造成干扰,以及调节眨眼动作检测部分支架的角度,和固定在上面的传感器的方向和位置。多角度和长度调节的设置使得硬件系统能适用于更多具有不同面部特征的用户。
3 瞳孔提取算法
通常情形下,瞳孔中心与眼部注视点是相对应的。自视线追踪技术被提出以来,瞳孔提取算法已经不再拘泥于Hough变换等常见算法,今年来也提出了大量的新算法,如基于卡尔曼滤波和均值漂移的瞳孔跟踪方法[3]、分级瞳孔定位算法[7]、基于Hough变换和梯度信息的人眼视线方向估计[8]、通过分析光斑和瞳孔中心确定注视点的算法[9]、基于直方图和像素灰度对瞳孔中心点的判断[10]。
对于瞳孔轮廓及中心的提取,介于各类噪点(睫毛噪点、传感器精度影响、信号噪声、环境噪声等[11])对结果可能产生的诸多影响,首先对图像进行去噪处理。为了消除噪点对寻找瞳孔轮廓的影响,本设计创新性的提出了一种去除噪点的方法,以消除瞳孔区域以外部分所存在的噪点对定位的精度产生影响。
关于瞳孔提取算法已有设计在OpenGL下实现[12],而本设计使用的瞳孔提取算法在基于Opencv开源库下的visual studio下实行[5-6],能够在图像清晰度相对较低的情况下,不需要移除角膜反射亮斑并且不做任何图像前期处理的情况下,精确地检测出瞳孔,具体实施方案如下:对于摄像头所捕捉到的图像,必然会存在有睫毛等噪点,使得对二值化后的图像处理难度加大,如图3所示。
图3 摄像头捕捉的及二值化处理后图像
对此,提出一套噪点去除算法,对眼球图像的ROI区域进行X,Y方向的积分投影如图4所示。
图4 眼球图像的ROI区域分别在X,Y方向积分投影图
在图4中,X,Y方向上均存在峰值,以峰值坐标O:(X0,Y0)为中心,以步长3向一侧递减并按照由中心向两侧的扫描方法寻找左右跳变点即改行瞳孔左右边界,累计寻找3组,分别记为
具体取点方式如图5所示。
图5 瞳孔图像取点示意图
参照椭圆一般方程:
图6 求得的瞳孔最匹配椭圆示意图
通过该算法,可以有效的消除瞳孔周围噪点的影响,同时可以注意到角膜反射的亮斑使得瞳孔不再是一个完整的圆形,将会对后期的瞳孔边缘检测产生一定影响,此处采用计算瞳孔轮廓上各点的曲率,并进行相应的填补,以保证瞳孔轮廓的完整性。
图7 光斑处理前后对比图
对于处理后的图像,通过滤波等算法后对图像进行轮廓提取,而后使用最佳匹配圆拟合算法,完成瞳孔中心及轮廓的提取。
图8 最终提取的瞳孔轮廓
4 视线追踪及映射算法
4.1问题分析
要实现通过一只眼睛控制鼠标在电脑屏幕上移动的目的,可以通过两种方式:根据瞳孔中心的相对位移控制鼠标的移动或者建立瞳孔中心位置与鼠标在屏幕位置的固定映射函数。
若通过相对位移控制鼠标,为消除控制过程中产生的误差累积,必须建立闭环的控制系统,结构相对比较复杂。
若通过瞳孔中心位置与鼠标在屏幕位置的映射函数来直接控制鼠标的位置,控制的精度唯一决定于映射函数的准确性。属于开环的控制系统,结构相对简单。
相比之下,建立映射函数的控制方法,原理简单,更易实现。
4.2模型建立
眼睛在注视屏幕上的点时,瞳孔中心的位置与屏幕上的点存在某种一一映射的关系。这种映射关系取决于观察者眼睛相对屏幕的位置、眼睛的结构、视力水平、屏幕的大小等多方面的因素,它可以通过统计的方法精确建立,但是必然需要大量采样,效率铰低。综合考虑效率和精度,映射关系可以根据少量采样点通过函数拟合模型进行确立。
假设瞳孔在摄像头采集的图像中的坐标为(x,y),鼠标在屏幕中的坐标为(X,Y),则一定存在某种映射关系f(x,y),g(x,y),使得X=f(x,y),Y=g(x,y)。考虑到f(x,y),g(x,y)的具体表达式难以确定,故使用其一定阶数的Taylor展开式在一定精度范围内进行代替。
若函数f(x,y)在点P(a,b)的邻域G存在n+1阶连续的偏导数,根据二元函数n阶Taylor公式,则∀Q(a+h,b+k)∈G,有:
图9 屏幕上的9个样点
图10 瞳孔中心的位置
取屏幕的9个等分点作为目标样点(图9),记录瞳孔注视这9个点时在眼部图形中的位置(图10)。由图可以推断,在瞳孔中心到屏幕点的映射中线性映射中,线性映射占主要部分,故可以取到Taylor展开的二阶项,作为对误差的补偿。取2阶的Maclaurin展式:
其中,R2为2阶Langrange余项,也是用二阶多项式替代(fx,y)的误差项。
同理:
式(1)、式(2)中的参数,可以通过线性最小二乘法进行确定。
4.3模型求解
若用二阶多项式代替(fx,y),g(x,y),则得到如下目标函数:
(X,Y),(x,y)可以分别通过采集鼠标在屏幕上、瞳孔在摄像头图像中的获得,故我们取将屏幕等分的9个点(Xi,Y)i作为目标点(见图9),眼睛注视这九个点,分别获取九组瞳孔坐标(xi,y)i(i=1,2,3…9)。
使用线性最小二乘法,计算两组共12个系数的值[13],记:
解
式(5)往往只有唯一解,其解u即为要求的系数值。
4.4模型改进
(1)增加目标采样点的个数
9个等分点,虽然覆盖了屏幕中央的大部分区域,但在屏幕的边缘区域,映射的非线性性体现的更加明显。为提高函数的对非线性映射的响应精度,可以在屏幕的边缘附近增设采样点。但这会影响在中央部分的线性映射的精度,需要综合考虑。
(2)多次采集瞳孔坐标
目前已有医学研究证明,当人类的眼睛凝视某一点时,眼球并不是一直保持不动,而是会有轻微的颤动,这些轻微的颤动属于不自觉的颤动。因此,当眼睛凝视某一点数秒时,眼睛的焦聚是属于群聚的分布,而不是完全落于某一固定目标。[3]
所以在采集瞳孔坐标时,对于同一特征点可以采集多次,计算到这些样本点距离最小的点作为瞳孔坐标的实际使用坐标,从而减少因为眼睛颤动而导致的误差。
5 眨眼动作检测算法
对于眨眼动作检测,提出了两种算法:图像处理法,传感器检测法。
对于图像处理法而言,眨眼时瞳孔区域的大小显著小于非眨眼时瞳孔区域的大小,可据此判断是否有眨眼。即通过判断瞳孔半径是否小于某个设定的阈值来检测是否有眨眼事件发生。
该方法依然是基于图像处理而言的,但此方法存在4个弊端,即:
(1)对于一帧图像,前期的瞳孔提取算法已经使用了较大的时间和内存,眨眼检测势必也将会增加一定的图像处理时间,使得图像处理速度有所减慢,使得鼠标移动出现滞后现象。
(2)瞳孔的大小会随着外界的光的强弱变化而变化,若突然出现强光,瞳孔大小会皱缩,使得瞳孔半径缩小,若半径小于设定的阈值,就会产生误判,造成判断错误。
(3)人自然情况下依然会眨眼,使用图像处理的办法想要判处自然眨眼所带来的影响难度较大。
(4)不同人的瞳孔并不相同,部分人可能出现自然状态下瞳孔大小不同,同时当人眼球向上看时,大部分眼球被眼皮包裹,露出的瞳孔半径很小,也会将向上看时瞳孔的变化误判为眨眼,造成判断错误。
基于以上诸多问题,本设计最终采用传感器检测的办法,这里采用接近传感器,其工作原理如下:人睁眼时会反射传感器发射的红外光,此时传感器的输出为低电平,当人眨眼时,由于眼皮的反射能力较弱,此时传感器的输出将变为高电平,同时,眨眼的时间长短对应于传感器正脉宽的长短,至此解决了以上问题。
6 实验数据分析
6.1瞳孔中心-屏幕映射函数
使用屏幕分辨率为1366×768的笔记本电脑显示屏作为实验对象,观察者头部位于距显示屏水平约45 cm、竖直约40 cm的位置。屏幕上目标采样点为9个等分点(见图9),记录眼睛注视屏幕上目标采样点时,瞳孔中心的五组坐标(见表1)。瞳孔中心在眼部图形中的位置如图11所示。
表1 瞳孔中心坐标与对应屏幕采样点的坐标
图11 瞳孔中心在眼部图像中的位置(截去不必要的部分)
分别采用一次多项式、二次不含交叉线的多项式和完全二次多项式对实验数据进行曲线拟合,结果如下。
表2中的自变量(x,y)区五组瞳孔中心坐标的平均值,X=f(x,y)为瞳孔中心到屏幕点横坐标的映射函数,Y=g(x,y)为瞳孔中心到屏幕点纵坐标的映射函数。R2是拟合优度判定系数,反应了回归曲线对观测值的拟合程度。
从以上实验结果中可以看出,线性函数可以解释大部分瞳孔中心到屏幕上点的映射关系拟合优度系数在0.9左右。引入二次项后,对拟合误差有一定的补偿效果,但幅度不大(拟合优度系数提高了0.1~0.2)。引入交叉项之后,拟合精度有较大幅度的提高(0.4~0.6),对屏幕点横纵坐标的映射,拟合优度均达到了0.95以上。
所以完全二次多项式,可以在较大的精度范围作为瞳孔中心-屏幕映射函数使用。
表2 不同目标函数的拟合结果
7 总结
本设计中探讨的眼控鼠标最终以较好的效果实现了视线方向的追踪,进而完成了鼠标的定位,具有较强的稳定性。可以使人在使用电脑的同时解放双手做其他的事情或者放松,同时也在一定程度上避免了因使用鼠标时机械固定的姿势而引起的手腕或其他部位的疾病。此外,本设计中所涉及的视线追踪技术在军事、医疗、交通驾驶等方面也能够被广泛地利用。
但是改眼控鼠标也有一定局限性,其所建立的瞳孔坐标到屏幕坐标的映射模型是以使用者的头部保持不动为前提的。在实际使用中,使用者的头部必然会出现不可避免的移动,头部的移动会使得模型得到的映射关系发生改变。在以后的研究中需要充分考虑头部移动对注视点估计的影响,引入头部运动补偿算法来解决这种影响。同时,在未来该项目可以融和平面显示及语音控制功能,使得本项目更加完善。
[1]赵新灿,左洪福,任勇军.眼动仪与视线跟踪技术综述[J].计算机工程与应用,2006(12):118-120.
[2]张昀,牟轩沁.视线跟踪技术及基于MATLAB的眼动人因实验开发和建模方法[J].工业工程与管理,2014,19(2):89-95.
[3]迟健男,王志良,张闯.视线追踪[M].北京:机械工业出版社,2011:23-41,125-162.
[4]卞锋,江漫清,张红.视线跟踪技术及其应用[J].人类工效学,2009,15(1):48-52.
[5]王福斌,李迎燕,刘杰.基于OpenCV的机器视觉图像处理技术实现[J].机械与电子,2010,2010(6):54-57.
[6]方玫,喻擎苍,李华强.C++Builder下基于opencv的数字图像处理[J].计算机工程与设计,2008,29(4):882-884.
[7]蒲小勃,王月星,邓宏平.视线跟踪系统中的分级瞳孔定位算法[J].航空学报,2012,33(6):1052-1060.
[8]孙兴华,陈国勇,赵春霞.基于Hough变换和梯度信息的人眼视线方向估计[J].小型微型计算机系统,2007,28(6):1124-1128.
[9]胡畔,董春鹏,吴晓荣.基于视线跟踪技术的眼控鼠标[J].天津师范大学学报(自然科学版),2007,27(3):68-71.
[10]重庆市科学技术研究院.一种眼控鼠标实现方法及系统[P]:中国,103176607A.2013-06-26.
[11]赵新灿,左洪福,徐兴民.视线跟踪技术研究[J].光电工程,2007,34(10):118-123.
[12]程建川,韩样,叶丹.车辆模拟行驶中视线跟踪技术的实现[J].交通运输工程学报,2003,3(2):113-116.
[13]陈恩水,王峰.数学建模与实验[M].北京:科学出版社,2008:84-85.
朱麒文(1994-),男,汉族,东南大学电子科学与工程学院本科在读,传感网技术专业,zqw393@163.com;
闫隆鑫(1993-),男,汉族,东南大学电子科学与工程学院本科在读,电子科学与技术专业,213123279@seu.edu.com;
张若兰(1994-),女,汉族,东南大学电子科学与工程学院本科在读,传感网技术专业,lynx5120555@126.com;
张帅(1993-),男,汉族,东南大学电子科学与工程学院本科在读,电子科学与技术专业,1198330917@qq.com;
杨兰兰(1978-),女,汉族,博士,副教授,东南大学电子科学与工程学院,研究方向为物理电子学、显示科学与技术,jujube_yang@seu.edu.cn。
Design of Eye-Controlled Mouse Based on Eye Tracking Technology*
ZHU Qiwen,YAN Longxin,ZHANG Ruolan,ZHANG Shuai,YANG Lanlan*
(School of Electronic Science and Engineering,Southeast University,Nanjing 210096,China)
With the platform of Visual Studio,the basis of OpenCV computer vision library and the assistance of a MCU,sensors and wireless transmission modules,a head-mounted eye tracking system is built.The system accom⁃plished pupil extraction,eye tracking positioning,blinking detection and other functions which enabled eyes instead of mouse to complete computer instructions.Innovative methods have been presented:integral projection denoising,capturing the pupil center through ellipse fitting algorithm,etc.This series of methods eliminates the influence of slight movement of the head on positioning accuracy,endowing the system with high accuracy and practicality.
information processing technology;eye-controlled mouse;eye tracking technology;pupil extraction;im⁃age processing;opencv
R339.14
A
1005-9490(2016)02-0235-07
EEACC:7510D;6140C10.3969/j.issn.1005-9490.2016.02.001
项目来源:江苏省高等学校大学生创新创业训练计划项目
2015-05-28修改日期:2015-07-04