眼球跟踪方法及系统与流程

文档序号:23180051发布日期:2020-12-04 14:09阅读:255来源:国知局
眼球跟踪方法及系统与流程

相关申请的交叉引用

本申请要求2018年02月22日提交的美国临时专利申请62/633,646的优先权或受益于该专利,其说明书的全部内容通过引用合并于本文中。

本发明通常涉及眼球跟踪方法和系统,更具体地涉及使用相机而不需要任何其它跟踪设备的视线跟踪方法和系统。



背景技术:

眼球运动非常快速和精确,其在几种造成全身无力和失去说话和书写能力的神经学和医学疾病下仍会在很大程度上保持完好无损。这类相对常见的疾病包括中风、肌萎缩性侧索硬化症(lougehrig氏病)、炎性多发性神经病变、重症插管等。

仅使用眼球运动的通信对于虚拟现实、游戏、行销以及各种不可能或不希望讲话的环境中也很有价值。

已经提出了几种眼球跟踪方案。其中一些方案通常需要使用例如红外相机之类的专用硬件,因此降低了这些方案的可用性并增加了此类技术的成本。例如,为瘫痪患者设计的眼球跟踪系统非常昂贵,以致于大多数患者和临床单位无法负担。

虽然存在一些仅使用环境光和普通网络摄像头的实验系统,但是当照明条件下降(昏暗照明或侧向照明)或未严格控制用户的面部特征时(面部不垂直于相机、浅的眼睛颜色、深色皮肤等)),这些系统的性能较差。

使用普通移动设备相机来捕捉眼球的运动是很具有挑战性的,这是因为以下要素:例如这种系统的包括头部和眼睛的平行运动的多种自由度,变化的照明条件,眼睛和面部形状及其颜色的可变性,普通移动设备相机的采样率限制和/或移动设备的处理器速度限制。

因此,需要可以在环境光条件下运行的改进的眼球跟踪方法和系统。



技术实现要素:

根据本发明的一方面,提供有一种用于确定用户的视线位置的计算机实现的方法。所述方法包括:

接收所述用户的至少一只眼睛的初始图像;

提取所述初始图像的至少一个颜色分量以获得取对应的至少一个分量图像;

将相应的主流应用于所述至少一个分量图像中的每一个,以获得所述至少一个分量图像中的每一个的相应内部表征;

使用所述至少一个分量图像中的每一个的所述相应内部表征来确定所述初始图像的估计视线位置;以及

输出估计视线位置。

根据一个实施例,所述应用所述主流以获得取相应内部表征和所述确定估计视线位置以结合方式被执行,包括:

使用神经网络来对所述至少一个分量图像进行处理,所述神经网络的至少一部分分别是至少一个分量图像中的每一个的所述相应的主流,其中,所述神经网络由一台或多台计算机实现并且包括一个或多个神经网络层,以及其中,所述神经网络用于,在运行时和在所述神经网络被训练后,使用所述一个或多个神经网络层来处理所述至少一个分量图像,以生成所述估计视线位置。

根据一个实施例,所述应用所述相应的主流以获得所述相应内部表征针对所述至少一个分量图像中的每一个分别地被执行,并且包括用于所述至少一个分量图像中的每一个的至少一个全连接层。

根据一个实施例,所述应用所述相应的主流以获得所述相应内部表征包括至少一个卷积层。

根据一个实施例,每个相应的主流包括在所述至少一个卷积层的下游的至少一个全连接层。

根据一个实施例,所述神经网络包括在所述相应的主流的下游的另一部分,即内部流,其中通过使用包括至少一个融合层的所述内部流来确定估计视线位置,所述内部流具有至少一个全连接层。

根据一个实施例,所述内部流开始于接收至少所述相应内部表征的融合层,并且还包括在所述融合层的下游的输出层和包括至少一个全连接层。

根据一个实施例,其中所述提取至少一个颜色分量包括:提取所述初始图像的至少两个不同的颜色分量,以获得至少两个对应的分量图像,以及其中,所述确定估计视线位置包括使用权重因子将各个所述相应内部表征结合在一起。

根据一个实施例,所述提取至少一个颜色分量包括提取所述初始图像的三个rgb分量中的每一个。

根据一个实施例,所述接收到的初始图像包含除所述至少一只眼睛以外的其它特征。

根据一个实施例,还提供了:

在所述接收到的初始图像中识别所述至少一只眼睛;以及

提取所述初始图像中仅包含所述至少一只眼睛的部分,从而获得裁剪图像,

其中,在所述裁剪图像中执行所述提取至少一个颜色分量以获得所述对应的至少一个分量图像。

根据一个实施例,使用面部特征或特征点识别方法来执行所述识别至少一只眼睛。

根据一个实施例,所述识别至少一只眼睛包括识别以下内容中至少之一:所述至少一只眼睛的轮廓,以及所述至少一只眼睛的角膜缘、虹膜和瞳孔中至少一个的位置。

根据一个实施例,所述提取至少一个颜色分量包括提取所述初始图像的至少两个不同的颜色分量以获得至少两个对应的分量图像,所述方法还包括:

对于所述至少两个对应的分量图像中的每一个,确定表示所述至少两个对应的分量图像中的每一个对所述初始图像的所述相对贡献的照度值,

其中,所述确定估计视线位置还包括将所述照度值与所述至少一个分量图像的所述相应内部表征相结合。

根据一个实施例,其中,使用包括一个或多个全连接神经网络层的照度神经网络来对所述照度值进行处理。

根据一个实施例,所述接收到的初始图像还包含至少一个面部特征点,所述方法还包括:

提取所述至少一个面部特征点以获得对应的至少一个特征点位置;

其中,所述确定估计视线位置还包括将所述至少一个特征点位置与所述至少一个分量图像的相应内部表征相结合。

根据一个实施例,所述结合是通过使用包括一个或多个全连接神经网络层的特征点神经网络被执行的。

根据一个实施例,所述确定估计视线位置包括独立地确定估计视线位置的第一坐标和第二坐标中的每一个。

根据一个实施例,还提供有:

接收所述用户的与校准位置相关联的至少一个校准图像;以及

基于所述至少一个校准图像来确定和输出经校准的估计视线位置。

根据一个实施例,所述确定和输出经校准的估计视线位置包括独立地确定第一坐标和第二坐标中的每一个。

根据一个实施例,所述确定和输出经校准的估计视线位置是使用以下方式中之一被执行的:包括一个或多个全连接神经网络层的校准神经网络、岭回归、决策树、支持向量机以及线性回归。

根据一个实施例,还提供有:

确定所述初始图像相对于参照物的方向;

其中,为所述初始图像的预定的一个方向,执行所述确定估计视线位置。

根据一个实施例,还提供有使用相机来获取用户的至少一只眼睛的所述初始图像。

根据一个实施例,还提供有使用参照变换来确定相对于电子设备的屏幕的所述估计视线位置,包括查询所述电子设备的屏幕属性以执行所述参照变换;以及基于所述确定相对于电子设备的所述屏幕的估计视线位置,与所述电子设备进行用户交互。

根据本发明的另一方面,提供有一种用于确定用户的视线位置的计算机程序产品,该计算机程序产品包括其上存储有计算机可执行指令的计算机可读存储器,所述计算机可执行指令由计算机执行时执行上述方法中任一个的方法步骤。

根据本发明的另一方面,提供有一种用于确定用户的视线位置的系统,该系统包括用于进行接收数据和发送数据中至少一种的通信单元、存储器以及用于执行上述方法中任一个的方法步骤的至少一个处理单元。

根据本发明的另一方面,提供有一种用于确定用户的视线位置的系统。所述系统包括:

提取单元,用于接收所述用户的至少一只眼睛的初始图像,并提取所述初始图像的至少一个颜色分量,以获得对应的至少一个分量图像;

内部表征确定单元,用于将相应的主流应用于所述至少一个分量图像中的每一个,以获得所述至少一个分量图像中的每一个的相应内部表征;以及

视线位置估计单元,用于根据所述至少一个分量图像中的每一个的相应内部表征来确定所述初始图像中的估计视线位置并输出所述估计视线位置。

根据一个实施例,所述内部表征确定单元和所述视线位置估计单元是神经网络的组成部分,所述神经网络由一台或多台计算机实现并且包括一个或多个神经网络层,以及其中,所述神经网络用于,在运行时和所述神经网络被训练后,使用所述一个或多个神经网络层来处理所述至少一个分量图像,以生成所述估计视线位置。

根据一个实施例,所述神经网络包括

至少一个第一神经网络流,其中,所述至少一个第一神经网络流中的每一个用于生成所述相应内部表征;以及

第二神经网络流,用于生成所述估计视线位置。

根据一个实施例,所述至少一个第一神经网络流中的每一个包括至少一个全连接层。

根据一个实施例,所述至少一个第一神经网络流中的每一个包括至少一个卷积层。

根据一个实施例,所述至少一个第一神经网络流中的每一个还包括在对应的至少一个卷积层的下游的至少一个全连接层。

根据一个实施例,所述第二神经网络流包括至少一个融合层,并且至少一个融合层中的每一个具有至少一个全连接层。

根据一个实施例,所述第二神经网络流还包括在所述至少一个融合层的下游的输出层和包括至少一个全连接层。

根据一个实施例,所述提取单元用于提取所述初始图像的至少两个不同的颜色分量以获得至少两个对应的分量图像,以及其中,所述视线位置估计单元用于使用权重因子将各个所述相应的视线位置结合在一起。

根据一个实施例,所述提取单元用于提取初始图像的三个rgb分量中的每一个。

