眼动跟踪系统的制作方法

文档序号:32749829发布日期:2022-12-31 00:02阅读:36来源:国知局
眼动跟踪系统的制作方法

1.本公开内容总体上涉及眼动跟踪领域。特别地,本公开内容涉及用于验证检测到的眨眼的眼动跟踪系统和方法。


背景技术:

2.在眼动跟踪应用中,取得用户眼睛的数字图像,并且对数字图像进行分析,以便估计用户的注视方向。注视方向的估计可以基于对被成像眼睛的特征的基于计算机的图像分析。一种已知的眼动跟踪示例方法包括使用红外光和图像传感器。红外光朝向用户的瞳孔,并且光的反射由图像传感器捕获。
3.许多眼动跟踪系统基于瞳孔位置以及闪光或角膜反射的识别来估计注视方向。因此,注视方向估计的准确度可能取决于瞳孔位置和/或角膜反射的识别或检测的准确度。数字图像中可能存在一个或多个虚假图像特征,如杂散反射,这会对眼睛特征识别产生不利影响。例如,虚假图像特征可能导致不正确的闪光与发光器匹配和/或不正确的瞳孔位置,从而导致错误的注视确定。可能很难确定这种错误何时发生,并且眼动跟踪系统可能会陷入错误的跟踪序列中。
4.先前也已经描述了便携式或可穿戴式眼动跟踪设备。在美国专利号9,041,787中描述了一种这样的眼动跟踪系统(所述美国专利的全部内容通过引用并入本文)。描述了一种使用发光器和图像传感器来确定注视方向的可穿戴式眼动跟踪设备。


技术实现要素:

