视线追踪方法、装置、设备和存储介质与流程

文档序号:17547498发布日期:2019-04-30 17:54阅读:228来源:国知局
视线追踪方法、装置、设备和存储介质与流程

本发明涉及计算机技术领域,特别是涉及一种视线追踪方法、装置、设备和存储介质。



背景技术:

随着科学技术的飞速发展,视线追踪技术也越来越受到关注。其中,视线追踪,是通过观测眼睛,来估算出视线凝视点的位置。

传统方法中,是通过将当前获取的眼睛图像与之前获取的眼睛图像进行对比,根据两幅眼睛图像中的瞳孔成像点的位移差来估计人眼的凝视点位置。这种直接根据平面的瞳孔成像点的位移差所估计出的凝视点位置不够准确。



技术实现要素:

基于此,有必要针对根据瞳孔成像点的位移差所估计出的凝视点位置不够准确的问题,提供一种视线追踪方法、装置、计算机设备和存储介质。

一种视线追踪方法,所述方法包括:

获取眼睛图像;

确定所述眼睛图像中瞳孔成像点在屏幕的立体坐标系中的坐标、以及光源经角膜反射在所述眼睛图像中形成的光源成像点在所述立体坐标系中的坐标;

根据所述瞳孔成像点的坐标和光源成像点的坐标确定光轴方向;

按照与所述眼睛图像匹配的光视轴方向角度差以及所述光轴方向,确定视轴方向;

根据所述视轴方向,确定在所述屏幕上的凝视点位置。

一种视线追踪装置,所述装置包括:

获取模块,用于获取眼睛图像;

坐标确定模块,用于确定所述眼睛图像中瞳孔成像点在屏幕的立体坐标系中的坐标、以及光源经角膜反射在所述眼睛图像中形成的光源成像点在所述立体坐标系中的坐标;

光轴方向确定模块,用于根据所述瞳孔成像点的坐标和光源成像点的坐标确定光轴方向;

视轴方向确定模块,用于按照与所述眼睛图像匹配的光视轴方向角度差以及所述光轴方向,确定视轴方向;

凝视点确定模块,用于根据所述视轴方向,确定在所述屏幕上的凝视点位置。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:

获取眼睛图像;

确定所述眼睛图像中瞳孔成像点在屏幕的立体坐标系中的坐标、以及光源经角膜反射在所述眼睛图像中形成的光源成像点在所述立体坐标系中的坐标;

根据所述瞳孔成像点的坐标和光源成像点的坐标确定光轴方向;

按照与所述眼睛图像匹配的光视轴方向角度差以及所述光轴方向,确定视轴方向;

根据所述视轴方向,确定在所述屏幕上的凝视点位置。

一种存储有计算机程序的存储介质,所述计算机程序被一个或多个处理器执行时,使得一个或多个处理器执行如下步骤:

获取眼睛图像;

确定所述眼睛图像中瞳孔成像点在屏幕的立体坐标系中的坐标、以及光源经角膜反射在所述眼睛图像中形成的光源成像点在所述立体坐标系中的坐标;

根据所述瞳孔成像点的坐标和光源成像点的坐标确定光轴方向;

按照与所述眼睛图像匹配的光视轴方向角度差以及所述光轴方向,确定视轴方向;

根据所述视轴方向,确定在所述屏幕上的凝视点位置。

上述视线追踪方法、装置、计算机设备和存储介质,确定瞳孔经角膜折射后的瞳孔成像点在屏幕坐标系中的坐标,以及确定光源经角膜反射后的光源成像点在屏幕坐标系中的坐标,将平面的眼睛图像中瞳孔成像点和光源成像点转换为三维的屏幕坐标系中的坐标。根据三维的瞳孔成像点的坐标和光源成像点的坐标,确定真实的眼睛的瞳孔中心与角膜曲率中心连线的光轴方向,并根据光轴方向与视轴方向间的角度差,确定视轴方向,视轴方向能够更加准确的表示视线方向。进而,根据视轴方向确定眼睛在屏幕上的凝视点位置更加的准确。

附图说明

图1为一个实施例中视线追踪方法的应用环境图;

图2为一个实施例中视线追踪方法的流程示意图;

图3a为一个实施例中瞳孔经角膜折射成像的示意图;

图3b为一个实施例中光源经角膜反射成像的示意图;

图4为一个实施例中光视轴方向的示意图;

图5为一个实施例中成像点坐标确定步骤的流程示意图;

图6为一个实施例中瞳孔中心及角膜曲率中心的坐标确定步骤的流程示意图;

图7为一个实施例中光轴方向在立体坐标系中的第一水平方向角度和第一竖直方向角度的示意图;

图8为另一个实施例中视线追踪方法的流程示意图;

图9为一个实施例中视线追踪装置的结构框图;

图10为另一个实施例中视线追踪装置的结构框图;

图11为又一个实施例中视线追踪装置的结构框图;

图12为一个实施例中计算机设备的内部结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为一个实施例中视线追踪方法的应用环境图。参照图1,该视线追踪方法的应用环境包括通过网络进行通信的头戴式显示器110和计算机设备120。其中,头戴式显示器(hmd,headmounteddisplay)110可以是具备输出显示虚拟现实场景功能的头戴式显示设备,可以理解,头戴式显示器也并不限定于输出虚拟现实场景,也可以是能够用于观察到外界事物的设备,比如医用的头戴式显示设备,可以用于观察有机体组织。头戴式显示器110可以包括红外光源发生设备110a和眼睛拍摄设备110b以及屏幕110c。红外光源发生设备110a可用于生成射向眼睛的红外光源,眼睛拍摄设备110b可用于拍摄眼睛图像,屏幕110c可用于输出显示虚拟现实场景画面。眼睛拍摄设备110可以是相机。计算机设备120可用于进行与虚拟现实相关的处理计算。计算机设备120可以是终端。终端可以是台式计算机或移动终端,移动终端可以包括手机、平板电脑、个人数字助理和穿戴式设备等中的至少一种。

红外光源发生设备110a可以向眼睛发射红外光源,眼睛拍摄设备110b可以拍摄包括瞳孔成像点和光源经角膜反射得到的光源成像点的眼睛图像。眼睛拍摄设备可以将拍摄的眼睛图像发送至计算机设备120。计算机设备120获取眼睛图像,确定眼睛图像中瞳孔成像点在屏幕110c的立体坐标系中的坐标、以及光源经角膜反射在眼睛图像中形成的光源成像点在立体坐标系中的坐标。计算机设备120根据瞳孔成像点的坐标和光源成像点的坐标确定光轴方向,并按照与眼睛图像匹配的光视轴方向角度差以及光轴方向,确定视轴方向。计算机设备120根据视轴方向,确定被拍摄的眼睛在屏幕110c上的凝视点位置。

需要说明的是,在其它实施例中,红外光源发生设备和眼睛拍摄设备也可以是不包括于头戴式显示器,可以是独立于头戴式显示器的、且与头戴式显示器保持确定的位置关系的设备。

图2为一个实施例中视线追踪方法的流程示意图。本实施例主要以该视线追踪方法应用于计算机设备来举例说明,该计算机设备可以是图1中的计算机设备120。参照图2,该方法具体包括如下步骤:

s202,获取眼睛图像。

其中,眼睛图像中包括瞳孔成像点和光源经角膜反射形成的光源成像点。瞳孔,是眼睛内虹膜中心的小圆孔,为光线进入眼睛的通道。角膜,是位于眼球前壁的一层的透明膜,相当于凸凹镜。角膜的前面凸起,呈球面弯曲。

瞳孔成像点,是瞳孔中心经角膜折射后的瞳孔折射点在被拍摄的眼睛图像中的成像。瞳孔中心,是瞳孔区域的中心点。光源成像点,是光源中心经角膜反射后的瞳孔反射点在被拍摄的眼睛图像中的成像。光源是射向眼睛的入射光。光源中心,是光源区域的中心点。在一个实施例中,光源可以为红外光源。

图3a为一个实施例中瞳孔经角膜折射成像的示意图。图3b为一个实施例中光源经角膜反射成像的示意图。参照图3a,眼睛实体的眼球e包括眼球中心d、瞳孔中心p、角膜j和角膜曲率中心c。其中,角膜曲率中心,是将角膜建模为球体的球体中心。眼球中心为将眼球当作球体的球体中心。拍摄设备s的拍摄点为点o。瞳孔中心点p经角膜j折射后得到瞳孔折射点r,折射后的瞳孔折射点r在拍摄设备s所拍摄的眼睛图像中的成像为瞳孔成像点v。参照图3b,眼睛实体的眼球e包括眼球中心d、角膜曲率中心c和瞳孔中心p和角膜j,拍摄设备s的拍摄点为点o,光源中心为点l。光源中心l经角膜j反射后得到反射点q,反射后的反射点q在拍摄设备s所拍摄的眼睛图像中的成像为光源成像点u。