根据一个实施例,所述接收到的初始图像包含除所述至少一只眼睛以外的其它特征。

根据一个实施例,所述提取单元还用于:

识别所述接收到的初始图像内的所述至少一只眼睛;

提取所述初始图像中仅包含所述至少一只眼睛的部分以获得裁剪图像;以及

提取所述裁剪图像的所述至少一个颜色分量,以获得所述对应的至少一个分量图像。

根据一个实施例,所述视线位置确定单元用于使用面部特征或特征点识别方法来识别至少一只眼睛。

根据一个实施例,所述视线位置确定单元用于识别以下内容中至少之一:所述至少一只眼睛的轮廓,以及所述至少一只眼睛的角膜缘、虹膜和瞳孔中至少一个的位置。

根据一个实施例,所述提取单元还用于对于所述分量图像中的每一个,确定表示所述至少一个分量图像中的每一个对所述初始图像的相对贡献的照度值,以及其中,所述视线位置估计单元用于将各个照度值与所述相应的视线位置相结合。

根据一个实施例,还提供有照度神经网络,其中,所述照度神经网络包括一个或多个全连接神经网络层,并且用于处理所述照度值并生成照度数据以传输到所述视线位置估计单元。

根据一个实施例,所述接收到达的初始图像还包含至少一个面部特征点,其中,所述提取单元还用于提取所述至少一个面部特征点以获得对应的至少一个特征点位置,以及其中,所述视线位置估计单元还用于将所述至少一个特征点位置与所述相应的视线位置相结合

根据一个实施例,还提供有特征点神经网络,其中,所述特征点神经网络包括一个或多个全连接神经网络层,并用于处理至少一个特征点位置并生成特征点数据以传输到所述视线位置估计单元。

根据一个实施例,所述第一神经网络流和所述第二神经网络流用于对所述估计视线位置的第一坐标和第二坐标中的每一个进行独立地处理。

根据一个实施例,还提供有校准模型,其中所述校准模型包括以下内容中之一:校准神经网络、岭回归、决策树、支持向量机或线性回归,并用于确定和输出经校准的估计视线位置。

根据一个实施例,所述校准模型用于对经校准的估计视线位置的第一坐标和第二坐标中的每一个进行独立地处理。

根据一个实施例,还提供有用于确定所述初始图像相对于参照物的方向的图像方向确定模块,其中,所述视线位置估计单元均包括四个方向模块,每个方向模块用于为所述初始图像预定的一个方向,对所述初始图像进行处理。

根据一个实施例,还提供有用于获取所述用户的至少一只眼睛的所述初始图像的相机。

根据一个实施例,还提供有具有与估计视线位置相关的屏幕的电子设备。

根据一个实施例,所述电子设备包括所述相机。

根据一个实施例,所述电子设备包括安装在其上的如上所述的计算机程序产品。

根据一个实施例,所述计算机程序产品在所述电子设备中被运行以基于所述视线跟踪来进行与所述电子设备的用户交互。

根据本发明的另一方面,提供有一种用于确定用户的视线位置的计算机实现的方法,所述方法包括:

接收所述用户的至少一只眼睛的初始图像;

提取所述初始图像的至少一个颜色分量以获得对应的至少一个分量图像;

确定所述至少一个分量图像中的每一个的相应的视线位置;

根据所述至少一个分量图像中的每一个的所述相应的视线位置来确定所述初始图像中的估计视线位置;以及

输出所述估计视线位置。

根据一个实施例,所述确定相应的视线位置包括执行回归方法。

根据一个实施例,所述确定估计视线位置包括执行回归方法。

附图说明

通过以下结合附图的详细描述,本发明的其他的特征和优点将变得显而易见,在附图中:

图1为根据一个实施例的一种用于确定用户的视线位置的方法的流程图;

图2示出了根据一个实施例的头部旋转对面部特征点的投影的影响;

图3示出了根据一个实施例将包括九个像素的图像分解成三个分量rgb图像;

图4示出了根据一个实施例的在rgb图像的各个颜色通道中的眼睛颜色和巩膜之间的对比度以及它们的灰度当量之间的对比度的示例;

图5为示出了根据一个实施例的用于实现图1所示的方法的回归算法的示意性框图;

图6示出了根据一个实施例对两个图像进行大小调整、拉平和连结;

图7示出了根据另一实施例对两个图像进行大小调整、拉平和连结;

图8为示出了根据一个实施例的一种用于确定视线位置的系统的示意性框图;

图9为示出了根据一个实施例的适用于执行图1的方法的各步骤中至少一些步骤的处理模块的框图;

图10示出了神经网络的人工神经元的结构;

图11示出了根据一个实施例的神经网络的全连接层的结构;

图12示出了根据一个实施例的神经网络的卷积层的结构;

图13示出了根据一个实施例的卷积流的结构;

图14示出了根据一个实施例的全连接流的结构;

图15为示出了根据一个实施例的使用多层感知器来实现图1的方法的架构的示意性框图;

图16为示出了根据另一实施例的使用卷积神经网络来实现图1的方法的架构的示意性框图;

图17为示出了根据一个实施例中使用了校准模型的图1的方法的示意性框图;

图18为示出了根据另一实施例中使用了另一校准模型的图1的方法的示意性框图;

图19为示出了根据另一实施例中校准模型具有竖直校准模型和水平校准模型的图1的方法的示意性框图;以及

图20为根据一个实施例的用于确定用户的视线位置的整个系统的详细框图。

通过以下详细描述,本发明的更多细节及其优点将更明显。

具体实施方式

在以下实施例的描述中,对附图的参考是通过对下述示例进行说明的方式实现的,通过所述示例可以实践本发明。可以理解的是,在不脱离所公开的发明范围的情况下,可以实现其它实施例。

图1示出了根据一个实施例的一种用于从初始图像中确定用户的视线位置的方法10。如下面将对其进行详细介绍的,在一个实施例中,方法10由至少设置有处理单元、存储器和通信单元的计算机机器执行。可以使用集成在移动和/或便携式设备中的相机或任何能够获得用户的图像的专用设备来拍摄用户的图像。该移动和/或便携式设备是例如智能手机、平板电脑、平板手机、膝上型计算机以及设置有例如网络摄像头的相机的计算机机器等设备。在其中必须执行校准过程的实施例中,应该为用户提供显示器,例如所使用的移动和/或便携式设备的显示器。

如在下文中将变得明显的,在一些实施例中,通过使用神经网络来实现该方法。神经网络是使用一个或多个后续层的非线性单元为所接收输入来预测输出的机器学习模型。使用训练合适的神经网络可以极大地提高视线位置确定的准确性。然而,本领域技术人员可以理解的是,虽然对于特定应用可以考虑方便实现的更简单的回归算法,但是位置确定的准确性却不足以令人满意,如下详述。

在以下描述中,根据一些实施例,首先以使用简单的回归算法的基本架构来描述用于确定用户的视线位置的方法和相关联的系统。后面将参考图15至20来描述使用神经网络的更复杂的架构。

在方法10的步骤12,用户的至少一只眼睛的初始图像被接收。在一个实施例中,初始图像仅包括用户的眼睛。在另一实施例中,所接收的初始图像包括用户的两只眼睛。在另一实施例中,所接收的初始图像还包括除了户的眼睛以外的其他面部特征,如下详述。例如,该初始图像可以包括眉毛、耳朵、鼻子、嘴巴等。在另一个实施例中,该初始图像包括用户的整个面部。

在步骤14,从该初始图像中提取至少一个颜色分量,以获得对应的至少一个分量图像。在一个实施例中,从该初始图像中提取两个颜色分量以获得两个对应的分量图像。在另一个实施例中,从该初始图像中提取三个颜色分量以获得三个对应的分量图像。实际上,在一个实施例中,该用户的眼睛的初始图像是设置有红色通道、绿色通道以及蓝色通道的rgb(红-绿-蓝)图像。在该示例性的rgb示例中,单个颜色通道被选择以构建相应的分量图像。更具体地,与在步骤12所接收的初始图像的每个像素相关联的十进制代码包括红色值、绿色值和蓝色值。通过仅考虑初始图像的各像素的红色值来生成红色图像,即,红色图像包括与初始图像相同的像素阵列。但是由于没有考虑各像素的绿色值和蓝色值,因此只有十进制代码的红色值仍然与每个像素保持关联。红色图像仅在红色的情况下表示与该初始图像相同的图像。类似地,通过仅考虑该初始图像的各像素的绿色值来生成绿色图像,即,绿色图像包括与初始图像相同的像素阵列。但是由于没有考虑各像素的红色值和蓝色值,因此只有绿色值仍然与每个像素保持关联。通过仅考虑初始图像的各像素的蓝色值来生成蓝色图像,即,蓝色图像包括与初始图像相同的像素阵列。但由于没有考虑各像素的绿色值和红色值,因此仅蓝色值仍然与每个像素保持关联。

因此,在该示例中,步骤14的输出存在于三个rbg分量图像之中,即用户的眼睛的红色图像、眼睛的绿色图像以及眼睛的蓝色图像。

应当理解的是,相同的提取或分解过程也可以应用于其它色彩空间,例如ycbcr、hsv或hsl。然而,由于rgb色彩空间通常是种颜色由数字相机捕获并存储到计算机中的色彩空间,因此优选rgb色彩空间。使用其它颜色空间实际上会需要额外的处理步骤,以将rgb值转换至所选的颜色空间。如本文所述,该方法适用于通过例如rgb颜色分量或其它基本上等效的颜色分量收集的图像。然而,该方法可以在包括不可见的光分量的光条件下应用,例如使用红外图像。尽管本文所述的方法不需要红外投影仪和相机,但是该方法可以应用于包括可见光谱之外的分量的图像。但是应该注意的是,在红外光的条件下巩膜和虹膜在图像中均呈现为灰色,所以很难识别出巩膜和虹膜之间的差异,因此使用红外光不是特别有利。

