基于瞳孔特性的连续校准的制作方法

文档序号:21838127发布日期:2020-08-14 16:15阅读:171来源:国知局
基于瞳孔特性的连续校准的制作方法

相关申请的交叉引用

本申请是在2018年9月7日提交的美国非临时专利申请号16/124,776的部分继续申请,该美国非临时专利申请要求于2017年9月8日提交的美国临时专利申请号62/556,116的优先权和权益,该美国非临时专利申请和该美国临时专利申请各自的全部披露内容出于所有目的通过引用结合在此。



背景技术:

注视跟踪可以通过测量瞳孔相对于角膜所处的位置来进行。然而,瞳孔相对于角膜在物理上不是固定的。因此,当瞳孔放大和收缩时,其相对于角膜而移动。此移动可能导致不准确的眼睛跟踪。这一点在不同的光照条件下(例如,当环境光在明暗之间变动时)尤其如此。



技术实现要素:

由一个或多个计算机构成的系统可以被配置用于通过在该系统上安装软件、固件、硬件或其组合来执行特定的操作或动作,该软件、固件、硬件或其组合在操作中使得该系统执行这些特定的动作。一个或多个计算机程序可以被配置用于通过包括指令来执行特定的操作或动作,这些指令在由数据处理装置执行时使得该装置执行这些特定的动作。

一个总体方面包括一种计算机实施的方法,该方法包括:根据采样率确定用户眼睛的角膜缘的一组角膜缘中心值。该计算机实施的方法还包括根据该采样率确定该用户眼睛的瞳孔的一组瞳孔中心值。该计算机实施的方法还包括根据该采样率确定该瞳孔的一组半径值。该计算机实施的方法还包括基于(i)该组角膜缘中心值、(ii)该组瞳孔中心值和(iii)该组半径值形成偏移量模型,该偏移量模型描述角膜缘中心与瞳孔中心之间的、根据瞳孔大小的改变而改变的所估计偏移量。此方面的其他示例包括对应计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,它们各自被配置用于执行这些方法的动作。

实施方式可以包括以下特征中的一个或多个特征。在该计算机实施的方法中,确定该组角膜缘中心值包括:在第一时间处测量第一角膜缘中心值,并且在第二时间处测量第二角膜缘中心值。该计算机实施的方法还可以包括:确定该组瞳孔中心值,确定该组瞳孔中心值包括:在该第一时间处测量第一瞳孔中心值,并且在该第二时间处测量第二瞳孔中心值。该计算机实施的方法还可以包括通过在该第一时间处测量第一半径值并在该第二时间处测量第二半径值来确定该组半径值。在该计算机实施的方法中,确定该组角膜缘中心值、确定该组瞳孔中心值以及确定该组半径值至少是在眼睛跟踪系统跟踪该用户眼睛时进行的。在该计算机实施的方法中,该偏移量模型包括线性函数。该计算机实施的方法还可以包括通过基于线性回归技术来估计该线性函数的一个或多个常数值从而形成该偏移量模型。在该计算机实施的方法中,该一个或多个常数值中的第一常数值对应于该线性函数的k参数,该k参数表示该线性函数的斜率。该计算机实施的方法还可以包括:在该计算机实施的方法中,该一个或多个常数值中的第二常数值对应于该线性函数的m参数,该m参数表示该线性函数的交点。在该计算机实施的方法中,该方法进一步包括通过将该组角膜缘中心值与该组瞳孔中心值进行比较来确定一组偏移量值,每个偏移量值表示相应的瞳孔位置相对于相应的角膜缘位置之间的偏移量。该计算机实施的方法还可以包括进一步基于该组偏移量值形成该偏移量模型。在该计算机实施的方法中,形成该偏移量模型包括更新现有偏移量模型的一个或多个常数值以定义该偏移量模型。该计算机实施的方法可以进一步包括基于该偏移量模型使用眼睛跟踪算法跟踪该用户眼睛。所描述技术的实施方式可以包括硬件、方法或过程、或计算机可访问介质上的计算机软件。

一个总体方面包括一种系统,该系统包括:存储器,该存储器被配置用于存储计算机可执行指令;以及处理器,该处理器被配置用于访问该存储器并且执行这些计算机可执行指令以便至少执行以下操作:确定用户眼睛的角膜缘的一组角膜缘中心值;确定该用户眼睛的瞳孔的一组瞳孔中心值;确定该瞳孔的一组半径值;并且基于(i)该组角膜缘中心值、(ii)该组瞳孔中心值和(iii)该组半径值形成偏移量模型,该偏移量模型描述角膜缘中心与瞳孔中心之间的、根据瞳孔大小的改变而改变的所估计偏移量。此方面的其他示例包括对应计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,它们各自被配置用于执行这些方法的动作。

实施方式可以包括以下特征中的一个或多个特征。在该系统中,确定该组角膜缘中心值包括:在第一时间处测量第一角膜缘中心值,并且在第二时间处测量第二角膜缘中心值。该系统还可以包括通过在该第一时间处测量第一瞳孔中心值并在该第二时间处测量第二瞳孔中心值来确定该组瞳孔中心值。该系统还可以包括通过在该第一时间处测量第一半径值并在该第二时间处测量第二半径值来确定该组半径值。在该系统中,该处理器进一步被配置用于通过将该组角膜缘中心值与该组瞳孔中心值进行比较来确定一组偏移量值,每个偏移量值表示相应的瞳孔位置相对于相应的角膜缘位置之间的偏移量。该系统还可以包括进一步基于该组偏移量值形成该偏移量模型。在该系统中,确定该组角膜缘中心值、确定该组瞳孔中心值以及确定该组半径值是以一定采样率进行的。在该系统中,该偏移量模型包括线性函数。该系统还可以包括通过基于线性回归技术来估计该线性函数的一个或多个常数值从而形成该偏移量模型。在该系统中,该一个或多个常数值中的第一常数值对应于该线性函数的k参数,该k参数表示该线性函数的斜率。该系统还可以包括该一个或多个常数值中的第二常数值该第二常数值对应于该线性函数的m参数,该m参数表示该线性函数的交点。所描述技术的实施方式可以包括硬件、方法或过程、或计算机可访问介质上的计算机软件。

一个总体方面包括一种或多种计算机可读存储设备,该一种或多种计算机可读存储设备包括计算机可执行指令,这些指令在由一个或多个处理器执行时使得该一个或多个处理器执行包括以下步骤的操作:确定用户眼睛的角膜缘的一组角膜缘中心值;确定该用户眼睛的瞳孔的一组瞳孔中心值;确定该瞳孔的一组半径值;并且基于(i)该组角膜缘中心值、(ii)该组瞳孔中心值和(iii)该组半径值形成偏移量模型,该偏移量模型描述角膜缘中心与瞳孔中心之间的、随着瞳孔大小的改变而改变的所估计偏移量。此方面的其他示例包括对应计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,它们各自被配置用于执行这些方法的动作。

实施方式可以包括以下特征中的一个或多个特征。在该一种或多种计算机可读存储设备中,这些操作进一步包括通过将该组角膜缘中心值与该组瞳孔中心值进行比较来确定一组偏移量值,每个偏移量值表示相应的瞳孔中心值相对于相应的角膜缘中心值之间的偏移量。在该一种或多种计算机可读存储设备中,这些操作进一步包括:在形成该偏移量模型之前,至少通过以下操作来估计眼睛跟踪算法的一个或多个常数参数的一个或多个值:绘制该组偏移量值和该组半径值;以及基于该组偏移量值与该组半径值的线性近似来估计该一个或多个常数参数的该一个或多个值。在该一种或多种计算机可读存储设备中,确定该组角膜缘中心值包括:在第一时间处测量第一角膜缘中心值,并且在第二时间处测量第二角膜缘中心值。该一种或多种计算机可读存储设备还可以包括:确定该组瞳孔中心值,确定该组瞳孔中心值包括:在该第一时间处测量第一瞳孔中心值,并且在该第二时间处测量第二瞳孔中心值。该一种或多种计算机可读存储设备还可以包括通过在该第一时间处测量第一半径值并在该第二时间处测量第二半径值来确定该组半径值。在该一种或多种计算机可读存储设备中,确定该组角膜缘中心值、确定该组瞳孔中心值以及确定该组半径值至少是在眼睛跟踪系统跟踪该用户眼睛时进行的。在该一种或多种计算机可读存储设备中,这些操作进一步包括基于该偏移量模型使用眼睛跟踪算法跟踪该用户眼睛。所描述技术的实施方式可以包括硬件、方法或过程、或计算机可访问介质上的计算机软件。