s204,确定眼睛图像中瞳孔成像点在屏幕的立体坐标系中的坐标、以及光源经角膜反射在眼睛图像中形成的光源成像点在立体坐标系中的坐标。

其中,屏幕是头戴式显示器中的显示屏幕。屏幕的立体坐标系,是包括横轴(x轴)、纵轴(y轴)和竖轴(z轴)的三维坐标系。屏幕的立体坐标系的横轴的轴向是沿着屏幕的水平方向,纵轴的轴向是沿着屏幕的竖直方向,竖轴的轴向是沿着垂直于屏幕的方向。在一个实施例中,屏幕的立体坐标系中的原点可以是屏幕中心。

具体地,计算机设备可以识别出眼睛图像中的瞳孔成像点和光源成像点,然后分别确定该瞳孔成像点和光源成像点相对于屏幕的立体坐标系所对应的坐标。其中,相对于屏幕的立体坐标系所对应的坐标,是以屏幕的立体坐标系为参照,确定瞳孔成像点和光源成像点在该立体坐标系下分别所对应的坐标。

s206,根据瞳孔成像点的坐标和光源成像点的坐标确定光轴方向。

其中,光轴方向是瞳孔中心与角膜曲率中心连线的方向。角膜曲率中心,是将角膜建模为球体的球体中心。需要说明的是,眼球中心也位于瞳孔中心与角膜曲率中心连线的光轴方向上。眼球中心,是将眼球作为球体时的球体中心。

在一个实施例中,步骤s206包括:根据瞳孔成像点的坐标和光源成像点的坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标;根据瞳孔中心的坐标和角膜曲率中心的坐标,确定瞳孔中心与角膜曲率中心连线的光轴方向。

需要说明的是,瞳孔成像点是瞳孔中心在眼睛图像中的成像,而“瞳孔中心的坐标”和“角膜曲率中心的坐标”中的“瞳孔中心”和“角膜曲率中心”,是与眼睛图像匹配的眼睛实体中的瞳孔中心和角膜曲率中心。则瞳孔中心的坐标和角膜曲率中心的坐标,分别指与眼睛图像匹配的眼睛实体中的瞳孔中心在屏幕的立体坐标系中的坐标,以及该眼睛实体中的角膜曲率中心在屏幕的立体坐标系中的坐标。

在一个实施例中,由于瞳孔成像点是瞳孔中心经角膜折射在眼睛图像中的成像,则计算机设备可以获取与眼睛图像匹配的角膜半径,结合角膜半径、折射定律公式和相机成像原理公式,并根据瞳孔成像点的坐标,确定瞳孔中心的坐标。其中,与眼睛图像匹配的角膜,是该眼睛图像所对应的眼睛实体中的角膜。眼睛图像所对应的眼睛,是被拍摄以生成该眼睛图像的眼睛。在一个实施例中,角膜半径,是将角膜建模为球体的球体半径。比如,将角膜建模为球体时,角膜曲率中心到角膜球体的表面的距离即为角膜半径。

同理,在一个实施例中,由于光源成像点是光源中心经角膜反射在眼睛图像中的成像,则计算机设备可以获取与眼睛图像匹配的角膜半径,结合角膜半径、反射定律公式和相机成像原理公式,并根据光源成像点的坐标,确定角膜曲率中心的坐标。其中,与眼睛图像匹配的角膜,是该眼睛图像所对应的眼睛实体中的角膜。

s208,按照与眼睛图像匹配的光视轴方向角度差以及光轴方向,确定视轴方向。

其中,光视轴方向角度差,是光轴方向与视轴方向间的角度差。视轴方向是视网膜上中央凹与角膜曲率中心的连线的方向。光视轴方向角度差包括水平方向角度差和竖直方向角度差。其中,水平方向角度差,光轴方向和视轴方向在屏幕的立体坐标系的横轴方向上的角度差。竖直方向角度差,是光轴方向和视轴方向在屏幕的立体坐标系的纵轴方向上的角度差。

与眼睛图像匹配的光视轴方向角度差,是该眼睛图像所对应的眼睛实体所存在的光视轴方向角度差。可以理解,对于一只正常的眼睛来说,所存在的光视轴方向角度差是固定的,这里并不考虑眼睛变形或发生异常时可能对该眼睛的光视轴方向角度差带来的影响。

在一个实施例中,计算机设备可以按照与眼睛图像匹配的光视轴方向角度差,将光轴方向进行相应调整,得到视轴方向。

图4为一个实施例中光视轴方向的示意图。参照图4,眼球e中的角膜曲率中心c与瞳孔中心p的连线所对应的方向为光轴方向op,眼球中心d位于光轴方向op上。中央凹f与角膜曲率中心c的连线所对应的方向为视轴方向ls。如图4所示,光轴方向op与视轴方向ls之间存在光视轴方向角度差。

s210,根据视轴方向,确定在屏幕上的凝视点位置。

其中,凝视点是眼睛图像所对应的眼睛实体的视线所对应的点。在屏幕上的凝视点位置,是眼睛图像所对应的眼睛实体看向屏幕上的点的位置。

具体地,计算机设备可以将视轴方向作为视线方向,以确定在屏幕上的凝视点位置。在一个实施例中,计算机设备可以确定视轴方向与屏幕的交点,将该交点作为在屏幕上的凝视点。

在一个实施例中,凝视点位置可以是在屏幕的立体坐标系中的凝视点坐标。

上述视线追踪方法,将平面的眼睛图像中瞳孔成像点和光源成像点转换为三维的屏幕坐标系中的坐标。根据三维的瞳孔成像点的坐标和光源成像点的坐标,确定真实的眼睛的瞳孔中心与角膜曲率中心连线的光轴方向,并根据光轴方向与视轴方向间的角度差,确定视轴方向,视轴方向能够更加准确的表示视线方向。进而,根据视轴方向确定眼睛在屏幕上的凝视点位置更加的准确。

如图5所示,在一个实施例中,步骤s204(简称成像点坐标确定步骤),具体包括以下步骤:

s502,在眼睛图像中确定瞳孔成像点的像素位置和光源经角膜反射形成的光源成像点的像素位置。

具体地,计算机设备可以对眼睛图像进行图像识别处理,识别出眼睛图像中的瞳孔区域,并确定所识别出的瞳孔区域的中心点得到瞳孔成像点。计算机设备还可以识别出眼睛图像中的光源区域,并确定所识别出的光源区域的中心点得到光源成像点。

在一个实施例中,计算机设备可以在眼睛图像所对应的图像坐标系中,确定该瞳孔成像点所对应的像素位置,以及确定该光源成像点所对应的像素位置。其中,眼睛图像所对应的图像坐标系,是建立于该眼睛图像中的二维坐标系,用于确定组成该眼睛图像的各像素的像素位置。

s504,根据眼睛图像中像素位置与屏幕的立体坐标系中坐标的映射关系,将瞳孔成像点的像素位置映射为瞳孔成像点在立体坐标系中的坐标。

s506,根据映射关系,将光源成像点的像素位置映射为光源成像点在立体坐标系中的坐标。

计算机设备可以获取预设的眼睛图像中像素位置与屏幕的立体坐标系中坐标的映射关系。可以理解,预设的眼睛图像中像素位置与屏幕的立体坐标系中坐标的映射关系,可以是直接的映射关系(即直接地将眼睛图像中像素位置映射为屏幕的立体坐标系中的坐标)。预设的眼睛图像中像素位置与屏幕的立体坐标系中坐标的映射关系也可以是间接的映射关系。在一个实施例中,预设的眼睛图像中像素位置与屏幕的立体坐标系中坐标的映射关系,可以是预设的眼睛图像中像素位置与相机坐标系中坐标的映射关系,以及相机坐标系中坐标与屏幕的立体坐标系中坐标的映射关系组成的多重映射关系。

计算机设备可以根据眼睛图像中像素位置与屏幕的立体坐标系中坐标的映射关系,将瞳孔成像点的像素位置映射为瞳孔成像点在立体坐标系中的坐标,并根据映射关系,将光源成像点的像素位置映射为光源成像点在立体坐标系中的坐标。