在步骤16,该至少一个分量图像中的每一个的相应视线位置被确定。应当理解的是,可以使用用于确定视线位置的任何适当的方法或算法,如下详述。因此,在上述使用三个rgb分量图像的示例中,为红色分量图像确定第一视线位置,为绿色分量图像确定第二视线位置,并为蓝色分量图像确定第三视线位置。在使用单个分量图像的实施例中,在步骤16会确定单个视线位置。代替相应视线位置,该分量图像可以由用于获取相应内部表征的相应主流(例如具有卷积层的大神经网络的相应部分)进行单独处理。内部表征为神经网络内该神经网络的不是输出层的特定层的输出。

在步骤18,根据至少一个分量图像中的每一个的相应视线位置确定初始图像中的估计视线位置。在上述使用单个分量图像的实施例中,估计视线位置对应于在步骤16确定的单个相应视线位置。

在从初始图像中提取至少两个颜色分量的实施例中,如下详述,通过任何适当的结合方法使用权重因子将所确定的至少两个相应视线位置结合在一起以获得估计视线位置。在使用rgb图像的示例中,使用权重因子将三个相应视线位置结合在一起,以获得估计视线位置。

然后,在步骤20,输出由此获取的估计视线位置。例如,可以将估计视线位置存储在存储器中以进行进一步处理。

应该理解的是,初始图像可以包括单眼或双眼的表征。还应当理解的是,初始图像可以包括两个图像,即,包括第一眼睛的表征的第一图像和包括第二眼睛的表征的第二图像。

在初始图像包括除了眼睛之外的至少一个另外面部特征的实施例中,方法10还包括裁剪初始图像以生成裁剪图像的步骤。该裁剪图像具有比初始图像的尺寸减小的尺寸,并且仅包括一只或两只眼睛的表征(例如,通过将两个裁剪的眼睛区域接合在一起形成合成图像,从而有效地裁出鼻子的上部区域)。为了对初始图像进行裁剪,预先对初始图像内的眼睛进行识别并提取。应当理解的是,可以使用任何适当的面部特征识别方法来识别初始图像内的眼睛。例如,如在本领域所熟知的,可以通过以下操作来识别图像内的眼睛:在初始图像内识别眼睛的轮廓;确定每只眼睛的角膜缘(即,巩膜-虹膜边界)的位置和/或虹膜和瞳孔。应当理解的是,用于识别图像内的眼睛的任何适当的方法都可以被使用。

一旦在初始图像内识别出眼睛,就从初始图像中提取图像中仅包括眼睛的的部分以创建裁剪图像。应当理解的是,裁剪图像的尺寸可以变化,因此裁剪图像在,例如,仍然具有比初始图像小的尺寸的情况下,可以包括比眼睛更多的区域。

在一个实施例中,使用约束局部模型(clm)方法来识别初始图像内的眼睛。该方法使用多个专家检测器,每个专家检测器均经过训练,能够用于对例如右眼的内角或鼻梁的特定面部特征进行识别。给定一张面部的图像,则这些专家中的每一个都会产生其被训练要检测的特征的位置的估计。然后合适的各个位置被连接起来以产生面部的解剖特征的轮廓。常见的检测到的特征包括眼睛、眉毛、鼻梁、嘴唇以及下巴。有时也会检测到耳朵。通过使用不同点相对于彼此的位置,可以构建面部的三维模型。

在一个实施例中,用于隔离感兴趣的区域,即眼睛的初始图像的裁剪可以改善馈送到眼球跟踪算法(特征提取)的数据的信噪比,并减少计算负荷(降维)以及降低存储数据的存储器需求。

在一个实施例中,从初始图像进行眼睛的提取可以大大地减小输入空间以仅包含相关的非冗余信息。

作为示例,假设是理想的西方男性面部的比例,并且假设用户的面部完美地写入框架内,则眼睛会总共表示初始图像大约40%的水平空间和大约7%的竖直空间。这意味着两只眼睛的图像总共表示初始图像的2.8%的像素。如果用户的面部小于图像的边框,则更有优势。这可以减少存储要求以及以下描述的回归问题的计算复杂性,如下面进一步详细介绍的。

在另一实施例中,从初始图像中提取至少一个另外的面部特征点,以确定该图像中用户的头部姿势或姿态。在该实施例中,将至少一个另外的特征点与相应视线位置相结合以确定估计视线位置。如以下将变得明显的,该实施例可以增强该方法对于头部姿势的不变性。

头部姿势被定义为头部相对于相机的位置,其包括平移和旋转。如从相机拍摄的初始图像中测量的,平移是通过测量面部的中心与初始图像的中心之间的距离而获得。旋转可以以多种方式表示,对于人体而言,最直观的方式是头部的欧拉角,即俯仰(点头)、偏转(摇头)以及侧倾(头部倾斜)。

如前所述,现代的红外线的视线跟踪方法和系统通常利用受控光源来估计眼球相对于头部的旋转,然后产生视线位置的估计。因此,可以说此类系统本质上对于头部姿势是不变的。

相反,由于以上图1的方法并没有对相对的眼睛旋转做任何直接的测量,因此不能被称为是头部姿势不变的。如前所述,期待用于估计视线位置的最相关的特征是角膜缘的位置、或巩膜和虹膜之间的边界,以及眼睛的轮廓。其不仅会在头部固定且视线位置发生变化的情况下发生变化,而且会在视线固定且头部位置通过平移或旋转发生变化的情况下发生变化。

因此,在一个实施例中,为了产生更准确的视线位置估计,将关于头部姿势的一些信息添加到该方法的输入数据中。由于必需从用户面部的图像中提取出所有特征,所以针对此的明显的候选特征集为面部特征点的集合,这些面部特征点相对于彼此的位置随着头部的移动和旋转而发生变化。根据这些特征,可以例如,通过采用图像上的固定点与特定面部特征点之间的距离,或者采用图像上的固定点与一组面部特征点的质心之间的距离来容易地确定头部的平移。

头部的欧拉角很难估计,需要将面部特征点的2d坐标投影到用户面部的3d模型上。假设所使用的模型是用户面部的完美模型,则角度的不确定性与面部特征点的位置的不确定性相同。鉴于本方法旨在由普通公众使用,因此不能做出这样的假设,而需要使用一些人脸模型来代替,从而导致欧拉角的不确定性增加。

在对机器学习算法进行训练的情况下,理想的特征集应包含且仅包含解决问题必要的所有信息。通过将面部特征点的坐标转换为欧拉角,关于面部模型的拓扑的信息被添加到数据集中相对不变的特征中,而特征的质量会随着其不确定性的增加而降低。由于这些原因,选择一组面部特征点的图像空间中的坐标用作将头部姿势的不变性引入到我们的方法的特征。

应当注意的是,这类特征已经自然地出现在眼睛图像中。实际上,当头部相对于相机移动和转动时,眼睛的表观高度和宽度也会改变。然而,在自然观看的情况下,头部相对于相机的角度几乎不会大于30度,因为这样的角度观看会变得不舒服。这意味着眼睛的表观宽度和高度的变化几乎不会超过其最大值的15%。考虑到这些测量结果的不确定性,不太可能会产生很强的头部姿势不变性。

为了更好地估计头部姿势,在一个实施例中,替换地,使用了某些面部特征点的xy坐标,假设这些特征点不在3d空间中的同一平面内。这种效果如图2所示。这里,f1、f2和f3分别表示俯视时的左眼、右眼以及鼻根的位置(鼻根定义为将额骨的鼻部和鼻骨进行连接的额鼻缝的最前点,其在面部可见为直接在两眼之间的、刚好高于鼻梁的凹陷的区域)。这里可以选择两个特征:p3,在观看表面上的眼睛之间的距离的投影的长度;或者p1-p2,左眼和鼻根之间的距离的投影的长度与右眼和鼻根之间的距离的投影的长度的差值。这些特征的值与头部的角度θ之间的关系由等式1和2给出。

p3=2d1cos(θ)(1)

与使用p3相比,使用p1-p2的一个直接优势是保留了关于旋转方向的信息。实际上,对于自然的头部角度,p3的值始终为正,而p1-p2的值在一个方向为正,而在另一个方向为负。另外,良好特征的一个重要方面是特征的极值之间的差。换句话说,良好特征应该使得其最小值和其最大值之间的差最大化。在此示例中,如果d1<h,就是如此情况。其中h是鼻根与眼睛之间垂直于面部平面的距离,而d1是鼻根与眼睛之间在面部平面中的的距离。在此示例中,用户的面部被视作是对称的,因此d2=2d1。现在应该明显地看到,正确选择面部特征点可以确保这些属性,即,选择不在2d平面中的特征对于头部姿势的不变性更有利。

与使用欧拉角相比,使用面部特征点坐标的另一个优点是,面部特征点坐标包含与面部和相机之间的距离有关的信息,而欧拉角则不包含这种信息。

最后,应该注意的是,取决于所选择的执行该方法的算法和架构,正常地运行该模型并未对上述信息有严格要求。但是,如果省略上述信息,则在校准过程中如果用户移动其头部至远离其头部之前所在的常用位置的情况下,预计性能会迅速下降,这将在下文中进行详细介绍。

图3示出了将彩色图像30示例性地分解为其rgb分量。应当理解的是,只要图像30包含眼睛,图像30可以是原始的初始图像,也可以是裁剪图像。