5.根据本公开内容的第一方面,提供了一种眼动跟踪系统,该眼动跟踪系统包括控制器,该控制器被配置为:
6.接收表示当前图像中是否检测到眨眼的眨眼信号;
7.接收表示当前图像中数据质量的质量指标;以及
8.在以下情况下将经验证的眨眼信号设置为经验证的眨眼值:
9.眨眼信号指示已检测到眨眼;并且
10.质量指标小于经验证的眨眼阈值。
11.有利地,这样的眼动跟踪系统不验证由眨眼信号识别的、不会显著地影响(如由质量指标定义的)图像质量的任何(未经验证的)眨眼检测结果。因此,仅当检测到的眨眼对当前图像的质量产生重大不利影响时,才会发生经验证的眨眼检测。这使得能够提高诸如注视跟踪器等下游处理操作的表现,如下文详细讨论的。
12.质量指标可以包括与应用于当前图像的瞳孔检测算法的输出相关联的置信度值。
13.该控制器可以进一步被配置为:
14.基于一个或多个先前图像的质量指标设置质量指标基准线;以及
15.基于质量指标基准线设置经验证的眨眼阈值。
16.该控制器可以进一步被配置为:
17.基于对于一个或多个先前图像其中眨眼信号指示尚未检测到眨眼的质量指标设置质量指标基准线。
18.该控制器可以进一步被配置为:
19.基于一个或多个先前图像的质量指标设置质量指标基准线,在所述一个或多个先前图像中:i)眨眼信号指示已检测到眨眼,并且ii)质量指标高于基准线更新阈值。
20.该控制器可以进一步被配置为将经验证的眨眼阈值设置为以下中的较高值:
21.质量指标基准线减去min_required_confidence_drop;以及
22.最低的经验证的眨眼阈值水平。
23.min_required_confidence_drop可以是质量指标低于质量指标基准线的最小下降,该最小下降将导致质量指标被认为太低(即,小于经验证的眨眼阈值)。
24.该控制器可以进一步被配置为:基于多个先前图像的质量指标设置质量指标基准线。
25.该控制器可以进一步被配置为:基于多个先前图像的质量指标的过滤组合设置质量指标基准线。
26.该控制器可以进一步被配置为:
27.确定眨眼信号是否指示已检测到眨眼;
28.如果眨眼信号指示已检测到眨眼,则确定质量指标是否小于经验证的眨眼阈值;以及
29.如果质量指标小于经验证的眨眼阈值,则将经验证的眨眼信号设置为经验证的眨眼值。
30.该控制器可以进一步被配置为:
31.如果眨眼信号指示尚未检测到眨眼,则将经验证的眨眼信号设置为无眨眼值。
32.该控制器可以进一步被配置为:
33.如果眨眼信号指示尚未检测到眨眼,则无论质量指标是否大于经验证的眨眼阈值,都将经验证的眨眼信号设置为无眨眼值。
34.该控制器可以进一步被配置为在以下情况下将经验证的眨眼信号设置为无眨眼值:
35.眨眼信号指示尚未检测到眨眼;或者
36.质量指标大于经验证的眨眼阈值。
37.该眼动跟踪系统可以进一步包括:
38.被配置为应用注视跟踪算法的注视跟踪器,其中,该注视跟踪器被配置为:
39.对于相关联的经验证的眨眼信号不具有经验证的眨眼值的图像:应用注视跟踪算法,以便为该图像提供更新的注视信号;以及
40.对于相关联的经验证的眨眼信号确实具有经验证的眨眼值的图像:基于一个或多个先前图像的注视信号提供该图像的注视信号。
41.质量指标可以包括以下各项中的一项或多项:
42.与注视信号相关联的注视质量参数,该注视信号作为应用于当前图像的注视跟踪算法的输出被提供;
43.瞳孔对比度指标,该瞳孔对比度指标表示当前图像中瞳孔与眼睛的其他特征之间
的对比度;
44.与当前图像中角膜的确定位置相关联的置信度值;以及
45.作为应用于当前图像的注视跟踪算法的输出被提供的注视信号,用于与一个或多个经验证的眨眼阈值进行比较以确定注视信号是否超出范围。
46.还提供了一种包括本文公开的任何眼动跟踪系统的头戴式设备。
47.根据本公开内容的又一方面,提供了一种操作眼动跟踪系统的方法,该方法包括:
48.接收表示当前图像中是否检测到眨眼的眨眼信号;
49.接收表示当前图像中数据质量的质量指标;以及
50.在以下情况下将经验证的眨眼信号设置为经验证的眨眼值:
51.眨眼信号指示已检测到眨眼;并且
52.质量指标小于经验证的眨眼阈值。
53.根据本公开内容的又一方面,提供了一个或多个非暂时性计算机可读存储介质,其存储有计算机可执行指令,这些指令当被计算系统执行时使该计算系统执行本文公开的任何方法。
附图说明
54.现在将参考附图仅通过示例的方式描述一个或多个实施例,在附图中:
55.图1示出了眼动跟踪系统的示意图,该眼动跟踪系统可以用于捕获可由示例实施例使用的图像序列;
56.图2示出了一对眼睛的示例图像;
57.图3示出了根据本公开内容的实施例的眼动跟踪系统的示例;
58.图4示意性地展示了可以由本公开内容的眼动跟踪系统执行的过程流程;
59.图5展示了将用于描述如何动态地设置经验证的眨眼阈值的示例的标绘图;
60.图6示出了图5中所示的相同信号的标绘图,并展示了注视置信度在(未经验证的)眨眼信号中的眨眼检测之后下降;
61.图7示出了图5中所示的相同信号的标绘图,并展示了注视置信度下降的时间比在(未经验证的)眨眼信号中眨眼检测的时间更长;
62.图8示出了图5中所示的相同信号的标绘图,并展示了注视置信度在(未经验证的)眨眼信号中的眨眼检测之前下降;
63.图9示出了图5中所示的相同信号的标绘图,并展示了低注视置信度基准线;
64.图10展示了本公开内容的表示为状态机的示例算法;以及
65.图11以流程图的形式展示了图10的状态机的功能。
具体实施方式
66.图1示出了头戴式设备中的眼动跟踪系统100(其也可以称为注视跟踪系统)的简化视图,该头戴式设备呈虚拟或增强现实(vr或ar)设备、或vr或ar眼镜、或任何相关事物(如扩展现实(xr)或混合现实(mr)头戴装置)的形式。系统100包括用于捕获用户眼睛的图像的图像传感器120(例如,相机)。该系统可以可选地包括用于照射用户的眼睛的一个或多个发光器110至119,这些发光器可以例如是发射红外频带或近红外频带中的光的发光二极
管,并且可以以各种配置进行物理布置。图像传感器120可以例如是任何类型的图像传感器,诸如互补金属氧化物半导体(cmos)图像传感器或电荷耦合器件(ccd)图像传感器。图像传感器可以由包含像素传感器阵列的集成电路组成,每个像素包含光电检测器和有源放大器。图像传感器能够将光转换成数字信号。在一个或多个示例中,图像传感器可以是红外图像传感器或ir图像传感器、rgb传感器、rgbw传感器、或具有ir滤光片的rgb或rgbw传感器。
67.眼动跟踪系统100可以包括用于接收并处理由图像传感器120捕获的图像的电路系统或一个或多个控制器125,例如,包括接收器126和处理电路系统127。电路系统125可以例如经由有线连接或无线连接而连接到图像传感器120和可选的一个或多个发光器110至119,并且与图像传感器120和一个或多个发光器110至119位于同一位置、或与之相隔一定距离(例如,在不同的设备中)。在另一示例中,电路系统125可以设置在光传感器120的光敏表面下方的一个或多个堆叠层中。
68.眼动跟踪系统100可以包括用于向用户呈现信息和/或视觉刺激的显示器(未示出)。显示器可以包括呈现影像并基本上阻挡了用户的真实世界视野的vr显示器,或者呈现被感知为影像叠加在用户真实世界视野之上的ar显示器。
69.在这样的系统100中,用于一只眼睛的图像传感器120的位置通常远离用户的视线,以便不遮挡那只眼睛的显示器。该构造例如可以借助于所谓的热镜来实现,该热镜反射一部分光并且允许其余的光通过,例如红外光被反射,并且可见光被允许通过。
70.虽然在上述示例中,用户眼睛的图像由头戴式图像传感器120捕获,但在其他示例中,图像可以由非头戴式的图像传感器捕获。这种非头戴式系统可以称为远程系统。
71.在眼动跟踪系统中,可以针对用户的每只眼睛(左眼和右眼)计算注视信号。这些注视信号的质量会因输入图像中的干扰(诸如图像噪声)和不正确的算法行为(诸如不正确的预测)而降低。眼动跟踪系统的目标是提供在准确度(偏差误差)和精度(方差误差)方面尽可能好的注视信号。对于许多应用,每个时例仅提供一个注视信号可能就足够了,而不是分别提供左眼和右眼的注视信号。进一步地,组合注视信号可以与左眼信号和右眼信号相结合地提供。这样的注视信号可以被称为组合注视信号。
72.图2示出了由眼动跟踪系统(如图1的系统)捕获的一对眼睛的图像229的简化示例。图像229可以被认为包括人的右眼的右眼图像228和人的左眼的左眼图像234。在该示例中,右眼图像228和左眼图像234是人的两只眼睛的较大图像的两个部分。在其他示例中,可以使用单独的图像传感器来获取右眼图像228和左眼图像234。
73.系统可以采用图像处理(如数字图像处理)来提取图像中的特征。系统可以例如识别由图像传感器捕获的一个或多个图像中的瞳孔230、236的位置。系统可以使用瞳孔检测过程来确定瞳孔230、236的位置。系统还可以识别与瞳孔230、236紧挨着的角膜反射232、238。系统可以基于角膜反射232、238来估计角膜中心或眼球中心。例如,系统可以将每只眼睛的每个单独的角膜反射232、238与对应的发光器进行匹配,并基于该匹配来确定每只眼睛的角膜中心。然后,系统可以确定每只眼睛的视线(其也可以称为注视向量),该视线包括位置向量和方向向量。视线可以基于注视原点和注视方向,该注视原点和注视方向可以根据相应的闪光与发光器匹配/角膜中心以及所确定的瞳孔位置来确定。注视方向和注视原点本身可以是单独的向量。可以组合每只眼睛的视线以提供组合的视线。
74.如上所述,闪光与发光器匹配(其可以简称为闪光匹配)或瞳孔位置确定中的任何
错误都可能导致不正确的注视确定。闪光匹配和瞳孔检测的结果可以被认为是二元的。对于闪光匹配,要么闪光匹配是正确的并且角膜位置被确定为足够好以进行准确的注视计算,要么闪光匹配是不正确的,这导致角膜位置不能用于准确地反映注视。类似地,对于瞳孔检测,要么检测到的瞳孔足够接近圆拟合以准确地识别瞳孔,要么检测到的瞳孔是不正确的,使得正确的瞳孔不能被识别并且不能用于准确地反映注视。然而,确定这些中间参数时的错误可能难以检测。因此,一些系统可能会陷入不正确的跟踪状态并提供不充分的注视确定。这对于许多眼动跟踪应用来说尤其不利。
75.特别地,在眨眼和眯眼期间注视估计往往非常不稳定。这给注视点渲染带来了严重的问题,其中图像质量在用户的外围视觉中降低,如他们计算的注视所确定的。在注视点渲染的用例中,不稳定的注视估计会导致注视点区域跳变,从而导致明显的图形伪像和糟糕的用户体验。这可以通过使用眨眼检测器在眨眼期间锁定注视点区域来缓解。
76.眨眼检测也可以用于vr中的社交互动应用,因为其允许更完整地展现虚拟化身的眼睛。
77.为了足够快速地检测眨眼以锁定注视点区域,可以将眨眼检测器调谐成灵敏的,但这可能会由于半眨眼、眯眼或扫视而产生假性眨眼检测结果。任何数量的假阳性眨眼检测结果都是不期望的。在与注视点渲染相关的用例中,注视点区域可能会被锁定在用户视线未聚焦的地方,从而由于分辨率差或图形伪影而导致糟糕的用户体验。在展示化身的眨眼的用例中,即使用户没有眨眼,假性眨眼检测也会导致化身眨眼。
78.图3示出了根据本公开内容的实施例的眼动跟踪系统339的示例。图3中所示的功能可以由一个或多个控制器提供。眼动跟踪系统339可以是头戴式设备或远程系统的一部分,或者与头戴式设备或远程系统相关联。
79.眼动跟踪系统339包括接收眨眼信号341的验证眨眼检测器340。眨眼信号341表示当前图像347中是否已检测到眨眼。当前图像347是用户眼睛的图像,并且可以被认为是图像/帧流中最近接收到的图像。在一种实施方式中,眨眼信号341可以取以下两个值之一:真,用于指示已检测到眨眼;以及假,用于指示尚未检测到眨眼。在该示例中,眨眼信号341作为眨眼检测器342的输出被提供。本领域已知的任何眨眼检测器342都可以用于提供验证眨眼检测器340的眨眼信号341。眨眼检测器342可以被认为是或可以不被认为是眼动跟踪系统339的一部分。换言之,在一些示例中,眨眼检测器342可以相对于眼动跟踪系统339单独地提供。
80.验证眨眼检测器340还接收表示当前图像347中数据的质量的质量指标343。如下文将详细讨论的,质量指标343可以表示可以从当前图像347中提取的数据的质量,诸如与应用于当前图像347的瞳孔检测算法的输出相关联的置信度值。有益地,质量指标343可以表示当前图像347中预期会受到眨眼影响的特定数据的质量。瞳孔检测算法的输出是这种特定数据的一个示例,因为瞳孔将逐渐被眨眼遮挡并因此将无法被检测到。
81.然后,验证眨眼检测器340可以在以下情况下将经验证的眨眼信号344设置为经验证的眨眼值(例如,真):i)眨眼信号341指示已检测到眨眼;并且ii)质量指标343小于经验证的眨眼阈值。以这种方式,仅当眨眼检测器检测到眨眼(如由眨眼信号341所表示)并且质量指标343下降到相对低的水平时,才将经验证的眨眼信号344设置为经验证的眨眼值。因此,由眨眼检测器342作出的不会显著影响(如由质量指标343定义的)图像质量的任何眨眼
检测结果都不会被验证为眨眼,因此经验证的眨眼信号344不会被设置为经验证的眨眼值。因此,经验证的眨眼检测可以被认为是提供由眨眼检测器342执行的眨眼检测的可能延迟版本,使得经验证的眨眼检测仅在检测到的眨眼对当前图像347的质量产生重大不利影响时才被标记。
82.在图3的示例中,眼动跟踪系统339还包括注视跟踪器345。注视跟踪器345可以应用注视跟踪算法来提供作为输出的注视信号346,例如,从用户眼睛的图像估计注视方向。注视跟踪器345和注视跟踪算法在本领域中是已知的。在图3的示例中,注视跟踪器345从验证眨眼检测器340接收经验证的眨眼信号344。对于相关联的经验证的眨眼信号344不具有经验证的眨眼值的当前图像347:注视跟踪器345应用注视跟踪算法,以便提供当前图像347的更新的注视信号346。对于相关联的经验证的眨眼信号344确实具有经验证的眨眼值的当前图像347:注视跟踪器345基于一个或多个先前图像的注视信号提供当前图像347的注视信号346。以这种方式,注视跟踪器345不会更新具有经验证的眨眼的当前图像347的注视信号345,因为存在注视信号346将未被准确计算的风险。相反,注视跟踪器345可以保持(或适应)较早的注视信号,使得注视信号346仍作为输出被提供,但它不是基于最近的当前图像347(其被认为是可能错误的)。如上所述,例如,在注视点渲染应用中,不正确计算的注视信号346特别成问题。
83.图4示意性地展示了可以由本公开内容的眼动跟踪系统执行的过程流程。例如,图4的过程流程可以由图3的验证眨眼检测器执行。
84.该过程以步骤449处的初始化步骤开始。在该初始化步骤中,将标记为gazeconfidencebaseline的变量设置为空值。
85.初始化之后,该过程移动到步骤450以等待两个输入:标记为isblinkdetected的第一输入,该第一输入对应于图3中的眨眼信号;以及标记为gazeconfidence的第二输入,该第二输入是图3中质量指标的示例。gazeconfidence输入是与瞳孔检测算法或闪光匹配算法的输出相关联的置信度值。us 2021/0011550 a1提供了如何确定这种置信度值的示例。
86.一旦在步骤450处接收到所接收的当前图像的两个输入,该过程就移动到步骤451以检查isblinkdetected输入的状态。如果isblinkdetected输入为假(并且因此尚未检测到眨眼),则该过程移动到步骤452以更新gazeconfidencebaseline变量。(下面将提供有关如何更新gazeconfidencebaseline的进一步细节。)如果isblinkdetected输入为真(并且因此已检测到眨眼),则该过程移动到步骤453。
87.在步骤453处,该过程检查gazeconfidence输入的状态。如果gazeconfidence为低(即,其小于经验证的眨眼阈值),则该过程移动到步骤454,以便将经验证的眨眼信号设置为

