眼动追踪系统可以利用估计眼睛参数的过程,例如人的眼睛的位置和方向。系统可以相对于已知的参考系或坐标系来估计眼睛参数。眼动追踪系统依赖于定义眼动追踪摄像头的相对位置的校准数据。
如果在设备校准期间估计的眼部参数以无补偿的方式改变,则由眼动追踪系统产生的眼部参数估计的准确性可能降低。
尽管眼睛参数的变化速率受生物过程(例如瞳孔扩张或收缩的速度、眼球扫视的速度和注视的持续时间)的控制,但设备参数的变化受在不同时间尺度上发生的物理过程的控制。例如,在纳入眼动追踪系统后,由于机械变形,装置的几何属性可能几乎在瞬间发生变化,但当用户重新调整装置以供使用时,可以在相对较长的几秒钟内对其进行补偿。
另一方面,温度驱动的变化往往是缓慢的,并且可能仅在检测到器件参数的显著改变之后才需要补偿。现有的校准方法没有设计成有效地解决不同类型的变化,从而导致眼动追踪系统的精度降低。
所以在名为“Enhanced eye tracking systems utilizing joint biological and hardware estimations”的专利申请中,微软就提出利用生物和硬件联合评估来优化眼动追踪系统。
图1是具有用于追踪用户11至少一只眼睛10的至少一个传感器101的设备100。设备100包括用于追踪人眼10运动的多个传感器101。设备100同时可以包括光源103,光源103在相对于传感器101的预定位置安装到设备。光源可以配置为允许预定光谱的光,例如红外光。
参照图2,光源103可以配置为朝向眼睛10投射红外光102。红外光102可以从眼睛10反射并产生多个闪烁111。设备可以基于检测到的来自眼睛10的红外光102的反射来识别闪烁111。
然后使用至少一个摄像头101,设备100可以确定眼睛10的瞳孔110的瞳孔位置109。其中,通过对摄像头101生成的图像数据的分析,可以确定多个闪烁111的位置和瞳孔位置109。例如,可以通过使用预定数据来测量多个闪烁111的位置和瞳孔位置109,所述预定数据诸如定义光103相对于摄像头101的位置的数据、基于每个眼睛特征的位置确定的角度309。
使用眼睛特征的位置,设备可以生成定义生物参数的生物估计数据。生物参数可以包括描述、量化或识别眼睛特征的任何参数。例如,生物参数可以包括眼睛10的方位、位置或形状。可以基于多个闪烁111的位置108和瞳孔110的瞳孔位置109来估计眼睛的方位和位置。
同样使用眼睛特征的位置,设备可以生成定义摄像头101的一个或多个硬件参数的硬件估计数据。硬件参数可以包括描述、量化或标识摄像头或设备的特征的任何参数。在一个示例中,基于多个闪烁111的位置108和瞳孔110的瞳孔位置109来估计摄像头101的一个或多个硬件参数。这可以使用模型和其他预定值来估计。
如前所述,可以联合进行摄像头101的一个或多个硬件参数的估计和生物参数的估计,从而优化眼动追踪。这种联合估计使得设备能够生成定义眼睛10的方位310和位置312的数据。即使设备受到物理变化(例如设备框架的变形),所述数据都可具有高水平的精度。
如图3所示,如果设备100的框架弯曲,则光的定向和位置可以相对于传感器101改变。在这个例子中,设备的一部分弯曲。在时间T0,框架的右侧在第一位置开始,并且当在时间T1施加力时,框架的右边在第二位置结束。
如图所示,这种类型的变形可以导致光改变它们相对于摄像头101的位置和方向。如果用表示为103的第一位置的光校准设备,则表示为103′的第二位置的光可能导致设备对眼睛位置和眼睛方向具有不准确的估计。
图3中所示的设备的物理变化可以以多种不同的方式影响用于估计的模型。例如在图4中,如果摄像头或光源相对于彼此移动,如第一光103A的移动所示,则由该光产生并由摄像头检测到的闪烁可以移动。
如果设备依赖于指示光相对于摄像头的初始位置和方向的数据,则对眼睛的位置和/或方向的测量和估计可能不准确。如专利所述,硬件参数和生物参数的联合估计允许设备检测这样的物理变化,并产生适应所述物理变化的输出,以产生定义一个或多个生物参数的更精确的输出。
在一个配置中,生物参数和硬件参数的联合估计可以涉及可以利用多帧图像数据的迭代过程。图5示出了该迭代过程的示例。
在所述示例中,对于每个图像帧,设备可以使用眼部特征的位置来生成生物估计数据201。生物估计数据定义指示眼睛10的方位310和位置312的生物参数,其中基于多个闪烁111的位置108和瞳孔110的瞳孔位置109来估计眼睛10的方位310和位置312。
定义摄像头101的一个或多个硬件参数的硬件估计数据202可以与每帧的生物参数同时确定。可以基于多个闪烁111的位置108、瞳孔110的瞳孔位置109或眼睛的任何其他眼部特征来估计摄像头101的一个或多个硬件参数。
摄像头101的一个或多个硬件参数的联合估计与指示眼睛10的方向310和位置312的生物参数的估计导致对眼睛10的方位310和位置312-的调整,以适应设备100的变形或其他物理变化。
摄像头的一个或多个硬件参数的联合估计与眼睛的方位和位置的估计减少了基于模型的瞳孔和闪烁位置的预测值与基于从图像数据导出的几何计算瞳孔和闪烁位置测量值之间的差。然后,设备可以基于预测值和测量值之间的差对眼睛的估计方位和位置进行调整。
在一个实施例中,系统迭代帧,并基于瞳孔和闪烁位置的模型和测量值来确定瞳孔和闪烁位置的预测值。测量值和预测值之间的差可以随着每次迭代而被驱动到较低的值。
当差值小于阈值差值时,系统可以利用预测值和/或测量值来确定最终输出。其中,最终输出是对眼睛的位置和/或方位的经调整的估计。通过使用一个或多个测量值作为模型的输入,可以将差异驱动到较低水平,并且通过这样做,模型的测量值和预测值的差异将逐渐减小。
在一个实施例中,设备可以使用来自描绘眼睛的图像数据的一个或多个几何测量来确定瞳孔和闪烁位置的测量值。这可以包括眼睛特征之间的距离的测量,例如闪烁之间的距离以及每个闪烁与瞳孔中心之间的距离。
所述距离可以与其他预定值一起使用,例如可以在校准或在此描述的校准过程的先前迭代时测量的摄像头位置或光位置。测量可以用于确定相对于坐标系的瞳孔和闪烁位置。在一个实施例中,可以在测量数据中生成测量数据,测量数据可以包括距离、位置、若干闪烁的列表,以及描述每个眼睛特征财产的其他数据。
设备同时可以通过使用通过使用一个或多个预定值生成的眼睛模型来确定瞳孔和闪烁位置的预测值。预定值可以包括但不限于工厂测量、定义眼睛的一般形状的数据等。
为了说明的目的,考虑一种场景:基于图像分析的测量产生的测量值大于预测值的阈值差。这可能发生在设备受到力或物理变化时,例如图3所示的例子。
在示例中,可以使用第一帧(帧/迭代1)来检测该值的差异。当两个值之间的差大于阈值差时,系统可以利用其中一个指示摄像头新位置或方向的测量值,比你高作为在后续迭代中生成模型的一部分。
因此,在使用来自第二帧(例如,帧/迭代2)的图像数据生成模型时,可以使用示出摄像头位置或光位置的测量。通过在模型的第二次迭代中使用来自第一次迭代的测量,第二帧的测量值和预测值之间的差将减小。这个过程会导致值的趋同。
所以,设备可以分析描绘眼睛的图像数据的第二帧,以生成更新的模型(帧2)。其中,更新的模型是使用瞳孔和闪烁位置的预测值,以及瞳孔和闪光位置的测量值(从帧1开始的测量值)生成。
更新的模型定义瞳孔和闪烁位置的更新的预测值,其中更新的值与第二帧相关联。一旦设备确定更新的预测值和测量值之间的差小于预定阈值,系统就可以使用定义闪烁和瞳孔位置的更新预测值的更新模型来确定定义眼睛的方向和位置的输出。
因此,可以通过多次迭代来完成对眼睛的方向和位置的调整。当误差低于阈值时,定义眼睛的方向和位置的调整值的最终输出可以基于预测值和/或测量值。在一个配置中,随着设备利用更多的帧,可以提高设备的精度。
图6示出了模型如何能够随时间变化。在所述示例中,相对于检测到的瞳孔示出了初始瞳孔的模型。类似地,示出了相对于检测到的闪烁的初始闪烁。即使设备发生物理变化,设备都可以进行这样的检测。
在一个实施例中,硬件参数可能并不总是用于眼动追踪过程。具有连续地利用硬件参数的过程可以利用大量的计算资源。为了帮助计算资源效率,可以选择要在眼动追踪过程中使用的特定硬件参数。另外,可以通过确定在眼动追踪过程中使用硬件参数的时间或间隔来创建改进的效率。
在一个示例中,设备可以基于满足一个或多个标准的生物估计来选择硬件参数,例如,眼睛方向偏离、模型不够准确,或者已知硬件参数(例如,摄像头倾斜)不正确的任何指示。
在所述方法中,系统可以使用来自描绘眼睛的图像数据的一个或多个几何测量来确定瞳孔和闪烁位置的测量值。然后,系统可以通过使用生成一个或多个预定值的眼睛模型来确定瞳孔和闪烁位置的预测值。
预定值可以是先前已知的,例如工厂测量、定义眼睛的一般形状的预定模型等。然后,系统可以确定预测值和测量值满足一个或多个标准。例如,当测量值和预测值之间的差大于预定阈值时,可以满足一个或多个标准。响应于确定预测值和测量值满足一个或多个标准,系统可以选择摄像头的一个或更多个硬件参数,并用于与指示眼睛的方向和位置的生物参数的联合估计。
当没有选择硬件参数时,可以在没有硬件参数的情况下使用生物参数来执行所述过程。
在一个实施例中,系统可以响应于满足一个或多个标准的外部测量来选择要在联合估计过程中使用的硬件参数。例如,系统可以使用其他传感器来检测温度变化,使用加速度计来检测阈值移动,使用其他传感器检测设备100的框架何时弯曲。
在这样的实施例中,系统可以确定传感器数据指示设备的加速度、设备的温度或施加在设备上的力中的至少一个满足一个或多个阈值。响应于确定,系统可以选择设备的一个或更多个硬件参数,以用于指示眼睛的方向和位置的生物参数的联合估计。
在一个实施例中,可以基于设备类型来选择一个或多个硬件参数,例如,经历大于阈值加速度的塑料框架设备可以选择要在联合估计过程中使用的摄像头的位置、摄像头的方位或摄像头的倾斜。在这样的实施例中,可以使用图像数据来测量可以包括一组硬件参数的所选硬件参数。
除了选择硬件参数之外,系统同时可以确定使用所选择的硬件参数的定时。使用所选硬件参数的定时可以包括使用间隔或特定时间。在间隔的情况下,系统可以识别时间间隔,例如秒、分钟或小时,其中眼动追踪过程的迭代可以利用硬件参数。
例如,系统可以仅使用生物参数在预定时间内追踪用户眼睛的位置。一旦系统确定特定间隔已经过去,系统就可以在联合估计过程中使用硬件参数。
在另一个示例中,系统可以检测特定事件,例如加速度的阈值水平或极端温度变化,例如超过阈值的温度速率变化。在这样的事件或其他事件中,系统可以决定利用选择的一组硬件参数和联合估计过程的一次或多次迭代。
在又一示例中,系统可以基于检测到的错误水平来确定何时使用硬件参数。在这样的示例中,系统可以使用来自描绘眼睛的图像数据的一个或多个几何测量来确定瞳孔和闪烁位置的测量值。
系统同时可以通过使用由一个或多个预定值生成的眼睛模型来确定瞳孔和闪烁位置的预测值。响应于确定预测值和测量值满足一个或多个标准,例如差值大于预定阈值,系统可以确定时间或间隔,以启动对摄像头、设备、,和/或设备的其他组件。
这可以使系统在需要时调整眼睛的方向和位置,而不是在连续的基础上使用硬件参数来运行联合估计过程。
在另一个示例中,系统可以确定何时在联合估计过程中使用硬件参数。所述确定可以基于外部传感器,例如温度变化和物体弯曲等。在这样的示例中,系统可以确定传感器数据指示设备的加速度或设备的温度满足一个或多个阈值。响应于确定,系统可以确定启动摄像头的一个或多个硬件参数的联合估计,与指示眼睛的方向和位置的生物参数的估计的时间或间隔,以引起对最终输出的调整。
图7描述了用于使用硬件参数和生物参数的联合估计来追踪用户眼睛的例程400。
在操作401中,设备使用从多个光源103指向眼睛10的红外光102照射人的眼睛。光源可以是可选的,这取决于测量中使用的眼部特征。每一次测量和估计都可以基于任何眼部特征,而不仅仅是闪烁和瞳孔。
在操作403,设备可以接收描绘闪烁和瞳孔和/或其他眼部特征的图像数据。使用图像数据,系统可以基于检测到的来自眼睛10的红外光102的反射来识别多个闪烁111。
在操作405,系统然后可以确定眼睛10的瞳孔110的瞳孔位置109,其中多个闪烁111的位置和瞳孔位置109是通过对摄像头101生成的图像数据的分析来确定。
在执行联合估计过程时,可以更新光源和摄像头的预定位置和方向。例如,在确定了上述测量位置与预测位置的小于阈值的差异之后,系统可以使用眼睛形状或硬件位置的任何预测或测量值作为联合估计过程的未来迭代的预定值,而联合估计过程可以生成摄像头和/或眼睛的模型。
在操作407,设备联合生成生物估计数据201和硬件估计数据202。生物估计数据201可以包括用户眼睛的位置和方向,硬件参数可以属于设备的任何参数。
在一个实施例中,基于多个闪烁111的位置108和瞳孔110的瞳孔位置109来估计摄像头101的一个或多个硬件参数。对于摄像头101的一个或多个硬件参数的联合估计与指示眼睛10的方向310和位置312的生物参数的估计,这将致使对眼睛10的方位310和位置312-的调整,以适应设备100的变形或其他物理变化。
名为“Enhanced eye tracking systems utilizing joint biological and hardware estimations”的微软专利申请最初在2021年10月提交,并在日前由美国专利商标局公布。