图像30包括均具有不同颜色的九个像素。每个像素具有与之关联的红色值、绿色值以及蓝色值,从而形成图像30的rgb分量32、34和36。红色分量32仅包括图像30的九个像素的红色值。绿色分量34仅包括图像30的九个像素的绿色值。蓝色分量36仅包括图像30的九个像素的蓝色值。然后各个rbg分量被分开以创建包括仅与红色值相关联的九个像素的红色图像40、包括仅与绿色值相关联的九个像素的绿色图像42以及包括仅与蓝色值相关联的九个像素的蓝色图像44。

应当理解的是,每个rgb分量图像对应于一个灰度图像。实际上,由于单色图像是例如灰度彩色图像的二维矩阵,所以新的单色图像,即rgb分量图像,尽管表示颜色通道,但是也对应于灰度图像。因此,颜色分量的灰度化只是分解的结果。

应当理解的是,在常用的计算机视觉应用中,通常将图像以mxnx3三维矩阵的形式提供,该矩阵包括3层,每层对应于该图像的rgb分量中的一个。通常会将该矩阵提供给网络的第一层并进行整批处理(即,使用具有相同深度的核或过滤器对这三层进行处理)。与rgb分量中的每一个有关的信息会被混合到后续层中,而在之后的层中“丢失”。在这种情况下,因为从应用于三维矩阵的网络的第一层开始,所有信息已经被混合,所以无法基于网络的内部表征来仅识别出与某个颜色分量具体相关的信息。

作为替代,在本发明中,将mxnx3矩阵拆分为三个不同的大小为mxn(或mxnxl)的二维矩阵,并且每个矩阵在其自己特定的主流的几层之后被融合之前,都由神经网络中其自己的部分(即,其自己特定的主流)独立地处理。例如,三个mxnxl矩阵中的每一个提供给其自己单独且特定的主流(神经网络的一部分),其可以包含多于一个的层。例如,在融合前,各个颜色分量图像的这些单独且特定的主流可以包括2或3个卷积层以及2或3个全连接层。这样确保对可以在单个颜色的分量图像中找到的信息进行单独地分析。每个颜色分量图像的相应主流的单独且特定的输出不应与整个网络的输出(可以被训练)混淆,并且其应称为网络在该层的内部表征(将在称为特征融合的步骤中被融合,以便于下游的进一步处理)。

确保各个颜色分量图像都根据其自己的特定的主流被处理是具有其优势的。实际上,根据经验发现,取决于情况,颜色分量中的一个(例如,rgb颜色空间中r、g或b分量中的一个)可以比其它颜色分量更合适或更有用。如下详述,这样可以提高准确性。在同时应用了各特定的主流之后,将来自三个颜色分量图像(或更通常地,来自至少一个颜色分量图像)的所有结果内部表征与照明信息和面部特征点(或根据辅助流的其自己的内部表征)进行融合。其中根据经验颜色分量图像中的一个更加合适的的条件取决于环境中的照明信息。在每种情况下,不存在比另一个单色分量更合适的单色分量。因此,神经网络通过对每个颜色分量图像(在其自己单独且特定的主流的末尾)与照明信息(其也可以支持辅助流)进行融合来适应照明环境。通过该操作,神经网络可以自动地适应实际的照明环境,并通过下述操作来在该特定情况下使用最有用的颜色分量。该操作为通过网络的后续层执行附加操作,即内部流,该内部数据流是神经网络在融合层下游的部分。在一个实施例中,在环境光下与眼球跟踪最相关的特征可以是相对于眼睛轮廓的巩膜-虹膜边界的位置或角膜缘。因此,巩膜和虹膜之间的对比度越好,则该边界的清晰度越好,从而眼球跟踪方法或算法越鲁棒。不同的眼睛颜色会反射不同量的红色光、绿色光和蓝色光。因此,可以想到的是,角膜缘的识别可以取决于用户的眼睛颜色和环境照明条件。而且,由于上述原因,神经网络被训练为能够识别和使用源自一个特定颜色分量图像(或多个颜色分量图像)的内部特征,而该内部特征被提供给系统并与融合层的分量图像的内部表征进行结合。为此,在特定的照度值下,巩膜和虹膜之间的边界以及巩膜和眼睛的轮廓之间的边缘更容易被识别。通过将图像分解成rgb分量,结果图像中的至少一个可以具有巩膜和虹膜之间的较好的对比度。因此,取决于用户的眼睛颜色和环境光的温度,三个rgb分量图像中的一个应提供角膜缘的最佳对比度。此外,假设颜色通道中的一个始终具有比等效灰度图像更高的对比度。这在图4示出。在图4中,示出了对于各个rgb颜色通道和等效的灰度值在各种照明条件下的不同眼睛颜色之间的对比度。值得一提的是,对于每种眼睛颜色和照明的组合,所有颜色通道之间的最大对比度始终大于灰度情况下的对比度。

由于存在环境照明条件和眼睛颜色的无数结合,因此选择哪个通道进行优先处理的任务很不容易完成。在一实施例中,使用了回归算法。尽管可以将彩色图像转换为灰度图像,或者转换为要在同一通道中被处理的彼此连接的颜色通道,但这却无法利用颜色通道之间的这些差异。因此,如下所述,分别对三个颜色通道进行处理,然后进行决策级或特征级的融合,并最终使用其他的提前算出的例如照度值的数据。

尽管认为具有对各颜色通道进行独立地处理的独立的流有益于模型/算法的性能,但是无需包括所有三个颜色通道。实际上,考虑到单通道流的融合是通过每个流的加权和来完成的,其虽然在深度学习模型的情况下被过度简化,但并非是不准确的,并且省略一个或多个颜色通道相当于将加权和中应用于这些通道的权重设置为零。仅使用两个通道或单个通道的模型或者实际上使用彩色图像的灰度再现可以看成是其中实质上忽略了一个或两个处理流的特例。

在一个实施例中,如前所述,使用回归算法/方法来确定三个分量图像的相应视线位置。例如,可以使用线性回归、普通最小二乘法、决策树回归和/或人工神经网络。

在另一个实施例中,还使用回归方法或算法来确定估计视线位置。例如,可以使用线性回归、普通最小二乘法、决策树回归和/或人工神经网络。

回归算法通常遵循相同的训练过程。为了本描述的目的,将输入命名为x、将估计命名为并且将目标命名为y。在当前情况下,x是用户眼睛的初始图像,是通过回归方法产生的用户视线的位置的估计,并且y是用户视线的实际位置。

训练过程创建近似计算x和y之间的数学关系并且基于x求出的模型f(x)。换句话说,训练过程的目标是以某种方式来调整此数学关系,以在任何给定x的情况下,使得y和之间的误差最小。

在线性回归的情况下,f(x)可以表达为:

f(x)=b+∑wj*xj(3)

其中xj是输入向量x的第j个特征,wj是与该特征相关联的权重,且b是线性回归模型的y轴截距或偏差。在这种情况下,该训练过程的目标是调整权重和偏差,以使预测误差最小。

在一个实施例中,回归算法还具有影响训练过程并由此影响最终模型的必须被优化的超参数。在本线性回归的示例中,超参数将指示等式中是否包含偏差项。

超参数的优化包括将数据集拆分为训练集和验证集两部分。在训练之前,定义了超参数搜索空间,该空间限制了待探索的超参数的可能值。对于每组值,完成上述训练过程,并从验证集中获得训练模型的性能。最后,将产生最佳性能的超参数值的集合保留为最终模型。

如方法10的步骤18所述,将三个rgb分量图像的确定的相应视线位置结合在一起以提供估计视线位置。应当理解的是,可以使用不同的结合方法。

在一个实施例中,估计视线位置与三个rgb分量图像的确定的相应视线位置的加权平均值相对应:

其中wc是与每个rbg分量c相关联的权重因子。

在一个实施例中,通过测量每个颜色通道对彩色图像贡献多少的度量来确定权重因子。

例如,可以通过以下方式来确定权重因子:通过将颜色通道的各像素的值相加,并且结果除以图像中所有像素的总和,来计算每个颜色通道的相对贡献。在一个实施例中,这种用于计算权重因子的方法较简单,计算速度快并且对于光强度几乎不变。实际上,降低或增加环境照明的强度会使各通道中各像素的值以相同的因子降低或增加,直到像素开始饱和为止。在一个实施例中,表示每个颜色通道的相对贡献的三个值与权重因子wc相对应。

在另一个实施例中,可以使用另一回归算法将三个rgb分量图像的获得的三个相应视线位置进行结合。该另一回归算法的输入可以是表示各颜色通道的相对贡献的三个值以及的三个rgb分量图像的获得的三个视线位置,其通过训练来近似计算环境光与颜色通道贡献之间的关系。

如前所述,在改进的视线位置估计中,三个rgb分量图像的获得的三个相应视线位置的结合可以进一步执行为表示初始图像各颜色通道的相对贡献的照度值的函数。

在一个实施例中,可以使用yang,k.f.,gao,s.b.,以及li,y.j.(2015年)在ieee计算机视觉和模式识别会议(2254页至2263页)的会议记录中的“efficientilluminantestimationforcolorconstancyusinggreypixels”提出的方法来确定照度值,但是也可以使用其它方法。例如,可以考虑将颜色通道的各像素的值相加,并将结果除以图像中所有像素的和,来计算各颜色通道的相对贡献,如前所述。

如本领域技术人员显而易见地,也可以使用例如色域约束照度估计和灰度像素照度不变测量之类的其它方法。

一旦确定了照度值,就将这些照度值与相应视线位置相结合以确定初始图像中的视线位置的估计。

