基于眼球追踪的空间数据沉浸式交互方法与流程

文档序号:12461683阅读:248来源:国知局
基于眼球追踪的空间数据沉浸式交互方法与流程
本发明涉及地理信息系统技术,尤其是一种基于眼球追踪的空间数据沉浸式交互方法。
背景技术
:空间数据沉浸式交互方法是地理信息系统中需要解决的重要问题之一,目前空间数据的交互方式主要是通过鼠标、键盘、触摸板等交互设备实现,也可以基于手势识别技术,通过手的动作来进行空间数据交互。上述交互方法在用户使用眼睛注视空间数据时,均需要同时使用手来进行设备操作,完成空间数据的交互过程。使得用户需要将一部分注意力放在手的控制上,降低了用户体验,而且无法适用于上肢残障人群。技术实现要素:本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于眼球追踪的空间数据沉浸式交互方法,利用便携式笔记本的前置摄像头、USB外置摄像头以及其它带有摄像头的硬件设备,通过追踪眼球位置的变化来自动完成空间数据的可视化交互,解决传统交互方式需要手参与的缺陷,增强用户体验。本发明解决其技术问题所采用的技术方案是:一种基于眼球追踪的空间数据沉浸式交互方法,其包括以下步骤:步骤1)初始化空间数据可视化窗口,计算空间数据可视化窗口中心点O’的坐标值(xo1,yo1),计算空间数据可视化窗口的四个顶点B’(xb1,yb1)、A’(xa1,ya1)、C’(xc1,yc1)、D’(xd1,yd1)的坐标值,设置操作类型为“位置标定”;步骤2)启动摄像头设备,判断操作类型,如果操作类型是“位置标定”,转步骤3),如果是“可视化交互”,转步骤8);步骤3)提示用户保持身体不动,头部向左上角移动,眼球注视空间数据可视化窗口的左上角B’,采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,计算眼球视线焦点(即两个眼球连线的中点)的坐标值,设其为点B,坐标为(xb,yb);步骤4)提示用户保持身体不动,头部向左下角移动,眼球注视空间数据可视化窗口的左下角D’,采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,计算眼球视线焦点的坐标值,设其为点D,坐标为(xd,yd);步骤5)提示用户保持身体不动,头部向右上角移动,眼球注视空间数据可视化窗口的右上角A’,采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,计算眼球视线焦点的坐标值,设其为点A,坐标为(xa,ya);步骤6)提示用户保持身体不动,头部向右下角移动,眼球注视空间数据可视化窗口的右下角C’,采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,计算眼球视线焦点的坐标值,设其为点C,坐标为(xc,yc);步骤7)计算视线焦点在X和Y方向上移动1个像素相当于空间数据在X和Y方向上移动的空间坐标距离,设其分别为px和py,坐标标定结束。关闭摄像头,设置操作类型为可视化交互,转步骤2)。步骤8)提示用户保持身体不动,根据用户的交互需求,移动头部并用眼睛注视空间数据可视化窗口的相应位置;步骤9)采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,计算眼球视线焦点坐标,判断该位置是否在坐标标定的四个点构成的四边形范围ABDC内,如果是,转步骤10),如果否,则转步骤12);步骤10)计算眼球视线焦点相对于四边形范围ABDC中点O(xo,yo)在X和Y方向上的偏移量,判断X和Y方向偏移量是否小于指定阈值T,如果X和Y方向的偏移量均小于T,转8),如果否,则转11);步骤11)根据眼球视线焦点的偏移量计算出新的空间数据可视化窗口的中心点坐标值,更新空间数据可视化窗口中的图像数据,更新中心点O’的坐标值(xo1,yo1),转步骤8)进行下一次交互;步骤12)关闭摄像头,结束。本发明的有益效果是能够通过摄像头采集到的人脸图像,自动追踪眼球的位置变化,并推算出新的空间数据可视化范围中心点,同步更新空间数据可视化窗口中的图像数据,解决传统空间数据交互方式中需要依赖于手的缺陷,让用户所有注意力全部沉浸到空间数据的可视化窗口中,增强空间数据可视化交互体验,尤其适用于上肢残障人群。附图说明下面将结合附图及实施例对本发明作进一步说明,附图中:图1是本发明的方法流程图;图2是本发明摄像头采集图像中标定的视线焦点与空间数据可视化窗口四个顶点的映射关系图;图3是本发明实施例使用的空间数据示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。如图1所示,图1是本发明提供的基于眼球追踪的空间数据沉浸式交互方法流程图,所述方法包括以下步骤:步骤1)初始化空间数据可视化窗口,宽度为W像素,高度为H像素,设空间数据的原始地理坐标范围为[(xmin,xmax),(ymin,ymax)],根据公式(1)-(2)计算空间数据可视化窗口中心点O’的坐标值(xo1,yo1),根据公式(3)-(10)计算空间数据可视化窗口的四个顶点B’(xb1,yb1)、A’(xa1,ya1)、C’(xc1,yc1)、D’(xd1,yd1)的坐标值,四个顶点与摄像头采集图像中的眼球视线焦点的对应关系如图2所示。设置操作类型为“位置标定”。xo1=xmin+max(xmax-xmin,ymax-ymin)/max(W,H)*W/2公式(1)yo1=ymin+max(xmax-xmin,ymax-ymin)/max(W,H)*H/2公式(2)xb1=xmin公式(3)yb1=ymin+max(xmax-xmin,ymax-ymin)/max(W,H)*H公式(4)xa1=xmin+max(xmax-xmin,ymax-ymin)/max(W,H)*W公式(5)ya1=ymin+max(xmax-xmin,ymax-ymin)/max(W,H)*H公式(6)xc1=xmin+max(xmax-xmin,ymax-ymin)/max(W,H)*W公式(7)yc1=ymin公式(8)xd1=xmin公式(9)yd1=ymin公式(10)步骤2)启动摄像头设备,判断操作类型,如果操作类型是“位置标定”,转步骤3),如果是“可视化交互”,转步骤8)。步骤3)提示用户保持身体不动,头部向左上角移动,眼球注视空间数据可视化窗口的左上角B’,采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,设左眼眼球中心点的坐标为(xl,yl),右眼眼球中心点的坐标为(xr,yr),依据公式(11)-(12)计算眼球视线焦点(即两个眼球连线的中点)的坐标值(xcur,ycur),设其为点B,坐标为(xb,yb)。xcur=(xl+xr)/2公式(11)ycur=(yl+yr)/2公式(12)步骤4)提示用户保持身体不动,头部向左下角移动,眼球注视空间数据可视化窗口的左下角D’,采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,与步骤3)中B点坐标的计算方法相同,计算眼球视线焦点的坐标值,设其为点D,坐标为(xd,yd)。步骤5)提示用户保持身体不动,头部向右上角移动,眼球注视空间数据可视化窗口的右上角A’,采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,计算眼球视线焦点的坐标值,与步骤3)中B点坐标的计算方法相同,设其为点A,坐标为(xa,ya)。步骤6)提示用户保持身体不动,头部向右下角移动,眼球注视空间数据可视化窗口的右下角C’,采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,计算眼球视线焦点的坐标值,与步骤3)中B点坐标的计算方法相同,设其为点C,坐标为(xc,yc)。步骤7)计算视线焦点在X和Y方向上移动1个像素相当于空间数据在X和Y方向上移动的空间坐标距离,设其分别为px和py,计算公式为公式(13)-(14),坐标标定结束。关闭摄像头,设置操作类型为可视化交互,转步骤2)。px=(xa1-xb1)/(xb-xa)公式(13)py=(ya1-yc1)/(yc-ya)公式(14)步骤8)提示用户保持身体不动,根据用户自身的交互需求,自行移动头部并用眼睛注视空间数据可视化窗口的相应位置;步骤9)采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,计算眼球视线焦点坐标(xcur,ycur),与步骤3)中B点坐标的计算方法相同,判断该位置是否在坐标标定的四个点构成的四边形范围ABDC内,如果是(估算方法为xa<xcur<xb且ya<ycur<yc),转步骤10),如果否,则转步骤12)。步骤10)计算眼球视线焦点(xcur,ycur)相对于四边形范围ABDC中点O(xo,yo)在X和Y方向上的偏移量,设分别为dx和dy,则dx=xcur-xo,dy=ycur-yo。判断X和Y方向偏移量的绝对值是否小于指定阈值T,如果X和Y方向的偏移量均小于阈值T,转8),如果否,则转11)。步骤11)根据眼球视线焦点的偏移量dx和dy计算出新的空间数据可视化窗口的中心点坐标值(tempx,tempy),其计算方法如公式(15)-(16)所示,使用新的中心点坐标更新空间数据可视化窗口中的图像数据,更新中心点O’的坐标值(xo1,yo1),转步骤8)进行下一次交互。tempx=xo1-dx*px公式(13)tempy=yo1-dy*py公式(14)步骤12)关闭摄像头,结束。本发明最明显的不同借助摄像头设备采集到的人脸图像,实现眼球视线焦点的自动跟踪,根据眼球视线焦点的位置变化来推算空间数据的位移,同步更新空间数据可视化窗口中的图像,使得用户不需要使用手来进行空间数据的交互,从而可以将注意力全部沉浸到空间数据可视化窗口中,增强空间数据可视化交互体验,尤其适用于上肢残障人群。实施例一:为了更清晰的说明本发明的思想,下面对基于眼球追踪的空间数据沉浸式交互方法进行进一步的说明,以图3所示的空间数据为例,其原始空间数据范围为[(-180,-90),(180,90)],设置眼球视线焦点偏移阈值T为5像素,空间数据可视化窗口宽度设置为1000像素,高度设置为600像素,以眼球注视图3中点F的交互过程为例进行阐述,使用Openlayers作为空间数据显示引擎,使用OpenCV图像处理库采集摄像头图像并对图像进行处理,具体步骤如下:步骤1)初始化空间数据可视化窗口,宽度为1000像素,高度为600像素,空间数据的原始地理坐标范围为[(-180,-90),(180,90)],根据公式(1)-(2)计算空间数据可视化窗口中心点O’的坐标值(xo1,yo1),根据公式(3)-(10)计算空间数据可视化窗口的四个顶点B’(xb1,yb1)、A’(xa1,ya1)、C’(xc1,yc1)、D’(xd1,yd1)的坐标值,计算结果如表1所示,调用Openlayers提供的setCenter方法,设置空间数据可视化窗口的中心点为(0,18),并调用setResolution方法设置空间数据可视化分辨率为360/1000=0.36。设置操作类型为“位置标定”。表1空间数据可视化窗口各个顶点坐标坐标点坐标值O’(0,18)A’(180,126)B’(-180,126)C’(180,-90)D’(-180,-90)步骤2)调用OpenCV中VideoCapture提供的open函数启动摄像头设备,判断操作类型,如果操作类型是“位置标定”,转步骤3),如果是“可视化交互”,转步骤8)。步骤3)提示用户保持身体不动,头部向左上角移动,眼球注视空间数据可视化窗口的左上角B’,通过OpenCV中VideoCapture提供的frame变量采集图像数据,通过OpenCV中CascadeClassifier提供的detectMultiScale函数提取图像数据中左眼和右眼的眼球位置信息,左眼眼球中心点的坐标(x1,y1)为(369,195),右眼眼球中心点的坐标(xr,yr)为(299,193),依据公式(11)-(12)计算眼球视线焦点(即两个眼球连线的中点)的坐标值(xcur,ycur),xcur=(369+299)/2=334,ycur=(193+195)/2=194,设其为点B(xb,yb),即xb=334,yb=194。步骤4)提示用户保持身体不动,头部向左下角移动,眼球注视空间数据可视化窗口的左下角D’,采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,左眼眼球中心点的坐标为(365,231),右眼眼球中心点的坐标为(295,233),与步骤3)中的计算方法相同,计算出眼球视线焦点的坐标值为(330,232),设其为点D(xd,yd),即xd=330,yd=232。步骤5)提示用户保持身体不动,头部向右上角移动,眼球注视空间数据可视化窗口的右上角A’,采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,左眼眼球中心点的坐标为(280,192),右眼眼球中心点的坐标为(200,190),与步骤3)中的计算方法相同,计算出眼球视线焦点的坐标值为(240,191),设其为点A(xa,ya),即xa=240,ya=191。步骤6)提示用户保持身体不动,头部向右下角移动,眼球注视空间数据可视化窗口的右下角C’,采集图像数据,提取图像数据中左眼和右眼的眼球位置信息,左眼眼球中心点的坐标为(269,234),右眼眼球中心点的坐标为(191,232),与步骤3)中的计算方法相同,计算出眼球视线焦点的坐标值为(230,233),设其为点C(xc,yc),即xc=230,yc=233。步骤7)计算视线焦点在X和Y方向上移动1个像素相当于空间数据在X和Y方向上移动的空间坐标距离,设其分别为px和py,计算公式为公式(13)-(14),px=(180+180)/(334-240)=3.829787,py=(126+90)/(233-191)=5.142857。坐标标定结束。调用OpenCV中VideoCapture提供的release函数关闭摄像头,设置操作类型为可视化交互,转步骤2)。步骤8)提示用户保持身体不动,用户根据自身的交互需求,自行移动头部并用眼睛注视空间数据可视化窗口F点;步骤9)通过OpenCV中VideoCapture提供的frame变量采集图像数据,通过OpenCV中CascadeClassifier提供的detectMultiScale函数提取图像数据中左眼和右眼的眼球位置信息,左眼眼球中心点的坐标为(287,205),右眼眼球中心点的坐标为(209,205)。与步骤3)中的计算方法相同,计算眼球视线焦点坐标(xcur,ycur)为(248,205),估算该位置是否在坐标标定的四个点构成的四边形范围ABDC内,因为240=xa<xcur=248<xb=334且191=ya<ycur=205<yc=233,因此转步骤10)。步骤10)估算当前眼球视线焦点(248,205)相对于四边形范围ABDC中点O(xo,yo)在X和Y方向上的偏移量,设分别为dx和dy,则dx=xcur-xo=xcur–(xb+xa)/2=248-(334+240)/2=-39,dy=ycur-yo=ycur-(yc+ya)/2=205-(233+191)/2=-7。判断X和Y方向偏移量的绝对值是否小于指定阈值T=5,因为X和Y方向的偏移量绝对值均大于阈值5,因此转11)。步骤11)根据眼球视线焦点的偏移量dx和dy计算出新的空间数据可视化窗口的中心点坐标值(tempx,tempy),其计算方法如公式(15)-(16)所示,tempx=0-(-39)*3.829787=149.361693,tempy=18-(-7)*5.142857=53.999999。调用Openlayers中提供的setCenter方法,使用新的中心点坐标(149.361693,53.999999)更新空间数据可视化窗口中的图像数据,更新中心点O’的坐标值(xo1,yo1)为(149.361693,53.999999)。至此,眼球注视图3中F点时同步更新可视化窗口中空间数据的沉浸式交互过程到此结束。采用本发明设计的基于眼球追踪的空间数据沉浸式交互方法,在用户眼睛注视空间数据可视化窗口时,能够通过摄像头采集到的人脸图像,计算出眼球视线焦点的变化,从而进一步推算出空间数据可视化窗口中的数据的偏移量,该方法摆脱了传统交互方式需要依赖于手操作的缺陷,使得用户注意力可以完全沉浸到空间数据可视化中,极大地增强了用户体验,尤其适用于上肢残障人群。在上述步骤中需要特别说明的是:1.本发明将两个眼球连线中点作为眼球视线焦点,使用该点在摄像头采集图像中的像素坐标偏移来推算空间数据的地理坐标位移。2.本发明支持空间数据在同一分辨率下向任意方向移动,基于该方法可以进一步改进和演化,基于左眼和右眼的距离变化来改变空间数据的显示分辨率,同样在权利保护范围内。3.本发明同时适用于空间数据在二维视图和三维视图中的可视化交互,且适用于矢量空间数据和栅格空间数据,均在权利保护范围内。4.基于双摄像头眼动仪、多摄像头眼动仪、Kinect等任何带有摄像头的设备,均可以在本发明的基础上进行改进和变换,所有基于这些硬件进行的改进和变换均在权利保护范围内。应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1