上述实施例中,通过识别平面的眼睛图像中瞳孔成像点和光源成像点的像素位置,并根据像素位置与屏幕坐标系中的坐标的映射关系,转换为三维的屏幕坐标系中的坐标。进而根据三维的瞳孔成像点的坐标和光源成像点的坐标,能够准确的确定出真实的眼睛的瞳孔中心与角膜曲率中心连线的光轴方向,从而保证根据光轴方向与视轴方向间的角度差确定出的视轴方向的准确性。进而使得根据视轴方向确定眼睛在屏幕上的凝视点位置更加的准确。

如图6所示,在一个实施例中,根据瞳孔成像点的坐标和光源成像点的坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标(简称瞳孔中心及角膜曲率中心的坐标确定步骤),具体包括以下步骤:

s602,分别获取光源和眼睛图像的拍摄点在屏幕的立体坐标系中相应的光源坐标和拍摄点坐标。

可以理解,计算机设备可以获取光源在屏幕的立体坐标系中相应的光源坐标,以及获取眼睛图像的拍摄点在屏幕的立体坐标系中相应的拍摄点坐标。

其中,光源坐标,是光源中心在屏幕的立体坐标系中相应的坐标。

具体地,计算机设备可以直接获取预设的光源坐标。计算机设备也可以检测光源中心的位置,按照预设的光源的位置与屏幕的立体坐标系中坐标的映射关系,将所检测到的光源中心的位置映射为在屏幕的立体坐标系中的光源坐标。

其中,拍摄点,是拍摄眼睛图像的位置。拍摄点坐标,是拍摄点在屏幕的立体坐标系中相应的坐标。

在一个实施例中,拍摄点在屏幕的立体坐标系中相应的拍摄点坐标可以是预先设置的。计算机设备可以获取预设的拍摄点坐标。在另一个实施例中,计算机设备中可以预先设置拍摄点的位置与屏幕的立体坐标系中坐标的映射关系。计算机设备可以检测拍摄点的位置,并按照预设的该映射关系,将所检测到的拍摄点的位置映射为在屏幕的立体坐标系中的拍摄点坐标。

s604,根据拍摄点坐标和瞳孔成像点的坐标,确定瞳孔折射点的坐标。

可以理解,由于瞳孔成像点是瞳孔中心经角膜折射后的瞳孔折射点在眼睛图像中的成像,则计算机设备可以按照相机成像原理,根据拍摄点坐标和瞳孔成像点的坐标,确定瞳孔折射点的坐标。

具体地,计算机设备可以确定拍摄点坐标和瞳孔成像点的坐标的第一差值,根据该第一差值,并结合该第一差值与瞳孔折射点的坐标和拍摄点坐标的第二差值之间的折射成像转换参数,以及拍摄点坐标,确定瞳孔折射点的坐标。折射成像转换参数可以是已知的,也可以是未知的。可以理解,当折射成像转换参数为未知参数时,则所确定的瞳孔折射点的坐标可以由折射成像转换参数为未知数进行表示得到。

在一个实施例中,计算机设备可以按照以下公式确定瞳孔折射点的坐标:

r-o=kr(o-v);

其中,r为瞳孔折射点的坐标;o为拍摄点坐标;v为瞳孔成像点的坐标。o-v为第一差值;r-o为第二差值;kr为折射成像转换参数。

s606,根据拍摄点坐标和光源成像点的坐标,确定光反射点的坐标。

可以理解,由于光源成像点是光源中心经角膜反射后的光反射点在眼睛图像中的成像,则计算机设备可以按照相机成像原理,根据拍摄点坐标和光源成像点的坐标,确定光反射点的坐标。

具体地,计算机设备可以确定拍摄点坐标和光源成像点的坐标的第三差值,根据该第三差值,并结合该第三差值与光反射点的坐标和拍摄点坐标的第四差值之间的反射成像转换参数,以及拍摄点坐标,确定光反射点的坐标。反射成像转换参数可以是已知的,也可以是未知的。可以理解,当反射成像转换参数为未知参数时,则所确定的光反射点的坐标可以由反射成像转换参数为未知数进行表示得到。

在一个实施例中,计算机设备可以按照以下公式确定光反射点的坐标:

q-o=kq(o-u);

其中,q为光源反射点的坐标;o为拍摄点坐标;u为光源成像点的坐标。o-u为第三差值;q-o为第四差值;kq为反射成像转换参数。

需要说明的是,光源可以为一个或多个。当有多个光源时,则每个光源都有相应的光反射点,则每个光反射点都可以分别按照上述公式确定。

s608,获取与眼睛图像匹配的瞳孔中心至角膜曲率中心的距离和角膜半径。

可以理解,对于一个正常眼睛来说,瞳孔中心至角膜曲率中心的距离基本上是固定的,不同眼睛,瞳孔中心至角膜曲率中心的距离可能存在差异。角膜半径,是将角膜建模为球体的球体半径。与眼睛图像匹配的瞳孔中心至角膜曲率中心的距离和角膜半径,是该眼睛图像所对应的眼睛实体的瞳孔中心至角膜曲率中心的距离和角膜半径。

s610,根据瞳孔中心至角膜曲率中心的距离、角膜半径、光反射点的坐标、光源反射点的坐标、拍摄点坐标以及光源坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标。

在一个实施例中,计算机设备可以按照以下公式确定瞳孔中心的坐标和角膜曲率中心的坐标:

(r-o)×(c-o)·(p-o)=0;

n1||(r-c)×(p-r)||·||(o-r)||=n2||(r-c)×(o-r)||·||(p-r)||;

||r-c||=r;

(l-o)×(q-o)·(c-o)=0;

(l-q)·(q-c)·||(o-q)||=(o-q)·(q-c)·||(l-q)||;

||q-c||=r;

||p-c||=k;

q-o=kq(o-u);

r-o=kr(o-v);

其中,r为瞳孔折射点的坐标;o为拍摄点坐标;c为角膜曲率中心的坐标;p为瞳孔中心的坐标;n1为角膜折射率;n2为空气折射率;r为角膜半径;l为光源坐标;q为光反射点的坐标;k为瞳孔中心至角膜曲率中心的距离;kq为反射成像转换参数;u为光源成像点的坐标;kr为折射成像转换参数;v为瞳孔成像点的坐标。

需要说明的是,光源可以为一个或多个。当有多个光源时,则每个光源都有相应的光反射点,则每个光源的光源坐标都可以以及相应每个光反射点都可以分别带入上述相应的公式进行计算。在一个实施例,光源可以为2个。

上述实施例中,相当于结合了眼睛自身参数(即瞳孔中心至角膜曲率中心的距离和角膜半径),并根据光反射和折射原理,得到光反射点的坐标、瞳孔折射点的坐标,并结合拍摄点坐标以及光源坐标,能够准确地确定出瞳孔中心的坐标和角膜曲率中心的坐标。

在一个实施例中,根据瞳孔中心的坐标和角膜曲率中心的坐标,确定瞳孔中心与角膜曲率中心连线的光轴方向包括:将瞳孔中心的坐标减去角膜曲率中心的坐标,得到瞳孔中心到角膜曲率中心的向量;根据向量和向量的模的比值,得到表示瞳孔中心与角膜曲率中心连线的光轴方向的单位向量。

可以理解,瞳孔中心的坐标可以看作由屏幕的立体坐标系的原点到瞳孔中心的向量。角膜曲率中心的坐标可以看作由屏幕的立体坐标系的原点到角膜曲率中心的向量。因此,将瞳孔中心的坐标减去角膜曲率中心的坐标,可以得到瞳孔中心到角膜曲率中心的向量。

单位向量,是模等于1的具有方向的向量。可以理解,单位向量仅用于表示方向。

上述实施例中,通过将瞳孔中心的坐标减去角膜曲率中心的坐标,得到瞳孔中心到角膜曲率中心的向量;根据向量和向量的模的比值,得到表示瞳孔中心与角膜曲率中心连线的光轴方向的单位向量。可以直接根据瞳孔中心的坐标和角膜曲率中心的坐标的简单计算,就可以确定出光轴方向,而不用在立体空间对瞳孔中心和角膜曲率中心进行耗费系统处理资源的连线处理,大大提高了光轴方向的确定效率,同时节省了处理资源。