图5示出了根据一个实施例的用于实现图1所示的方法10的回归算法。将三个回归器训练为单通道回归器,其中每个回归器位于用户眼睛的全彩色图像的不同颜色通道上。然后,这些回归器的决策由第四回归器,也称为预测融合,进行结合。该第四回归器将来自所有三个通道的预测以及各颜色通道对图像的相对贡献作为输入。

在该实施例中,四种回归算法作为单通道回归器被测试,如果考虑到以下参数,则认为其是合适的:较小的初始数据集、较低的存储器需求以及相对较短的训练时间。这些算法是:岭回归、支持向量机(svm)、极度随机化树(etr)以及弹性网络。

用于训练的图像数据库是从志愿者处收集的,他们被要求在计算机屏幕上观看13个预定的十字交叉。所有十字交叉一个接一个出现,并在视线中停留三秒钟。要求受试者在第一秒内找到目标。在接下来的两秒钟内,使用相机捕获受试者面部和周围环境的十张图像,以获得与从移动设备的前置摄像头所获得的图像相似的图像。然后,该目标消失且下一个目标出现。捕获每个十字交叉的十张图像,以便在眨眼时提供可用数据。

为了建立用于训练的数据集,使用面部特征识别算法从初始图像中裁剪出包含受试者的右眼和左眼的图像,以确定初始图像中的眼睛和眉毛的位置。此信息用于定义每只眼睛的边界框,然后用于裁剪出眼睛。接下来,将这两个眼睛图像与表示图像采集时屏幕上的十字交叉的中心的位置的一组(x,y)坐标相关联。

现在参考图6,由于在该实施例中使用的算法仅接受固定大小的一维矩阵(即,矢量)作为输入,因此,需要对眼睛图像进行大小调整及拉平才能使用该眼睛图像。因为不能保证裁剪后的一帧帧眼睛图像具有相同的大小,甚至是彼此相同,所以大小调整是必要的。使用方形裁剪可以简化该过程,并且两个图像的大小均被调整为25x25像素。该尺寸是根据经验选择的,作为在可接受的分辨率损失和增大的尺寸之间的折中。然后将图像拉平以使其在保留像素的总数的同时提高一个像素。最后,将图像进行连结以产生具有两倍像素数量的单个图像。该图像作为单色回归器的输入。

虽然经过形状调整、连结和拉平的眼睛图像足以对眼球跟踪系统进行训练,但该系统对头部运动却非常敏感。为了避免这个问题,如图7所示,根据一个实施例,还可以将面部特征点坐标(x,y)的向量与眼睛向量进行连结以形成算法的输入。在一个实施例中,使用第三方面部特征点检测算法获取八个面部特征点的xy坐标。将这些坐标拉平为具有16个值的向量。在图6中描述的处理步骤之后,将眼睛向量分为多个单独的颜色通道。然后将这些向量中的每一个向量与面部特征点向量的副本连结在一起。最后,将三个结果向量用作单通道回归算法的输入。

在训练之前,为考虑的每种算法定义了可能超参数值的搜索空间。然后为各个通道、各种算法和各组相关的超参数,进行模型训练和测试。用于评估模型的性能的性能指标是平均绝对误差(mae)和确定系数r2。

mae是估计值与目标值之间的平均距离。在这种情况下,由于估计值和目标值是二维坐标集,因此欧几里得距离是距离指标。

r2是用于表示模型可能预测出的未来值有多好的指标,取值范围通常从0到1。数值1表示具有完美预测能力的会为任何可能的输入值产生目标值的模型。数值0表示无论什么输入值总是输出相同的值的恒定模型。由于模型是会随时坏的,因此数值的范围包括负数。

对于每个颜色通道,将实现最高r2的模型保留为最终模型,并保存用于训练此模型的超参数,以备后续使用。

在一个实施例中,为单通道回归器定义的架构为岭回归器和svm的结合,其输出被平均。测试表明,这两种算法会产生相同程度的互补错误。即,如果其中一个算法以某一量高估了视线位置,则另一个算法就会以基本相同的量低估视线位置。可以通过对预测值进行平均来平均此类错误,从而使模型更准确。

为了预测融合,即,基于相应视线位置来确定估计视线位置,除了线性回归之外,还对所有上述的回归算法进行了测试。由于该回归器的输入空间的维数很低,因此添加了线性回归作为候选。实际上,输入包括所有三个单色回归器的二维输出以及所有三个颜色通道的相对贡献,总共9个维度。

通过与用于模型研究和超参数优化的单色回归器相同的方法,将线性回归算法设置为进行颜色校正,这是因为使用更复杂的回归算法没有显著的益处。因此,用于结合的方法是在等式5中描述的上述方法,其中g是最终的视线估计,wc是权重,lc是特定颜色通道的照度值,并且gc是特定颜色通道的视线估计。

确定权重因子wc的方式是:计算各颜色通道的相对贡献,即,给定通道的各像素的强度之和除以各通道的各像素的强度之和,如前所述。

尽管这些初始算法训练起来很快,但却不能进行增量学习,这严重限制了训练模型所依据的数据集的大小,因此也限制了其被推广的能力。测试表明,该应用需要不断进行校准,并且根据某个用户进行校准所获取的知识无法实际扩展到大量用户。由于这些原因,对于给定的应用,特别是人工神经网络,优先选择具有增量学习能力的机器学习算法,而卷积神经网络尤其适合解决此问题,如下将参考图15至20进行详细介绍。

在一个实施例中,上述方法10可以实施为包括计算机可读存储器的计算机程序产品,该计算机可读存储器用于存储计算机可执行指令。当计算机可执行指令由计算机执行施时,执行方法10的步骤。

在一个实施例中,上述方法10可以实施为一种系统,该系统包括用于进行接收数据和发送数据中至少之一的通信单元、存储器以及用于执行方法10步骤的至少一个处理单元。

现在参考图8,接下来将根据根据一个实施例来描述一种用于确定用户在初始图像中的视线位置的系统80。该系统80设有提取单元82、视线位置确定单元84以及视线位置估计单元86。

提取单元82用于接收用户的至少一只眼睛的初始图像,并提取初始图像的至少一个颜色分量以获取对应的至少一个分量图像,如上详述。在一实施例中,提取单元82用于提取初始图像的至少两个不同的颜色分量以获得至少两个对应的分量图像。在另一个实施例中,提取单元82用于提取初始图像的三个不同的颜色分量以获得三个对应的分量图像。在一个实施例中,提取单元82用于提取初始图像的三个rgb分量中的每一个,如前所述。在另一实施例中,提取单元82还可以用于对初始图像进行裁剪,如上所述。

视线位置确定单元84用于从提取单元82接收各个分量图像,并为分量图像中的每一个确定相应视线位置,如上所述。

视线位置估计单元86用于根据至少一个分量图像中的每一个的相应视线位置来确定初始图像中的估计视线位置,并输出估计视线位置。在提取出两个或三个分量图像的情况下,则视线位置估计单元86用于,例如使用权重因子,将各个相应视线位置结合在一起,如前所述。

在一个实施例中,所接收的初始图像包含除至少一只眼睛以外的其它特征,并且提取单元82还用于在所接收的初始图像内识别至少一只眼睛;提取仅包含至少一只眼睛的初始图像的一部分以获取裁剪图像;以及提取裁切图像的至少一个颜色分量以获取对应的至少一个分量图像,如前所述。

在其中使用照度值的实施例中,提取单元82还用于为分量图像中的每一个确定表示对应的分量图像对初始图像的相对贡献的照度值,如前所述。在这种情况下,视线位置估计单元86还用于将照度值与与相应的视线位置相结合。

在实现头部姿势不变性的实施例中,所接收到的初始图像还包含至少一个面部特征点,如上所述。提取单元82还用于提取至少一个面部特征点,以获得对应的至少一个特征点位置。在该实施例中,视线位置估计单元86还用于将至少一个特征点位置与相应的视线位置相结合。

在一个实施例中,单元82、84和86中的每一个均设有相应的例如微处理器的处理单元、相应的存储器以及相应的通信装置。在另一个实施例中,模块82、84和86中的至少两个可以共享同一处理单元、同一存储器和/或同一通信装置。例如,系统80可以包括供各个模块82、84和86使用的单个处理单元、单个存储器以及单个通信单元。

图9是示出根据一些实施例的一种用于执行方法10的步骤12至20的示例性处理模块90的框图。处理模块90通常包括一个或多个用于通过执行存储在存储器94中的模块或程序和/或指令来执行处理操作的计算机处理单元(cpus)和/或图形处理单元(gpus)92,;存储器94;以及一个或多个用于将这些部件进行互连的通信总线96。通信总线96可选地包括用于对系统部件之间的通信进行互连和控制的电路(有时称为芯片组)。存储器94包括高速随机存取存储器,例如dram、sram、ddrram或其它随机存取固态存储设备,并且可以包括非易失性存储器,例如一个或多个磁盘存储设备、光盘存储设备、闪存设备或其它非易失性固态存储设备。存储器94可选地包括一个或多个距离cpu(s)92较远的存储设备。存储器94,或着可替换地,存储器94内的非易失性存储设备包括非暂时性计算机可读存储介质。在一些实施例中,存储器94或存储器94的计算机可读存储介质存储对以下程序、模块和数据结构,或其子集进行存储:

提取模块91,用于提取初始图像的至少一个颜色分量以获得对应的至少一个分量图像;

视线位置确定模块93,用于确定分量图像中的视线位置;

视线位置估计模块95,用于根据至少一个分量图像中的每一个的相应的视线位置,确定初始图像中的估计视线位置;

裁剪模块97,用于对图像进行裁剪;以及