附图说明

结合以下附图描述了本公开的示例:

图1示出了根据本公开的示例的眼睛跟踪系统;

图2示出了眼睛的示例图像;

图3是眼睛的一部分的截面视图;

图4a至图4b是具有第一瞳孔大小的眼睛和具有第二瞳孔大小的该眼睛的立体图;

图5至图7是根据本公开的示例的方法的流程图;

图8是能够在本公开的装置或系统的至少某个部分中使用的或者能够实施本公开的方法的至少某个部分的专用计算机系统的框图;

图9a至图9b是具有不同维度特性的眼睛的轮廓图和正视图;

图10a至图10d是示出如使用本公开的技术收集的各种数据的图表;

图11是根据本公开的示例的方法的流程图;并且

图12是根据本公开的示例的方法的流程图。

所有附图都是示意性的,并且通常仅示出为了阐明各个示例所必需的部分,而其他部分可以省略或仅进行提示。

具体实施方式

接下来的描述仅提供了示例性示例,并且不旨在限制本公开的范围、适用性或配置。相反,接下来对示例性示例的描述将为本领域的技术人员提供用于实施一个或多个示例性示例的可行描述。应当理解的是,在不脱离如本文所阐述的本公开的精神和范围的情况下,可以对各个要素的功能和排列进行各种改变。

例如,关于一个示例所讨论的任何细节都可以存在或可以不存在于该示例的所有预期版本中。同样地,关于一个示例所讨论的任何细节都可以存在或可以不存在于本文所讨论的其他示例的所有预期版本中。最后,关于本文的示例没有讨论的任何细节都应当是默认这种细节可以存在或可以不存在于本文所讨论的任何示例的任何版本中。

以下描述中给出了具体细节以便提供对示例的深入理解。然而,本领域技术人员将理解,没有这些特定细节也可以实践示例。例如,为了不至于以不必要的细节来使示例变得晦涩难懂,可以将本公开中的电路、系统、网络、过程和其他要素示出为框图形式的组成部分。在其他实例中,为了避免使示例变得晦涩难懂,可以在没有不必要细节的情况下示出公知的电路、过程、算法、结构和技术。

同样,值得注意的是,各个示例可被描述为过程,该过程被描绘为流程表、流程图、数据流程图、结构图或框图。尽管流程表可以将操作描述为顺序过程,但是可以并行地或同时地执行许多这样的操作。另外,可以重新排列操作的顺序。过程可以在其操作完成时终止,但是可能具有未在图中讨论或未包括在图中的附加步骤。此外,任何特别描述的过程中的所有操作并非都要出现在所有示例中。过程可以对应于方法、函数、进程、子例程、子程序等。当过程对应于函数时,其终止对应于函数返回到调用函数或主函数。

术语“机器可读介质”等包括但不限于暂时性或非暂时性、便携或固定存储设备、光学存储设备、无线信道、以及能够存储、包含或携带(多条)指令和/或数据的各种其他介质。代码段或者机器可执行指令可以表示进程、功能、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任何组合。可以通过传递和/或接收信息、数据、自变量、参数、或存储器内容将一个代码段联接到另一个代码段或硬件电路上。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的方式来传递、转发、或者传输。

此外,可以至少部分地手动或自动地实施本公开的示例。可以通过使用机器、硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来执行手动或自动实施方式或至少对手动或自动实施方式作出辅助。当在软件、固件、中间件或微代码中实施时,用于执行必要任务的程序代码或代码段可以存储在机器可读介质中。(多个)处理器可以执行必要任务。

本公开总体上涉及眼睛跟踪领域。具体而言,本公开涉及用于生成和/或使用指示眼睛的注视方向的注视跟踪信息的方法和系统。

若干种不同的眼睛跟踪技术是本领域已知的。例如,可以采用这样的技术以允许用户通过看向视觉显示器处的某个位置来指示该位置。眼睛跟踪可以例如通过一种系统来执行,该系统捕获用户面部的图像并且从用户面部提取关键特征,例如,瞳孔中心和来自照射用户面部的照明器的闪光。然后可以采用所提取的特征来确定显示器处用户正在看向的位置。当然,期望诸如眼睛跟踪的准确性、速度和可靠性/鲁棒性等因素以取得正面的用户体验。因此,已经提出了若干种方案以用于减轻眼睛跟踪系统中可能发生的不同类型的误差或不准确性的负面影响。

us2010/0328444(其全部内容如本文完整阐述的那样出于所有目的通过引用结合在此)中披露了一个这种示例,并提出了一种眼睛跟踪器,该眼睛跟踪器包括用于照射眼睛的至少一个照明器、用于对眼睛进行成像的至少两个相机、以及控制器。(多个)照明器和相机的配置使得至少一个相机与参考照明器非同轴。控制器被适配用于基于图像质量因素来选择相机。通过重复地执行相机选择,眼睛跟踪可以基于这两个相机中的产生最佳画质标准的那个相机。以此方式,眼睛跟踪变得不易受到诸如视线阻挡物体等干扰的影响。

虽然这样的技术可以提供对眼睛的更稳健和准确的跟踪,但是仍需要改善的眼睛跟踪系统和方法。

本公开的目的是提供一种技术,该技术使得眼睛跟踪方法、系统和设备具有经改善的性能。从下文中可以理解附加目的和替代性目的。

本公开涉及一种技术,在该技术中,可以例如在校准过程期间获得用户眼睛的眼睛方向与注视方向之间的角度偏移量,并且可以采用该角度偏移量对眼睛的移动进行后续跟踪。眼睛方向可以被理解为由眼睛的角膜与瞳孔的相对位置定义的三维向量。因此,眼睛方向可以被理解为眼睛在空间中的相对方向,并且也可以被称为眼睛的光轴。另一方面,注视方向可以被理解为视轴或视线,该视轴或视线通过由用户的注视点和眼睛的中央凹(foveal)区定义的三维向量来表示。注视方向通常以一角度偏移量偏离眼睛方向,该角度偏移量可以是依赖于眼睛/受试者的。因此,可以在例如校准过程中确定角度偏移量,在该校准过程中,用户观看具有一个或若干个具有已知位置的点(即,注视点)或移动轨迹的动画校准图案或静态校准图案,同时通过观察例如瞳孔位置和来自照亮用户面部的照明器的闪光来测量眼睛方向。然后,可以将所测量的眼睛方向与用户观看例如校准图案的已知注视方向进行比较。

因此,根据第一方面,提供了一种方法,该方法包括以下步骤:获得具有第一瞳孔大小的眼睛的第一眼睛方向与第一注视方向之间的第一角度偏移量;获得具有第二瞳孔大小的眼睛的第二眼睛方向与第二注视方向之间的第二角度偏移量;以及基于该第一角度偏移量和该第二角度偏移量形成补偿模型,该补偿模型描述随着瞳孔大小的改变而改变的所估计的角度偏移量。

根据第二方面,提供了一种系统,该系统包括电路系统,该电路系统被配置用于执行根据第一方面的这些方法步骤,即:获得具有第一瞳孔大小的眼睛的第一眼睛方向与第一注视方向之间的第一角度偏移量;获得具有第二瞳孔大小的眼睛的第二眼睛方向与第二注视方向之间的第二角度偏移量;以及基于该第一角度偏移量和该第二角度偏移量形成补偿模型,该补偿模型描述随着瞳孔大小的改变而改变的所估计的角度偏移量。