在一个实施例中,步骤s208包括:获取与眼睛图像匹配的光视轴方向角度差;根据表示光轴方向的单位向量,得到光轴方向在立体坐标系中的第一水平方向角度和第一竖直方向角度;根据第一水平方向角度、第一竖直方向角度,和光视轴方向角度差,得到视轴方向在立体坐标系中第二水平方向角度和第二竖直方向角度;根据第二水平方向角度和第二竖直方向角度,得到表示视轴方向的单位向量。

在一个实施例中,计算机设备可以按照以下公式得到第一水平方向角度和第一竖直方向角度:

其中,p为瞳孔中心的坐标;c为角膜曲率中心的坐标;p-c为瞳孔中心到所述角膜曲率中心的向量;为表示光轴方向的单位向量;θ为第一水平方向角度;为第一竖直方向角度。

图7为一个实施例中光轴方向在立体坐标系中的第一水平方向角度和第一竖直方向角度的示意图。需要说明的是,为了更清楚的表示出光轴方向在立体坐标系中的第一水平方向角度和第一竖直方向角度,将屏幕的立体坐标系平移,使得屏幕的立体坐标系的原点对应于眼球中心d,得到图7中所示的三维立体坐标系,图7中的xd轴平行于屏幕的立体坐标系的x轴、yd轴平行于屏幕的立体坐标系的y轴,以及zd轴平行于屏幕的立体坐标系的z轴。可以理解,以图7中得到的由屏幕的立体坐标系平移后得到的三维立体坐标系所表示的光轴方向的第一水平方向角度和第一竖直方向角度大小,与光轴方向在立体坐标系中的第一水平方向角度和第一竖直方向角度的大小和方向等同。参照图7,c为角膜曲率中心,p为瞳孔中心。点c和点p连线所在的方向即表示光轴方向。θ为第一水平方向角度;为第一竖直方向角度,点c和点p间的距离为k。

在一个实施例中,光视轴方向角度差包括水平方向角度差和竖直方向角度差;根据第二水平方向角度和第二竖直方向角度,得到表示视轴方向的单位向量包括:

计算机设备可以按照以下方式得到表示视轴方向的单位向量:

其中,θ为第一水平方向角度;为第一竖直方向角度;α为水平方向角度差;β为竖直方向角度差;θ+α为第二水平方向角度;为第二竖直方向角度。

上述实施例中,通过根据表示光轴方向的单位向量,得到光轴方向在立体坐标系中的第一水平方向角度和第一竖直方向角度;根据第一水平方向角度、第一竖直方向角度,和光视轴方向角度差,得到视轴方向在立体坐标系中第二水平方向角度和第二竖直方向角度;根据第二水平方向角度和第二竖直方向角度,得到表示视轴方向的单位向量。直接根据针对表示光轴方向的单位向量进行简单计算,即可确定出视轴方向,而不用在立体空间对光轴方向进行耗费处理资源的旋转调整处理,大大提高了视轴方向的确定效率,同时节省了处理资源。

在一个实施例中,步骤s210包括:获取表示视轴方向的单位向量在竖坐标轴上的坐标值;根据角膜曲率中心的竖坐标和获取的坐标值的相反数间的比值,得到凝视线性参数;根据表示视轴方向的单位向量、凝视线性参数和角膜曲率中心的坐标进行线性转换,得到在屏幕上的凝视点位置。

其中,凝视线性参数,是用于进行线性转换确定凝视点位置的参数。

可以理解,表示视轴方向的单位向量的向量元素分别对应于屏幕的立体坐标系中横坐标、纵坐标以及竖坐标。比如,那么,对应于屏幕的立体坐标系中横坐标;对应于屏幕的立体坐标系中纵坐标;对应于屏幕的立体坐标系中竖坐标。因此,计算机设备可以获取表示视轴方向的单位向量中对应于竖坐标的向量元素,即得到该单位向量在竖坐标轴上的坐标值。

具体地,计算机设备可以获取表示视轴方向的单位向量在竖坐标轴上的坐标值,并确定该获取的坐标值的相反数,根据角膜曲率中心的竖坐标和确定的相反数间的比值,得到凝视线性参数。

在一个实施例中,计算机设备可以按照以下公式得到凝视线性参数:

其中,kg为凝视线性参数;cz为角膜曲率中心的竖坐标;为表示视轴方向的单位向量在竖坐标轴上的坐标值的相反数;。

在一个实施例中,根据表示视轴方向的单位向量、凝视线性参数和角膜曲率中心的坐标进行线性转换,得到在屏幕上的凝视点位置包括:

按照以下公式得到在屏幕上的凝视点位置:

其中,g为凝视点坐标;c为角膜曲率中心的坐标;kg为凝视线性参数;为表示视轴方向的单位向量。

上述实施例中,根据表示视轴方向的单位向量进行简单计算,就可以得到在屏幕上的凝视点位置。大大提高了凝视点位置的确定效率,同时节省了处理资源。

在一个实施例中,该方法还包括:获取凝视点位置在屏幕上的预设校准点时的校准眼睛图像;分别获取校准眼睛图像中瞳孔成像点和光源成像点的校准坐标;按照获取的瞳孔成像点的校准坐标和光源成像点的校准坐标,生成以眼球参数为未知参数所表示的预设校准点的坐标预测值;根据坐标预测值与预设校准点的预设坐标,得到预测误差函数;确定使预测误差函数取最小值的眼球参数。

具体地,计算机设备在按照与眼睛图像匹配的光视轴方向角度差以及光轴方向,确定视轴方向之前,还需要对眼睛参数进行校准。其中,眼睛参数用于表征眼睛的属性信息。眼睛参数包括光视轴方向角度差、角膜半径,以及瞳孔中心与角膜曲率中心距离等中的至少一个。

在一个实施例中,计算机设备中预先设置了校准点。其中,预设校准点在屏幕的立体坐标系中的坐标是已知的预设坐标。计算机设备可以将预设校准点显示于屏幕上。拍摄设备可以拍摄凝视点位置在屏幕上的预设校准点时的校准眼睛图像,并将校准眼睛图像发送至计算机设备。可以理解,用户凝视屏幕上的预设校准点时,凝视点位置则在屏幕上的预设校准点。其中,预设校准点可以为一个或多个。在一个实施例中,预设校准点为9个。在一个实施例中,计算机设备获取的校准眼睛图像为一张或多张。在一个实施例中,计算机设备获取的校准眼睛图像为100张。

计算机设备可以分别获取校准眼睛图像中瞳孔成像点在屏幕的立体坐标系中的校准坐标和光源成像点在屏幕的立体坐标系中的校准坐标,并根据获取的瞳孔成像点的校准坐标和光源成像点的校准坐标,生成以眼睛参数为未知参数所表示的预设校准点的坐标预测值。可以理解,计算机设备是根据校准眼睛图像中的瞳孔成像点的校准坐标和光源成像点的校准坐标,并将眼睛参数(比如,光视轴方向角度差)作为未知参数,来预测该校准眼睛图像所对应的预设校准点的坐标,所得到的该预设校准点的坐标预测值则以眼球参数为未知参数表示。

进一步地,计算机设备可以根据坐标预测值与预设校准点的预设坐标,得到预测误差函数,确定使预测误差函数取最小值的眼球参数。该确定出的眼球参数作为参与根据眼睛图像确定凝视点位置的过程中需要用到的眼球参数。

在一个实施例中,其中n表示预设校准点的数量;表示以各眼球参数为未知数表示的第i个预设校准点的坐标预测值;gi表示第i个预设校准点的已知的预设坐标。

在一个实施例中,在步骤s208之前,该方法还包括:获取凝视点位置在屏幕上的预设校准点时的校准眼睛图像;分别获取校准眼睛图像中瞳孔成像点和光源成像点的校准坐标;按照获取的瞳孔成像点的校准坐标和光源成像点的校准坐标,生成以光视轴方向角度差为未知参数所表示的预设校准点的坐标预测值;根据坐标预测值与预设校准点的预设坐标,得到预测误差函数;确定使预测误差函数取最小值的光视轴方向角度差。

在一个实施例中,按照获取的瞳孔成像点的校准坐标和光源成像点的校准坐标,生成以光视轴方向角度差为未知参数所表示的预设校准点的坐标预测值包括:根据瞳孔成像点的校准坐标和光源成像点的校准坐标确定校准的光轴方向;将眼球参数中的光视轴方向角度差作为未知参数并结合校准的光轴方向,确定校准的视轴方向;并根据校准的视轴方向,预测该校准眼睛图像在屏幕上的所对应的预设校准点的坐标,得到以光视轴方向角度差为未知参数所表示的预设校准点的坐标预测值。