拉平模块99,用于对图像进行拉平。

以上所标识的元素中的每一个可以存储在一个或多个前面提到的存储设备中,并且对应于用于执行上述功能的一组指令。以上所标识的模块或程序(即,指令的集合)不需要被实现为单独的软件程序、进程或模块。因此在各种实施例中,可以将这些模块的各种子集相结合或进行重新布置。在一些实施例中,存储器94可以存储上面标识的模块和数据结构的子集。此外,存储器94可以存储上面未描述的另外的模块和数据结构。

尽管示出了处理模块90,但是图9更倾向于是呈现于管理模块中的各种特征的功能性描述,而并非本文所述的实施例的结构示意。在实践中,如本领域普通技术人员所公认的,可以将单独示出的项目进行结合,并且还可以将一些项目进行分离。

下面将描述深度学习算法或模型的使用,如前所述,这些深度学习算法或模型可用于改善初始图像中的视线位置的估计。虽然使用深度学习的方法与上述方法有相似之处,但是一个明显的区别为:不同颜色分量图像的第一个“主要”处理的结果是“内部表征”,这通常与相应的视线输出是不同的。内部表征已经在上面提到过,其为神经网络内的层的输出并且待与其它内部表征进行融合。通常,由于不是由训练产生的最终的网络输出,所以内部表征没有具体含义,并且未被设计为任何类型的估计(仅是该层的输出)。

然而,上述未涉及神经网络的方法在中间步骤输出相应的视线输出,并且该相应的视线输出,例如图5中的回归器r、g或b的相应的输出,被视为“内部表征”的特例。在该特例中,所以内部表征,即,相应的视线输出,恰好具有含义,这是因为其是训练的结果而且被设计为中间估计。

现在参考图10,其示出了人工神经元的典型结构,即,人工神经网络的基本单位,其可以被设置在多个连接的神经元层中。人工神经元表示应用于加权和以产生输出的数学运算。人工神经元具有四个主要分量。该神经元的输入是大小为n的数字向量in。神经元的权重是大小也为n的与输入向量逐元素相乘的向量wn。该神经元可以具有偏差项b。最后,神经元具有确定其输出的激活函数f(x)或激活a(t)。因此,神经元的输出可以表示为a(t)=ft(b+σii·wi)。

图11示出了神经元的全连接层的结构,其为神经元层,该神经元层具有前一层的所有输出作为输入。即,该层的每个神经元接受前一层的整个输出向量作为输入向量。给定大小为n的全连接层和大小为m的输入向量i,则每个神经元具有m个输入和m个权重,因此该层具有mxn权重矩阵w和大小为n的偏差向量b。为简化计算,所有神经元被设置为具有相同的激活函数。从而,该层的输出为通过将激活函数应用于通过矩阵运算i·w+b获取的向量的每个元素而得到的向量。

图12示出了神经元的卷积层的结构,该层将多维矩阵而非一维向量作为输入。该层由其卷积核定义,而不是像全连接层那样由其包含的神经元的数量来定义。这些层最初被设计为用于灰度图像,但是它们的工作原理可以扩展到更高维度的输入。为简单起见,将输入的元素称为像素,但是该元素仅需要作为非图像的矩阵的元素。

图12描述并说明了卷积层的工作原理。对于给定的大小为h*w的输入,卷积层被视为具有h*w个神经元,其中每个神经元与一个像素相关联。该层还被设置有m*n个卷积核的集合,其实质上是权重的集合。然而,与其中每个神经元具有其自己的权重集合的全连接层不同,在卷积层中,所有神经元都共享相同的权重。每个神经元在输入上具有与卷积核大小相同的感受野,而神经元则位于感受野的中心。在图12中,例如,使用了单个3*3卷积核,并示出了神经元ni和nj的感受野。

该层的输出是与输入大小相同的与卷积核一一对应的一组特征图。特征图中的各个像素通过将激活函数应用于乘以卷积核中适当权重的像素值的和得到。由于该操作的结果与基于输入对卷积核进行卷积化的结果相同,所以使用卷积核对输入进行过滤,并将激活函数应用于该结果,从而命名为“卷积的”。

图13示出了根据一个实施例的使用可以被用于实现本发明的方法的全连接层的神经元的神经网络的卷积流的结构。

主卷积流是神经网络层的处理流,其可用于处理眼睛图像的各个颜色通道。由于其是卷积的,至少一个卷积层包括于每个流中而多个流在一个实施例中被使用。在一定数量的卷积层之后,尽管不是必需的,但是可以在下游添加多个全连接层。实际上,常见的做法是将全连接层添加至一组卷积层,因为这会提高模型的预测能力。例如但不限于,给定颜色的分量图像的主流在到达下游的融合层之前可以包括两个或三个卷积层以及两个或三个全连接层,其从该给定颜色的分量图像的相应的主流接收内部表征。可以将整体归一化方法应用于卷积层,而将l2正则化和丢弃正则化方法应用于该全连接层。其它正则化方法及其结合也可以被应用于这些卷积层。然而,根据经验可以确定上述方法非常适合于该应用。另外,可以在每个卷积层之后使用最大池化,以减少下一层的输入的维数。同样地,池化是一种广泛使用的工具,但其不是必需的。也可以使用其它池化方法,例如平均池化。池化操作通过对邻域执行某些操作,例如取平均值或最大值,来将像素的邻域减小为单个值。

如果卷积流不使用全连接层,则卷积流的输出是数量对应于上一卷积层的核的数量的特征图的集合。如果使用一个或多个全连接层,则卷积流的输出是一个包含与最后一个全连接层中的神经元数量相同的元素的向量。此外,如果使用一个或多个全连接层,则必需将上一卷积层的输出拉平为要被第一全连接层接受为输入的向量,如之前参考图6和7所述。

图14示出了根据另一个实施例的一种可以被用于实现本发明的方法的神经网络的全连接流的结构。

主全连接流是神经网络层的流,其可用于对眼睛图像的各个通道进行处理。由于仅由全连接层组成,所以眼睛图像需要被拉平至向量的形式,才能作为输入被流的第一全连接层所接受,如前面参考图6和7所述。如果不使用全连接层,则此流的输出是矢量化的输入图像。这种情况很少见,但在将流的输出输入到另一个流以进行进一步处理的情况下可能有用。如果使用了一个或多个全连接层,则输出为包含与最后一个全连接层中的神经元的数量相同的元素的向量。

在一个实施例中,对全连接层使用l2正则化和丢弃正则化方法,但是其它正则化方法及其结合也可以应用于这些全连接层。

在使用辅助输入的情况下,例如称为照度值和面部特征点坐标,可以将它们直接提供给融合层。或者,替代地且有利地,可以使用神经网络的辅助输入流对辅助输入进行一些处理。然后,融合层会接收来源自这些辅助输入(照度值和面部特征点坐标)的内部表征。由于这些输入的维数较低,在上述示例中大小分别为3和16,因此在一个实施例中,这些流中使用的各层是全连接层。如果使用一个或多个全连接层,则辅助流的输出会是包含与最后一个全连接层中的神经元的数量相同的元素的向量。如果不使用全连接层,则辅助流的输出为其输入。在一个实施例中,尽管可以考虑其它方法,但是可以对全连接层使用l2正则化和丢弃正则化方法或算法。辅助输入流的结构和图14中所示的主全连接流的结构相类似。

如下文中明显地,融合层用于将上游层的输出(即,来自多个不同的主流和辅助流的相应内部表征)融合成单个向量。这是需要的,因为至少一个全连接层用于产生系统的输出,并且如上所述,一个全连接层接受且仅接受一个向量。这意味着可能需要一个或多个融合层来将卷积流和辅助流的输出融合为要被用作输出层的输入的一个向量。

该层的输入是至少两个上游流的输出。如果在卷积流中未使用全连接层,则如上所述,在融合操作之前,需要将该流的输出拉平为向量。

融合操作本身的意义在于将输入向量连结成长度等于所有输入向量的长度之和的单个向量。与图5所示的实施例中使用的预测融合相反,该级别的融合称为特征融合。神经网络中的特征融合也可以称为内部表征的融合。

神经层的内部流是全连接层的可选集合,其可以对融合层的输出进行进一步的处理。因此,流的输入是融合层的输出。如果使用一个或多个全连接层,则流的输出是包含与最后一个全连接层相同数量的元素的向量。如果不使用全连接层,则此流的输出为其输入,即,融合层的输出。内部流的输出本身可以用作融合层的输入。尽管可以考虑其它方法,但是可以对全连接层使用l2正则化和丢弃正则化方法或算法。

应该注意的是,尽管全连接层仅可以用于这种类型的流中,但是假设某些输入具有潜在相对较高的维数,也可以使用一维卷积层作为替代。然而,卷积层是不合适的,主要是因为该类型的层原本是要利用相邻值之间或值的附近区域内的关系。内部流的结构和图14中所示的主全连接流的结构相类似。

如下文中变得明显的,在一个实施例中,根据系统是否要产生x和y视线坐标还是只生成其中一种坐标,系统的输出由大小为一或二的全连接层提供,如下面将进一步详细介绍的。在该实施例中,该层的输入是内部流的输出或融合层的输出。

人工神经网络通常使用多个激活函数,并且只要可以区分,任何函数都可以使用。这些函数包括但不限于:恒等函数、逻辑函数(例如sigmoid函数)、双曲正切函数以及整流线性单元(relu)函数。

在一个实施例中,除了使用恒等函数的输出层之外,relu函数被用于所有层。本实施例显示了良好的结果,但是可以使用其它函数来产生具有不同性能指标的模型。