可以通过观察瞳孔相对于所估计的角膜中心的位置(诸如所估计的瞳孔中心的位置)来确定眼睛方向。这两个位置给出了眼睛方向、或眼睛的视轴。然而,问题仍然存在,因为当虹膜扩张和收缩时,瞳孔通常不会围绕眼睛中的固定点完全同心地张开和闭合。换言之,所估计的瞳孔中心位置可以以可能依赖于眼睛或受试者的方式随着瞳孔大小而变化。结果是,所估计的眼睛方向以及因此其相对于注视方向的角度偏移量可以随着瞳孔的大小而变化。因此,通过形成一种补偿模型,该补偿模型描述随着瞳孔大小的改变而改变的所估计的角度偏移量,这种影响可以得到补偿,并且眼睛跟踪的准确性可以得到提高。具体而言,这使得注视跟踪对与影响瞳孔大小的各种光照条件相关联的误差和偏差不那么敏感。因此,本发明的概念特别感兴趣的是利用例如动态显示亮度的应用(例如虚拟现实应用)或用于环境照明的应用(诸如例如增强现实应用)。

在上文中,补偿模型是基于两个测量点,即,针对第一瞳孔大小的第一角度偏移量和针对第二瞳孔大小的第二角度偏移量。然而,应当理解,这仅仅是说明性示例,并且该模型也可以基于包括两个或更多个测量点的数据集。进一步地,考虑到与更多瞳孔大小相关联的更多角度偏移量,可以在后续的校准过程中更新补偿模型。因此,本公开不限于由两个数据点形成或在特定时间点处形成的补偿模型。该补偿模型也可以是动态模型,每当获取到相关数据、或者根据用户或提供者的请求,该动态模型就会被更新。

如前面已提及的,补偿模型可以用于通过使注视方向的计算动态地适应于瞳孔的实际大小来改善注视跟踪。因此,根据示例,该方法可以进一步包括:获得具有第三瞳孔大小的眼睛的第三眼睛方向,并且基于该补偿模型来确定与该第三瞳孔大小相关联的所估计的角度偏移量。然后,可以采用此角度偏移量以便基于该第三眼睛方向来确定具有该第三瞳孔大小的眼睛的第三注视方向。因此,本示例可以表示操作期间(即,当采用眼睛跟踪技术来确定用户的注视方向时)的方法或系统。在这种情况下,上述获得第三眼睛方向和基于特定瞳孔大小的角度偏移量确定注视方向的步骤可以在操作期间重复地执行。

根据一些示例,第一眼睛方向和第一瞳孔大小可以从具有第一瞳孔大小的眼睛的第一图像获得,其中,第二眼睛方向和第二瞳孔大小可以从具有第二瞳孔大小的眼睛的第二图像获得。在一个示例中,该方法可以包括获取眼睛的第一图像和第二图像的步骤。这些图像可以例如从系统中包括的一个或若干个图像传感器或从其他地方获得。可以将相应图像中的瞳孔大小确定为如图像中所表示的瞳孔大小、或实际瞳孔大小。使用实际瞳孔大小的优点在于,该大小可能并不取决于眼睛与图像传感器或相机之间的距离。

根据示例,第一图像可以在第一照明强度下获取,并且第二图像可以在与第一照明强度不同的第二照明强度下获取。例如,当捕获第二图像时,可以例如通过改变显示亮度来主动改变照明强度,以便于获得针对不同瞳孔大小的校准数据。因此,照明强度的改变可以作为主动步骤包括在校准过程中。在另一示例中,可以通过照明强度的预定变化(即,当检测到照明强度的预定变化时,或者当检测到瞳孔大小的预定变化时)来触发对第二图像的捕获。

根据示例,可以基于所估计的角膜中心与所估计的瞳孔中心之间的相对位置来确定眼睛方向。这可以例如通过用照明器(诸如例如,红外照明器或近红外照明器)照射眼睛从而在眼睛上引起至少两个反射或闪光来实现。然后,可以捕获并分析二维图像以确定图像中这些反射所处的位置。如果假定角膜具有球体形状,即,使得观察到的角膜表面部分可以由球体的一部分来近似,则可以使用反射的位置来得出所估计的眼睛中的角膜球体中心。例如,可以基于边界处于虹膜与瞳孔之间的图像分析从眼睛的图像得出所估计的瞳孔中心。如图像中标识的瞳孔可以被投影到角膜的模型上以便确定所估计的实际眼睛中的瞳孔中心。然后,可以基于所估计的角膜球体中心的位置和所估计的瞳孔中心的位置来确定第一眼睛方向和第二眼睛方向。

注视方向可以由指向用户观看的物体的空间内向量来定义。换言之,注视方向可以由注视点和视网膜的中央凹区的位置来定义。根据示例,可以基于眼睛的注视点和所估计的角膜球体中心的位置来确定第一注视方向和第二注视方向。有利地,注视点可以是空间中的已知点,例如,相对于例如观看眼睛的图像传感器具有已知位置的校准结构。

术语“瞳孔大小”可以指如在眼睛的图像中表示的瞳孔大小,或者指如由虹膜限定的眼睛瞳孔或眼睛光圈的实际大小。然而,还可以设想其他限定,诸如当被投影到(代表角膜弯曲部的)球体上时所成像的瞳孔的大小等。可以采用图像中的瞳孔边缘像素来估计瞳孔中心的位置、瞳孔的边缘和瞳孔大小(其例如可以根据瞳孔的半径来确定)。

根据示例,分别与具有第一瞳孔大小和第二瞳孔大小的眼睛相关联的注视跟踪数据可以被存储在存储区域中。该存储区域可以例如形成上述系统的一部分,或者与该系统通信连接但不包括在该系统中。通过存储眼睛的图像(例如眼睛的图像,从这些眼睛的图像中可以检索出眼睛方向和瞳孔大小)等注视跟踪数据,这些数据可以在后续校准和对补偿模型的稍后调整时重复使用。所存储的数据也可以被称为原始数据。

因此,根据示例,该方法可以包括以下附加步骤:获得具有另一瞳孔大小的眼睛的另一眼睛方向与另一注视方向之间的另一角度偏移量,并且基于所存储的注视跟踪数据、该另一瞳孔大小和该另一角度偏移量来更新补偿模型。

根据示例,该眼睛跟踪系统可以包括用于照射眼睛的至少一个照明器、以及用于捕获眼睛的图像的至少一个图像传感器或相机。该照明器可以例如包括至少两个光源,诸如被布置用于在眼睛的角膜上生成至少两个次闪光的发光二极管。在一些示例中,由该照明器发射的光可以是红外光或近红外光。

根据第三方面,披露了一种设备,该设备被适于由用户佩戴。该设备可以例如是虚拟现实头戴装置或一副增强现实眼镜。该设备可以包括用于照射用户的眼睛的至少一个照明器、用于捕获眼睛的图像的至少一个相机、以及电路系统。该电路系统可以被配置用于:获得具有第一瞳孔大小的眼睛的第一眼睛方向与第一注视方向之间的第一角度偏移量,获得具有第二瞳孔大小的眼睛的第二眼睛方向与第二注视方向之间的第二角度偏移量,并且基于该第一角度偏移量和该第二角度偏移量形成补偿模型,该补偿模型描述随着瞳孔的改变而改变的所估计的角度偏移量。

第一方面的方法的示例可以由第二方面的任何示例的系统来执行,或者由第三方面的设备来执行,或者由这种系统/设备中包括的电路系统来执行。

根据第四方面,披露了一种计算机程序产品,该计算机程序产品包括一条或多条计算机可执行指令,这些指令在由实施眼睛/注视数据处理的计算系统执行时使得该计算系统执行一种方法。该方法可以例如是根据第一方面的方法。