进一步地,计算机设备可以根据坐标预测值与预设校准点的预设坐标,得到预测误差函数,确定使预测误差函数取最小值的光视轴方向角度差。该确定出的光视轴方向角度差则作为步骤s208中参与处理的光视轴方向角度差。

本实施例中,通过校准处理得到眼球参数,使得参与凝视点计算的眼球参数更加的准确,从而提高所确定的凝视点位置的准确性。

在一个实施例中,眼睛图像为双目的眼睛图像;凝视点位置为双目的凝视点位置。

可以理解,双目的眼睛图像可以是同时包括双目的眼睛图像(即一个眼睛图像中包括双目),也可以是双目各自的眼睛图像(即一个眼睛图像中只有一只眼睛,计算机设备分别获取每只眼睛的眼睛图像),对此不做限定。需要说明的是,本申请各实施例中根据眼睛图像进行处理确定在屏幕上的凝视点位置的过程,是针对一只眼睛的处理过程,如果需要确定双目各自的凝视点位置,则可针对每只眼睛都分别执行相应的处理过程,得到双目的凝视点位置。

本实施例中,该方法还包括:将双目的凝视点位置进行视差转换,得到双目的凝视点位置在虚拟现实场景中所对应的同一目标点位置;根据目标点位置执行虚拟现实场景下的交互处理。

其中,虚拟现实场景为三维的虚拟场景。

可以理解,眼睛看到三维场景是因为双目间的视差产生的,为了实现虚拟现实场景的三维立体性,需要按照眼睛视差产生三维场景的原理生成三维的虚拟现实场景。则计算机设备可以根据将双目的凝视点位置进行视差转换,得到双目的凝视点位置在虚拟现实场景中所对应的同一目标点位置。即计算机设备可以根据双目各自在屏幕上的凝视点位置,得到在三维的虚拟现实场景中的一个目标点位置。需要说明的是,目标点位置是在虚拟现实场景中的目标点位置,而非在屏幕的立体坐标系中的坐标位置。

在一个实施例中,计算机设备可以获取虚拟现实应用程序传入的渲染引擎中的虚拟摄像机的参数,计算机设备根据获取的虚拟摄像机的参数,确定双目的凝视点位置在虚拟现实场景中所对应的目标点位置。

在一个实施例中,根据目标点位置执行虚拟现实场景下的交互处理包括:在虚拟现实场景下,确定对应于目标点位置的虚拟对象或菜单项;选中虚拟对象或菜单项;对选中的虚拟对象或菜单项进行交互处理。

其中,虚拟对象,是位于虚拟现实场景中的对象,是虚拟现实场景的组成部分。虚拟对象可以是虚拟现实场景中任意类型的对象,比如,虚拟物品、虚拟建筑、虚拟人物和虚拟动物等中的至少一种。菜单项是虚拟现实场景中呈现的菜单中的一个选项。虚拟现实场景可以是虚拟现实游戏场景、虚拟现实社交场景或虚拟现实设计场景等。

虚拟现实游戏场景,是将游戏场景通过虚拟现实技术展示出的场景。在虚拟现实游戏场景中,虚拟对象可以是虚拟现实游戏角色、虚拟现实物品或虚拟现实建筑等,菜单项可以是用于触发虚拟现实游戏操作的选项,比如触发攻击操作的菜单项。

虚拟现实社交场景,是将社交场景通过虚拟现实技术展示出的场景。在虚拟现实游戏场景中,虚拟对象可以是进行社交的虚拟人物。菜单项可以是用于触发社交操作的选项,比如触发实时通话操作的菜单项。

虚拟现实设计场景,是将设计场景通过虚拟现实技术展示出的场景。在虚拟现实设计场景中,虚拟对象可以是虚拟设计物件,比如,虚拟服装、虚拟家具或虚拟家装等虚拟设计物件。菜单项可以是用于触发设计操作的选项,比如触发移动设计物件的操作的菜单项。

在一个实施例中,计算机设备可以获取对应于该目标点位置的凝视时长,当凝视时长大于或等于预设凝视时长阈值时,则可以选中该目标点位置所对应的虚拟对象或菜单项。可以理解,对应于目标点位置的凝视时长,是双目凝视对应于该目标点位置的凝视点位置的时长。

比如,双目凝视一个凝视点位置的时长为5秒,则该凝视点位置对应的目标凝视点位置所对应的凝视时长为5秒,假设预设凝视时长阈值为4秒,凝视时长5秒大于预设凝视时长阈值4秒,则可以选中该目标点位置所对应的虚拟对象或菜单项。

在一个实施例中,计算机设备也可以在目标点位置未发生变化时,监测双目的眨动,当双目的眨动满足预设的眨动选中条件,则选中对应于该目标点位置的虚拟对象或菜单项。

其中,眨动选中条件是通过眨动眼睛对对应于目标点位置的虚拟对象或菜单项进行选中的条件,当双目的眨动满足该眨动选中条件,则可以选中对应于目标点位置的虚拟对象或菜单项。眨动选中条件可以是连续眨动预设次数。可以理解,眨动选中条件可以是针对双目中的其中一个眼睛的眨动设置的条件,比如,左眼连续眨动3次。眨动选中条件也可以是针对两只眼睛的眨动设置的条件,对此不做限定。

比如,双目的凝视点位置对应的目标点位置为a点,则在双目的凝视点位置对应的目标点位置a点未发生变化时,双目连续眨动2下,就可以将该目标点位置a点对应的虚拟对象或菜单项进行选中。

在一个实施例中,计算机设备还可以在目标点位置未发生变化时,监测双目中眼球的转动,当眼球的转动符合预设的转动选中条件,则选中对应于该目标点位置的虚拟对象或菜单项。

其中,转动选中条件是通过转动眼球对对应于目标点位置的虚拟对象或菜单项进行选中的条件,当眼球的转动满足该转动选中条件,则可以选中对应于目标点位置的虚拟对象或菜单项。

转动选中条件可以是眼球相对于凝视点位置的视轴方向,向左或向右或向上或向下等中的任意一个方向转动或多个方向的组合转动。多个方向的组合转动可以是向左或向右或向上或向下等中的任意几种方向组合的转动,比如自右向上转动,就属于多个方向的组合转动中的其中一种。

比如,眼球向右转动则可以将选中对应于该目标点位置的虚拟对象或菜单项。或者,眼球自右向上转动则可以将选中对应于该目标点位置的虚拟对象或菜单项。

可以理解,眨动选中条件可以是针对双目中的其中一个眼睛的眼球的转动设置的条件,也可以是针对两只眼睛的眼球的转动设置的条件,对此不做限定。

在一个实施例中,计算机设备可以在监测双目的眼球的转动时,获取眼球的转动轨迹,判断眼球的转动轨迹是否符合转动选中条件。

进一步地,在对虚拟对象或菜单项进行选中之后,计算机设备可以对选中的虚拟对象或菜单项进行交互处理。可以理解,计算机设备可以在选中多个虚拟对象和/或菜单项之后,再统一地对选中的虚拟对象或菜单项进行交互处理,也可以对每个选中的虚拟对象或菜单项,分别进行交互处理,对此不做限定。

在一个实施例中,计算机设备在对虚拟对象或菜单项选中后,可以监测头部的转动,当头部的转动轨迹符合交互操作条件,则对选中的虚拟对象或菜单项进行与该交互操作条件对应的交互操作。

其中,交互操作条件,是通过头部转动执行对应的交互操作所需要满足的条件。交互操作包括移动操作、删除操作、突出显示操作、隐藏操作、确认操作、主题内容获取操作和资源增加操作等中的至少一种。

移动操作是移动所选中的虚拟对象或菜单项的操作。删除、突出显示和隐藏等操作,分别是删除、突出显示(比如,高亮)和隐藏所选中的虚拟对象或菜单项的操作。确认操作,是对所选中的虚拟对象或菜单项进行确认的操作。在一个实施例中,确认操作可以是确认所选中的菜单项,以触发执行该菜单项所对应的功能。

主题内容获取操作,是用于触发获取菜单项所对应的主题内容的操作。可以理解,菜单项通常是对相应的主题内容的概括性描述,对菜单项触发,可以获取其所对应的主题内容。

资源增加操作,是向所选中的虚拟对象增加资源的操作。其中,资源可以包括虚拟物品、虚拟能量值或虚拟血量值等至少一种。虚拟物品可以包括虚拟装备或虚拟装扮等物品,比如可以向虚拟现实游戏角色添加虚拟装备或虚拟装扮。

