法律状态公告日
法律状态信息
法律状态
2019-04-09
授权
授权
2017-03-22
实质审查的生效 IPC(主分类):G06F3/01 申请日:20160829
实质审查的生效
2017-02-22
公开
公开
技术领域
本发明涉及人机交互、视觉认知等领域,具体涉及一种基于眼动跟踪的最后阅读位置显示方法和系统。
背景技术
人们在电脑等电子设备上进行阅读的过程中,经常出现暂停阅读的情况,例如需要暂时中断阅读去处理其他工作,或者切换到其他程序窗口进行操作等。而当用户重新开始阅读时,常常需要花费一段时间寻找上次最后阅读的位置。对最后阅读位置的回忆和搜索过程,显著降低了用户的阅读效率和体验水平,尤其是在用户经常需要暂停和恢复阅读的情况下。
眼动跟踪技术可以实时计算出用户视线在屏幕上的注视点位置,进而可以计算最后阅读位置。但是目前缺乏最后阅读位置的精确计算和显示方法,以及相应的系统。
发明内容
本发明要克服现有技术的缺点,提供一种基于眼动跟踪的最后阅读位置显示方法和系统,通过外部眼动跟踪系统获取眼动跟踪注视点数据,进而计算用户视线离开阅读窗口时的最后阅读位置,并将其显示出来;此外,当检测到用户视线返回阅读窗口时,将最后阅读位置的显示效果取消。本方面需要获得用户实时的注视点数据,但本发明不限定注视点数据获取的方法,可以通过第三方的眼动跟踪系统获得。本发明通过计算和显示最后阅读位置,能在不干扰用户正常阅读的情况下,帮助用户快速定位最后阅读位置而继续阅读,有效提高了用户在频繁中断和继续阅读过程中的阅读效率和用户体验。
一种基于眼动跟踪的最后阅读位置显示方法,包括如下步骤:
(1)检测视线离开阅读窗口;
(2)计算最后阅读位置;
(3)显示最后阅读位置;
(4)检测视线返回阅读窗口;
(5)取消显示最后阅读位置。
本发明还提供了一种基于眼动跟踪的最后阅读位置计算与显示系统,包括以下模块:
眼动跟踪数据接收模块,用于与外部眼动跟踪系统建立连接,获取眼动跟踪数据。
视线离开阅读窗口检测模块,用于检测用户视线是否离开当前阅读窗口。
最后阅读位置计算模块,用于计算用户在当前阅读窗口的最后阅读位置。
最后阅读位置显示模块,用于将最后阅读位置在阅读窗口显示出来。
视线返回阅读窗口检测模块,用于检测用户视线是否返回原来的阅读窗口。
最后阅读位置显示取消模块,用于取消最后阅读位置在当前阅读窗口的显示效果。
本发明的优点是:在用户暂时中断阅读去处理其他工作,或者切换到其他程序窗口进行操作,且重新开始阅读时,通过计算和显示用户在阅读过程中的最后阅读位置,有助于用户快速回忆和搜索到上次最后阅读位置,并继续进行阅读,显著提高了用户的阅读效率和主观体验水平。
附图说明
图1是本发明基于眼动跟踪的最后阅读位置显示方法的流程示意图。
图2是本发明检测用户视线离开阅读窗口的算法流程示意图。
图3是本发明计算最后阅读位置的算法流程示意图。
图4是本发明显示最后阅读位置的效果示意图。
图5是本发明检测用户视线返回阅读窗口的算法流程示意图。
图6是本发明基于眼动跟踪的最后阅读位置计算与显示系统的基本逻辑结构示意图。
具体实施方式
下面将结合附图,对本发明一种基于眼动跟踪的最后阅读位置显示方法和系统进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,不能理解为对本发明的限制。
参阅图1,本发明实施例提供的一种基于眼动跟踪的最后阅读位置显示方法基本流程示意图,主要包括步骤:1)检测视线离开阅读窗口;2)计算最后阅读位置;3)显示最后阅读位置;4)检测视线返回阅读窗口;5)取消显示最后阅读位置。
下面对上述5个步骤进行具体描述:
(1)检测视线离开阅读窗口
在发生如下情况时判定视线离开阅读窗口:
情况1:阅读窗口关闭。具体的,如果检测到阅读窗口关闭,则判定用户视线离开阅读窗口。
情况2:阅读窗口最小化。具体的,如果检测到阅读窗口最小化,则判定用户视线离开阅读窗口。
情况3:切换到其他窗口。具体的,如果检测到窗口失活(即从当前阅读窗口切换到其他窗口),则判定用户视线离开阅读窗口。
情况4:视线离开窗口并超过一定时间阈值,则判定用户视线离开阅读窗口。
图2为检测视线离开阅读窗口的算法流程,具体步骤如下:
201:眼动跟踪设备获取一个新的注视点坐标后,接收该注视点做进一步处理。
202:根据眼动跟踪设备提供的数据,计算用户当前的阅读窗口区域,以此为依据判断新接收到的注视点是否在该区域内。
203:如果注视点坐标在阅读窗口区域内,则表明视线没有离开阅读窗口,设置参数beginTime=0,返回到步骤201,并重新等待接收下一个注视点。
204:如果注视点坐标不在阅读窗口区域内,则表明视线离开阅读窗口,此时需要判断beginTime是否等于0,由此判断之前视线是否已经离开阅读窗口。
205:如果beginTime等于0,则说明视线是第一次离开阅读窗口,设置beginTime为当前时间。
206:如果beginTime不等于0,则说明此前视线已经离开了阅读窗口,为此需计算timeSpan,timeSpan的值为当前时间与beginTime之间的间隔。
207:判断timeSpan是否大于阈值(可以设定,例如为1秒)。
208:如果timeSpan大于阈值,则说明用户视线离开了屏幕。否则,返回步骤201,重新等待接收下一个注视点。
(2)计算最后阅读位置
图3为计算最后阅读位置的算法流程图,具体步骤如下:
301:设置位置指针position为fixations队列开始位置,准备从队列头部开始搜索。
302:position和position+1处是否存在注视点,即判断当前位置和下一个位置是否存在注视点。
303:如果position和position+1处存在注视点坐标,则读取position处的注视点设为P1,读取position+1处的注视点设为P2。
304:计算P1与P2的横坐标距离DX和纵坐标距离DY。DX和DY的计算公式为DX=|P1.X-P2.X|,DY=|P1.Y-P2.Y|(P1.X,P2.X,P1.Y,P2.Y分别为P1和P2的横、纵坐标)。
305:判断DX是否大于横向阈值(可以设定,例如为4个字符的长度)或者DY是否大于纵向阈值(可以设定,例如为3行文本的高度)。
306:如果DX大于横向阈值或DY大于纵向阈值,说明用户的视线可能脱离阅读窗口区域,此处的注视点可能是最后阅读位置,为此将position处的注视点取出,存到一个列表list中。然后接着遍历队列,继续寻找符合条件的注视点保存到list中。
307:如果读取到队列末尾,则查看符合条件的注视点列表list中是否存在注视点元素。
308:如果list中有注视点,则list中的最后一个注视点就是最后阅读位置。
309:如果list为空,则说明视线是突然离开屏幕的,则取fixations队列中的最后一个注视点作为最后阅读位置。
(3)显示最后阅读位置
具体的,当完成最后阅读位置的计算后,就在阅读窗口区域内显示出最后注视点的位置。图中401表示最后阅读位置,402表示窗口内的文字,403代表阅读窗口。阅读窗口403内除了最后阅读位置上注视点外的其他区域加上了一层灰色模板,用户可以透过灰色模板看清下面的文字402,在最后阅读位置401附近颜色保持不变。
如果阅读窗口可见,则直接显示绘制得到的图像。如阅读窗口不可见时,例如阅读窗口最小化或者切换到其他窗口时,绘制的图像将保存在内存中,当阅读窗口重新可见时,绘制的图像将被显示出来。当阅读窗口即将关闭时,绘制后的图像将保存到外部存储器(例如磁盘)中,当阅读窗口再次被打开时,绘制的图像被显示出来。
(4)检测视线返回阅读窗口
在发生如下情况时判定视线返回阅读窗口:
情况1:阅读窗口打开。具体的,当阅读窗口打开时,则判定用户视线返回阅读窗口。
情况2:阅读窗口还原。具体的,如果检测到阅读窗口的大小被还原,则判定用户视线返回阅读窗口。
情况3:从其他窗口切换到阅读窗口。具体的,如果检测到窗口被激活(即从其他窗口切换到当前阅读窗口),则判定用户视线返回阅读窗口。
情况4:视线进入窗口并超过一定时间阈值,则判定用户视线返回阅读窗口。
图5为检测视线返回阅读窗口的算法流程,具体步骤如下:
501:眼动跟踪设备获取一个新的注视点坐标后,接收该注视点做进一步处理。
502:根据眼动跟踪设备提供的数据,计算用户当前的阅读窗口区域,以此为依据判断新接收到的注视点是否在该区域内。
503:如果注视点坐标在阅读窗口区域内,则表明视线没有进入阅读窗口,设置参数beginTime=0,返回到步骤501,并重新等待接收下一个注视点。
504:如果注视点坐标在阅读窗口区域内,则表明视线进入阅读窗口,此时需要判断beginTime是否等于0,由此判断之前视线是否已经进入阅读窗口。
505:如果beginTime等于0,则说明视线第一次进入阅读窗口,设置beginTime为当前时间。
506:如果beginTime不等于0,则说明此前视线已经进入了阅读窗口,为此需计算timeSpan,timeSpan的值为当前时间与beginTime之间的间隔。
507:判断timeSpan是否大于阈值(可以设定,例如为1秒)。
508:如果timeSpan大于阈值,则说明用户视线进入了屏幕。否则,返回步骤501,重新等待接收下一个注视点。
(5)取消显示最后阅读位置。
具体的,当检测视线返回阅读窗口后,取消原来最后阅读位置的显示,恢复正常阅读模式。
如图6所示,本文发明实施例提供的一种基于眼动跟踪的最后阅读位置计算与显示系统的基本逻辑结构示意图。为了便于说明,仅仅示出了与本发明实施例相关的部分。该系统中功能模块/单元可以是硬件模块/单元、软件模块/,包括:
眼动跟踪数据接收模块,用于与外部眼动跟踪系统建立连接,获取眼动跟踪数据,提供给其他模块进行处理。具体的,在眼动跟踪数据接收模块设定外部眼动跟踪系统的IP地址和端口号,用于与外部眼动跟踪系统建立网络连接。此处所指外部眼动跟踪系统具有检测用户视线方向,实时计算用户视线在电子设备屏幕上注视点坐标数据,以及能向外部网络连接系统发送注视点坐标数据的功能。眼动跟踪数据接收模块需要将电子设备的屏幕分辨率在建立网络连接时发送给外部眼动跟踪系统,使之用于计算注视点坐标数据。当眼动跟踪数据接收模块与外部眼动跟踪系统建立网络连接后,眼动跟踪数据接收模块能够获得来自外部眼动跟踪系统发送的注视点坐标数据。眼动跟踪数据接收模块将注视点坐标数据保存到一个队列中,队列的存储空间可以事先指定。如果接收到一个注视点时,队列存储空间不足,则按照先进先出的顺序删除队列头部最早存储的一个注视点坐标数据,并在队列末尾添加新的注视点坐标数据。
视线离开阅读窗口检测模块,用于检测用户视线是否离开当前阅读窗口。
最后阅读位置计算模块,用于计算用户在当前阅读窗口的最后阅读位置,具体包括该位置眼动跟踪注视点的横坐标与纵坐标。
最后阅读位置显示模块,用于将最后阅读位置在阅读窗口显示出来。
视线返回阅读窗口检测模块,用于检测用户视线是否返回原来的阅读窗口。
最后阅读位置显示取消模块,用于取消最后阅读位置在当前阅读窗口的显示效果。
本发明实施例中各个模块可以集成于一体,也可以分离部署,或进一步拆分成多个子模块。各个模块可以按照实施例描述分布于实施例的系统中,也可以进行相应变化位于不同于本发明实施例的一个或多个系统中。
本领域的技术人员应该明白,本发明实施例可提供成为方法、系统、或计算机程序产品。
本发明实施例的各模块或各步骤可以用通用的计算装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。因此,本发明实施例不限制于任何特定的硬件和软件结合。
以上公开的仅为本发明的具体实施例,但是本发明并非局限于此,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。显然这些改动和变型均应属于本发明要求的保护范围保护内。
机译: 基于眼动跟踪的裸眼3D显示方法及控制系统
机译: 配备有基于位置的短消息服务系统的移动通信终端,基于位置的消息生成方法和基于位置的消息显示方法
机译: 配备有基于位置的短消息服务系统的移动通信终端,基于位置的消息生成方法和基于位置的消息显示方法