根据第三方面的该一个或多个计算机可读存储介质的示例可以例如包括与根据第二方面的系统或根据第三方面的设备的任何示例的特征相对应的特征。

该一个或多个计算机可读介质可以例如是一个或多个非暂时性计算机可读介质。

注意的是,本公开的示例涉及权利要求中所引用的特征的所有可能组合。

本公开涉及一种技术,在该技术中,可以例如在校准过程(诸如对诸如当眼睛跟踪系统实际正在由最终用户使用时支持对该系统进行连续校准的校准过程)期间对用户的瞳孔相对于眼睛的角膜缘中心的位置偏移量进行连续采样或周期性采样,并且可以采用该位置偏移量对眼睛的移动进行后续跟踪。本文描述的技术限定了在眼睛中固定的坐标系,其原点位于眼睛的中心并且轴线指向眼睛的方向(例如,眼睛方向)。例如,原点可以位于角膜的假定的球形表示的中心,并且z轴可以延伸穿过角膜缘的中心。瞳孔的中心可以标识在该坐标系内并由三维向量表示。瞳孔中心不同于角膜缘中心并且在某些光照条件下可能被放大和/或可以是依赖于受试者的。随着瞳孔大小发生变化,瞳孔中心在眼睛内的位置相对于固定的眼睛坐标系发生漂移。具体而言,眼睛可能在鼻子下部的方向上向下和向内漂移或移动。本文描述的技术对该移动进行测量并产生用于校准模型的偏移量模型或参数以将这种移动考虑在内。

例如,在前述差异随时间推移相对于瞳孔半径而发生变化时,本文描述的技术可以将这个差异考虑在内。首先,可以以某种采样率获得角膜缘中心的测量值、瞳孔中心的测量值和瞳孔半径的测量值。然后,使用这些测量值形成偏移量模型,该偏移量模型将瞳孔位置和瞳孔半径的变化考虑在内。由眼睛跟踪算法使用偏移量模型的参数以用于补偿该变化。如本文描述的偏移量模型具有与本文描述的补偿模型相类似的特性。

可以以任何合适的速率进行采样,并且可以以相同的速率或不同的速率来更新参数。本文描述的技术可以在眼睛跟踪系统正在跟踪受试者的眼睛时在后台执行。大多数情况下,受试者甚至不会知道这种持续发生且连续的校准技术正在发生。因为该校准是持续发生且连续进行的,所以与专门的校准方法相比对受试者的干扰较少。这种校准与专门的校准方法相比以更少的摩擦产生更高效的过程。这是因为不需要受试者进行任何选择、点击任何按钮、通过任何用户界面进行翻页、或遵循某种预定例程,这些操作中的任一操作都会通过眼睛跟踪系统对受试者的体验构成干扰。

另外,眼睛跟踪系统的功能得到改善是因为持续发生的校准与专门的校准方法相比提供了更丰富且更完整的数据集,这使得通过眼睛跟踪系统对计算机系统的改善的用户控制。该数据集不仅更完整而且还考虑到了例如专门针对受试者的背景以及当前条件(诸如环境光以及眼睛跟踪系统相对于受试者的取向)。因此,当收集更新后的校准数据时,也更新了对眼睛跟踪系统的校准以将当前条件考虑在内。

本文描述的改善包括对计算机技术的改善,因为眼睛跟踪系统可以用作到计算机的接口装置。

因此,根据第一方面,本文描述了一种方法,该方法包括至少包含以下各项的操作:根据采样率确定用户眼睛的角膜缘的一组角膜缘中心值;根据该采样率确定该用户眼睛的瞳孔的一组瞳孔中心值;根据该采样率确定该瞳孔的一组半径值;以及基于(i)该组角膜缘中心值、(ii)该组瞳孔中心值和(iii)该组半径值形成偏移量模型,该偏移量模型描述角膜缘中心与瞳孔中心之间的、随着瞳孔大小的改变而改变的所估计的偏移量。

根据第二方面,提供了一种系统,该系统包括电路系统,该电路系统被配置用于执行如第一方面中所描述的过程。

根据第三方面,提供了一种设备,该设备被适于由用户佩戴。该设备可以例如是虚拟现实头戴装置或一副增强现实眼镜。该设备可以包括用于照射用户的眼睛的至少一个照明器、用于捕获该眼睛的图像的至少一个相机、以及电路系统。该电路系统可以被配置用于执行根据第一方面描述的过程。

根据第四方面,提供了一种计算机可读存储设备,该计算机可读存储设备被配置用于存储用于执行如第一方面中所描述的过程的指令。

第一方面的方法的示例可以由第二方面的任何示例的系统来执行,或者由第三方面的设备来执行,或者由这种系统/设备中包括的电路系统来执行。

根据第三方面的该一个或多个计算机可读存储介质的示例可以例如包括与根据第二方面的系统或根据第三方面的设备的任何示例的特征相对应的特征。

该一个或多个计算机可读介质可以例如是一个或多个非暂时性计算机可读介质。

应当注意的是,本公开的示例涉及权利要求中所引用的特征的所有可能组合。

通过以下参照附图进行的说明性且非限制性的详细描述,将更好地理解本公开的上述目的、特征、和优点以及附加目的、特征、和优点。在附图中,除非另有说明,否则相同的附图标记将用于表示相同的部分。

图1示出了根据示例的眼睛跟踪系统100(其也可以被称为注视跟踪系统)。系统100可以包括用于照射用户眼睛的照明器111、112、以及用于捕获用户眼睛的图像的图像传感器113(其也可以被称为光传感器)。照明器111、112可以例如是发光二极管,这些发光二极管发射红外频段中的光或近红外频段中的光。光传感器113可以例如是相机,诸如互补金属氧化物半导体(cmos)相机或电荷耦合器件(ccd)相机。

第一照明器111可以被布置成与图像传感器113同轴(或靠近图像传感器113),使得图像传感器113可以捕获用户眼睛的亮瞳图像。由于第一照明器111与图像传感器113的同轴布置,从眼睛的视网膜反射的光穿过瞳孔朝向图像传感器113返回,使得在第一照明器111照射眼睛的情况下,瞳孔在图像中可以看起来比瞳孔周围的虹膜更亮。第二照明器112可以被布置成与用于捕获暗瞳图像的图像传感器113非同轴(或进一步远离该图像传感器113)。由于第二照明器112与图像传感器113的非同轴布置,从眼睛的视网膜反射的光不能到达图像传感器113,并且在第二照明器112照射眼睛的情况下,瞳孔在图像中可以看起来比瞳孔周围的虹膜更暗。照明器111和112可以例如轮流照射眼睛,使得每个第二图像是亮瞳图像,和使得每个第二图像是暗瞳图像。

眼睛跟踪系统100还可以包括用于对由图像传感器113捕获的图像进行处理的电路系统120(例如,包括一个或多个处理器)。电路系统120可以例如经由有线或无线连接而连接至图像传感器113和照明器111、112。在另一示例中,采用一个或多个处理器形式的电路系统120可以设置在图像传感器113的光敏表面下方的一个或多个叠层上。

图2示出了眼睛200的由如结合图1的系统100讨论的图像传感器113捕获的图像的示例。电路系统120可以例如采用图像处理(诸如数字图像处理)来提取图像中的特征。电路系统120可以例如被配置用于例如根据瞳孔的半径和瞳孔中心的位置来估计瞳孔210的大小。电路系统120可以进一步被配置用于估计由来自照明器111、112的光反射引起的闪光120的中心的位置,并且根据这些位置来计算用户的眼睛200正指向的位置。由于在眼睛200的光学中心与中央凹之间通常存在偏移,因此处理器执行对中央凹偏移的校准,以便能够确定用户正在看的位置。将参照图3和图4更详细地对此进行描述。