在一个实施例中,计算机设备在对虚拟对象或菜单项选中后,还可以结合手柄,对选中的虚拟对象或菜单项进行相应的交互处理。具体地,计算机设备可以获取手柄向选中的虚拟对象或菜单项发出相应的交互控制指令,响应于该交互控制指令对虚拟对象或菜单项进行相应的交互控制。

在一个实施例中,计算机设备也可以根据该目标点位置调整三维的虚拟现实场景的虚拟现实显示画面。具体地,计算机设备可以将以目标点位置为中心的预设范围内所对应的虚拟现实显示画面,调整至当前双目的正前方视角位置,以方便对目标点位置周围的虚拟现实显示画面进行查看。

上述实施例中,基于上述方法保证了所确定的凝视点位置的准确性。进而根据双目的凝视点位置确定在虚拟现实场景中的目标点位置更加的准确。从而根据该目标点位置执行虚拟现实场景下的交互处理更加的准确。

在一个实施例中,该方法还包括:对凝视点位置进行视差转换,得到凝视点位置在所观察的有机体组织中对应的目标位置,将对应于目标位置的有机体组织确定为目标有机体组织。

其中,目标有机体组织,是用于接受所要实施的医疗手段的有机体组织。需要说明的是,用于确定目标有机体组织的凝视点位置可以是一只眼睛的凝视点位置(可以理解,这里并不排除医护人员通过单只眼睛来进行医疗处理的情况),也可以是双目的凝视点位置,对此不做限定。

在一个实施例中,计算机设备还可以控制自动化设备对目标有机体组织进行处理。

上述实施例中因为基于上述视线追踪方法保证了所确定的凝视点位置的准确性,进而通过凝视点位置确定用于接受所要实施的医疗手段的目标有机体组织,使得目标有机体组织确定的更加的准确。

如图8所示,在一个实施例中,提供了另一种视线追踪方法,该方法具体包括以下步骤:

s802,获取凝视点位置在屏幕上的预设校准点时的校准眼睛图像;分别获取校准眼睛图像中瞳孔成像点和光源成像点的校准坐标。

s804,按照获取的瞳孔成像点的校准坐标和光源成像点的校准坐标,生成以光视轴方向角度差为未知参数所表示的预设校准点的坐标预测值。

s806,根据坐标预测值与预设校准点的预设坐标,得到预测误差函数;确定使预测误差函数取最小值的光视轴方向角度差。

s808,获取眼睛图像;在眼睛图像中确定瞳孔成像点的像素位置和光源经角膜反射形成的光源成像点的像素位置。

s810,根据眼睛图像中像素位置与屏幕的立体坐标系中坐标的映射关系,将瞳孔成像点的像素位置映射为瞳孔成像点在立体坐标系中的坐标;根据映射关系,将光源成像点的像素位置映射为光源成像点在立体坐标系中的坐标。

s812,分别获取光源和眼睛图像的拍摄点在屏幕的立体坐标系中相应的光源坐标和拍摄点坐标。

s814,根据拍摄点坐标和瞳孔成像点的坐标,确定瞳孔折射点的坐标;根据拍摄点坐标和光源成像点的坐标,确定光反射点的坐标。

s816,获取与眼睛图像匹配的瞳孔中心至角膜曲率中心的距离和角膜半径。

s818,根据瞳孔中心至角膜曲率中心的距离、角膜半径、光反射点的坐标、瞳孔折射点的坐标、拍摄点坐标以及光源坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标。

s820,将瞳孔中心的坐标减去角膜曲率中心的坐标,得到瞳孔中心到角膜曲率中心的向量。

s822,根据向量和向量模的比值,得到表示瞳孔中心与角膜曲率中心连线的光轴方向的单位向量。

s824,获取与眼睛图像匹配的光视轴方向角度差;根据表示光轴方向的单位向量,得到光轴方向在立体坐标系中的第一水平方向角度和第一竖直方向角度。

s826,根据第一水平方向角度、第一竖直方向角度,和光视轴方向角度差,得到视轴方向在立体坐标系中第二水平方向角度和第二竖直方向角度。

s828,根据第二水平方向角度和第二竖直方向角度,得到表示视轴方向的单位向量。

s830,获取表示视轴方向的单位向量在竖坐标轴上的坐标值;根据角膜曲率中心的竖坐标和获取的坐标值的相反数间的比值,得到凝视线性参数。

s832,根据表示视轴方向的单位向量、凝视线性参数和角膜曲率中心的坐标进行线性转换,得到在屏幕上的凝视点位置。

s834,将双目的凝视点位置进行视差转换,得到双目的凝视点位置在虚拟现实场景中所对应的同一目标点位置;根据目标点位置执行虚拟现实场景下的交互处理。

上述视线追踪方法,将平面的眼睛图像中瞳孔成像点和光源成像点转换为三维的屏幕坐标系中的坐标。根据三维的瞳孔成像点的坐标和光源成像点的坐标,确定真实的眼睛的瞳孔中心与角膜曲率中心连线的光轴方向,并根据光轴方向与视轴方向间的角度差,确定视轴方向,视轴方向能够更加准确的表示视线方向。因而,根据视轴方向确定眼睛在屏幕上的凝视点位置更加的准确。

其次,结合了眼睛自身参数(即瞳孔中心至角膜曲率中心的距离和角膜半径),并根据光反射和折射原理,得到光反射点的坐标、瞳孔折射点的坐标,并结合拍摄点坐标以及光源坐标,能够准确地确定出瞳孔中心的坐标和角膜曲率中心的坐标。

然后,直接根据瞳孔中心的坐标和角膜曲率中心的坐标的简单计算,就可以确定出光轴方向,而不用在立体空间对瞳孔中心和角膜曲率中心进行耗费系统处理资源的连线处理,大大提高了光轴方向的确定效率,同时节省了处理资源。从而提高了凝视点位置的确定效率,同时节省了处理资源。

接着,通过校准处理得到光视轴方向角度差,使得参与凝视点计算的光视轴方向角度差更加的准确,从而提高所确定的凝视点位置的准确性。

最后,基于上述方法保证了所确定的凝视点位置的准确性。进而根据双目的凝视点位置确定在虚拟现实场景中的目标点位置更加的准确。从而根据该目标点位置执行虚拟现实场景下的交互处理更加的准确。

如图9所示,在一个实施例中,提供了一种视线追踪装置900,该装置900包括获取模块902、坐标确定模块904、光轴方向确定模块906、视轴方向确定模块908以及凝视点确定模块910,其中:

获取模块902,用于获取眼睛图像。

坐标确定模块904,用于确定所述眼睛图像中瞳孔成像点在屏幕的立体坐标系中的坐标、以及光源经角膜反射在所述眼睛图像中形成的光源成像点在所述立体坐标系中的坐标。

光轴方向确定模块906,用于根据所述瞳孔成像点的坐标和光源成像点的坐标确定光轴方向。

视轴方向确定模块908,用于按照与所述眼睛图像匹配的光视轴方向角度差以及所述光轴方向,确定视轴方向。

凝视点确定模块910,用于根据所述视轴方向,确定在所述屏幕上的凝视点位置。

在一个实施例中,坐标确定模块904还用于在所述眼睛图像中确定瞳孔成像点的像素位置和光源经角膜反射形成的光源成像点的像素位置;根据眼睛图像中像素位置与屏幕的立体坐标系中坐标的映射关系,将所述瞳孔成像点的像素位置映射为所述瞳孔成像点在所述立体坐标系中的坐标;根据所述映射关系,将所述光源成像点的像素位置映射为所述光源成像点在所述立体坐标系中的坐标。

在一个实施例中,所述光轴方向确定模块906还用于根据所述瞳孔成像点的坐标和所述光源成像点的坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标;根据所述瞳孔中心的坐标和所述角膜曲率中心的坐标,确定所述瞳孔中心与所述角膜曲率中心连线的光轴方向。

在一个实施例中,所述坐标确定模块904还用于分别获取所述光源和所述眼睛图像的拍摄点在所述屏幕的立体坐标系中相应的光源坐标和拍摄点坐标;根据所述拍摄点坐标和所述瞳孔成像点的坐标,确定瞳孔折射点的坐标;根据所述拍摄点坐标和所述光源成像点的坐标,确定光反射点的坐标;获取与所述眼睛图像匹配的瞳孔中心至角膜曲率中心的距离和角膜半径;根据所述瞳孔中心至角膜曲率中心的距离、所述角膜半径、所述光反射点的坐标、所述瞳孔折射点的坐标、所述拍摄点坐标以及所述光源坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标。