真’(

真’是经验证的眨眼值的示例)。如果gazeconfidence不为低(即,其不小于经验证的眨眼阈值),则该过程移动到步骤455,以便将经验证的眨眼信号设置为

假’(

假’是无眨眼值的示例)。
88.在另一示例中,在步骤451和453处的处理可以调换位置,使得该过程首先检查gazeconfidence输入的状态,并且只有在gazeconfidence输入为低的情况下才开始检查isblinkdetected输入的状态。
89.可选地,如果gazeconfidence为低,则该过程可以在步骤455之前移动到步骤452。
如前面所指出的,在步骤452处,对gazeconfidencebaseline变量进行更新。以这种方式,在以下情况下可以更新gazeconfidencebaseline变量:i)如果未检测到眨眼(如在步骤451处确定的);以及ii)如果检测到(未经验证的)眨眼(如在步骤451处确定的)但gazeconfidence不为低(如在步骤453处确定的)。因此,可以为预期具有足够质量以便可以从中提取有意义的gazeconfidence/质量指标的每个当前图像更新gazeconfidencebaseline变量。
90.图5至图9展示了将用于描述如何动态地设置经验证的眨眼阈值以提高验证眨眼检测器(诸如参考图3描述的验证眨眼检测器)的性能的示例的标绘图。
91.作为根据历史注视置信度值或其他信号而变化的结果,可以计算质量指标的经验证的眨眼阈值。以这种方式,如下面将详细讨论的,经验证的眨眼阈值可以设置为适合于特定用户和图像的特定特性(诸如图像的亮度、曝光度、对比度、或任何其他可能影响图像“质量”和从图像中提取数据的能力的特性)的值。
92.在将参考图5至图9展示的实施方式中,质量指标是注视置信度值,并且经验证的眨眼阈值的计算如下:
93.经验证的眨眼阈值=max(min_threshold,gaze_confidence_baseline-min_required_confidence_drop)
94.其中:
95.min_threshold是经验证的眨眼阈值的最小值。在该示例中,最小阈值设置为750;
96.gaze_confidence_baseline是注视置信度值的低通滤波和延迟值,并且表示将用于基于先前接收的图像确定注视置信度值是否太低的基准线;并且
97.min_required_confidence_drop是注视置信度值低于gaze_confidence_baseline的最小下降,该最小下降将会导致注视置信度值被认为太低。在该示例中,min_required_confidence_drop设置为700。在另一示例中,其可以被设置为gaze_confidence_baseline的一定比例,而不是绝对数,诸如gaze_confidence_baseline的20%(或任何其他百分比)。
98.对于该实施方式,注视置信度值通常为[-1000,2000]。
[0099]
现在转到图5,水平轴表示图像/帧的流/序列中的帧数。
[0100]
图5中最上方的标绘图是眨眼信号541。眨眼信号541可以由眨眼检测器以与参考图3描述的相同方式提供。在图5中,眨眼信号541对于在水平轴上表示的80个帧中的每个帧都具有无眨眼值(假)。
[0101]
图5中的中间标绘图是经验证的眨眼信号544。经验证的眨眼信号544是参考图3描述的经验证的眨眼检测器的输出。在图5中,经验证的眨眼信号544对于在水平轴上表示的80个帧中的每个帧也具有无眨眼值(假)。
[0102]
图5中的下方标绘图示出了将用于描述如何设置经验证的眨眼阈值551的各种信号。下方标绘图中用附图标记550标记的第一条线表示注视置信度值。可以看出,注视置信度值550在前17帧中在约2000与1500之间略微波动,并且然后显著下降到约400与800之间的值,直到标绘图中表示的第48帧为止。在第48帧之后,注视置信度值550增加到约1200到1700之间的值,直到该标绘图结束。
[0103]
下方标绘图中用附图标记552标记的第二条线表示gaze_confidence_baseline。
如前面所指示的,gaze_confidence_baseline 552是通过对注视置信度值550的多个较早值进行低通滤波来计算的。这可以在图5中看出,因为gaze_confidence_baseline 552是注视置信度值550的平滑和延迟版本。例如,注视置信度值550在第17帧处急剧下降,而gaze_confidence_baseline 552在第26帧处下降的幅度略小。
[0104]
图5的下方标绘图还示出了最小阈值553,如前面所指示的,该最小阈值在该示例中取恒定值750。
[0105]
下方标绘图中用附图标记551标记的第三条线表示经验证的眨眼阈值。对于前26帧,经验证的眨眼阈值551跟随gaze_confidence_baseline 552,但与其有偏差,使得其比gaze_confidence_baseline 552小700。这与上面的等式相关,其中,min_required_confidence_drop的值为700。min_required_confidence_drop在图5中用附图标记554示意性地标识。
[0106]
在第26帧之后,gaze_confidence_baseline 552急剧下降,使得如果经验证的眨眼阈值551继续跟随gaze_confidence_baseline 552(偏移量为min_required_confidence_drop 554),则其将下降到最小阈值553以下。上面的等式防止这种情况的发生,因为其将经验证的眨眼阈值551设置为以下各值中的较高值:min_threshold 553;以及gaze_confidence_baseline 552减去min_required_confidence_drop 554。在图5中的第27帧到第62帧之间,min_threshold553大于gaze_confidence_baseline 552减去min_required_confidence_drop 554。因此,对于第27帧到第62帧,经验证的眨眼阈值551被设置为min_threshold 553。对于其他帧,该经验证的眨眼阈值被设置为gaze_confidence_baseline 552减去min_required_confidence_drop 554。
[0107]
由上述等式和图5中的下方标绘图表示的处理可以概括为基于一个或多个先前图像的质量指标(注视置信度值550)设置质量指标基准线(gaze_confidence_baseline552),并基于质量指标基准线(gaze_confidence_baseline 552)设置经验证的眨眼阈值551。
[0108]
在图5的示例中,将经验证的眨眼阈值551设置为以下各值中的较高值:质量指标基准线(gaze_confidence_baseline 552);以及最小的经验证的眨眼阈值水平(min_threshold 553)。以这种方式,经验证的眨眼阈值551不会被设置得如此低以至于由眨眼信号541正确识别的眨眼不会因为早先图像的质量较差而被忽略。
[0109]
同样在图5中,质量指标基准线(gaze_confidence_baseline 552)是基于多个先前图像/帧的质量指标(注视置信度值550)设置的。更具体地,该多个先前图像/帧可以紧接在当前图像之前。在示例标绘图中,gaze_confidence_baseline 552被计算为20个最近的注视置信度值550的中值,但是可以理解,可以在任何数量的早先注视置信度值550上使用其他的数学运算。
[0110]
如上所述,gaze_confidence_baseline 552被描述为注视置信度值550的低通滤波和延迟值。以这种方式,该过程可以被认为是基于多个先前图像的质量指标(注视置信度值550)的加权/滤波组合来设置质量指标基准线(gaze_confidence_baseline 552)。在一些示例中,加权/滤波组合可以设置为0.9倍先前值+0.1倍当前值和5帧的延迟,已发现这对于每秒120帧(fps)的图像刷新率来说表现良好。
[0111]
此外,如将参考下面的附图所讨论的,质量指标基准线(gaze_confidence_baseline552)可以基于一个或多个先前图像的质量指标(注视置信度值550)进行设置,对
于这些先前图像,眨眼信号541指示尚未检测到眨眼。但是,质量指标基准线(gaze_confidence_baseline 552)不基于对其眨眼信号541指示已检测到眨眼的图像的质量指标(注视置信度值550)而更新。
[0112]
图6示出了图5中所示的相同信号的标绘图。同样在图5中示出的图6中的每种信号都以600为系列的对应附图标记给出。在图6中,注视置信度在(未经验证的)眨眼信号641中的眨眼检测之后下降。
[0113]
在图6中,眨眼信号641在第26帧处从假转变为真。在第26帧处,注视置信度值650高于经验证的眨眼阈值651。因此,经验证的眨眼信号644在第26帧处未从假转变为真,因为注视置信度值650尚未降得太低;换言之,质量指标(注视置信度值650)不小于经验证的眨眼阈值651。
[0114]
在图6中的第31帧处,注视置信度值650下降到经验证的眨眼阈值651以下,这导致经验证的眨眼信号644从假转变为真,因为眨眼信号641仍然为真。
[0115]
在该示例中,质量指标基准线(gaze_confidence_baseline 652)以与如上所述相同的方式基于质量指标(注视置信度值650)进行设置,但只有当眨眼信号641指示尚未检测到眨眼时才如此。如果眨眼信号641为真,则质量指标基准线(gaze_confidence_baseline 652)不更新。这是基于:当检测到眨眼时注视置信度值650可能并不可靠,并且因此基准线不应基于相关联的图像而更新。换言之,质量指标基准线(gaze_confidence_baseline 652)不基于对其眨眼信号641指示已检测到眨眼的图像的质量指标(注视置信度值650)而更新。如图6所示,当眨眼信号为真时,经验证的眨眼阈值651在第26帧到第39帧之间具有固定值。
[0116]
在另一示例中,质量指标基准线(gaze_confidence_baseline 652)可以基于存在以下情况的一个或多个先前图像的质量指标(注视置信度值650)进行设置:i)眨眼信号641指示已检测到眨眼,并且ii)质量指标(注视置信度值650)高于基准线更新阈值(未示出)。基准线更新阈值可以与经验证的眨眼阈值651相同或不同。如果基准线更新阈值与经验证的眨眼阈值651相同,则对于图6的示例,这将意味着gaze_confidence_baseline 652将在第26帧到第30帧之间更新,因为注视置信度值650足够高,但经验证的眨眼信号644不为真。
[0117]
图7示出了图5中所示的相同信号的标绘图。同样在图5中示出的图7中的每种信号在700系列中都给出了对应的附图标记。在图7中,注视置信度下降的时间比在(未经验证的)眨眼信号741中的眨眼检测的时间更长。
[0118]
在图7中,可以看出,眨眼信号741从真变为假,以指示在第26帧处(未经验证的)眨眼结束。在该示例中,眨眼信号741的这种转变导致经验证的眨眼信号744立即从真转变为假。以这种方式,如果眨眼信号741指示尚未检测到眨眼,则将经验证的眨眼信号744设置为无眨眼值。这与质量指标(注视置信度值750)是否大于经验证的眨眼阈值751无关(如从图6和图7的标绘图中明显看出)。
[0119]
图8示出了图5中所示的相同信号的标绘图。同样在图5中示出的图8中的每种信号在800系列中都给出了对应的附图标记。在图8中,注视置信度在(未经验证的)眨眼信号841中的眨眼检测之前下降。
[0120]
在图8中,可以看出,注视置信度值850在第21帧处下降到经验证的眨眼阈值851以下。然而,由于眨眼信号841仍然为假,因此这不会触发经验证的眨眼信号844从假变为真。
在第26帧处,眨眼信号841从假转变为真。由于注视置信度值850在第26帧处仍然小于经验证的眨眼阈值851,因此经验证的眨眼信号844也在第26帧处从假转变为真。
[0121]
图8还示出了在注视置信度值850小于经验证的眨眼阈值851和/或经验证的眨眼信号844为真的时间段内(在第21帧到第40帧之间),gaze_confidence_baseline 852是如何不更新的。
[0122]
虽然未在图8中展示,但在一些示例中,如果质量指标(注视置信度值850)大于经验证的眨眼阈值851,则无论眨眼信号841是否指示尚未检测到眨眼,都可以将经验证的眨眼信号844设置为无眨眼值(假)。对于图8的标绘图,这将导致经验证的眨眼信号在第36帧处从真转变为假。这与图4的过程流程一致。
[0123]
图9示出了图5中所示的相同信号的标绘图。同样在图5中示出的图9中的每种信号都以900系列的对应附图标记给出。在图9中,注视置信度基准线太低。
[0124]
在图9中,注视置信度值950始终较低,与眨眼信号的状态无关。这可能是由例如诸如图像曝光差或瞳孔对比度较差(例如,由于图像质量低或用户的某些特征)等众多原因之一引起的,而不一定直接受到是否存在眨眼的影响。此外,造成注视置信度值950(或其他质量指标)低的这类原因不一定是线性的,并且因此无法轻易地对这些原因进行组合以提供总体质量指标值。由于注视置信度值950如此之低,因此经验证的眨眼阈值951在标绘图绘制期间被固定在最小阈值953处。因此,只要眨眼信号941从假转变为真,经验证的眨眼信号944也从假转变为真,因为注视置信度值950已经小于经验证的眨眼阈值951。该功能可能很有用,因为如果没有最小阈值953,可能就无法将经验证的眨眼信号944设置为真。例如,因为经验证的眨眼阈值951如此之低(因为其与已经很低的gaze_confidence_baseline 952仍相差了min_required_confidence_drop),以至于注视置信度值950永远不会下降到该眨眼阈值以下。因此,如果没有最小阈值,则当质量指标已经很低时,真正的眨眼可能不会被注意到。
[0125]
如前面所指示的,本文描述的任何质量指标可以以多种不同方式实施,包括以下单独方式或组合方式中的一种或多种方式。这种组合可以是数学组合或逻辑组合(包括and(与)和or(或))。这种组合也可以是仅针对一只眼睛或针对两只眼睛的质量指标的组合。
[0126]
·
与注视信号相关联的注视质量参数,该注视信号作为应用于当前图像的注视跟踪算法的输出被提供。注视跟踪算法可以包括注视估计流水线中的任何算法,包括瞳孔检测与拟合、闪光匹配、角膜估计、注视映射等;
[0127]
·
作为应用于当前图像的注视跟踪算法的输出被提供的注视信号,可以将该注视信号与一个或多个经验证的眨眼阈值进行比较以确定该注视信号是否超出范围(例如,其已被计算为对于人眼来说不可能的角度,诸如与视场中心成大于35
°
或40
°
的角度);
[0128]
·
与应用于当前图像的瞳孔检测算法的输出相关联的置信度值;
[0129]
·
瞳孔对比度指标,该瞳孔对比度指标表示当前图像中瞳孔与眼睛的其他特征之间的对比度,例如,瞳孔内的像素与瞳孔边缘(通常是虹膜)外的像素之间的强度差;
[0130]
·
瞳孔强度指标,该瞳孔强度指标表示被识别为估计瞳孔的一部分的一些或全部像素的强度。如果这些值(或平均值)较低,通常为10-30(其中,255为白色,0为黑色),则其可能是良好的瞳孔估计值。如果强度值并不高,则可能是出于多种原因,但低强度值可能是良好的瞳孔估计值并且因此表示良好的质量指标。因此,可以使用在瞳孔强度指标减小时
增大的任何函数来计算注视质量指标,以便可以将该注视质量指标与经验证的眨眼阈值进行比较以验证眨眼。如果图像全黑,这可能就不成立了,在这种情况下,可以使用瞳孔对比度指标和瞳孔强度指标的组合来确定是否验证眨眼;
[0131]
·
与当前图像中角膜的确定位置(检测角膜会受眨眼影响的能力)相关联的置信度值;
[0132]
·
噪声值,该噪声值表示在估计的瞳孔位置/半径、角膜位置或视线中噪声水平的测量值。高噪声水平指示低质量。因此,可以使用在噪声值减小时增大的任何函数来计算注视质量指标,以便可以将该注视质量指标与经验证的眨眼阈值进行比较以验证眨眼;以及
[0133]
·
左眼和右眼中每只眼睛的视线之间的角度差。高角度差指示低质量。因此,可以使用在角度差减小时增大的任何函数来计算注视质量指标,以便可以将该注视质量指标与经验证的眨眼阈值进行比较以验证眨眼。
[0134]
关于瞳孔对比度指标的示例,该对比度可能非常低,即,由于眼睛的某个特征,瞳孔与虹膜之间的强度差实际上很低。由于瞳孔对比度的测量方式的性质,瞳孔对比度也可能很低:
[0135]-如果瞳孔估计不正确,则被识别为在瞳孔内的像素实际上可能并不都在实际瞳孔内,并且瞳孔外的像素可能并不都在实际瞳孔外。这通常会导致对比度测量值较低。
[0136]-如果眼睑部分地遮挡住瞳孔,则在测量瞳孔强度时在某些像素位置处将测量的是眼睑强度,而不是瞳孔强度。这也会导致对比度值较低。
[0137]
图10展示了本公开内容的表示为状态机的示例算法。状态机具有三种状态:“睁眼”1060、“可能眨眼”1061以及“经验证的眨眼”1062。状态机使用两个信号作为输入:眨眼检测(真/假),其对应于上述眨眼信号;以及注视置信度(标量值),其对应于上述质量指标/注视置信度值。这两种输入都可以从本领域已知的其他算法获得。
[0138]
该算法的步骤如下:
[0139]
1.处理眨眼检测
[0140]
·
如果眨眼检测为假,则无论何种状态都转到“睁眼”1060。
[0141]
·
如果眨眼检测为真并且状态为“睁眼”1060,则转到“可能眨眼”1061。
[0142]
·
否则什么都不做。
[0143]
2.处理注视置信度值
[0144]
1.如果状态是“可能眨眼”1061并且注视置信度小于阈值(诸如取决于基准线值的经验证的眨眼阈值),则转到“经验证的眨眼”1062。
[0145]
2.如果状态是“睁眼”1060,则使用例如移动平均滤波器更新注视置信度基准线值。可选地:如果状态是“可能眨眼”1061,同样更新注视置信度基准线值。
[0146]
3.(可选的)如果状态是“经验证的眨眼”1062并且注视置信度大于阈值(诸如取决于基准线值的经验证的眨眼阈值),则转到“可能眨眼”1061。如上所述,在某些示例中,可能存在基准线本身必须高于某个限值的明确要求。
[0147]
3.如果状态是“经验证的眨眼”1062,则返回“眨眼”,否则返回“不眨眼”。
[0148]
图11以流程图的形式展示了图10的状态机的功能。
[0149]
图10的状态机和图11的流程图展示了进入“经验证的眨眼”状态(以及因此将经验证的眨眼信号设置为经验证的眨眼值)的处理如何依序执行。换言之,该过程可以包括以下
步骤:
[0150]
首先确定眨眼信号(isblinkdetected)是否指示已检测到眨眼;
[0151]
如果眨眼信号指示已检测到眨眼(即,isblinkdetected为真),则确定质量指标是否小于经验证的眨眼阈值;以及
[0152]
如果质量指标小于经验证的眨眼阈值(即,瞳孔置信度较低/gazeconfidence已降低),则将经验证的眨眼信号设置为经验证的眨眼值(进入“经验证的眨眼”状态)。
[0153]
本文公开的示例可以减少假阳性眨眼检测结果并实现真阳性检测结果与假阳性检测结果之间的更高比率。反过来,这可以允许使用更灵敏的眨眼检测器,从而改善注视点渲染。通过使用质量指标(诸如置信度测量值)来验证或过滤掉(未经验证的)眨眼检测结果,可以去除不会产生任何麻烦的(未经验证的)眨眼检测结果。这对于瞳孔定位器特别有用。过早检测到的(未经验证的)眨眼可以推迟到瞳孔遮挡变得大到足以使瞳孔检测变得不稳定(如以质量因数下降为代表)的时候。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1