在参照图1和图2描述的示例中,照明器111、112可以被布置在眼睛跟踪模块110中,该眼睛跟踪模块110被置于由用户观看的显示器下方。这种布置仅用作示例。将理解的是,可以采用更多或更少的任何数量的照明器和图像传感器来进行眼睛跟踪,并且这种照明器和图像传感器可以相对于用户和由用户观看的任何场景或显示器以多种不同方式分布。将理解的是,可以例如采用本公开描述的眼睛跟踪方案来进行远程眼睛跟踪(例如,在个人计算机、智能电话中的远程眼睛跟踪、或纳入到车辆中的远程眼睛跟踪)或可佩戴眼睛跟踪(诸如,在虚拟现实眼镜或增强现实眼镜中的可佩戴眼睛跟踪)。

现在将参照图3来描述如何确定眼睛方向以及眼睛方向与注视方向之间的角度偏移量的示例。图3示出了眼睛300的不同部分的截面。角膜310具有中央区域311,该中央区域一般可以具有可能接近球形的三维弯曲部、以及可能较不似球形的外部区域312。因此,角膜310可以用球体330(由本附图中的虚线展示)的表面部分来近似,该球体具有位于眼睛内的所估计的三维中心点314。换言之,眼睛的角膜表面的至少一部分可以用可以内接于或适形于假想球体330的表面部分的形状来近似。中心点也可以被称为角膜球体中心314,并且可以根据闪光220在角膜表面上的位置来计算该中心点。角膜球体中心314和所估计的瞳孔中心350的位置(也是根据图像数据确定的)定义眼睛300的光轴(也被称为眼睛方向ed)。如图3所展示的,光轴ed可以从视网膜延伸穿过角膜球体中心314、瞳孔中心350和角膜。由于可以从所估计的角膜球体中心314和瞳孔中心350得出光轴,因此该光轴也可以随着瞳孔中心350的位置的变化而变化。

同时,视轴(也被称为注视方向gd)从中央凹313延伸穿过角膜球体中心314。因此,视轴可以由视网膜的中央凹部分的物理位置和角膜的配置来确定,并且因此可能对瞳孔的大小和位置变化较不那么敏感。视轴或注视方向gd的取向可以在用户观看具有已知位置的注视点时在对系统的校准期间来确定。

如所描绘的,视轴gd可以与光轴ed偏离角度偏移量α。此偏移量可以通过校准过程来确定,在该校准过程中,将已知的注视方向gd与眼睛方向ed进行比较。尽管所展示的示例示出了纸张平面中的角度偏移量,但是将认识到,该角度偏移量也可以在垂直于该平面的方向上或以其任何组合来取向。因此,眼睛方向ed与注视方向gd之间的角度偏移量α可以由向量表示,该向量指示例如在眼球的内外侧方向和前后侧方向上的偏移量。

图3还示出了眼睛300的巩膜320、角膜缘315和虹膜322。角膜缘315是眼睛300中的巩膜320与虹膜322相交的位置。换言之,角膜缘315表示虹膜322的外周。角膜缘315在眼睛300内是相对固定的。然而,瞳孔31,眼睛中的巩膜320与324交汇的点在眼睛300内有相当大的移动。如参照其他附图所描述的,可以将瞳孔中心350与角膜缘中心360(该瞳孔中心和该角膜缘中心在图3中所示的视图中看起来是对齐的)进行比较以便形成本文描述的偏移量模型。

图4a示出了眼睛400的立体图,其中,瞳孔410具有第一大小或半径r1。图4b是具有第二瞳孔大小r2的同一只眼睛400的立体图。瞳孔大小可以例如随着照明强度而改变,其中,已知强度的增大会使得虹膜410收缩并且强度的减小可以使得虹膜420扩张。这对于眼睛被暴露于例如环境光照的应用(诸如增强现实应用或动态显示亮度)是已知效果。

瞳孔中心451、452的位置可以随着瞳孔大小的变化而发生移位,这从而可以影响所估计的眼睛方向ed并且因此影响用于计算注视方向gd的角度偏移量。在本附图中,眼睛的瞳孔中心的内侧位置/外侧位置的移位由角度偏移量α1、α2来指示,该角度偏移量表明当瞳孔大小从第一大小r1减小至第二大小r2时本示例中的瞳孔中心相对于眼睛的中心点c向上发生移位(在前侧方向上)。

在图4a中,眼睛400具有第一扩张的瞳孔大小r1,其中,第一眼睛方向ed1与第一注视方向gd1之间的第一角度偏移量为α1。如果瞳孔中心451的位置例如由于虹膜410的收缩而发生移位,则所估计的眼睛方向ed1可以如图4b所展示的那样发生变化,图4b示出了具有第二收缩的瞳孔大小r2的眼睛400产生了第二眼睛方向ed2与第二注视方向gd2之间的第二角度偏移量α2。将注意的是,第一眼睛方向ed1和第二眼睛方向ed2因此可以由于瞳孔中心位置的移位而彼此不同,而第一注视方向gd1和第二注视方向gd2(在此示例中其由中心点c限定)受到瞳孔位置移位的影响可能较小。在一些示例中,可以假定注视方向gd1、gd2针对瞳孔大小r1、r2两者都是相同的。

因此,瞳孔中心位置451、452的移位可以引起角度偏移量从第一角度偏移量α1到第二角度偏移量α2的变化。这种关系允许在例如对系统的校准期间(即,当用户观看空间中具有已知位置的点时)根据不同的瞳孔大小r1、r2对角度偏移量α1、α2进行映射。基于此信息,可以形成补偿模型,该补偿模型描述随着瞳孔大小改变而改变的所估计的角度偏移量。替代性地或附加地,照明强度可以与角度偏移量α1、α2联系起来以形成偏移量随着照明强度改变而改变的类似模型。优选地,因为可以假定不同用户的虹膜对不同的照明强度做出不同的反应,所以可以针对每个单独用户对这种模型进行校准。

在一个示例中,针对具体瞳孔大小的角度偏移量α可以通过线性近似来估计。换句话说,可以通过以下表达式描述角度偏移量:

α(r)=kr+m

其中,α为注视方向gd与眼睛方向ed之间的角度偏移量,r为瞳孔半径(优选地是从眼睛的图像获得的),并且k和m为例如在校准期间设定的常数。该模型可以基于至少两个测量点(例如,第一瞳孔大小和第二瞳孔大小以及相应的第一角度偏移量值和第二角度偏移量值)来确定。然而,将理解的是,本公开决不限于基于两个测量值的线性近似。诸如高次多项式近似等其他模型可以与数据集一起使用,该数据集包括三个或更多个不同的瞳孔大小和角度偏移量。以下的数学关系式是高次多项式模型的示例:

其中,r为瞳孔半径,n为多项式次数(或阶次),并且a为校准期间确定的参数集。

图5是根据本公开的示例的方法的流程图。该方法可以例如由以上参照图1描述的眼睛跟踪系统100或眼睛跟踪系统100中包括的电路系统120来执行。

该方法包括:获得510具有第一瞳孔大小r1的眼睛300的第一眼睛方向ed1与第一注视方向gd1之间的第一角度偏移量α1;获得520具有第二瞳孔大小r2的眼睛300的第二眼睛方向ed2与第二注视方向gd2之间的第二角度偏移量α2;以及基于第一角度偏移量α1和第二角度偏移量α2形成530补偿模型,该补偿模型描述随着瞳孔大小r改变而改变的所估计的角度偏移量α。

以上步骤510、520、530中的一个或若干个步骤可以由眼睛跟踪系统100的电路系统120来执行。将理解的是,电路系统120可以集成在单个单元中或者分布在若干个物理上独立的单元之间,这些物理上独立的单元可以布置在不同的位置。因此,根据示例,第一角度偏移量α1和第二角度偏移量α2可以在第一电路系统单元处获得,并且之后被传输到第二电路系统单元,数据在那里被处理以便形成补偿模型。

