一种基于使用历史的视线跟踪定标方法
技术领域
本发明涉及一种基于双光源的视线跟踪校正方法,属于视频、多媒体信号处理技术领域。
背景技术
眼睛是人类从周围环境中获取信息的主要器官,同时也是表达个人兴趣要求和情绪状态的重要方式。因此,眼睛的运动检测和视线跟踪技术一直以来是国内外研究的热门领域。随着科学技术的快速发展,视线跟踪技术已经在心理测试、广告设计、医学诊断等方面得到广泛应用。而作为一种交互技术,视线跟踪技术的应用研究正逐步受到关注并具有广阔的前景。
在视线跟踪技术进行实际交互应用的过程中,存在以下几个挑战:1)绝大多数视线跟踪算法采用红外光源作为辅助设备,并采用高质量的视频摄像头进行图像采集,增加了硬件成本,同时红外光源需要在室内使用,在户外环境下适应性较差;2)在视线跟踪算法中,由于视轴与光轴之间存在角度偏差以及算法中参数近似的影响,系统必须经过一个定标过程才能获得较好的精度。在定标过程中,用户需要注视特定的多个定标点,系统根据定标点的估计值与实际值之间的关系补偿算法误差,以完成定标。通常,每次使用视线跟踪设备前都需要进行定标,大大影响了用户体验的自然性。
近几年,电脑、平板等电子设备越来越倾向于个人使用,一台电脑或平板往往具有固定的使用人,并且个人往往拥有专用的电脑、平板或手机。因此找到一种针对特定用户的、简单快速的定标方法,对视线跟踪技术的普及和发展具有重要的意义。
发明内容
为了改进传统的视线跟踪设备每次使用前都需定标的过程,提高用户交互体验的自然性,本发明提出了一种新的视线跟踪定标方法。该方法充分考虑了个人电子产品使用者相对固定的特点,完全摒弃了传统的一用一定标的思维局限,将原有的定标过程在时间上进行扩展,使其贯穿某一使用者的长期使用过程。该方法充分利用视线跟踪设备的使用历史,通过对使用历史数据的积累和学习,逐渐建立起定标误差与注视位置之间的函数关系。针对特定使用者,在使用初期,每次使用每次定标,在每次定标后,记录标定过程中的注视点实际位置、注视点估计值和估计误差等定标信息;在后续使用的过程中,根据已经获得的定标关系来降低每次使用对于定标的依赖性,进而经过一定使用次数的积累,最终实现无需人为定标即可使用的目的。
因为定标过程是每种视线跟踪算法中都需要的,而本发明是一种由积累的定标信息估计出当前定标信息的方式,所以,是一种对视线跟踪通用的方法,而不限于某一种特定的视线跟踪方式。在通常的使用环境中,平板类的设备通常都是自己使用,每次使用时,用户与平板之间的位置相对稳定,但总会有差异。针对于固定用户使用的电子设备的情况来说,当用户在不同的位置上注视屏幕上固定的几个定标点,记录下相应的定标数据,当定标数据采集的数量达到系统要求后,便可根据当前用户的位置和已经采集的标定信息,直接估计出当次使用的标定关系,直接进行视线交互使用就可以达到本发明的应用要求;对于固定小人群用户使用的电子设备的情况来说,可以通过人脸识别等方式先进行用户身份区分,再进行定标数据采集和处理。
本发明采用的技术方案如下:
一种基于使用历史的视线跟踪定标方法,分为两个阶段:一是根据积累的注视位置参考信息确定定标点之间的函数关系;二是在实际使用过程中利用已经得到的定标关系获取当前位置的定标数据,具体步骤为:
(一)根据积累的注视位置参考信息确定定标点之间的函数关系
(1)在计算机屏幕上固定且均匀地选取若干位置点作为定标点,并选择其中一个定标点作为基准点;
(2)用户多次在不同的位置上,依次注视步骤(1)中规定的定标点,记录下用户在不同位置时对各个定标点注视位置的估计坐标值,并计算出上述估计坐标值的估计误差值;
(3)对注视定标点过程中采集得到的数据进行选择,将其作为注视位置参考信息;
(4)根据步骤(3)中选取的注视位置参考信息,分析计算得到定标点之间的函数关系;
(二)实际使用过程中利用已经得到的定标点之间的函数关系获取当前位置的定标数据
(1)根据阶段(一)步骤(3)中采用的注视位置参考信息的不同,用户在某一未知位置采集得到相应的定标信息;
(2)根据阶段(一)中步骤(4)中得到的定标点之间的函数关系,分别将采集得到的定标信息代入已经得到的定标点之间的函数关系中,计算得到当前位置上定标点的估计误差;
(3)根据定标点的真实坐标值与阶段(二)中步骤(2)得到的估计误差,计算得到其它定标点在当前注视位置上的估计坐标值,用以补偿视线算法中的估计误差以及视轴与光轴之间的偏角。
特别地,所述阶段(一)的步骤(2)中,可以将用户使用情况分为以下两种:
a、针对固定用户使用的电子设备,用户需按照规定顺序注视屏幕上的若干定标点,根据实际要求采集得到定标数据;
b、对于群体用户使用的电子设备的情况来说,可以通过人脸识别或注视特性识别的方式先进行用户身份区分,再进行定标数据采集和处理。
可选地,所述阶段(一)的步骤(3)中,根据步骤(2)中计算得到的用户在不同位置时对各个定标点注视位置的估计坐标值,计算各个定标点估计坐标值与真实坐标值之间的差值,将上述差值作为注视位置参考信息。
特别地,若阶段(一)步骤(3)中使用各个定标点估计坐标值与真实坐标值之间的差值作为注视位置参考信息,则在所述阶段(一)的步骤(4)中,将k个不同位置上的定标点估计误差组成矩阵cal_X′和cal_Y′,
其中,x0′,y0′分别表示基准点在x轴上和y轴上的估计误差值;xi′,yi′(i=1,2,…m)分别表示其它定标点在x轴上和y轴上的估计误差值;x′k0,y′k0分别表示用户在k个不同位置上注视基准点时,基准点在x轴上和y轴上的估计误差值;x′km,y′km分别表示用户在k个不同位置上注视其它定标点时,其它定标点在x轴上和y轴上的估计误差值;
对估计误差数据进行多项式拟合,将k个不同位置上其它定标点在x轴估计误差xi′(i=1,2,…m)与基准点x0′进行数据拟合,在y轴估计误差yi′(i=1,2,…m)与中心坐标点y0′进行数据拟合,得到基准点估计误差与其它定标点估计误差之间的函数关系:
特别地,若阶段(一)步骤(3)中使用各个定标点估计坐标值与真实坐标值之间的差值作为注视位置参考信息,则在所述阶段(二)的步骤(1)中,用户需要注视基准点,计算得到其估计误差。
可选地,所述阶段(一)的步骤(3)中,通过相机获取到用户的眼睛注视图像,将用户右眼采集到的图像用于视线估计,具体方法为:采用Haar分类器检测图像中眼睛区域,并利用角点检测方法对内眼角进行检测,得到右眼内眼角在图像中的坐标值,用以表征用户注视位置,将右眼内眼角的坐标值与各个定标点的误差值作为注视位置参考信息。
特别地,若所述阶段(一)的步骤(3)中将右眼内眼角的坐标值(xcorner,ycorner)与各个定标点的误差值作为注视位置参考信息,则在所述阶段(一)的步骤(4)中,将k个不同位置上各个定标点在x轴坐标值xi′(i=1,2,…(m+1))与内眼角xcorner进行数据拟合,在y轴估计误差yi′(i=1,2,…(m+1))与内眼角ycorner进行数据拟合,得到内眼角坐标值与定标点估计误差之间的函数关系:
特别地,若阶段(一)步骤(3)中将右眼内眼角的坐标值与各个定标点的误差值作为注视位置参考信息,则在所述阶段(二)的步骤(1)中,只需计算用户当前位置上右眼内眼角在图像中的坐标值。
附图说明
图1是视线跟踪系统硬件示意图;
图2是视线跟踪系统框图;
图3是本发明方法的步骤流程图;
图4是定标点位置示意图;
图5是不同位置采集定标点注视信息示意图,其中(a)是用户在位置1注视定标点示意图,(b)是相同用户在位置2注视定标点示意图;
图6是实际使用中相同用户在某一位置注视基准点示意图。
具体实施方式
本发明的方法是采用红外光源的视线跟踪系统。硬件系统包括2.99GHZ戴尔双核个人计算机,显示器屏幕为19寸(41×26cm),并在显示器的下方两个角落分别设置一个近红外光源,用于角膜上产生反射点,计算机下方安装一个分辨率为680×480的灰度摄像机用于实验过程中采集视频。受测试者在距离屏幕60cm位置,头部可以在相机的视野范围内移动。
图1给出了系统的硬件框图,图2给出了视线追踪系统框图,图3给出了该发明的实现流程,按照流程该发明具体实现步骤如下:
(一)根据积累的注视位置参考信息确定定标点间的函数关系
(1)将计算机屏幕划分成m个区域,选取屏幕上每个区域中的中间点作为基准点,这m个坐标点与基准点构成定标点Pi(i=0,1,...,(m+1));
(2)根据可以将用户使用情况的不同,可以将用户分为以下两种:
a、针对固定用户使用的电子设备,用户分别在相机视野范围内的k个不同的位置上按照固定顺序注视(1)中规定的(m+1)个定标点,每个点注视3~5秒。计算出k个不同位置上(m+1)个定标点的估计坐标值(k=1,2...n,i=0,1,...,(m+1));
b、对于固定小人群用户使用的电子设备的情况来说,可以通过人脸识别等方式先进行用户身份识别,再按照情况a中的步骤进行定标数据采集。
(3)对注视定标点过程中采集得到的数据进行适当选择,将其作为注视位置参考信息,以下为两种示例方法:
a、方法一:根据步骤(2)中计算得到的不同位置上各个定标点估计值,计算各个定标点估计坐标值与真实坐标值之间的差值,将各个定标点的误差值作为注视位置参考信息;
b、方法二:通过相机获取到用户的眼睛注视图像,将用户右眼采集到的图像用于视线估计。采用Haar分类器检测图像中眼睛区域,并利用Susan角点检测算子等角点检测方法对内眼角进行检测,得到右眼内眼角在图像中的坐标值,用以表征用户注视位置。将右眼内眼角的坐标值与各个定标点的误差值作为注视位置参考信息;
(4)根据步骤(3)中选取的注视位置参考信息,分析计算得到定标点之间的函数关系,以下为两种示例方法:
a、若采用各个定标点的误差值作为注视位置参考信息,则将k个不同位置上的定标点估计误差组成矩阵cal_X′和cal_Y′。
其中,x0′,y0′分别表示基准点在x轴上和y轴上的估计误差值;xi′,yi′(i=1,2,…m)分别表示其它定标点在x轴上和y轴上的估计误差值;x′k0,y′k0分别表示用户在k个不同位置上注视基准点时,基准点在x轴上和y轴上的估计误差值;x′km,y′km分别表示用户在k个不同位置上注视其它定标点时,其它定标点在x轴上和y轴上的估计误差值;
采用二次函数对估计误差数据进行曲线拟合,将k个不同位置上其它定标点在x轴估计误差xi′(i=1,2,…m)与基准点x0′进行数据拟合,在y轴估计误差yi′(i=1,2,…m)与基准点y0′进行数据拟合,可以得到基准点估计误差与其它定标点估计误差之间的函数关系:
b、若采用右眼内眼角的坐标值
(xcorner,ycorner)与各个定标点的误差值作为注视位置参考信息,将k个不同位置上各个定标点在x轴坐标值xi′(i=1,2,…(m+1))与内眼角xcorner进行数据拟合,在y轴估计误差yi′(i=1,2,…(m+1))与内眼角ycorner进行数据拟合,可以得到内眼角坐标值与定标点估计误差之间的函数关系:
(二)实际使用过程中利用已经得到的定标点之间的函数关系获取当前位置的定标数据
(1)根据阶段(一)步骤(3)中采用的注视位置参考信息的不同,用户在某一未知位置采集得到相应的定标信息。若采用方法一,用户需要注视基准点,计算得到其估计误差作为定标信息;若采用方法二,则只需计算用户当前位置上右眼内眼角在图像中的坐标值作为定标信息。
(2)根据(一)中步骤(4)中得到的定标点之间的函数关系,分别将采集得到的定标信息代入已经得到的定标点函数关系中,计算得到当前位置上定标点的估计误差;
(3)根据定标点的真实坐标值与(二)中步骤(2)得到的估计误差,可以计算得到其它定标点在当前注视位置上的估计坐标值,用以补偿视线算法中的估计误差以及视轴与光轴之间的偏角。