在一个实施例中,所述坐标确定模块904还用于按照以下公式确定瞳孔中心的坐标和角膜曲率中心的坐标:

(r-o)×(c-o)·(p-o)=0;

n1||(r-c)×(p-r)||·||(o-r)||=n2||(r-c)×(o-r)||·||(p-r)||;

||r-c||=r;

(l-o)×(q-o)·(c-o)=0;

(l-q)·(q-c)·||(o-q)||=(o-q)·(q-c)·||(l-q)||;

||q-c||=r;

||p-c||=k;

其中,r为瞳孔折射点的坐标;o为拍摄点坐标;c为角膜曲率中心的坐标;p为瞳孔中心的坐标;n1为角膜折射率;n2为空气折射率;r为角膜半径;l为光源坐标;q为光反射点的坐标;k为瞳孔中心至角膜曲率中心的距离。

在一个实施例中,所述光轴方向确定模块906还用于将所述瞳孔中心的坐标减去所述角膜曲率中心的坐标,得到所述瞳孔中心到所述角膜曲率中心的向量;根据所述向量和所述向量的模的比值,得到表示所述瞳孔中心与角膜曲率中心连线的光轴方向的单位向量。

在一个实施例中,所述视轴方向确定模块908还用于获取与所述眼睛图像匹配的光视轴方向角度差;根据表示所述光轴方向的单位向量,得到所述光轴方向在所述立体坐标系中的第一水平方向角度和第一竖直方向角度;根据所述第一水平方向角度、第一竖直方向角度,和所述光视轴方向角度差,得到视轴方向在所述立体坐标系中第二水平方向角度和第二竖直方向角度;根据所述第二水平方向角度和所述第二竖直方向角度,得到表示视轴方向的单位向量。

在一个实施例中,凝视点确定模块910还用于获取表示所述视轴方向的单位向量在竖坐标轴上的坐标值;根据所述角膜曲率中心的竖坐标和获取的所述坐标值的相反数间的比值,得到凝视线性参数;根据所述表示所述视轴方向的单位向量、所述凝视线性参数和所述角膜曲率中心的坐标进行线性转换,得到在所述屏幕上的凝视点位置。

如图10所示,在一个实施例中,该装置900还包括:

校准模块901,用于获取凝视点位置在所述屏幕上的预设校准点时的校准眼睛图像;分别获取所述校准眼睛图像中瞳孔成像点和光源成像点的校准坐标;按照获取的瞳孔成像点的校准坐标和光源成像点的校准坐标,生成以光视轴方向角度差为未知参数所表示的所述预设校准点的坐标预测值;根据所述坐标预测值与所述预设校准点的预设坐标,得到预测误差函数;确定使所述预测误差函数取最小值的光视轴方向角度差。

在一个实施例中,所述眼睛图像为双目的眼睛图像;所述凝视点位置为双目的凝视点位置。本实施例中,如图11所示,该装置900还包括:

虚拟现实场景交互模块912,用于将所述双目的凝视点位置进行视差转换,得到所述双目的凝视点位置在虚拟现实场景中所对应的同一目标点位置;根据所述目标点位置执行虚拟现实场景下的交互处理。

图12为一个实施例中计算机设备的内部结构示意图。参照图12,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该设备的非易失性存储介质可存储操作系统和计算机程序,该计算机程序被执行时,可使得处理器执行一种视线追踪方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个设备的运行。该内存储器中可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行一种视线追踪方法。计算机设备的网络接口用于进行网络通信。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏。

本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的视线追踪装置可以实现为一种计算机程序的形式,所述计算机程序可在如图12所示的计算机设备上运行,所述计算机设备的非易失性存储介质可存储组成该视线追踪装置的各个程序模块,比如,图9所示的获取模块902、坐标确定模块904、光轴方向确定模块906、视轴方向确定模块908以及凝视点确定模块910。各个程序模块中包括计算机程序,所述计算机程序用于使所述计算机设备执行本说明书中描述的本申请各个实施例的视线追踪方法中的步骤,例如,计算机设备可以通过如图9所示的视线追踪装置900中的获取模块902获取眼睛图像,并通过坐标确定模块904确定眼睛图像中瞳孔成像点在屏幕的立体坐标系中的坐标、以及光源经角膜反射在眼睛图像中形成的光源成像点在立体坐标系中的坐标。计算机设备可以通过光轴方向确定模块906根据瞳孔成像点的坐标和光源成像点的坐标确定光轴方向,并通过视轴方向确定模块908按照与眼睛图像匹配的光视轴方向角度差以及光轴方向,确定视轴方向。计算机设备可以通过凝视点确定模块910根据视轴方向,确定在屏幕上的凝视点位置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:

获取眼睛图像;

确定所述眼睛图像中瞳孔成像点在屏幕的立体坐标系中的坐标、以及光源经角膜反射在所述眼睛图像中形成的光源成像点在所述立体坐标系中的坐标;

根据所述瞳孔成像点的坐标和光源成像点的坐标确定光轴方向;

按照与所述眼睛图像匹配的光视轴方向角度差以及所述光轴方向,确定视轴方向;

根据所述视轴方向,确定在所述屏幕上的凝视点位置。

在一个实施例中,所述确定所述眼睛图像中瞳孔成像点在屏幕的立体坐标系中的坐标,确定光源经角膜反射在所述眼睛图像中形成的光源成像点在所述立体坐标系中的坐标包括:

在所述眼睛图像中确定瞳孔成像点的像素位置和光源经角膜反射形成的光源成像点的像素位置;

根据眼睛图像中像素位置与屏幕的立体坐标系中坐标的映射关系,将所述瞳孔成像点的像素位置映射为所述瞳孔成像点在所述立体坐标系中的坐标;

根据所述映射关系,将所述光源成像点的像素位置映射为所述光源成像点在所述立体坐标系中的坐标。

在一个实施例中,所述根据所述瞳孔成像点的坐标和光源成像点的坐标确定光轴方向包括:

根据所述瞳孔成像点的坐标和所述光源成像点的坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标;

根据所述瞳孔中心的坐标和所述角膜曲率中心的坐标,确定所述瞳孔中心与所述角膜曲率中心连线的光轴方向。

在一个实施例中,所述根据所述瞳孔成像点的坐标和所述光源成像点的坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标包括:

分别获取所述光源和所述眼睛图像的拍摄点在所述屏幕的立体坐标系中相应的光源坐标和拍摄点坐标;

根据所述拍摄点坐标和所述瞳孔成像点的坐标,确定瞳孔折射点的坐标;

根据所述拍摄点坐标和所述光源成像点的坐标,确定光反射点的坐标;

获取与所述眼睛图像匹配的瞳孔中心至角膜曲率中心的距离和角膜半径;

根据所述瞳孔中心至角膜曲率中心的距离、所述角膜半径、所述光反射点的坐标、所述瞳孔折射点的坐标、所述拍摄点坐标以及所述光源坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标。

在一个实施例中,所述根据所述瞳孔中心至角膜曲率中心的距离、所述角膜半径、所述光反射点的坐标、所述瞳孔折射点的坐标、所述拍摄点坐标以及所述光源坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标包括:

按照以下公式确定瞳孔中心的坐标和角膜曲率中心的坐标:

(r-o)×(c-o)·(p-o)=0;

n1||(r-c)×(p-r)||·||(o-r)||=n2||(r-c)×(o-r)||·||(p-r)||;

||r-c||=r;

(l-o)×(q-o)·(c-o)=0;

(l-q)·(q-c)·||(o-q)||=(o-q)·(q-c)·||(l-q)||;

||q-c||=r;

||p-c||=k;

其中,r为瞳孔折射点的坐标;o为拍摄点坐标;c为角膜曲率中心的坐标;p为瞳孔中心的坐标;n1为角膜折射率;n2为空气折射率;r为角膜半径;l为光源坐标;q为光反射点的坐标;k为瞳孔中心至角膜曲率中心的距离。

在一个实施例中,所述根据所述瞳孔中心的坐标和所述角膜曲率中心的坐标,确定所述瞳孔中心与所述角膜曲率中心连线的光轴方向包括:

将所述瞳孔中心的坐标减去所述角膜曲率中心的坐标,得到所述瞳孔中心到所述角膜曲率中心的向量;