第一角度偏移量α1和第二角度偏移量α2可以从眼睛300的注视跟踪数据中获得,该注视跟踪数据则可以从眼睛300的图像中检索到。例如,注视跟踪数据可以包括信息,从该信息可以优选地以例如结合图3所描述的类似方式(但不一定非要如此)得出瞳孔中心350、瞳孔大小(诸如例如,半径或直径)r和角膜中心314。如结合图1所披露的,这些图像可以例如从诸如相机等图像传感器获得。图像传感器可以被布置用于捕获眼睛300的图像,该眼睛反射来自一个或若干个照明器111、112的闪光。这些图像可以在不同的照明强度下(例如,在不同的环境光条件下)捕获,以便获得表示不同瞳孔大小r1、r2的信息。在一个示例中,这些图像可以在校准过程期间获得,在该校准过程中,用户观看例如显示器上的已知位置。校准过程可以例如是九点校准过程,在该九点校准过程中,用户的眼睛在用户观看显示器上的九个物理上分离的点中的每一个点时被捕获。

图6是根据示例的方法的流程图,该方法可以与根据参照图5描述的示例的方法类似。在本示例中,可以例如通过根据与上文结合图1讨论的示例类似的示例的系统的图像传感器来获取612具有第一瞳孔大小r1的眼睛的第一图像。可以分析所捕获的图像,以便基于所估计的角膜球体中心314的位置和所估计的瞳孔中心350的位置来确定614第一眼睛方向ed1,并且基于已知的注视点(例如,从校准图案获得的)和所估计的角膜球体中心314来确定616第一注视方向gd1。进一步地,可以从同一图像确定618瞳孔大小r1。然后,当图像被捕获时,可以使用第一注视方向gd1和第一眼睛方向ed1以便(例如,通过处理器或电路系统)确定619这两个方向之间的角度偏移量α1并将角度偏移量α1与眼睛的具体瞳孔大小r1相关联。

针对优选地具有与第一瞳孔大小r1不同的第二瞳孔大小r2的眼睛的第二图像,可以重复以上步骤612至619。因此,该方法可以包括以下步骤:获取622眼睛的第二图像;分析第二图像以便基于所估计的角膜球体中心314的位置(该位置可以基于第二图像来确定、或者从诸如例如第一图像或之前存储的校准数据等预先测量值中检索出)和所估计的瞳孔中心350(鉴于瞳孔半径在这两个图像之间变化,可以假定所估计的瞳孔中心不同于所估计的第一图像中的瞳孔中心)的位置来确定624第二眼睛方向ed2。进一步地,该方法可以包括以下步骤:基于已知注视点(其可以是与第一图像相同的点,也可以是空间中的不同点)和所估计的角膜球体中心314来确定626第二注视方向gd2。然后,可以确定629第二注视方向gd2与第二眼睛方向ed2之间的角度偏移量α2并且将其与可以从同一图像确定628的第二瞳孔大小r2相关联。

在后续步骤中,可以使用第一角度偏移量α1、第二角度偏移量α2和相应的瞳孔大小r1、r2以形成630补偿模型,该补偿模型描述随着瞳孔大小r改变而改变的角度偏移量α。该模型可以例如是线性模型、多项式近似或s曲线、或查找表中的一组条目。该模型可以存储640在系统的存储区域中或被发送到系统(或电路系统)有权访问的存储区域。存储区域可以进一步被适配用于存储650用于在校准过程期间获得角度偏移量的图像或存储从这些图像中检索的原始数据,用于之后使用。在从眼睛的另一图像获得660具有另一瞳孔大小的眼睛的另一眼睛方向与另一注视方向之间的另一角度偏移量的情况下,可以采用该另一角度偏移量以便基于之前存储的原始数据、该另一瞳孔大小和该另一角度偏移量来更新670补偿模型。

因此,将理解的是,本发明的理念不限于其中仅使用两个图像来确定角度偏移量、瞳孔半径和补偿模型的方法。相反,可以基于从三个或更多个图像获得的眼睛跟踪数据来形成补偿模型,并且在眼睛跟踪系统的使用期间进一步对该补偿模型进行动态更新。

图7是根据示例的方法的流程图,其可以与结合之前的图5和图6讨论的示例类似。因此,该方法可以包括以下步骤:获得710具有第一瞳孔大小r1的眼睛的第一眼睛方向ed1与第一注视方向gd1之间的第一角度偏移量α1;当眼睛具有第二瞳孔大小r2时获得720眼睛的第二眼睛方向ed2与第二注视方向gd2之间的第二角度偏移量α2;以及基于第一角度偏移量α1和第二角度偏移量α2形成730补偿模型,在该补偿模型中,所估计的角度偏移量α随着眼睛的瞳孔大小r改变而改变。

在该方法的后续部分中,可以采用补偿模型在使用期间对注视进行跟踪。因此,根据本示例的方法可以包括进一步步骤:获得740第三眼睛方向ed3;确定742瞳孔大小r3;以及使用补偿模型来确定750与所确定的瞳孔大小r3相关联的角度偏移量α。然后,可以使用角度偏移量α来计算760眼睛的第三注视方向gd3。可以重复地执行上述步骤(即获得740第三眼睛方向、确定瞳孔大小742、确定角度偏移量750以及将偏移量应用于第三眼睛方向ed3以获得第三注视点gd3的步骤),以便在系统的使用期间实现对注视的主动跟踪。

图8是展示了可以在其中实施本公开的示例的专用计算机系统800的框图。这个示例展示了专用计算机系统800,该专用计算机系统诸如可以整体地、部分地或具有各种修改地使用以便提供本文描述的部件功能。

专用计算机系统800被示出为包括可以经由总线890电耦接的硬件元件。这些硬件元件可以包括一个或多个中央处理单元810、一个或多个输入设备820(例如,鼠标、键盘、眼睛跟踪设备等)、以及一个或多个输出设备830(例如,显示设备、打印机等)。专用计算机系统800还可以包括一个或多个存储设备840。通过示例的方式,(多个)存储设备840可以是磁盘驱动器、光学存储设备、固态存储设备(诸如可编程、可闪速更新的随机存取存储器(“ram”)和/或只读存储器(“rom”))和/或类似物。

另外,专用计算机系统800可以包括计算机可读存储介质读取器850、通信系统860(例如,调制解调器、网卡(无线或有线)、红外通信设备、bluetoothtm设备、蜂窝通信设备等)、以及工作存储器880,该工作存储器可以包括如上所述的ram设备和rom设备。在一些示例中,专用计算机系统800还可以包括处理加速单元870,该处理加速单元可以包括数字信号处理器、专用处理器和/或类似物。

计算机可读存储介质读取器850可以进一步连接至计算机可读存储介质以便一起(并且可选地结合(多个)存储设备840)全面地代表远程、本地、固定和/或可移动的存储设备加上用于暂时地和/或更永久地包含计算机可读信息的存储介质。通信系统860可以准许与网络、系统、计算机和/或其他上述部件交换数据。

专用计算机系统800还可以包括软件元件,这些软件元件被示出为当前位于工作存储器880内、包括操作系统884和/或其他代码888。应该理解的是,专用计算机系统800的替代示例可以具有与上述内容不同的许多变型。例如,还可以使用定制硬件和/或可以在硬件、软件(包括诸如小应用程序等便携式软件)或软件和硬件两者中实施特定元件。此外,还可以发生与诸如网络输入/输出设备和数据获取设备等其他计算设备的连接。

专用计算机系统800的软件可以包括用于实施如本文描述的架构的各种元件的任一功能或全部功能的代码888。例如,存储在专用计算机系统(诸如专用计算机系统800)上和/或由该专用计算机系统执行的软件可以提供本公开中的部件(诸如以上讨论的这些部件)的功能。上文已经更详细地讨论了可由这些部件中的一些部件上的软件实施的方法。