参考图15至20,会更加详细地描述根据一些实施例的基于神经网络架构的用于确定用户的视线位置的方法和系统。

如下文中变得明显的,在方法10的一个实施例中,确定当前情况下的相应的视线位置或神经网络的内部表征的步骤以及确定估计视线位置的步骤以结合方式被执行。实际上,使用神经网络来处理至少一个分量图像。该神经网络由一台或多台计算机实现,并具有一个或多个神经网络层。该神经网络用于,在运行时和在该神经网络被训练后,使用一个或多个神经网络层来对至少一个分量图像进行以生成估计视线位置。神经网络的训练将在下面描述。

该方法是使用前面描述的系统80实现的,该系统设有神经网络。在本实施例中,该神经网络用于,在运行时和该神经网络被训练后,使用一个或多个神经网络层来对至少一个分量图像进行处理,以生成估计视线位置。在一个实施例中,系统80具有形成神经网络的第一部分的至少一个主流,每个主流与所获取的图像的颜色分量相对应,每个主流,每个主流用于生成相应内部表征。相应内部表征要与其它相应内部表征相融合,以及在某些情况下,要与和来自辅助输入(例如照度值和面部特征点坐标)的内部表征相融合。换句话说,在使用rgb图像的三个分量图像的情况下,系统80具有三个不同的主流,如在下面参考图15和图16的描述变得明显的。系统80还具有神经网络的第二部分,即内部流,用于生成估计视线位置。显然,神经网络的第一部分的输出(即,来自至少一个颜色分量图像以及辅助流的至少一个主流和辅助流(如果有))用作神经网络的第二部分的输入。可以使用第一神经网络的各种架构。可以只包括一个或多个全连接层和/或一个或多个卷积层。如果使用卷积层,则在最后一个卷积层的下游设置一个全连接层,如下详述。神经网络的第二部分具有至少一个融合层,每个融合层具有至少一个全连接层。神经网络的第二部分,或内部流,开始于至少一个融合层的至少一个。第二神经网络还可包括在一个或多个融合层下游的输出层。该输出层可以包括一个或多个全连接层。

下面将根据一些实施例参照图15和图16来描述两种通用类型的架构。由于神经网络各层的详细信息都属于超参数优化的范围,并且可以为给定的架构开发层数和层参数的多种结合,因此仅对架构进行一般性描述。

现在参考图15来描述使用多层感知器的系统的实施例。该架构包含神经层的五个全连接流,其与输入一一对应。流中的三个用作眼睛图像的三个颜色通道的三个不同的神经网络,并在其最后一层输出相应内部表征(不是网络输出)。其余的两个流是辅助输入流,其中一个用于照度值而另一个用于面部特征点坐标。这五个流的输出通过融合层融合为向量,以用作输出层的输入。在该示例中,融合层包括于前面所描述的第二神经网络中。

如前所述,多层感知器用于获取适当模型尺寸的估计,以提供用于超参数优化的起点。在一个实施例中,选择mlps是因为它们比卷积网络更容易正确地调整,也就是说,选择一组产生可用模型的超参数。虽然在这种架构下训练的模型产生了一些可用的结果,但是mlps在图像处理问题上的作用远不如卷积网络。由于这个原因,将在下面描述的后续实施例中使用卷积网络。

图15所示的架构仅包含神经层和融合层的输入流。在融合层和输出层之间没有内部流。另外,所使用的眼睛图像的大小为40x80像素。在早期的卷积架构中使用了相同的尺寸大小,但是以后将尺寸增加到80x160像素以努力提高结果。

图16示出了使用卷积神经网络的系统的实施例。实际上,提供最佳结果的架构使用了三个卷积流作为相应的三个第一神经网络流以及两个辅助输入流。其中三个第一神经网络流分别用于眼睛图像的各个颜色通道。一个辅助输入流用于照度值,而另一个辅助输入流用于面部特征点坐标。单个融合层被用于融合这五个流。然后,将融合层提供给内部流,并且通过生成视线估计的输出层来对该架构进行限制。

虽然尝试将以不同的深度对架构中的卷积流和辅助流进行融合,但是并未产生更好的结果。在这些架构中,根据一个实施例,卷积流在融合层中被融合,而辅助流在另一融合层中被融合。然后,内部流用于处理这两个融合层的输出,而另一个融合层对这些内部流的输出进行融合。该融合层的输出会被提供给最终会输出至输出层的第三内部流。

为了实现该架构,必需进行神经网络的训练。所使用的数据库由属于大概1500人的250万张面部图像组成。通过70-20-10%的比例将该数据库拆分为训练集、验证集和测试集。这些图像是从志愿者那里获取的,他们被要求观察例如智能手机(iphone)或平板电脑(例如ipad)的具有不同屏幕尺寸的移动设备的屏幕上的一系列刺激。对于每张所捕获的图像,都会捕获一些元数据。这些元数据包括设备类型、屏幕尺寸、屏幕坐标中刺激的位置、以厘米为单位的刺激距相机的位置以及设备的方向(纵向、纵向倒置、横向向右以及横向向左之一),如下面详细介绍。

根据一个示例性实施例但不限于此,通过使用keras和tensorflow作为机器学习功能库,在云中的服务器,例如amazonec2p3.8xlarge实例,上进行模型训练。模型正则化包括卷积层的整体归一化,以及全连接层的l2和丢弃。所有模型的l2正则化的权重均为0.01。所有模型的丢弃率均为25%。这些值是根据经验得到的,并不代表最佳值。下表1至3给出了各种模型的所选架构。对于所有卷积层,使用大小为2x2的最大池化。为了简化超参数的优化,对所有卷积流都使用相同的架构,并且对两个辅助流均使用相同的架构。

下表1显示了卷积层的大小。各层的大小是按数据遍历的顺序给出的,输入到输出也进行数据遍历。对于卷积层,xmxn卷积核表示在该层中使用了x个卷积核,其中每个卷积核的大小为mxn。表2示出了辅助流中的层数以及每层的大小。表3示出了内部流中的层数以及每层的尺寸。

表1

表2

表3

如果前面描述的算法不能为给定的应用产生足够准确的视线估计,则可以使用校准过程,在该过程中从特定用户收集少量数据集以对通用模型的预测进行调整。

为了执行该校准过程,需要捕获另一组照片。对于这些捕获的图片中的每一个,都会在屏幕上显示一些刺激,记录这些刺激的位置(目标),并且在照片被拍摄时需要用户在这些位置进行观看。这将构成校准过程的最小数据库。该数据库可以包含其它元数据,例如设备类型、屏幕尺寸、屏幕分辨率以及设备方向。

接着,对于每个捕获的图像,通用模型使用的相同特征会从照片中被提取且被提供给通用模型进行处理。此处,有两个选项可用于训练校准模型。第一个选项是:捕获每个图像的通用模型的输出。这些视线估计会构成校准模型的输入,而在图像捕获时刺激的真实位置则作为目标。该模型一旦被训练,就被附加到通用模型的输出中,将其作为输入并产生新的视线坐标。该模型如图17所示。

第二种选项是:如图18所示,将特征提供给通用模型,如上所述,但是捕获不同于输出层的层的输出,从而将模型的内部表征作为所述校准模型的输入。训练的目标还是图像捕获时刺激在屏幕上的真实位置。校准模型一旦经过训练,则替换用于训练的层的下游的所有层,如图所示。

在本领域中已知的是,用于校准数据库的数据收集过程会涉及在保证屏幕被完全且均匀地覆盖的前提下向用户示出一系列的刺激。为了确保数据质量,应尽可能缩短校准过程,并应尽力使用户的参与度最大化。

这里可使用多个策略。刺激可以出现在整个屏幕上的随机位置,要求用户在拍摄照片之前找到每个刺激。刺激可以以屏幕上的随机选择的各对点之间的顺序出现,要求用户找到起点。刺激可以按一组预定的但不连续的各对点之间的顺序出现,从而使的单个刺激看起来沿着一条预定但不连续的路径移动。最后,刺激可以按沿着预定的连续的路径的顺序出现,从而产生单个刺激沿该路径运动的错觉。这些策略可以混合使用,从而创建其中每种策略占用一定量的时间的校准过程。

在一个实施例中,在所选择的刺激沿着预定路径移动的同时捕获用户面部的视频。通过以一定的帧速率捕获照片可以实现相同的效果。通过使用此策略,用户在刺激跳动后就不必再寻找新的刺激位置,从而减少了在用户寻找该刺激时捕获的不良数据点的可能性。该策略还允许在设定的时间段内捕获最大量的数据点,因为通过刺激进行位置-位置的“跳跃”,需要为用户分配一些时间以找到下一个刺激以避免上述问题。最终,这种确定性的策略使得用户对校准过程变得熟悉,从而增加了用户精确地遵循刺激的路径的可能性。

一旦数据被捕获,就需要选择用于对校准模型进行训练的机器学习算法。考虑到数据的相对低的复杂度,这些算法可能是前面描述各类型的的算法,例如,岭回归、决策树、支持向量机乃至线性回归。对于特定的应用,也可以使用像人工神经网络之类的更复杂的算法。

图19示出了根据一个实施例的所提出的校准模型的实现的示意图。通用模型由两个子系统组成,每个子系统均采用相同的特征并输出x或y视线坐标。然后将这些视线位置都提供给也由两个子系统组成的所述校准模型。那些子系统中的每一个都采用两个视线坐标,并输出经校正的x或y视线坐标。

接下来,使用支持向量机对所述校准模型进行训练。对于每个设备方向,训练两个校准模型。每个模型均采用由适于的适当的设备方向的常规模型输出的xy视线坐标,并输出经校正的x或y视线坐标。也可由单独的模型输出两个视线坐标,但是测试表明,独立地确定所校正的x或y视线坐标可以提供更好的结果。