根据所述向量和所述向量的模的比值,得到表示所述瞳孔中心与角膜曲率中心连线的光轴方向的单位向量。

在一个实施例中,所述按照与所述眼睛图像匹配的光视轴方向角度差以及所述光轴方向,确定视轴方向包括:

获取与所述眼睛图像匹配的光视轴方向角度差;

根据表示所述光轴方向的单位向量,得到所述光轴方向在所述立体坐标系中的第一水平方向角度和第一竖直方向角度;

根据所述第一水平方向角度、第一竖直方向角度,和所述光视轴方向角度差,得到视轴方向在所述立体坐标系中第二水平方向角度和第二竖直方向角度;

根据所述第二水平方向角度和所述第二竖直方向角度,得到表示视轴方向的单位向量。

在一个实施例中,所述根据所述视轴方向,确定在所述屏幕上的凝视点位置包括:

获取表示所述视轴方向的单位向量在竖坐标轴上的坐标值;

根据所述角膜曲率中心的竖坐标和获取的所述坐标值的相反数间的比值,得到凝视线性参数;

根据所述表示所述视轴方向的单位向量、所述凝视线性参数和所述角膜曲率中心的坐标进行线性转换,得到在所述屏幕上的凝视点位置。

在一个实施例中,在所述按照与所述眼睛图像匹配的光视轴方向角度差以及所述光轴方向,确定视轴方向之前,计算机程序还使得处理器执行以下步骤:

获取凝视点位置在所述屏幕上的预设校准点时的校准眼睛图像;

分别获取所述校准眼睛图像中瞳孔成像点和光源成像点的校准坐标;

按照获取的瞳孔成像点的校准坐标和光源成像点的校准坐标,生成以光视轴方向角度差为未知参数所表示的所述预设校准点的坐标预测值;

根据所述坐标预测值与所述预设校准点的预设坐标,得到预测误差函数;

确定使所述预测误差函数取最小值的光视轴方向角度差。

在一个实施例中,所述眼睛图像为双目的眼睛图像;所述凝视点位置为双目的凝视点位置。本实施例中,计算机程序还使得处理器执行以下步骤:

将所述双目的凝视点位置进行视差转换,得到所述双目的凝视点位置在虚拟现实场景中所对应的同一目标点位置;根据所述目标点位置执行虚拟现实场景下的交互处理。

在一个实施例中,提供了一种存储有计算机程序的存储介质,所述计算机程序被一个或多个处理器执行时,使得一个或多个处理器执行如下步骤:

获取眼睛图像;

确定所述眼睛图像中瞳孔成像点在屏幕的立体坐标系中的坐标、以及光源经角膜反射在所述眼睛图像中形成的光源成像点在所述立体坐标系中的坐标;

根据所述瞳孔成像点的坐标和光源成像点的坐标确定光轴方向;

按照与所述眼睛图像匹配的光视轴方向角度差以及所述光轴方向,确定视轴方向;

根据所述视轴方向,确定在所述屏幕上的凝视点位置。

在一个实施例中,所述确定所述眼睛图像中瞳孔成像点在屏幕的立体坐标系中的坐标,确定光源经角膜反射在所述眼睛图像中形成的光源成像点在所述立体坐标系中的坐标包括:

在所述眼睛图像中确定瞳孔成像点的像素位置和光源经角膜反射形成的光源成像点的像素位置;

根据眼睛图像中像素位置与屏幕的立体坐标系中坐标的映射关系,将所述瞳孔成像点的像素位置映射为所述瞳孔成像点在所述立体坐标系中的坐标;

根据所述映射关系,将所述光源成像点的像素位置映射为所述光源成像点在所述立体坐标系中的坐标。

在一个实施例中,所述根据所述瞳孔成像点的坐标和光源成像点的坐标确定光轴方向包括:

根据所述瞳孔成像点的坐标和所述光源成像点的坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标;

根据所述瞳孔中心的坐标和所述角膜曲率中心的坐标,确定所述瞳孔中心与所述角膜曲率中心连线的光轴方向。

在一个实施例中,所述根据所述瞳孔成像点的坐标和所述光源成像点的坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标包括:

分别获取所述光源和所述眼睛图像的拍摄点在所述屏幕的立体坐标系中相应的光源坐标和拍摄点坐标;

根据所述拍摄点坐标和所述瞳孔成像点的坐标,确定瞳孔折射点的坐标;

根据所述拍摄点坐标和所述光源成像点的坐标,确定光反射点的坐标;

获取与所述眼睛图像匹配的瞳孔中心至角膜曲率中心的距离和角膜半径;

根据所述瞳孔中心至角膜曲率中心的距离、所述角膜半径、所述光反射点的坐标、所述瞳孔折射点的坐标、所述拍摄点坐标以及所述光源坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标。

在一个实施例中,所述根据所述瞳孔中心至角膜曲率中心的距离、所述角膜半径、所述光反射点的坐标、所述瞳孔折射点的坐标、所述拍摄点坐标以及所述光源坐标,确定瞳孔中心的坐标和角膜曲率中心的坐标包括:

按照以下公式确定瞳孔中心的坐标和角膜曲率中心的坐标:

(r-o)×(c-o)·(p-o)=0;

n1||(r-c)×(p-r)||·||(o-r)||=n2||(r-c)×(o-r)||·||(p-r)||;

||r-c||=r;

(l-o)×(q-o)·(c-o)=0;

(l-q)·(q-c)·||(o-q)||=(o-q)·(q-c)·||(l-q)||;

||q-c||=r;

||p-c||=k;

其中,r为瞳孔折射点的坐标;o为拍摄点坐标;c为角膜曲率中心的坐标;p为瞳孔中心的坐标;n1为角膜折射率;n2为空气折射率;r为角膜半径;l为光源坐标;q为光反射点的坐标;k为瞳孔中心至角膜曲率中心的距离。

在一个实施例中,所述根据所述瞳孔中心的坐标和所述角膜曲率中心的坐标,确定所述瞳孔中心与所述角膜曲率中心连线的光轴方向包括:

将所述瞳孔中心的坐标减去所述角膜曲率中心的坐标,得到所述瞳孔中心到所述角膜曲率中心的向量;

根据所述向量和所述向量的模的比值,得到表示所述瞳孔中心与角膜曲率中心连线的光轴方向的单位向量。

在一个实施例中,所述按照与所述眼睛图像匹配的光视轴方向角度差以及所述光轴方向,确定视轴方向包括:

获取与所述眼睛图像匹配的光视轴方向角度差;

根据表示所述光轴方向的单位向量,得到所述光轴方向在所述立体坐标系中的第一水平方向角度和第一竖直方向角度;

根据所述第一水平方向角度、第一竖直方向角度,和所述光视轴方向角度差,得到视轴方向在所述立体坐标系中第二水平方向角度和第二竖直方向角度;

根据所述第二水平方向角度和所述第二竖直方向角度,得到表示视轴方向的单位向量。

在一个实施例中,所述根据所述视轴方向,确定在所述屏幕上的凝视点位置包括:

获取表示所述视轴方向的单位向量在竖坐标轴上的坐标值;

根据所述角膜曲率中心的竖坐标和获取的所述坐标值的相反数间的比值,得到凝视线性参数;

根据所述表示所述视轴方向的单位向量、所述凝视线性参数和所述角膜曲率中心的坐标进行线性转换,得到在所述屏幕上的凝视点位置。

在一个实施例中,在所述按照与所述眼睛图像匹配的光视轴方向角度差以及所述光轴方向,确定视轴方向之前,计算机程序还使得处理器执行以下步骤:

获取凝视点位置在所述屏幕上的预设校准点时的校准眼睛图像;

分别获取所述校准眼睛图像中瞳孔成像点和光源成像点的校准坐标;

按照获取的瞳孔成像点的校准坐标和光源成像点的校准坐标,生成以光视轴方向角度差为未知参数所表示的所述预设校准点的坐标预测值;

根据所述坐标预测值与所述预设校准点的预设坐标,得到预测误差函数;

确定使所述预测误差函数取最小值的光视轴方向角度差。

在一个实施例中,所述眼睛图像为双目的眼睛图像;所述凝视点位置为双目的凝视点位置。本实施例中,计算机程序还使得处理器执行以下步骤:

将所述双目的凝视点位置进行视差转换,得到所述双目的凝视点位置在虚拟现实场景中所对应的同一目标点位置;根据所述目标点位置执行虚拟现实场景下的交互处理。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1