图9a和图9b示出了眼睛900的侧面轮廓视图902a和902b以及正视图904a和904b。眼睛900包括角膜910、巩膜914和角膜缘916。眼睛900的角膜910由球体表示,其三维轴线的原点912处于角膜910的中心处。在此示例中,三维轴线中的一条轴线延伸穿过角膜缘916的中心,该角膜缘的角膜缘中心分别在918a和918b处。

如本文描述的,瞳孔906相对于角膜缘916的位置可以随着瞳孔906的大小的变化而漂移。通常,瞳孔906的平均漂移方向是向下且朝向鼻平面。例如,在瞳孔906暴露于亮光下(引起瞳孔收缩)之后,瞳孔906可以向下且朝向鼻子漂移。

在图9a中,瞳孔906a具有第一瞳孔大小或半径r1。在图9b中,同一只眼睛900的瞳孔906b具有第二瞳孔大小或半径r2。此外,瞳孔中心908相对于角膜缘中心918的位置在图9a与图9b中展示的视图之间已经发生了变化。具体而言,在图9a中,瞳孔中心908a与角膜缘中心918a对齐(例如,位于同一位置处)。在图9b中,瞳孔中心908b位于角膜缘中心918b的左下方,这意味着瞳孔906已经移动或漂移至眼睛900的左下部分。瞳孔906在图9a与图9b之间的移动已被夸大表示以展示本文描述的瞳孔漂移的原理。

瞳孔大小可以例如随着照明强度而变化。这对于眼睛被暴露于例如环境光照的应用(诸如增强现实应用或动态显示亮度)是已知效果。

图9a和图9b示出了可以在两个时间点处(例如,图9a中在第一时间处,并且图9b中在第二时间处)测量的眼睛数据(例如,角膜缘中心918、瞳孔中心908和瞳孔大小906)的示例。应该理解的是,眼睛数据可以连续地测量(例如,在多个时间点处根据某个采样率进行测量),存储在存储器中或实时访问,并且用于形成偏移量模型。在一些示例中,眼睛数据是根据采样率获得的。采样率可以对应于正在捕获关于眼睛的数据所使用的某个其他速率。例如,采样率可以对应于正在由图像捕获设备捕获眼睛的图像所使用的帧速率,该图像捕获设备是眼睛跟踪系统的一部分。可以采用分箱(binning)机制将瞳孔半径范围分成多个箱并且限制每个箱的样本数量。在更可靠地进行角膜定位的情况下,样本也可以限于具有适度注视角度的帧。

用于补偿随着瞳孔大小906改变而改变的瞳孔中心908相对于角膜缘中心918之间的变化的偏移量模型可以如下方式限定。在图9a和图9b表示的眼睛坐标系中,令cp=瞳孔中心908并且cl=角膜缘中心918。为了测量瞳孔中心908与角膜缘中心918之间的偏移量,令y=cp-cl。偏移量模型假定:此偏移量是瞳孔大小906的线性函数、被测量为半径y(r)=kr+m,其中,k和m是(向量值表示的)常数。眼睛跟踪算法将观察瞳孔大小906并使用该偏移量y(r)来估计眼睛中z轴的取向。对眼睛数据进行采样的一个目标是使用本文描述的线性函数来估计参数k和m。

首先,使用眼睛数据以形成一组数据样本(y,r),其中,y=cp-cl并且根据瞳孔半径r=瞳孔大小906,cp=瞳孔中心908,并且cl=角膜缘中心918。在此示例中,样本(y,r)可以对应于具有三个分量([x,y,z],r)的向量。

可以使用任何合适的眼睛跟踪技术和/或眼睛分析技术来获得眼睛数据。例如,可以由眼睛跟踪算法得出瞳孔中心908和瞳孔大小906,该眼睛跟踪算法估计角膜在三维空间中的位置和眼睛900的取向。通过使用来自该算法的输出(例如,角膜的位置和定向),使用角膜表面拓扑的模型以将观察到的角膜缘投影到该表面上。通过使用该投影和检测图像中的角膜缘(例如,虹膜的边缘)的算法,可以获得角膜缘中心918的位置。

可以使用眼睛数据以形成和/或调整偏移量模型的一组参数(k和m)。随着眼睛数据不断增多(例如,随时间推移更多样本被测量),(y,r)的样本将不断增多。可以使用统计方法以确定何时调整主动偏移量模型。例如,用于调整主动偏移量模型的适当时间可以是这样的时间:此时比较可能确定由所收集的样本(y,r)暗示的k和m的值不同于主动偏移量模型中的k和m的估计值。

对k和m的估计可以通过对所收集的样本进行最小二乘拟合来完成。如果对于参数的预期值的先验是已知的,则该拟合还可以以最大后验方式来完成。这对于偏移量的z分量(即,瞳孔在眼睛内部有多“深”)会尤其重要。

在某一点处,用户将校准眼睛跟踪算法。该校准可以补偿不正确的瞳孔偏移量,但只有当偏移量恒定时才如此。为了处理这个问题,对偏移量模型y(r)的任何更新都可以改变在校准期间有效的偏移量的值。由于瞳孔半径在校准期间可能发生变化,无法恰到好处地满足这种要求,因此其是在最小二乘意义上强制执行的。令k和m为所估计的参数,令km和mc为在校准期间有效的参数,并且令{rc}为校准期间半径的集合。那么将m的估计值调整如下:

m:=argminmsum_{rc}((krc+m)-(kcrc+mc))^2

图10a至图10c展示了表示对应于瞳孔中心908和角膜缘中心918的位置向量的分量(例如,x分量、y分量和z分量)的示例图表。图10d展示了用于将偏移量模型绘制为线性函数y(r)=kr+m的线性回归方法的示例。

在图10a中,将(图9中表示的作为眼睛固定坐标系的三维轴线中的)x轴上的位置与瞳孔的半径进行比较。角膜缘中心的位置(由“+”表示)随着半径值的增大而几乎保持不变。瞳孔中心在x轴中的位置(由“x”表示)随着半径值的增大而改变。

在图10b中,将(图9中表示的三维轴线中的)y轴上的位置与瞳孔的半径进行比较。角膜缘中心的位置(由“+”表示)随着半径值的增大而几乎保持不变。瞳孔中心在y轴中的位置(由“x”表示)随着半径值的增大而改变。

在图10c中,将(图9中表示的三维轴线中的)z轴上的位置与瞳孔的半径进行比较。角膜缘中心的位置(由“+”表示)随着半径值的增大而几乎保持不变。瞳孔中心在z轴中的位置(由“x”表示)随着半径值的增大而改变。

在图10d中,绘制位置向量的分量。实质上,图10d表示来自图10a至图10c的图表的组合。已使用线性回归技术来绘制直线1010。直线1010对应于作为本文描述的偏移量模型的示例的线性函数。

图11和图12展示了根据至少一些示例的示出过程1100和1200的示例流程图。这些过程和本文描述的任何其他过程被展示为逻辑流程图,这些过程中的每个操作表示可以在硬件、计算机指令、或其组合中实施的一系列操作。在计算机指令的情况下,这些操作可以表示存储在一个或多个非暂时性计算机可读存储介质上的计算机可执行指令,这些指令在由一个或多个处理器执行时执行所引述的操作。通常,计算机可执行指令包括执行特定功能或实施特定数据类型的例程、程序、对象、部件、数据结构等。描述操作的顺序不旨在被理解为限制,并且任意数量的所述操作可以以任何顺序和/或并行地组合以实施这些过程。

另外,本文描述的过程中的一些、任一个或所有过程可以在配置有特定可执行指令的一个或多个计算机系统的控制下执行,并且可以被实施为通过硬件在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序、或者一个或多个应用),或上述两者的组合。如以上所指出,该代码可以例如以包括可由一个或多个处理器执行的多条指令的计算机程序的形式存储在非暂时性计算机-可读存储介质上。