参考图20,其示出了根据一个实施例的用于确定用户的视线位置的整个系统。

对于待估计的各个视线位置,取决于该系统,其上安装有系统的设备会产生用数码相机拍摄的图像,该图像示出用户的面部,以及设备或相机的方向。例如,智能手机或平板电脑设备会使用前置摄像头,也会提供设备的方向,而台式计算机则使用通常安装在屏幕顶部的网络摄像头并提供网络摄像头的方向。

从所初始图像中提取五个输入特征。这些特征包括原始图像的三个裁剪图,其包含用户的两只眼睛或眼睛所在的面部区域。这些特征还包括一组面部特征点的xy坐标,以及初始图像的估计照度值。

该系统具有四个预测流,分别对应于以下四个设备方向:纵向、纵向倒置、横向向右以及横向向左。预测流中的每一个都包含通用模型,并且如果已经针对该方向执行了校准,则其还包含校准模型。每个流的通用模型和校准模型均包含两个子系统。一个子系统根据输入特征来估计水平视线坐标,而另一个子系统则根据相同特征来估计竖直视线坐标。

待使用的预测流由设备方向确定,其作用与选择器的作用类似。该系统可以通过使用被用于选择使用哪个输出的选择器来使得所有流产生视线位置估计。可替代地,选择器可以被用于选择应该对给定的特征集使用哪个预测流。后一选项能够减少计算成本。

本文所述的方法对于涉及用户界面视线跟踪的各种应用的性能良好,用户界面例如是智能手机、平板电脑或某种屏幕。可以利用通过使用本方法可以实现的高准确性(小于1cm)来完成涉及与这些界面上出现的内容的交互的实际应用。尤其是可以通过明智地选择输入图像(例如将所裁剪的去除了环境的眼睛图像连结起来)来达到该准确性。该准确性还可以通过上述架构来确保算法,即,神经网络,可以自动地适应照度环境并优先选择源自颜色分量图像中提供该照度环境中的最佳结果的一个的内部表征。在将不同的神经网络流应用于各个颜色分量图像之前的各颜色分量图像(例如,经连结的裁剪的眼睛的三个颜色分量图像)的完全分离,可以确保对每个颜色分量图像进行单独处理,然后使用给定照度环境下最适当的颜色分量图像通过神经网络单独地选择每个颜色分量图像以进行进一步处理。

与下述文献中提出的其它方法相比,本文方法具有较好的性能,例如krafka等人所做的研究,来自mit的“eyetrackingforeveryone”,其可从http://gazecapture.csail.mit.edu/cvpr2016_gazecapture.pdf中获取。上述研究使用了四个输入:每只分离的眼睛(裁剪后)、整个图像以及指示图像中面部位置的二进制掩码。

本发明的描述仅使用了面部特征点坐标而非整个面部。在mit项目中,第一层需要花费大量时间进行训练,以识别人的头部及其在整个图像中的位置。头部周围环境的图像的存在是多余的,其使模型的训练变得复杂。mit模型还指示手机上的精度为1.34cm-2.12cm。这种准确性不足以用于现实生活中的应用,例如,对具有小于1cm的屏幕高度或宽度的的键盘元素进行识别。本文描述的方法利用了输入和架构,这些输入和架构使得以1cm以下的精度的x或y来识别常见智能手机键盘的按键,从而足以满足现实生活应用的需要。这至少是因为已经认识到使用所获取的整个图像没有用处并且需要大量的计算资源。在本方法中,除了用作颜色分量图像的输入的所裁剪的眼睛图像的合成图像(在单个图像中连结在一起的裁剪的眼睛图像)之外,还将面部特征点坐标(单独)提供给网络的第一层。从而减少了对计算资源的需求。将照度值用作环境情况的代表而非将整个环境图提供给神经网络,从而再次减少了在实时应用中和训练过程中对计算资源的需求。此外,mit项目未能认识到如本文所述的对输入图像的rgb分量进行分离的益处,该方法在眼部解剖过程中的边缘检测准确性方面方面也具有技术优势,其中边缘对于视线跟踪很有用。

当与文献中提出的其它方法相比时,本文描述的方法也具有较好的性能,例如,可以从https://arxiv.org/pdf/1504.02863.pdf获取的zhang等人描述的一种不具备并行网络的连续方法,。上述方法只使用一只眼睛进行了说明,因而也损失了准确性。但该方法也解决了不同的问题,即,找到一个视角,该视角由于不用对头部位置进行处理,所以具有其自己的特征。如果希望输出x,y轴位置,则需要考虑该视角。

当与由沃达丰开发并可以从http://www.fundacionvodafone.es/app/eva-facial-mouse获取的移动应用程序,evafacialmouse相比,本文所述的方法也具有较好的性能。该应用程序使用面部动作而非眼睛来控制设备屏幕上的鼠标指针。这完全不适用于完全瘫痪的人,因为他们不能移动自己的面部。

与美国专利us10,127,680相比,本文所述的方法也具有较好的性能。在该文献中,没有事先对网络进行训练。首先需要将校准图像提供给网络。在收集校准图像后才对网络进行训练。由于各种因素,特别是缺乏网络训练,所以预计实际的准确性会非常低。因此,不应期望该方法在如其中所描述的现实生活情况下有效。

执行该方法所必需的硬件包括能够采集图像的任何设备,通常称为相机。该相机是必须的,因为它以合适的速率和色彩条件并以合适的格式收集图像,然后将其提供给分析系统。由于需要对分析系统进行训练,因此需要使用适当的计算机系统。虽然训练需要适当的计算机系统,但训练以外的步骤并不需要该计算机系统。虽然实际的实时视线确定需要由计算机系统执行,但是其对计算能力的要求通常可以由例如质量良好的智能手机或平板电脑的普通的移动设备来满足。因此,具有与相机进行通信以采集图像的计算机系统(不一定与用于训练的计算机系统相同)对于运行该方法至关重要。

根据使用环境,可以各种特定方式执行计算。如上所述,系统的训练需要进行大量的计算,但是一旦系统经过训练,算法就可以在例如平板电脑之类的更简单的计算机上运行。但是,如果需要进行校准,则可以方便地通过网络将校准图像发送到可以提供校准模型的远程服务器(或云计算设备中的服务器)。一旦在该模型在远程服务器(具有比平板电脑或智能手机更强的计算能力)上被校准,经校准的模型被发送回平板电脑或智能手机或其它类似设备,以在本地的客户端计算机上实际使用经校准的模型。还可以考虑直接在客户端计算机上执行校准,假设客户端计算机具有足够的计算能力来进行校准并且假设其上安装了完整的校准模型,在这种情况下,可以避免将校准图像发送到远程服务器以及检索校准的模型的步骤。

上述视线跟踪方法的实施例具有各种用途。上述视线跟踪方法的实现方式的示例可以包括在安装于例如智能手机、平板电脑等电子设备上的应用程序中的使用其,以相对于屏幕来跟踪用户的视线,从而触发其上的操作或者收集与屏幕上显示的内容相关的信息。

可以使用其他输入将该方法的输出,即相对于由相机定义的参考点的x,y坐标,转换为屏幕坐标。例如,应该了解相机和参考点(例如屏幕的左上角)之间的相对位置(通常是固定的),以及屏幕尺寸和屏幕分辨率。屏幕尺寸和屏幕分辨率可以通过安装在设备上的移动应用程序来在设备设置/参数中查询得到。通过使用这些数据,可以将x,y输出转换为屏幕上的像素坐标,或任何其它等效物。如果仅需要x或y值,则其被转换为屏幕上的像素行或像素列。

使用这种到正在被观看的屏幕位置的转换,可以为用户提供一种仅使用眼动就能与正被观看的屏幕上呈现的内容进行交互的方式。可以存在其它类型的身体运动,使用上述方法不需要该运动,因为眼睛方向已足够。这对于瘫痪的用户或经受另一问题的用户很有用。另一问题阻止了所有运动(包括很小的面部运动)和言语沟通。通常,瘫痪的人能够移动他们的眼睛。

例如,仅使用根据方法被识别为指向构成图形用户界面的屏幕上的元素的视线就可以触发或激活这些元素。这些屏幕上的元素可以包括按钮、链接、键盘元素等。因此,将视线跟踪方法与电子设备使用的大环境集成在一起可以确保瘫痪者与电子设备的屏幕之间的适当的交互,从而仅通过其眼睛就能有效地使用用户界面。这要求视线跟踪的应用程序将屏幕位置方面的跟踪结果传送给设备的操作系统或设备上运行的应用程序,以实现实时交互,就好像该用户正在使用鼠标指针或在触摸屏上进行点击一样。如果在这样的情况下应用该方法,则使用具有屏幕的电子设备至关重要。

还可以构想其它应用,例如,评估用户正在观看的某种显示元素的位置。例如,相机可以获取正在观看海报或面板的人的图像,并且方法可以用于识别该海报或面板上用户正在观看的位置。该方法也适用于使用不同于设备屏幕的技术,例如,投影或沉浸式环境,所显示的用户界面。因此,通过参照物的几何变换(例如,变换为屏幕上的像素位置),该方法可以确定用户正在观看显示在投影图像或虚拟图像上的用户界面元素,例如按键、链接、键盘元素等。然后可以触发用户与界面元素之间的交互。

尽管以上说明涉及发明人目前构想的特定优选实施例,但应理解的是,本发明在其广义方面包括本文所述元素的物理和功能方面的等效方案。

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