图11展示了根据至少一个示例的示出用于形成偏移量模型的过程1100的示例流程图。过程1100可以由计算机系统800和/或眼睛跟踪系统100来执行。

过程1100可以通过确定用户眼睛的角膜缘的一组角膜缘中心值而在1102开始。该组角膜缘中心值可以以一定采样率来确定。在一些示例中,该组角膜缘中心值是在预定义的一组时间值(例如,每20毫秒、每10毫秒或者甚至更快)下确定的。该组角膜缘中心值可以针对一个三维坐标系来确定,三维坐标系的原点在所估计的用户眼睛的角膜中心处。该组角膜缘中心值可以对应于角膜缘的中心点投影在用户眼睛的外表面处(例如,角膜内)或进一步投影在眼睛内时的位置。在一些示例中,该组角膜缘中心值是针对两只用户眼睛确定的。每个角膜缘中心值可以被表示为具有x分量、y分量和z分量这三个分量的向量。在一些示例中,角膜缘中心值可以对应于等式y=cp-cl中的cl。

在1104处,过程1100包括确定该用户眼睛的瞳孔的一组瞳孔中心值。该组瞳孔中心值可以根据采样率(例如,与确定该组角膜缘中心值的采样率相同的采样率)来确定。该组瞳孔中心值可以根据本文描述的三维坐标系来确定。该组瞳孔中心值可以表示瞳孔的中心点在眼睛的外表面处或在眼睛内的位置。在一些示例中,该组瞳孔中心值是针对用户的两只眼睛确定的。每个瞳孔中心值可以被表示为具有x分量、y分量和z分量这三个分量的向量。在一些示例中,瞳孔中心值可以对应于等式y=cp-cl中的cp。

在1106处,过程1100包括确定该瞳孔的一组半径值。该组半径值可以根据一采样率(例如,与确定该组角膜缘中心值和该组瞳孔中心值的采样率相同的采样率)来确定。以此方式,可以在测量对应的角膜缘中心值和瞳孔中心值的相同时间测量相应的半径值。该组半径值表示瞳孔的大小。在一些示例中,半径值可以对应于本文描述的r。

在1108处,过程1100包括形成偏移量模型。形成该偏移量模型可以包括基于(i)该组角膜缘中心值、(ii)该组瞳孔中心值和(iii)该组半径值来形成该偏移量模型。例如,形成该偏移量模型可以包括使用该组角膜缘中心值、该组瞳孔中心值和该组半径值来确定以y(r)=kr+m的形式的对该数据进行拟合的直线。在一些示例中,该偏移量模型描述角膜缘中心与瞳孔中心之间的、随着瞳孔大小改变而改变的所估计的偏移量。

在示例中,确定该组角膜缘中心值包括:在第一时间处测量第一角膜缘中心值,并且在第二时间处测量第二角膜缘中心值。在此示例中,确定该组瞳孔中心值包括:在该第一时间处测量第一瞳孔中心值,并且在该第二时间处测量第二瞳孔中心值。在此示例中,确定该组半径值包括:在该第一时间处测量第一半径值,并且在该第二时间处测量第二半径值。

在一些示例中,确定该组角膜缘中心值、确定该组瞳孔中心值以及确定该组半径值至少是在眼睛跟踪系统跟踪该用户眼睛时进行的。以此方式,可以执行用于形成偏移量模型的过程1100以便对眼睛跟踪系统进行连续校准。

在示例中,该偏移量模型包括线性函数。在此示例中,形成该偏移量模型包括基于线性回归技术来估计该线性函数的一个或多个常数值。在此示例中,该一个或多个常数值中的第一常数值对应于该线性函数的k参数,该参数表示该线性函数的斜率。在此示例中,该一个或多个常数值中的第二常数值对应于该线性函数的m参数。该m参数可以表示该线性函数的交点。

在示例中,过程1100进一步包括通过将该组角膜缘中心值与该组瞳孔中心值进行比较来确定一组偏移量值。在此示例中,每个偏移量值表示相应的瞳孔位置相对于相应的角膜缘位置之间的偏移量。在此示例中,形成该偏移量模型是进一步基于该组偏移量值。将该组角膜缘中心值与该组瞳孔中心值进行比较可以包括从该组瞳孔中心值减去该组角膜缘中心值(例如,y=cp-cl)。

在一些示例中,形成该偏移量模型包括更新现有偏移量模型的一个或多个常数值以定义该偏移量模型。

在一些示例中,过程1100进一步包括基于该偏移量模型使用眼睛跟踪算法跟踪该用户眼睛。在一些示例中,该眼睛跟踪算法可以在眼睛跟踪设备(诸如眼睛跟踪设备100)中实施。

在一些示例中,过程1100进一步包括:在形成该偏移量模型之前,至少通过以下操作来估计眼睛跟踪算法的一个或多个常数参数的一个或多个值:绘制该组偏移量值和该组半径值;以及基于该组偏移量值与该组半径值的线性近似来估计该一个或多个常数参数的该一个或多个值。例如,这种估计可以包括使用线性近似的最小二乘形式来定义y(r)=kr+m形式的直线。

图12展示了根据至少一个示例的示出用于形成偏移量模型的过程1200的示例流程图。过程1200可以由计算机系统800和/或眼睛跟踪系统100来执行。

过程1200可以在1202处开始,在1202中,当眼睛的角膜缘的角膜缘位置在第一时间期间改变时,确定该角膜缘的角膜缘中心的多个角膜缘位置。

在1204处,过程1200包括:当眼睛的瞳孔的瞳孔位置在该第一时间期间改变时,确定该瞳孔的瞳孔中心的多个瞳孔位置。

在1206处,过程1200包括通过将该多个角膜缘位置与该多个瞳孔位置进行比较来确定多个偏移量值,每个偏移量值表示相应的瞳孔位置相对于相应的角膜缘位置之间的偏移量。

在1208处,过程1200包括:当该瞳孔的半径值在该第一时间期间改变时,确定该瞳孔的多个半径值。

在1210处,过程1200包括估计眼睛跟踪算法的一个或多个常数参数的一个或多个值。这可以至少通过以下操作来执行:绘制该多个偏移量值和该多个半径值;以及基于该多个偏移量值和该多个半径值的线性近似来估计该一个或多个常数参数的该一个或多个值。

在1212处,过程1200包括基于该一个或多个值形成补偿模型,该补偿模型描述该角膜缘的角膜缘中心与该瞳孔的瞳孔中心之间的、随着瞳孔大小改变而改变的所估计的偏移量。

本领域技术人员认识到,本公开决不限于上述优选示例。相反,在所附权利要求的范围内可以进行许多修改和变化。例如,本领域技术人员认识到,本文描述的眼睛/注视跟踪方法可以由不同于例如使用多个照明器和多个相机的图1所示的眼睛/注视跟踪系统100的许多其他眼睛/注视跟踪系统来执行。

另外,在实践所要求保护的披露内容时,本领域技术人员可以通过研究附图、公开内容、以及所附权利要求来理解和实施所公开示例的变型。在权利要求中,词语“包括”并不排除其他要素或步骤,并且不定冠词“一个(a)”或“一种(an)”并不排除复数。本公开提及的功能单元之间任务的划分不一定对应于多个物理上不同的单元的划分;相反,物理部件可以具有多个功能,并且任务可以通过协作的若干物理部件以分布式方式来执行。计算机程序可以存储/分布在合适的非暂时性介质(诸如与其他硬件一起提供的或作为其他硬件的一部分而提供的光学存储介质或固态介质)上,但是也可以诸如经由互联网或其他有线或无线电信系统以其他形式来分布。

在相互不同的从属权利要求中引用某些措施/特征这个单纯的事实并不表明不能有利地使用这些措施/特征的组合。方法步骤不一定必须以它们出现在权利要求或本文描述的示例中出现的顺序来执行,除非明确描述了要求一定的顺序。权利要求中的任何附图标记不应被理解为对范围进行限制。

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