一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

眼睛跟踪延迟增强的制作方法

2022-04-25 04:18:38 来源:中国专利 TAG:

眼睛跟踪延迟增强
1.通过引用并入
2.本技术通过引用并入以下每个专利申请的全部内容:2019年7月5日提交的序列号为62/871,009的美国临时专利申请;2019年12月9日提交的序列号为62/945562的美国临时专利申请。
技术领域
3.本公开一般上涉及用于处理眼睛影像并且更特别地用于使用级联形状回归估计包括瞳孔、虹膜或眼睑的详细的眼睛形状模型的系统和方法。


背景技术:

4.人眼的虹膜可用作生物特征信息的来源。生物特征信息可以提供个人的认证或识别。生物特征信息可以另外地或可替代地用于确定眼睛的注视方向。


技术实现要素:

5.描述了用于使用详细的眼睛形状模型的稳健生物特征应用的系统和方法。在一方面,在接收到眼睛的眼睛图像(例如,来自增强现实显示设备上的眼睛跟踪相机)之后,使用级联形状回归方法在眼睛图像中计算眼睛的眼睛形状(例如,上眼睑或下眼睑、虹膜或瞳孔的形状)。然后可以确定与估计的眼睛形状相关的眼睛特征并将其用于生物特征应用,诸如注视估计或生物特征识别或认证(例如,虹膜代码)。级联形状回归方法可以在一组注释的眼睛图像上进行训练,该图像标记例如眼睑、瞳孔、和虹膜的形状。
6.本说明书描述的主题的一个或多个实现方式的细节在附图和以下描述中阐述。其它特征、方面、和优点将从描述、附图、和权利要求中变得显而易见。该发明内容和以下详细描述均不旨在定义或限制本发明主题的范围。
附图说明
7.图1a示意性地说明示出示例眼睛特征的眼睛的示例。
8.图1b示出可用于测量相对于眼睛自然静止状态的眼睛姿势方向的三个角度(例如,偏航、俯仰、和滚动)的示例。
9.图2a示意性地示出可穿戴显示系统的示例。
10.图2b示意性地示出可穿戴显示系统的示例的俯视图。
11.图3是用于从眼睛图像中提取生物特征信息以用于生物特征应用的示例例程的流程图。
12.图4a示意性地示出详细的眼睛形状模型估计的示例进展。
13.图4b示意性地示出详细的眼睛形状模型的示例,其中,已经识别了瞳孔、虹膜、和眼睑的边界。
14.图4c是示出两对形状索引特征的示例的图像。
15.图5示出用于学习回归函数的一组注释的训练图像的示例。
16.图6是用于学习级联形状回归的眼睛形状训练例程的示例的流程图。
17.图7a示意性地示出假边界点的示例。
18.图7b示意性地示出选择性特征检测的示例。
19.图8是包括眼睛跟踪系统的可穿戴系统的示意图。
20.图9是可包括眼睛跟踪系统的可穿戴系统的框图。
21.图10是可包括眼睛跟踪系统的可穿戴系统的框图。
22.图11是示出用于以减少的延迟执行眼睛跟踪的示例过程的流程图。
23.在整个附图中,参考标号可以重新用于指示参考元件之间的对应关系。提供附图以说明在此描述的示例实施例并且不旨在限制本公开的范围。
具体实施方式
24.概述
25.从眼睛提取生物特征信息通常包括用于眼睛图像内的虹膜片段的过程。虹膜片段可以涉及包括以下各项的操作:定位虹膜边界,找到虹膜的瞳孔和角膜缘边界,如果上眼睑或下眼睑遮挡虹膜则定位它们,检测和排除睫毛、阴影或反射的遮挡等。例如,眼睛图像可以被包括在面部图像中或者可以是眼周区域的图像。为了执行虹膜分割,瞳孔的边界(例如,虹膜的内部边界)和角膜缘(例如,虹膜的外部边界)二者都可以被识别为图像数据的单独片段。除了虹膜的该分割之外,还可以估计被眼睑(上眼睑或下眼睑)遮挡的虹膜部分。执行该估计是因为在正常人类活动期间,人的整个虹膜很少可见。例如,整个虹膜通常可能不会没有眼睑的遮挡(例如,在眨眼期间)。
26.眼睑可以被眼睛用来保持眼睛湿润,例如,通过横跨眼睛表面散布眼泪和其它分泌物。眼睑也可用于保护眼睛免受异物的伤害。作为示例,眨眼反射保护眼睛免受急性创伤。作为另一示例,即使当眼睛正在积极地观看世界时,眼睑也可以保护眼睛,例如,通过响应于眼睛指向方向的变化而自动移动。眼睑的此类运动可以最大化眼睛表面的保护,同时避免瞳孔的遮挡。然而,当采用基于虹膜的生物特征测量(诸如虹膜分割)提取生物特征信息时,该运动提出了进一步的挑战。例如,为了使用虹膜分割,可以估计被眼睑遮挡的虹膜的区并从身份验证计算中屏蔽掉,或者在分析期间可以丢弃在眼睑眨眼期间拍摄的图像或给予在眼睑眨眼期间拍摄的图像较低的权重。
27.提取生物度量信息已经提出了挑战,诸如估计被眼睑遮挡的虹膜部分。然而,使用在此描述的技术,可以减轻在提取生物特征信息中提出的挑战。例如,可以通过首先估计眼睛形状来至少部分地减轻挑战。如在此所使用的,眼睛形状包括瞳孔、虹膜、上眼睑或下眼睑的形状(例如,边界)中的一种或多种。在一些实施例中,眼睛形状的该估计可以用作虹膜分割的起点。
28.一旦估计了眼睛形状,就可以更有效和更稳健地执行生物特征应用。例如,在眼睛的某些区域(例如虹膜)中发现的角膜反射(例如亮斑)可用于注视估计。在一些实施例中,眼睛的其它区域(例如,巩膜)中的亮斑可以不用于眼睛注视估计。通过使用在此描述的技术计算详细的眼睛形状模型,可以通过消除搜索整个眼睛(例如,虹膜和巩膜)的需要来更快和更有效地定位所需区域(例如,虹膜)中的亮斑,从而产生更有效和稳健的注视估计。
29.为了获得生物特征信息,存在用于跟踪计算机用户的眼睛运动的算法。例如,耦合到计算机监视器的相机可以提供用于识别眼睛运动的图像。然而,用于眼睛跟踪的相机距离用户的眼睛有一段距离。例如,相机可以被放置在耦合到计算机的用户监视器的顶部。因此,由相机产生的眼睛的图像通常以低分辨率和不同角度产生。因此,从捕获的眼睛图像中提取生物特征信息可能会带来挑战。
30.在可穿戴头戴式显示器(hmd)的上下文中,与耦合到用户监视器的相机相比,相机可以有利地更靠近用户的眼睛。例如,相机可以被安装在可被穿戴hmd上,而hmd本身被放在用户的头上。眼睛与此类相机的靠近度可以导致更高分辨率的眼睛影像。因此,计算机视觉技术可以从用户眼睛中提取视觉特征,特别是在虹膜处(例如,虹膜特征)或在虹膜周围的巩膜中(例如,巩膜特征)。例如,当由眼睛附近的相机观看时,眼睛的虹膜会示出详细的结构。当在红外(ir)照射下观察时,此类虹膜特征可能特别明显,并可用于生物特征应用,诸如注视估计或生物特征识别。这些虹膜特征对于用户来说是唯一的,并且可以以指纹的方式用于唯一地识别用户。眼睛特征可包括眼睛的巩膜中(虹膜外部)的血管,在红光或红外光下观看时也可能显得特别明显。眼睛特征可以进一步包括亮斑和瞳孔的中心。
31.采用在此所公开的技术,详细的眼睛形状估计可用于产生用于检测在生物特征应用(例如,注视估计和生物特征识别)中使用的眼睛特征的更稳健的技术。注视估计的使用对计算机界面的未来具有重要意义。注视估计目前用于主动界面(例如,通过眼睛运动接收指令的界面)和被动界面(例如,基于注视位置修改显示的虚拟现实设备)。由于图像噪声、环境光以及眼睛半闭或眨眼时外观的巨大变化,使用常规的眼睛形状估计技术检测眼睛特征具有挑战性。因此,用于产生用于确定在诸如注视估计或生物特征识别的生物特征应用中使用的眼睛特征的更稳健算法的技术将是有利的。以下公开描述了此类方法。
32.本公开将描述使用级联形状回归技术计算的详细的眼睛形状模型,以及可以将详细的眼睛形状模型用于稳健的生物特征应用的方式。最近,形状回归已成为准确高效的形状对齐的最先进方法。它已成功用于面部、手部、和耳朵形状估计。回归技术是有利的,因为例如它们能够捕获外观的大变化;它们强制标志(例如,眼睑之间的虹膜、虹膜内的瞳孔)之间的形状约束;并且它们的计算效率很高。虽然描述了回归技术,但可以理解,神经网络可以用作回归技术的替代和/或与回归技术组合。例如,可以利用回归的非线性组合并且落在在此公开的范围内。
33.如在此所使用的,视频可以包括但不限于记录一系列视觉图像。视频中的每个图像有时被称为图像帧或帧。视频可以包括具有或不具有音频通道的多个连续帧或非连续帧。视频可以包括多个帧,该帧按时间排序或不按时间排序。因此,视频中的图像可以被称为眼睛图像帧或眼睛图像。
34.眼睛图像的示例
35.图1a示出具有眼睑110、虹膜112、和瞳孔114的眼睛100的图像。曲线114a示出瞳孔114和虹膜112之间的瞳孔边界,并且曲线112a示出虹膜112和巩膜113之间的角膜缘边界(眼睛的“白色”)。眼睑110包括上眼睑110a和下眼睑110b以及睫毛117。眼睛100被示为处于自然静止姿势。例如,静止姿势可以表示用户的面部和注视二者都被取向为朝向用户前方的远处对象的姿势。眼睛100的自然静止姿势可以由自然静止方向180指示,该自然静止方向180可以是在处于自然静止姿势时与眼睛100的表面正交的方向(例如,直接在图1a所示
的眼睛100的平面之外),并且在该示例中,在瞳孔114内居中。
36.眼睛100可以包括可以用于生物特征应用(诸如眼睛跟踪)的虹膜或巩膜(或二者)中的眼睛特征115。图1a示出包括虹膜特征115a和巩膜特征115b的眼睛特征115的示例。眼睛特征115可以被称为个体关键点。此类眼睛特征115对于个体的眼睛可以是唯一的,并且对于该个体的每只眼睛来说可以是有区别的。与虹膜颜色的其余部分相比,或与围绕该点的某个区域相比,虹膜特征115a可以是具有特定颜色密度的点。作为另一示例,可以将虹膜的纹理(例如,与特征附近的虹膜的纹理不同的纹理)或图案识别为虹膜特征115a。作为另一示例,虹膜特征115a可以是在外观上与虹膜112不同的印记。
37.眼睛特征115也可以与眼睛的血管相关联。例如,血管可能存在于虹膜112之外但在巩膜113内。此类血管在红光或红外光照射下可能更明显可见。巩膜特征115b可以是眼睛的巩膜中的血管。
38.另外或可替代地,眼睛特征115可以包括亮斑,该亮斑包括光源(例如,用于注视跟踪或生物特征识别的指向眼睛的ir光源)的角膜反射。在一些情况下,术语眼睛特征可用于指代眼睛中或眼睛上的任何类型的识别特征,无论该特征是在虹膜112、巩膜113中还是通过瞳孔114看到的特征(例如,在视网膜上)。
39.每个眼睛特征115可以与描述符相关联,该描述符可以是围绕眼睛特征115的区的数字表示。描述符也可以被称为虹膜特征表示。作为另一示例,此类眼睛特征可以从以下各项导出:尺度不变特征变换(sift)、加速鲁棒特征(surf)、来自加速段测试(fast)的特征、取向fast和旋转beief(orb)、kaze、加速kaze(akaze)等。
40.因此,眼睛特征115可以从计算机视觉领域已知的算法和技术中导出。此类眼睛特征115可以被称为关键点。在下面描述的一些示例实施例中,眼睛特征将根据虹膜特征来描述。这不是限制,并且可以在其它实现方式中另外地或可替代地使用任何类型的眼睛特征(例如,巩膜特征)。
41.随着眼睛100移动以看向不同的对象,眼睛注视(有时在此也被称为眼睛姿势)将相对于自然静止方向180改变。当前眼睛注视可以参考自然静止眼睛注视方向180来测量。眼睛100的当前注视可以表达为三个角度参数,该三个角度参数指示相对于眼睛的自然静止方向180的当前眼睛姿势方向。为了说明的目的,并参考图1b所示的示例坐标系,这些角度参数可以被表示为α(可以被称为偏航)、β(可以被称为俯仰)和γ(可以被称为滚动)。在其它实现方式中,可以使用用于测量眼睛注视的其它技术或角度表示,例如,任何其它类型的欧拉角系统。
42.可以使用任何适当的过程从视频中获得眼睛图像。例如,可以从一个或多个连续帧中提取图像。眼睛的姿势可以使用各种眼睛跟踪技术从眼睛图像中被确定。例如,可以通过考虑角膜对所提供的光源的透镜效应或通过计算瞳孔或虹膜(相对于表示前视眼睛的圆形)的形状来确定眼睛姿势。
43.使用眼睛形状估计的可穿戴显示系统示例
44.在一些实施例中,显示系统可以是可穿戴的,这可以有利地提供更沉浸式虚拟现实(vr)、增强现实(ar)或混合现实(mr)体验,其中,数字再现的图像或其部分以它们看起来是真实的,或者可能被感知为真实的方式被呈现给佩戴者。
45.不受理论限制,相信人眼通常可以解释有限数量的深度平面以提供深度感知。因
此,可以通过向眼睛提供与这些有限数量的深度平面中的每一个深度平面对应的图像的不同表示来实现对感知深度的高度可信的模拟。例如,包含波导堆叠的显示器可以被配置为被佩戴在用户或观看者的眼前。通过使用多个波导以对应于与特定波导相关联的深度平面的特定角度(以及发散量)将来自图像注入设备(例如,经由一根或多根光纤管道传输图像信息的多路复用显示器的离散显示器或输出端)的光引导至观看者的眼睛,波导堆叠可用于向眼睛/大脑提供三维感知。
46.在一些实施例中,两个波导堆叠(观看者的每只眼睛一个波导)可用于向每只眼睛提供不同的图像。作为一个示例,增强现实场景可能是这样的,即ar技术的佩戴者看到真实世界的公园式环境,该公园式环境以人物、树木、建筑物和混凝土平台为特征。除了这些物品之外,ar技术的佩戴者还可以感知到他“看到”了站在现实世界平台上的机器人雕像,以及似乎是大黄蜂的化身的飞舞的卡通式形象角色,即使机器人雕像和大黄蜂在真实世界中并不存在。一个或多个波导堆叠可用于生成与输入图像相对应的光场,并且在一些实现方式中,可穿戴显示器包括可穿戴光场显示器。在美国专利公开no.2015/0016777中描述了用于提供光场图像的可穿戴显示设备和波导堆叠的示例,该专利在此通过引用以其包含的全部内容并入本文。
47.图2a和图2b示出可用于向佩戴者204呈现vr、ar或mr体验的可穿戴显示系统200的示例。可穿戴显示系统200可被编程为捕获眼睛的图像并执行眼睛形状估计以提供在此所述的应用或实施例中的任一项。显示系统200包括显示器208(例如,可定位在用户的一个或两个眼睛前面),以及支持该显示器208的功能的各种机械和电子模块和系统。显示器208可以被耦合到框架212,该框架212可由显示系统佩戴者或观看者204佩戴并且被配置为将显示器208定位在佩戴者204的眼前。显示器208可以是光场显示器,该光场显示器被配置为在距用户的多个深度平面处显示虚拟图像。在一些实施例中,扬声器216被耦合到框架212并被定位在用户耳道附近,并且在一些实施例中,另一个扬声器(未示出)被定位于用户的另一个耳道附近,以提供立体声/可塑形声音控制。显示器208诸如通过有线引线或无线连接可操作地耦合220到本地数据处理模块224,该本地数据处理模块224可以安装在各种配置中,诸如固定地附接到框架212、固定地附接到由用户佩戴的头盔或帽子,嵌入耳机中,或以其它方式可移除地附接到用户204(例如,在背包式配置中,在皮带耦合式配置中)。
48.如图2b中所示,可穿戴显示系统200可以进一步包括眼睛跟踪相机252a,该眼睛跟踪相机252a被设置在可穿戴显示系统200内并被配置为捕获眼睛100a的图像。显示系统200可以进一步包括光源248a,该光源248a被配置为提供足够的照射以用眼睛跟踪相机252a捕获眼睛100a的眼睛特征115。在一些实施例中,光源248a使用用户不可见的红外光照射眼睛100a,以使得用户不会被光源分散注意力。眼睛跟踪相机252a和光源248a可以是被单独附接到可穿戴显示系统200的单独部件。例如,该部件可以被附接到框架212。在其它实施例中,眼睛跟踪相机252a和光源248a可以是被附接到框架212的单个壳体244a的部件。在一些实施例中,可穿戴显示系统200可以进一步包括第二眼睛跟踪相机252b和第二光源248b,该第二光源248b被配置为照射和捕获眼睛100b的图像。眼睛跟踪相机252a、252b可用于捕获在眼睛形状计算、注视确定和生物特征识别中使用的眼睛图像。
49.再次参考图2a,本地处理和数据模块224可以包括硬件处理器,以及非暂态数字存储器,诸如非易失性存储器,例如闪存,硬件处理器和非暂态数字存储器二者可以用于辅助
数据的处理、缓存和存储。数据包括如下数据:(a)从传感器(其例如可以被可操作地耦合到框架212或以其它方式被附接到佩戴者204)捕获的数据,该传感器为诸如图像捕获设备(诸如相机)、麦克风、惯性测量单元、加速度计、罗盘、gps单元、无线电设备和/或陀螺仪;和/或(b)使用远程处理模块228和/或远程数据存储库232获取和/或处理的数据,这些数据可能用于在此类处理或取得之后传送到显示器208。本地处理和数据模块224可以由通信链路236、240(诸如经由有线或无线通信链路)被可操作地耦合到远程处理模块228和远程数据存储库232,以使得这些远程模块228、232被可操作地彼此耦合并且作为本地处理和数据模块224的可用资源。
50.在一些实施例中,远程处理模块228可以包括一个或多个处理器,该一个或多个处理器被配置为分析和处理数据和/或图像信息,诸如由图像捕获设备捕获的视频信息。视频数据可以被本地存储在本地处理和数据模块224和/或远程数据存储库232中。在一些实施例中,远程数据存储库232可以包括数字数据存储设施,该数字数据存储设施可以通过互联网或“云”资源配置中的其它网络获得。在一些实施例中,所有数据都被存储在本地处理和数据模块224中并且在本地处理和数据模块224中执行所有计算,从而允许从远程模块完全自主地使用。在一些实现方式中,本地处理和数据模块224和/或远程处理模块228被编程为执行如在此所述估计详细的眼睛形状模型的实施例。例如,本地处理和数据模块224或远程处理模块228可以被编程以执行参考下面图3描述的例程300的实施例。本地处理和数据模块224或远程处理模块228可以被编程以使用在此公开的眼睛形状估计技术来执行生物特征应用,例如识别或认证佩戴者204的身份。另外地或替代地,在注视估计或姿势确定中,例如确定每只眼睛注视的方向。
51.图像捕获设备可以捕获用于特定应用的视频(例如,用于眼睛跟踪应用的佩戴者眼睛的视频或用于手势识别应用的佩戴者的手部或手指的视频)。可以通过处理模块224、228中的一个或二者使用眼睛形状估计技术来分析视频。采用该分析,处理模块224、228可以针对稳健的生物特征应用执行眼睛形状估计。作为示例,本地处理和数据模块224和/或远程处理模块228可以被编程以存储从附接到框架212的眼睛跟踪相机252a、252b获得的眼睛图像。此外,本地处理和数据模块224和/或远程处理模块228可以被编程为使用在此描述的眼睛形状估计技术(例如,例程300)来处理眼睛图像,以提取可穿戴显示系统200的佩戴者204的生物特征信息。在一些情况下,将至少一些生物特征信息卸载到远程处理模块(例如,在“云”中)可以提高计算的效率或速度。用于眼睛注视识别的各种参数(例如,权重、偏置项、随机子集采样因子、滤波器的数量和大小(例如,sobel导数算子)等)可以被存储在数据模块224或228中。
52.视频分析的结果(例如,详细的眼睛形状模型)可以被处理模块224、228中的一个或二者用于附加操作或处理。例如,在各种应用中,可穿戴显示系统200可以使用生物特征识别、眼睛跟踪、对象、姿势的识别或分类等。例如,佩戴者的一个或两个眼睛的视频可以用于眼睛形状估计,该眼睛形状估计进而可以由处理模块224、228用来确定佩戴者204通过显示器208的注视方向。可以通过眼睛形状估计的一个或多个实施例对可穿戴显示系统200的处理模块224、228编程以执行在此描述的任何视频或图像处理应用。
53.示例眼睛形状估计例程
54.图3是示例眼睛形状估计例程300的流程图。眼睛形状估计例程300可以由参考图2
描述的本地处理和数据模块224或远程处理模块228和数据存储库232来实现。眼睛形状估计也可以被称为眼睛形状检测或详细的眼睛形状建模。
55.在接收到眼睛图像324时,例程300在框308处开始。可以从各种源接收眼睛图像324,包括例如图像捕获设备、头戴式显示系统、服务器、非暂态计算机可读介质、或客户端计算设备(例如,智能手机)。眼睛图像324可以被可选地从眼睛跟踪相机252a接收。在一些实现方式中,可以从视频(例如,眼睛的视频)中提取眼睛图像324。
56.在框312处,可以从眼睛图像324估计详细的眼睛形状模型400b。在一些实施例中,如下面进一步描述的,可以使用级联形状回归来估计详细的眼睛形状模型400b。
57.在框316处,至少部分地基于在框312中所估计的详细的眼睛形状模型400b,确定眼睛特征115。在一些实施例中,眼睛特征115(其中一些在图像332中被示出)包括瞳孔或角膜缘边界、眼睑边界、亮斑、眼睛关键点、或瞳孔114的中心。眼睛特征115可以进一步包括可以在生物特征应用中使用的任何特征。在框312中所估计的详细的眼睛形状模型400b可以用作在框316处提高特征检测的稳健性的现有知识。
58.在框320处,至少部分地基于在框312和316处所获得的生物特征信息,执行生物特征应用(例如,注视估计或生物特征识别/认证)。在一些实施例中,在框320a处,注视方向可以至少部分地基于在框316处所确定的眼睛特征115估计。另外地或可替代地,在一些实施例中,在框320b处,可以至少部分地基于在框316处所确定的眼睛特征,执行生物特征/认证。生物特征识别或认证可以包括至少部分地基于眼睛图像和所确定的瞳孔和角膜缘边界,确定虹膜代码(例如,基于daugman算法的虹膜代码)。
59.示例眼睛形状估计
60.给定具有初始眼睛形状s0的输入图像i,级联形状回归通过逐步估计形状增量δs来逐步细化形状s。初始形状s0可以表示对眼睛形状(例如,瞳孔、角膜缘和眼睑边界)或默认形状(例如,以眼睛图像i的中心为中心的圆形瞳孔和虹膜边界)的最优猜测。在一般形式中,阶段t处的形状增量δs
t
回归为:
61.δs
t
=f
t

t
(i,s
t-1
))
ꢀꢀꢀ
等式(1)
62.其中,f
t
是阶段t处的回归函数,并且φ
t
是形状索引提取函数。请注意,φ
t
可以取决于输入图像i和前一阶段s
t-1
中的形状。与“非形状索引”特征相比,形状索引提取函数φ
t
可以处理更大的形状变化。可以使用成对的像素比较特征,该特征可以不受全局照射变化的影响。通过将形状增量δs
t
添加到前一阶段s
t-1
中的形状以产生s
t
=s
t-1
δs
t
,回归进入下一阶段t 1。
63.可用于估计眼睛形状的级联形状回归模型的一些示例包括:显式形状回归(esr)、级联姿势回归(cpr)、回归树集合(ert)、监督下降法(sdm)、局部二元特征(lbf)、概率随机森林(prf)、级联高斯过程回归树(cgprt)、粗到细形状搜索(cfss)、随机级联回归copse(r-cr-c)、级联协作回归方法(ccr)、时空级联形状回归(stcsr)或其它级联形状回归方法。
64.图4a示意性地示出详细的眼睛形状模型的示例进展。为简单起见,图4a仅描绘上眼睑110a和下眼睑110b的形状,并且没有示出如图1中所示的虹膜112或瞳孔114的估计形状。然而,虹膜112和瞳孔114的形状可以另外地或可替代地在该阶段被建模(参见例如图4b中的示例结果)。在一些实施例中,初始估计的眼睛形状404可以是与目标形状412相似的任何眼睛形状。例如,可以将初始估计的眼睛形状设定为图像的中心的平均形状。
65.图4a描绘在十一个阶段执行的从初始估计的眼睛形状404到目标形状412的眼睛形状回归。例如,示出了初始(第零)阶段s0、第一阶段s1和第十阶段s
10
。为简单起见,图4a中仅描绘了中间眼睑形状408。在一些实施例中,回归模型可以被编程为在预定的迭代次数(例如,5、10、20、50、100或更多)之后停止。在其它实施例中,回归模型可以继续迭代直到阶段t处的形状增量δs
t
小于阈值。例如,如果相对眼睛形状改变|δs
t
/s
t
|小于阈值(例如,10-2
、10-3
或更小),则回归模型可能终止。在其它实施例中,回归模型可以继续迭代直到阶段t处的形状s
t
与前一阶段的形状s
t-1
之间的差小于阈值。
66.在一些实施例中,详细的眼睛形状模型400b可以包括用于瞳孔、角膜缘或眼睑边界的多个边界点424。边界点424可以分别对应于估计的眼睑形状412、估计的虹膜形状416和估计的瞳孔形状420。边界点424的数量可以在6-100或更多的范围内。在一些实现方式中,详细的眼睛形状模型400b可用于确定接收的眼睛图像是否满足某些标准,例如图像质量。
67.图4b示出完成的眼睛形状模型的示例。该模型可以使用图3中描述的眼睛形状估计例程来确定。例如,完成的眼睛形状模型可以表示在基于已经确定瞳孔、角膜缘和眼睑边界的级联形状回归对眼睛形状进行建模之后框312的结果。这些边界覆盖在眼睛的眼周区域的图像上,以示出计算的边界和下面的眼睛图像之间的匹配。如上所述,与“非形状索引”特征相比,形状索引提取函数φ
t
可以处理更大的形状变化。可以使用成对的像素比较特征,该特征可以不受全局照射变化的影响。
68.图4c是示出两对形状索引特征(例如,460a、460b)的示例的图像。局部坐标系(示为x和y轴450)由当前眼睛形状(例如,眼睑形状462)确定。可以比较来自一对像素位置460a、460b(由带箭头的线连接的方形;示出两对460a、460b此类的像素位置)的强度值以提供二进制特征(例如,诸如0或1的布尔值,指示匹配或不匹配)。例如,位于瞳孔内侧的像素(例如,特征460b中的瞳孔像素)在颜色或对比度上可能比位于瞳孔外侧的像素(例如,用户的虹膜、巩膜或皮肤中的像素(在如图4c所示))更暗。
69.在一些实现方式中,像素位置可以被固定在局部坐标系450中,该局部坐标系450随着回归阶段期间眼睛形状462更新而变化。在一个示例系统中,2500个特征由400个像素位置构成,该像素位置可以从训练数据中学习。下面参考图5更详细地描述从训练数据中学习。
70.用于学习级联形状回归的训练图像的示例
71.在一些实施例中,上述回归函数f
t
和形状索引提取函数φ
t
可以从一组注释的(例如,标记的)训练数据中学习。
72.图5示出训练数据500的示例,其包括来自具有大的形状和外观变化的不同对象的八个示例眼睛图像(索引为(a)至(h))。标记的眼睛图像有利地应该示出来自广泛对象(不同性别、种族等)的广泛眼睛变化(例如,正常睁眼、眨眼、眼睛指向相对于自然静止方向的广泛方向(上、下、左、右)等)。
73.训练数据500被注释以示出要学习的特征。在所示示例中,这些特征可以包括标记在图像中的每个图像上的瞳孔、角膜缘和眼睑边界。可以使用任何适当的瞳孔、角膜缘或眼睑边界技术确定或手动确定训练数据500中的图像中的每个图像中的这些标记边界。
74.各种机器学习算法可用于从注释的训练数据500中学习回归函数f
t
和形状索引提
取函数φ
t
。监督机器学习算法(例如,基于回归的算法)可用于从注释数据500中学习回归函数和形状索引提取函数。可以用于生成此类模型的机器学习算法的一些示例可以包括回归算法(诸如普通最小二乘回归)、基于实例的算法(诸如学习向量量化)、决策树算法(诸如分类和回归树)、贝叶斯算法(诸如朴素贝叶斯)、聚类算法(诸如k均值(k-means)聚类)、关联规则学习算法(诸如先验算法)、人工神经网络算法(诸如感知器)、深度学习算法(诸如,深度玻尔兹曼机(deep boltzmann machine),或深度神经网络)、降维算法(诸如主成分分析)、集成算法(诸如层叠泛化(stacked generalization))或其它机器学习算法。
75.在一些实施例中,一组训练图像可以被存储在图2a所示的远程数据存储库232中。远程处理模块228可以访问训练图像以学习回归函数f
t
和形状索引提取函数φ
t
。本地处理和数据模块224然后可以将回归函数f
t
和形状索引提取函数φ
t
存储在可穿戴设备200上。这减少了对本地处理和数据模块224执行学习回归函数f
t
和形状索引提取函数φ
t
的计算密集过程的需求。
76.在一些实施例中,生物特征信息可以从用户204获取并且存储在本地处理和数据模块224上。然后,可以由本地处理和数据模块224(或远程处理模块228)使用生物特征信息来进一步通过例如无监督学习训练基于用户个性化眼睛形状和特征的回归函数和形状索引提取函数。此类训练使回归模型个性化,以使得其更特别地匹配用户眼睛和眼周区域的特征,从而能够提高准确度和效率。
77.示例眼睛形状训练例程
78.图6是可用于学习回归函数f
t
和形状索引提取函数φ
t
的示例眼睛形状训练例程600的流程图。例如,可以基于一组训练图像(例如,图5所示的图像500),学习该函数。眼睛形状训练例程600可以由处理模块224、228、232和/或一个或多个其它处理器来实现。
79.在访问包括注释的眼睛图像的训练数据(例如,数据500)时,例程600在框608处开始。可以从存储注释的眼睛图像的非暂态数据存储设备中访问训练数据。处理模块可以经由有线或无线技术访问非暂态数据存储设备。
80.在框612处,机器学习技术(例如,用于注释或标记图像的监督学习)用于学习回归函数f
t
和形状索引提取函数φ
t
。然后可以在框616处生成级联形状回归模型。该回归模型使例程300能够在框312处估计详细的眼睛形状模型。如上所述,级联形状回归模型可以通过对可穿戴显示系统200在使用期间获得的用户的眼睛图像进一步训练回归函数和形状索引提取函数来针对特定用户进行个性化。
81.稳健特征检测的示例
82.瞳孔或虹膜的眼睑遮挡
83.图7a示出被眼睑部分地遮挡的瞳孔的边界点424。在使用详细的眼睛形状模型进行稳健特征检测的一个实施例中,可以通过去除假瞳孔边界点704来改进瞳孔检测。示例点704被示为沿上眼睑110a和在瞳孔边界420内的边界点的弧。
84.如图7a所示,在眼睑部分地遮挡瞳孔时,可能会产生假瞳孔边界点704(其中上眼睑110a部分地遮挡瞳孔114)。因此,点704反映眼睑的位置,而不是瞳孔的真实边界(其被眼睑遮挡)。不是包括可能导致生成不准确的瞳孔模型的假边界点704,而是可以在执行瞳孔边界寻找方法之前识别并去除假边界点704。在一些实施例中,假瞳孔边界点704可以是位于上眼睑或下眼睑一定距离内的任何瞳孔边界点。在一些实施例中,假瞳孔边界点704可以
是与上眼睑或下眼睑邻接的任何瞳孔边界点。
85.在一些实施例中,一旦假瞳孔边界点704被识别和去除,椭圆可以使用剩余的瞳孔边界点拟合至瞳孔。可以针对此类椭圆拟合实现的算法包括:积分微分算子算法、最小二乘法算法、随机采样一致性(ransac)算法、或椭圆或曲线拟合算法。
86.应当理解,虽然上述实施例具体参考了假瞳孔边界点,但上述技术也可以应用于识别和去除假角膜缘边界点。
87.在一些实施例中,详细的眼睛形状模型可以与瞳孔边界寻找算法(诸如星爆算法(starburst algorithm))结合使用,该算法可以用于检测许多瞳孔边界点。使用详细的眼睛形状模型的眼睑形状412,使用星爆算法确定的与上眼睑110a或下眼睑110b邻接的边界点被移除,并且剩余的边界点用于拟合瞳孔边界420。在一些实施例中,也可以使用详细的眼睛形状模型来识别与巩膜113邻接的角膜缘边界点。此后,虹膜椭圆416仅使用被确定为与巩膜113邻接的角膜缘边界点来拟合。类似地,瞳孔边界420可仅使用被确定为与虹膜112邻接的瞳孔边界点来拟合。在一些实施例中,详细的眼睛形状模型可以通过基于详细的眼睛形状模型提供更好的瞳孔中心的初始“最优猜测”来提高瞳孔边界寻找算法的稳健性。
88.亮斑检测
89.在常规的注视估计中,瞳孔边界(例如,在一些技术中的椭圆)和亮斑是通过搜索整个眼睛图像来检测的。给定在此描述的详细的眼睛形状模型,通过消除搜索整个眼睛的特征的需求,特征检测可以更快且更有效。在一些实施例中,通过首先识别眼睛的不同区域(例如,巩膜、瞳孔或虹膜),详细的眼睛形状模型可以允许在眼睛的特定区域中进行特征检测(例如,选择性特征检测)。
90.图7b示出选择性特征检测的示例。亮斑115a、115b可出现在巩膜113、虹膜112或瞳孔114中。亮斑115a、115b可表示来自一个或多个光源(例如,led,诸如红外led)的反射。在某些生物特征应用中,可能需要或希望在眼睛的某些区域(例如,表示角膜反射的虹膜)中识别亮斑,同时忽略这些区域之外(例如,巩膜)的亮斑。例如,当在某些技术中确定注视时,位于巩膜113中的巩膜亮斑115b可能不表示来自角膜的光源的反射,并且它们包含在注视技术中会导致估计的注视的不准确度。因此,使用详细的眼睛形状模型来搜索和识别位于虹膜112内或角膜缘边界416内的虹膜亮斑115a可能是有利的。
91.如图7b中所示,虹膜亮斑115a在虹膜112内,并且因此对于注视估计可能是优选的。相反,巩膜亮斑115b出现在巩膜113中,并且因此对于注视估计可能不是优选的。因此,在此公开的技术的实施例可用于识别可能出现亮斑的眼睛区域,并且不需要搜索这些区域之外的眼睛区域,这提高了该技术的准确度、速度和效率。
92.眨眼检测
93.在一些实施例中,通过使用详细的眼睛形状模型来确定接收的眼睛图像是否满足某些质量阈值,特征检测可以更加稳健和有效。例如,详细的眼睛形状模型可用于确定眼睛是否足够张开以估计可靠的眼睛形状并提取特征并执行生物特征应用(例如,注视发现或生物特征认证/识别)。
94.在一些实施例中,可以基于一个或多个质量度量来丢弃眼睛图像。例如,如果上眼睑110a和下眼睑110b之间的距离小于阈值,则眼睛图像被认为不可用并被丢弃,并且因此不提取用于生物特征应用的特征。在一些实施例中,如果上眼睑110a和下眼睑110b分开不
超过5mm,则可以拒绝眼睛图像。在另一实施例中,如果大于某个百分比(例如,大于40%、50%、60%、75%,或者更多)的瞳孔114或虹膜112被眼睑110a、110b中的一个或多个遮挡,则可以拒绝眼睛图像。在另一实施例中,如果多个瞳孔边界点704与上眼睑110a或下眼睑110b邻接,则可以拒绝眼睛图像。例如,如果瞳孔边界点704的大约一半与眼睑110a、110b邻接,则可以断定大约一半的瞳孔114被眼睑遮挡,并且因此,眼睛图像不适合生物特征应用。
95.在其它实施例中,不是拒绝和丢弃眼睛图像,而是在生物特征应用中,与眼睛遮挡较少的眼睛图像(例如,上眼睑110a和下眼睑110b之间的距离大于阈值的图像)相比,眼睛图像被分配更低的权重。
96.眼睛跟踪系统的示例
97.图8示出包括眼睛跟踪系统的可穿戴系统800的示意图。在至少一些实施例中,可穿戴系统800可以包括位于头戴式单元802中的部件和位于非头戴式单元804中的部件。作为示例,非头戴式单元804可以是腰带安装部件、手持部件、背包中的部件、远程部件等。将可穿戴系统800的一些部件合并到非头戴式单元804中可以有助于减小头戴式单元802的大小、重量、复杂性和成本。
98.在一些实现方式中,被描述为由头戴式单元802和/或非头戴式单元804的一个或多个部件执行的一些或全部功能可以通过包括在可穿戴系统800其它地方的一个或多个部件来提供。例如,下面描述的与头戴式单元802的处理器(例如,cpu 812)相关联的一些或全部功能可以通过非头戴式单元804的处理器(例如,cpu 816)来提供,反之亦然。
99.在一些示例中,这些功能中的一些或全部可以通过可穿戴系统800的外围设备来提供。此外,在一些实现方式中,这些功能中的一些或全部可以通过一个或多个云计算设备或其它远程定位的计算设备以与已经在上面参考图2a描述的方式类似的方式来提供。
100.如图8中所示,可穿戴系统800可以包括眼睛跟踪系统,该眼睛跟踪系统包括捕获用户眼睛810的图像的相机252。如果需要,眼睛跟踪系统还可以包括光源848a和848b(诸如发光二极管“led”)。光源848a和848b可以生成亮斑(例如,出现在由相机252捕获的眼睛的图像中的用户眼睛的反射)。光源848a和848b相对于相机252的位置可能是已知的,并且因此,在由相机252捕获的图像内的亮斑的位置可以用于跟踪用户眼睛。
101.在至少一个实施例中,可以存在与用户的一只眼睛810相关联的一个光源848和一个相机252。在另一实施例中,如上面参考图2a描述的示例中的情况,可以存在与用户眼睛810中的每一只眼睛相关联的一个光源848和一个相机252。在另一实施例中,可以存在与用户眼睛810中的一只或每一只眼睛相关联的一个或多个相机252和一个或多个光源848。作为特定示例,可以存在与用户眼睛810中的每一只眼睛相关联的两个光源848a和848b以及一个或多个相机252。作为另一示例,可以存在与用户眼睛810中的每一只眼睛相关联的三个或更多个光源(诸如光源848a和848b)以及一个或多个相机252。
102.眼睛跟踪模块814可以从一个或多个眼睛跟踪相机252接收图像并且可以分析图像以提取各种信息。作为示例,眼睛跟踪模块814可以检测用户眼睛姿势、用户眼睛相对于眼睛跟踪相机252(和头戴式单元802)的三维位置、用户眼睛810中的一只眼睛或两只眼睛被聚焦的方向、用户聚散深度(例如,用户聚焦的距用户的深度)、用户瞳孔的位置、用户角膜和角膜球的位置、用户眼睛中的每只眼睛的旋转的中心,和/或用户眼睛中的每只眼睛的透视的中心。
103.眼睛跟踪模块814可以使用以下描述的技术来提取此类信息。用于提取和使用眼睛跟踪信息的附加系统和技术在2019年1月17日提交的序列号为16/250,931和16/251,017的美国专利申请中提供,出于所有目的,这两个专利申请的全部内容均通过引明确并入本文。在一些实现方式中,用于提取和使用眼睛跟踪信息的一个或多个此类系统和技术可以用作在此描述的一个或多个系统和技术的一部分或与其结合使用。如图8所示,眼睛跟踪模块814可以是使用头戴式单元802中的cpu 812实现的软件模块。
104.来自眼睛跟踪模块814的数据可以提供给可穿戴系统中的其它部件。作为示例,此类数据可以被发送到非头戴式单元804中的部件,诸如cpu 816,该cpu 816包括用于光场渲染控制器818和配准观察器820的软件模块。
105.渲染控制器818可以使用来自眼睛跟踪模块814的信息来调节由渲染引擎822向用户显示的图像。例如,渲染引擎可以表示gpu 830中的软件模块并且可以向显示器208提供图像。渲染控制器818可以基于用户的旋转中心或透视中心,调节显示给用户的图像。特别地,渲染控制器818可以使用关于用户的透视中心的信息来模拟渲染相机(例如,模拟从用户的视角收集图像)并且可以基于模拟渲染相机,调节显示给用户的图像。在序列号为16/250,931的美国专利申请中提供了关于可以由光场渲染控制器818执行的操作的附加细节,该美国专利申请的全部内容通过引用并入本文。
106.有时也称为“针孔透视相机”(或“透视相机”)或“虚拟针孔相机”(或“虚拟相机”)的“渲染相机”是用于在可能根据虚拟世界中的对象数据库渲染虚拟图像内容的模拟相机。对象可以具有相对于用户或佩戴者并且可能相对于围绕用户或佩戴者的环境中的真实对象的位置和取向。换句话说,渲染相机可以表示渲染空间内的视角,用户或佩戴者将从该视角观看渲染空间的3d虚拟内容(例如,虚拟对象)。渲染相机可以由渲染引擎管理以基于待呈现给所述眼睛的虚拟对象的数据库,渲染虚拟图像。
107.虚拟图像可以被渲染为好像是从用户或佩戴者的视角获取的。例如,虚拟图像可以被渲染为好像由具有特定的一组内在参数(例如,焦距、相机像素大小、主点坐标、倾斜/失真参数等)以及特定的一组外在参数(例如,相对于虚拟世界的平移分量和旋转分量)的针孔相机(对应于“渲染相机”)捕获。
108.虚拟图像可以从具有渲染相机的位置和取向(例如渲染相机的外部参数)的此类相机的视角被获取。因此,系统可以定义和/或调节内在和外在的渲染相机参数。例如,系统可以定义一组特定的外在渲染相机参数,以使得可以将虚拟图像渲染为好像从具有关于用户或佩戴者眼睛的特定位置的相机的视角被捕获的一样,以便提供看起来来自用户或佩戴者的视角的图像。
109.系统稍后可以在运行中动态地调节外在渲染相机参数,以便保持与所述特定位置的配准。类似地,可以定义内在渲染相机参数并随时间动态调节该内在渲染相机参数。在一些实现方式中,图像被渲染为好像是从在关于用户或佩戴者眼睛的特定位置(诸如透视中心或旋转中心或其他地方)处具有孔径(例如针孔)的相机的角度捕获的一样。
110.在一些实施例中,系统可以针对用户的左眼创建或动态地重新定位和/或重新取向一个渲染相机,以及针对用户的右眼创建或动态地重新定位和/或重新取向另一个渲染相机,因为用户眼睛是彼此物理分离的并因此被始终定位在不同的位置。因此,在至少一些实现方式中,从与观看者的左眼相关联的渲染相机的视角渲染的虚拟内容可以通过在头戴
式显示器(例如,头戴式单元802)左侧的目镜被呈现给用户。从与用户右眼相关联的渲染相机的视角渲染的虚拟内容可以通过在此类头戴式显示器右侧的目镜被呈现给用户。
111.在题为“methods and systems for detecting and combining structural features in 3d reconstruction(在3d重建中用于检测和组合结构特征的方法和系统)”的美国专利申请no.15/274,823中提供了讨论在渲染过程中渲染相机的创建、调节和使用的更多细节,出于所有目的,该专利申请的全部内容通过引用明确地并入本文。
112.在一些示例中,系统800的一个或多个模块(或部件)(例如,光场渲染控制器818、渲染引擎822等)可以基于用户头部和眼睛的位置和取向(例如,如分别基于头部姿势和眼睛跟踪数据所确定的),在渲染空间内确定渲染相机的位置和取向。也就是说,系统800可以有效地将用户头部和眼睛的位置和取向映射到3d虚拟环境内的特定位置和角度位置处,将渲染相机放置和取向在3d虚拟环境内的特定位置和角度位置处,以及针对用户渲染虚拟内容,像它将被渲染相机捕获的一样。在题为“selecting virtual objects in a three-dimensional space(在三维空间中选择虚拟对象)”的美国专利申请no.15/296,869中提供了讨论真实世界到虚拟世界映射过程的进一步细节,出于所有目的,该专利申请的全部内容通过引用明确地并入本文。
113.作为示例,渲染控制器818可以通过选择在任何给定时间选择哪个或哪些深度平面显示图像来调节显示图像的深度。在一些实现方式中,可以通过调节一个或多个内在渲染相机参数来执行此类深度平面切换。例如,光场渲染控制器818可以在执行深度平面切换或调节时调节渲染相机的焦距。如下面进一步详细描述的,可以基于用户的确定聚散度或注视深度,切换深度平面。
114.配准观察器820可以使用来自眼睛跟踪模块814的信息来识别头戴式单元802是否被正确地定位在用户头部上。作为示例,眼睛跟踪模块814可以提供眼睛位置信息,诸如用户眼睛的旋转中心的位置,其指示用户眼睛相对于相机252和头戴式单元802的三维位置。眼睛跟踪模块814可以使用位置信息来确定显示器208是否被正确对准在用户的视野中,或者头戴式单元802(或头戴式装置)是否已经滑落或以其它方式未与用户的眼睛对齐。
115.作为示例,配准观察器820可以能够确定头戴式单元802是否已经滑下用户的鼻梁。这可能导致显示器208远离用户眼睛并向下移动(这可能是不希望的)。作为另一示例,配准观察器820可以确定头戴式单元802已经向上移动到用户的鼻梁,从而将显示器208更靠近用户的眼睛并向上移动。作为另一示例,配准观察器820可以确定头戴式单元802已经相对于用户的鼻梁向左或向右移位。作为另一示例,配准观察器820可以确定头戴式单元802已经被提升到用户的鼻梁上方。作为另一示例,配准观察器820可以确定头戴式单元802已经以这些或其它方式远离所需位置或位置范围移动。
116.通常,配准观察器820可以能够确定通常是头戴式单元802以及特别是显示器208是否适当地定位在用户眼前。换句话说,配准观察器820可以确定显示系统208中的左显示器是否与用户的左眼适当地对准并且显示系统208中的右显示器是否与用户的右眼适当地对准。配准观察器820可以通过确定头戴式单元802是否被定位和取向在相对于用户眼睛的位置和/或取向的所需范围内来确定头戴式单元802是否被正确地定位。
117.在至少一些实施例中,配准观察器820可以生成警报、消息或其它内容形式的用户反馈。可以向用户提供此类反馈以向用户通知头戴式单元802的任何未对准,以及关于如何
校正未对准的可选反馈(诸如以特定方式调节头戴式单元802的建议)。
118.在2019年1月17日提交的美国专利申请no.16/251,017中描述了可以由配准观察器820使用的示例配准观察和反馈技术,该美国专利申请的全部内容通过引用并入本文。
119.眼睛跟踪模块的示例
120.图9示出示例眼睛跟踪模块814a的详细框图。在一些实现方式中,眼睛跟踪模块814a可以与如上面参考图8描述的系统800的眼睛跟踪模块814相对应。
121.如图9所示,眼睛跟踪模块814a可以包括多种不同的子模块,可以提供多种不同的输出,并且可以将多种可用数据用于跟踪用户的眼睛。作为示例,眼睛跟踪模块814a可以利用包括眼睛跟踪外在和内在的可用数据,诸如眼睛跟踪相机252相对于光源848和头戴式单元802的几何布置;假定的眼睛尺寸904,诸如用户的角膜的曲率中心和用户眼睛的平均旋转中心之间的大约4.7mm的典型距离或用户的旋转中心和透视中心之间的典型距离;以及每个用户的校准数据906,诸如特定用户的瞳孔间距。
122.在2017年4月26日提交的美国专利申请no.15/497,726(代理人案卷号为mleap.023a7)中描述了眼睛跟踪模块814a可以采用的外在信息、内在信息和其它信息的其它示例,该专利申请的全部内容通过引用并入本文。
123.图像预处理模块910可以从诸如眼睛相机252的眼睛相机接收图像并且可以对所接收的图像执行一个或多个预处理(例如,调整)操作。作为示例,图像预处理模块910可以对图像应用高斯模糊。作为另一示例,图像预处理模块910可以将图像下采样到较低分辨率。作为另一示例,图像预处理模块910可以应用非锐化掩模。作为另一示例,图像预处理模块910可以应用边缘锐化算法。作为另一示例,图像预处理模块910r可以应用其它合适的滤波器,该滤波器有助于稍后检测、定位和标记来自眼睛相机252的图像中的亮斑、瞳孔或其它特征。图像预处理模块910可以应用低通滤波器或形态滤波器,诸如开放滤波器,其可以去除诸如来自瞳孔边界516a(见图5)的高频噪声,从而去除可能阻碍瞳孔和亮斑确定的噪声。图像预处理模块910可以将预处理后的图像输出到瞳孔识别模块912和亮斑检测和标记模块914。
124.瞳孔识别模块912可以从图像预处理模块910接收预处理后的图像并且可以识别那些图像的包括用户瞳孔的区域。在一些实施例中,瞳孔识别模块912可以确定来自相机252的眼睛跟踪图像中用户瞳孔的中心或质心的位置的坐标或坐标。
125.在至少一些实施例中,瞳孔识别模块912可以识别眼睛跟踪图像中的轮廓(例如,瞳孔虹膜边界的轮廓)、识别轮廓矩(例如,质心)、应用星爆瞳孔检测和/或canny边缘检测算法,基于强度值拒绝异常值,识别子像素边界点,校正眼睛相机失真(例如,由眼睛相机252捕获的图像中的失真),应用随机采样一致性(ransac)迭代算法以将椭圆拟合到眼睛跟踪图像中的边界,将跟踪滤波器应用于图像,并识别用户瞳孔质心的子像素图像坐标。
126.瞳孔识别模块912可以向亮斑检测和标记模块914输出瞳孔识别数据,该数据可以指示预处理图像模块912的哪些区域被识别为示出用户瞳孔。瞳孔识别模块912可以将每个眼睛跟踪图像内的用户瞳孔的2d坐标(例如,用户瞳孔的质心的2d坐标)提供给亮斑检测模块914。在至少一些实施例中,瞳孔识别模块912还可以将相同种类的瞳孔识别数据提供给坐标系归一化模块918。
127.瞳孔识别模块912可以使用的瞳孔检测技术在2017年2月23日公开的公开号为
2017/0053165的美国专利、2017年2月23日公开的公开号为2017/0053166的美国专利以及2019年3月7日公开的序列号为15/693,975的美国专利申请中描述,这些专利申请中的每一个的全部内容通过引用并入本文。
128.亮斑检测和标记模块914可以接收来自模块910的预处理后的图像和来自模块912的瞳孔识别数据。亮斑检测模块914可以使用该数据来检测和/或识别示出用户瞳孔的预处理后的图像区域内的亮斑(例如,来自光源848的光的用户眼睛的反射)。作为示例,亮斑检测模块914可以搜索眼睛跟踪图像内的明亮区域,在本文中有时被称为“斑点”或局部强度最大值,该区域位于用户瞳孔附近。
129.在至少一些实施例中,亮斑检测模块914可以重新缩放(例如,放大)瞳孔椭圆以包含附加亮斑。亮斑检测模块914可以按大小和/或强度过滤亮斑。亮斑检测模块914还可以确定眼睛跟踪图像内亮斑中的每个亮斑的2d位置。在至少一些示例中,亮斑检测模块914可以确定亮斑相对于用户瞳孔的2d位置,这也可以被称为瞳孔-亮斑向量。亮斑检测和标记模块914可以标记亮斑并将具有标记后的亮斑的预处理图像输出到3d角膜中心估计模块916。亮斑检测和标记模块914还可以传递数据,诸如来自模块910的预处理图像和来自模块912的瞳孔识别数据。
130.在一些实现方式中,亮斑检测和标记模块914可以确定哪个光源(例如,来自包括红外光源848a和848b的系统的多个光源之中)产生每个所识别的亮斑。在这些示例中,亮斑检测和标记模块914可以用识别相关联的光源的信息来标记亮斑,并且将具有标记后的亮斑的预处理图像输出到3d角膜中心估计模块916。在一些实现方式中,亮斑检测和标记模块914可以被配置为利用上面参考图7b描述的一种或多种亮斑检测技术。
131.由诸如模块912和914的模块执行的瞳孔和亮斑检测可以使用任何合适的技术。作为示例,边缘检测可以应用于眼睛图像以识别亮斑和瞳孔。边缘检测可以通过各种边缘检测器、边缘检测算法或滤波器来应用。例如,可将canny边缘检测器应用于图像以检测边缘,诸如图像的线条。边缘可以包括沿着与局部最大导数对应的线条定位的点。例如,瞳孔边界516a(见图5)可以使用canny边缘检测器来定位。
132.随着瞳孔的位置确定,可使用各种图像处理技术来检测瞳孔116的“姿势”。确定眼睛图像的眼睛姿势也可以被称为检测眼睛图像的眼睛姿势。姿势也可以被称为眼睛的注视、指向方向或取向。例如,瞳孔可能正在向左观看对象,并且瞳孔的姿势可以被归类为向左姿势。可以使用其它方法来检测瞳孔或亮斑的位置。例如,可以使用canny edge检测器将同心环定位在眼睛图像中。作为另一示例,积分微分算子可用于找到虹膜的瞳孔或角膜缘边界。例如,daugman积分微分算子、霍夫变换或其它虹膜分割技术可用于返回估计瞳孔或虹膜边界的曲线。
133.3d角膜中心估计模块916可以从模块910、912、914接收包括检测到的亮斑数据和瞳孔识别数据的预处理后的图像。3d角膜中心估计模块916可以使用这些数据来估计用户角膜的3d位置。在一些实施例中,3d角膜中心估计模块916可以估计眼睛的角膜曲率中心或用户角膜球的3d位置,例如,具有通常与用户角膜共同延伸的表面部分的假想球体的中心。3d角膜中心估计模块916可以向坐标系归一化模块918、光轴确定模块922和/或光场渲染控制器818提供指示角膜球和/或用户角膜的估计的3d坐标的数据。
134.在于2019年1月17日提交的美国专利申请no.16/250,931中讨论了用于估计诸如
角膜或角膜球的眼睛特征的位置的技术,其可以被3d角膜中心估计模块916和本公开的可穿戴系统中的其它模块使用,该专利申请的全部内容通过引用并入本文。
135.坐标系归一化模块918可以可选地被包括在眼睛跟踪模块814a中。坐标系归一化模块918可以从3d角膜中心估计模块916接收指示用户角膜的中心和/或用户角膜球的中心的估计的3d坐标的数据,并且还可以从其它模块接收数据。坐标系归一化模块918可以对眼睛相机坐标系进行归一化,这可以帮助补偿可穿戴设备的滑动。例如,滑动可以包括头戴式部件从其在用户头部的正常静止位置的滑动,这可以由配准观察器820识别。
136.坐标系归一化模块918可以旋转坐标系以使坐标系的z轴(例如,聚散深度轴)与角膜中心(例如,如由3d角膜中心估计模块916所指示的)对准。模块918还可以将相机中心(例如,坐标系的原点)平移到距角膜中心预定距离处。示例距离可包括25mm、30mm、35mm等。例如,模块918可以取决于眼睛相机252被确定为比预定距离更近还是更远来放大或缩小眼睛跟踪图像。采用该归一化过程,眼睛跟踪模块814a可以能够在眼睛跟踪数据中建立一致的取向和距离,相对独立于用户头部上的头戴装置定位的变化。
137.坐标系归一化模块918还可以向3d瞳孔中心定位模块920提供角膜(和/或角膜球)的中心的3d坐标、瞳孔识别数据和预处理后的的眼睛跟踪图像。在美国专利申请no.16/250,931中提供了可以由坐标系归一化模块918执行的操作的细节,该专利申请的全部内容通过引用并入本文。
138.3d瞳孔中心定位模块920可以接收归一化或非归一化坐标系中的数据,包括用户角膜(和/或角膜球)的中心的3d坐标、瞳孔位置数据和预处理后的眼睛跟踪图像。3d瞳孔中心定位模块920可以分析此类数据以确定用户瞳孔中心在归一化或非归一化眼睛相机坐标系中的3d坐标。3d瞳孔中心定位模块920可以基于以下各项,确定用户瞳孔在三维中的位置:瞳孔质心的2d位置(例如,由模块912确定的)、角膜中心的3d位置(例如,由模块916确定的)、假设的眼睛尺寸904(诸如典型用户的角膜球的大小和从角膜中心到瞳孔中心的典型距离),和/或诸如角膜的折射率(相对于空气的折射率)的眼睛的光学特性或其任何组合。在美国专利申请no.16/250,931中提供了可以由3d瞳孔中心定位模块920执行的操作的进一步细节,该专利申请的全部内容通过引用并入本文。
139.光轴确定模块922可以从模块916和920接收指示用户角膜中心和用户瞳孔中心的3d坐标的数据。基于此类数据,光轴确定模块922可以识别从角膜中心的位置(例如,从角膜球的中心)到用户瞳孔的中心的向量,这可以定义用户眼睛的光轴。作为示例,光轴确定模块922可以向模块924、928、930和932提供指定用户光轴的输出。
140.旋转中心(cor)估计模块924可以从模块922接收数据,包括用户眼睛的光轴的参数(例如,指示在与头戴式单元802具有已知关系的坐标系中的光轴方向的数据)。例如,cor估计模块924可以估计用户眼睛的旋转中心。旋转中心可以指示用户眼睛围绕其旋转的点(例如,当用户眼睛向左、向右、向上和/或向下旋转时)。虽然眼睛可能不会完美地围绕奇异点旋转,但在一些实施例中,假设奇异点可能就足够了。在一些实施例中,可以考虑附加点。
141.在至少一些实施例中,cor估计模块924可以通过从瞳孔的中心(例如,由模块920识别的)或角膜的曲率中心(例如,由模块916识别的)沿着光轴(例如,由模块922识别的)朝向视网膜移动特定距离来估计眼睛的旋转中心。该特定距离可以是假定的眼睛尺寸904。作为一个示例,角膜的曲率中心和cor之间的特定距离可以是大约4.7mm。对于特定用户,该距
离可基于任何相关数据(包括用户的年龄、性别、视力处方(prescription)、其它相关特征等)而变化。在美国专利申请no.16/250,931中提供了将4.7mm的值作为角膜的曲率中心与cor之间距离的估计值的附加讨论,该专利申请的全部内容通过引用并入本文。
142.在至少一些实施例中,cor估计模块924可以随时间推移细化其对用户眼睛中的每只眼睛的旋转中心的估计。作为示例,随着时间推移,用户最终会旋转他们的眼睛(例如,观看其它地方,观看更近、更远的地方,或者有时向左、向右、向上或向下观看),从而导致他们眼睛中的每只眼睛的光轴上的移位。cor估计模块924然后可以分析由模块922识别的两个(或更多个)光轴并且定位那些光轴的3d交点。cor估计模块924然后可以确定旋转中心所处的那个3d交点。此类技术可以提供对旋转中心的估计,其准确度随着时间推移而提高。
143.可以采用各种技术来提高cor估计模块924以及所确定的左眼和右眼的cor位置的准确度。作为示例,cor估计模块924可以通过找到针对各种不同眼睛姿势随时间推移确定的光轴的平均交点来估计cor。作为另一示例,模块924可以过滤或平均随时间推移所估计的cor位置。作为另一示例,模块924可以计算随时间推移估计的cor位置移动平均值。作为另一示例,模块924可以应用卡尔曼滤波器和眼睛的已知动态以及眼睛跟踪系统来随时间推移估计cor位置。
144.在一些实现方式中,可以采用最小二乘法来确定光轴的一个或多个交点。在此类实现方式中,系统可以在给定时间点将与给定一组光轴的距离平方的和最小化的位置识别为光轴交点。作为具体示例,模块924可以计算所确定的光轴交点和假定的cor位置(诸如距眼睛的角膜曲率中心4.7mm)的加权平均值,以使得随着获得了用户的眼睛跟踪数据并且从而使每个用户能够对cor位置进行细化,随时间推移确定的cor可能从假定的cor位置(例如,眼睛的角膜曲率中心后面4.7mm)缓慢漂移到用户眼睛内的稍微不同的位置。
145.在某些条件下(例如,基本上理想的),用户眼睛的真实cor相对于hmd的3d位置应该随着用户移动他们的眼睛(例如,随着用户眼睛围绕其旋转中心旋转)而随时间推移改变可忽略不计或最小的量。例如,对于给定的一组眼睛运动,假设用户眼睛的真实cor的3d位置(例如,相对于hmd)随时间的变化应该比沿着用户眼睛的光轴的任何其它点小。因此,沿着光轴的点离用户眼睛的真实cor越远,随着用户移动眼睛,其3d位置随时间推移而表现出的变化或变异就越大。在一些实施例中,cor估计模块924和/或眼睛跟踪模块814a的其它子模块可以利用该统计关系来提高cor估计准确度。在此类实施例中,cor估计模块924和/或眼睛跟踪模块814a的其它子模块可以通过识别具有低变化(例如,低方差或标准差)的cor估计的变化来随时间推移细化它们对cor 3d位置的估计。
146.作为第一示例并且在cor估计模块924基于多个不同光轴(例如,每个光轴与观看不同方向的用户相关联)的交点来估计cor的实施例中,cor估计模块924可以通过在光轴中的每个光轴的方向上引入公共偏移(例如,将每个轴位移某个均匀量)并确定偏移光轴是否在具有低变化(例如,低方差或标准差)的相交点处彼此相交来利用该统计关系(例如,真实的cor应该具有低变化。这可以校正计算光轴方向时的轻微系统误差,并有助于细化cor的估计位置以更接近真实的cor。
147.第二示例是关于cor估计模块924通过沿光轴或其它轴移动特定距离(例如,诸如角膜的曲率中心和cor之间的距离)来估计cor的实施例。对于该第二示例,系统可以以减小或最小化估计的cor位置的变化(例如方差和/或标准差)的方式随时间推移改变、优化、调
整或以其它方式调节角膜的曲率中心和cor之间的特定距离(例如,对于在不同时间捕获的大量眼睛图像)。
148.例如,如果cor估计模块924最初使用4.7mm的特定距离值(例如,从角膜的曲率中心并沿光轴)来获得cor位置估计,但给定用户眼睛的真实cor可能被定位于眼睛的角膜的曲率中心后面4.9mm处(例如,沿光轴),则由cor估计模块924获得的一组初始cor位置估计可能表现出相对高的变化量(例如方差或标准差)。响应于检测到此类相对高的变化量(例如,方差或标准差),cor估计模块924可以确定沿光轴具有较低变化量(例如方差或标准差)的一个或多个点。因此,模块924可将4.9mm距离识别为具有最低变化(例如,方差或标准差),并因此可将所使用的特定距离值调节为4.9mm。
149.响应于检测到当前cor估计具有相对高的变化量(例如,方差或标准差),cor估计模块924可以确定具有较低变化(例如,方差和/或标准差)的替代cor估计。理所当然地,模块924还可以在获得初始cor估计之后确定具有较低变化(例如,方差或标准差)的替代cor估计。在一些示例中,此类优化/调节可以随时间推移逐渐发生,而在其它示例中,此类优化/调节可以在初始用户校准会话期间进行。在校准过程期间进行此类过程的示例中,cor估计模块924可能最初不订阅/遵守任何假定的特定距离,而是可以随时间推移收集一组眼睛跟踪数据,对该一组眼睛跟踪数据执行统计分析,并基于统计分析确定产生具有最小可能变化(例如,方差或标准差)量(例如,全局最小值)的cor位置估计的特定距离值。
150.在美国专利申请no.16/250,931中提供了对上述统计关系的附加讨论(例如,真实的cor应该具有低的方差或标准差),以及在确定瞳孔位置时考虑角膜屈光的重要性,该专利申请的全部内容通过引用并入本文。
151.瞳孔间距(ipd)估计模块926可以从cor估计模块924接收指示用户左眼和右眼的旋转中心的估计的3d位置的数据。ipd估计模块926然后可以通过测量用户左眼和右眼的旋转中心之间的3d距离来估计用户的ipd。通常,在用户正观看接近光学无穷远时,用户左眼的估计cor和用户右眼的估计cor之间的距离可能大致等于用户瞳孔的中心之间的距离。例如,这可以指用户眼睛的光轴基本上彼此平行。这可以参考瞳孔间距(ipd)的典型定义。
152.用户的ipd可以由可穿戴系统中的各种部件和模块使用。作为示例,可以将用户的ipd提供给配准观察器820并用于评估可穿戴设备与用户眼睛如何良好地对准(例如,左右显示镜片是否根据用户的ipd适当间隔开)。作为另一示例,用户的ipd可以被提供给聚散深度估计模块928并且用于确定用户的聚散深度。模块926可以采用各种技术,诸如结合cor估计模块924讨论的那些技术,以提高估计的ipd的准确度。作为示例,ipd估计模块924可以应用包括假定的ipd距离、卡尔曼滤波器的滤波、随时间推移平均、加权平均等,作为以准确方式估计用户的ipd的一部分。
153.聚散深度估计模块928可以从眼睛跟踪模块814a中的各种模块和子模块接收数据(如结合图9所示)。特别地,聚散深度估计模块928可以采用指示估计的瞳孔中心的3d位置的数据(例如,如由上述模块920提供的)、一个或多个确定的光轴参数(例如,如由上述模块922提供的)、估计的旋转中心的3d位置(例如,如由上述模块924提供的)、估计的ipd(例如,估计的旋转中心的3d位置之间的一个或多个欧几里得距离)(例如,如由上述模块926提供的),和/或一个或多个确定的光轴和/或视轴参数(例如,如由下面描述的模块922和/或模块930提供的)。
154.聚散深度估计模块928可以检测或以其它方式获得用户聚散深度的度量。聚散深度可以指示用户眼睛聚焦的距用户的距离。作为示例,在用户注视其前方三英尺的对象时,用户的左眼和右眼的聚散深度为三英尺。作为另一个示例,在用户正在注视远处的风景时,用户的左眼和右眼具有无穷大的聚散深度。在该示例中,用户眼睛的光轴可以基本上彼此平行,以使得用户瞳孔的中心之间的距离可以大致等于用户左眼和右眼的旋转中心之间的距离。
155.在一些实现方式中,聚散深度估计模块928可以利用指示估计的用户的瞳孔中心的数据(例如,如由模块920提供的)来确定估计的用户瞳孔的中心之间的3d距离。聚散深度估计模块928可以通过将此类确定的瞳孔中心之间的3d距离与估计的ipd(例如,估计的旋转中心的3d的位置之间的欧几里得距离)进行比较来获得聚散深度的度量。
156.除了瞳孔中心和估计的ipd之间的3d距离之外,聚散深度估计模块928可以利用已知的、假设的、估计的和/或确定的几何形状来计算聚散深度。作为示例,模块928可以在三角计算中组合瞳孔中心之间的3d距离、估计的ipd和3d cor位置以估计(例如,确定)用户的聚散深度。在一些实施例中,根据估计的ipd对此类确定的瞳孔中心之间的3d距离的评估可用于指示用户当前聚散深度相对于光学无穷远的度量。在一些示例中,聚散深度估计模块928可以接收或访问指示估计的用户瞳孔的中心之间的估计3d距离的数据,以便获得此类聚散深度度量。
157.在一些实施例中,聚散深度估计模块928可以通过比较用户的左光轴和右光轴来估计聚散深度。特别地,聚散深度估计模块928可以通过定位距用户的距离来估计聚散深度,在该距离处用户的左光轴和右光轴相交(或者用户的左光轴和右光轴在诸如水平面的平面上的投影相交)。通过将零深度设定为用户的左光轴和右光轴被用户的ipd分开的深度,模块928可以在该计算中利用用户的ipd。在至少一些实施例中,聚散深度估计模块928可以通过对眼睛跟踪数据和已知或导出的空间关系一起进行三角测量来确定聚散深度。
158.在一些实施例中,与如上所述的光轴相比,聚散深度估计模块928可以基于用户的视轴的交点来估计用户的聚散深度。这可以提供用户聚集的距离的更准确的指示。
159.在至少一些实施例中,眼睛跟踪模块814a可以包括光轴到视轴映射模块930。如结合图10更详细所讨论的,用户的光轴和视轴通常不对准。视轴是人正在观看的轴,而光轴由人的晶状体和瞳孔的中心定义,并且可能穿过人视网膜中心。特别地,用户的视轴通常由用户的中央凹的位置定义,该位置可能偏离用户视网膜的中心,从而导致不同的光轴和视轴。在这些实施例中的至少一些实施例中,眼睛跟踪模块814a可以包括光轴到视轴映射模块930。光轴到视轴映射模块930可以校正用户的光轴和视轴之间的差并且将关于用户视轴的信息提供给可穿戴系统中的其它部件,诸如聚散深度估计模块928和光场渲染控制器818。
160.在一些示例中,模块930可以使用假设的眼睛尺寸904,包括在光轴和视轴之间向内(鼻侧,朝向用户的鼻子)的大约5.2
°
的典型偏移。换句话说,模块930可将用户的左光轴(鼻侧)向右朝向鼻子移位5.2
°
,并将用户的右光轴(鼻侧)向左朝向鼻子移位5.2
°
,以便估计用户左光轴和右光轴的方向。在其它示例中,模块930可以将每用户校准数据906用于将光轴(例如,如由上述模块922所指示的)映射到视轴。作为附加示例,模块930可以将用户的光轴在鼻侧移位以下范围:4.0
°
和6.5
°
之间、4.5
°
和6.0
°
之间、5.0
°
和5.4
°
之间等,或者由这些值中的任何一个形成的任何范围。在一些布置中,模块930可以至少部分地基于特定用
户的特征(诸如他们的年龄、性别、视力处方或其它相关特征),施加位移和/或可以至少部分地基于特定用户的校准过程(例如,用于确定特定用户的光轴-视轴偏移),施加位移。在至少一些实施例中,模块930还可以移位左光轴和右光轴的原点以对应于用户的cop(如由模块932确定的)而不是用户的cor。
161.可选的视角中心(cop)估计模块932在被提供时可以估计用户的左视角中心(cop)和右视角中心(cop)的位置。cop可以是可穿戴系统的有用位置,并且在至少一些实施例中,是恰好在瞳孔前面的位置。在至少一些实施例中,cop估计模块932可以基于用户瞳孔中心的3d位置、用户角膜曲率中心的3d位置或此类合适的数据或其任何组合,估计用户的左透视中心和右透视中心的位置。作为示例,沿着光轴或视轴,用户的cop可能在角膜曲率的中心前方大约5.01mm处,并且可能在用户角膜的外表面后方大约2.97mm处。5.01mm可以表示在朝向眼睛角膜并且沿着光轴的方向上距角膜球中心的距离。用户的视角中心可能恰好在他们瞳孔的中心的前面。作为示例,用户的cop可以距用户瞳孔小于约2.0mm,距用户瞳孔小于约1.0mm,或距用户瞳孔小于约0.5mm,或这些值中任一项之间的任何范围。作为另一示例,透视中心可以对应于眼睛前房内的位置。作为其它示例,cop可以在1.0mm和2.0mm之间、大约1.0mm、在0.25mm和1.0mm之间、在0.5mm和1.0mm之间,或在0.25mm和0.5mm之间。
162.在此所述的透视中心(作为渲染相机的针孔的潜在期望位置和用户眼睛中的解剖位置)可以是用于减少和/或消除不期望的视差位移的位置。具体地,用户眼睛的光学系统可以大致相当于由镜头前的针孔形成的理论系统,投影到屏幕上,针孔、镜头和屏幕大致分别对应于用户的瞳孔/虹膜、晶状体和视网膜。此外,在距用户眼睛不同距离的两个点光源(或对象)围绕针孔的开口刚性旋转(例如,沿曲率半径旋转等于它们距针孔开口的相应距离)时,可能需要很少或没有视差位移。
163.因此,看起来cop应该位于眼睛的瞳孔的中心(并且在一些实施例中可以使用此类cop)。然而,除了瞳孔的晶状体和针孔外,人眼还包括角膜,该角膜赋予朝向视网膜传播的光附加的光焦度)。因此,本段中描述的理论系统中针孔的解剖等效物可能是位于用户的眼睛角膜的外表面与用户的眼睛的瞳孔或虹膜中心之间的用户的眼睛的区域。例如,针孔的解剖等效物可能对应于用户眼睛的前房内的区域。由于在此讨论的各种原因,可能希望将cop设定到用户眼睛的前房内的此类位置。cop的推导和意义在美国专利申请no.16/250,931中描述,该专利申请的全部内容通过引用并入本文。
164.如上所讨论,眼睛跟踪模块814a可以向可穿戴系统中的其它部件(诸如光场渲染控制器818和配准观察器820)提供数据,诸如估计的左眼和右眼旋转中心(cor)的3d位置、聚散深度、左眼和右眼光轴、用户眼睛的3d位置、用户左角膜曲率和右角膜曲率的中心的3d位置、用户左瞳孔中心和右瞳孔中心的3d位置、用户左透视中心和右透视中心的3d位置、用户的ipd等。眼睛跟踪模块814a还可以包括检测和生成与用户眼睛的其它方面相关联的数据的其它子模块。作为示例,眼睛跟踪模块814a可以包括每当用户眨眼时提供标志或其它警报的眨眼检测模块和每当用户的眼睛扫视时提供标志或其它警报的扫视检测模块(例如,快速将焦点移位到另一点)。
165.图10示出示例眼睛跟踪模块814b的框图。在一些实现方式中,眼睛跟踪模块814b可以对应于如上面参考图8所述的系统800的眼睛跟踪模块814。如图10所示,眼睛跟踪模块814b可以包括多种不同的子模块,可以提供多种不同的输出,并且可以将多种可用数据用
于跟踪用户的眼睛。更具体地,眼睛跟踪模块814b可以包括深度分割网络1007(例如,一个或多个机器学习模型)、轮廓确定模块1009、质心确定模块1011、瞳孔识别模块1012、亮斑检测和标记模块1014、3d角膜中心估计模块1016、3d瞳孔中心定位模块1020、光轴确定模块1022、cor估计模块1024、光轴到视轴映射模块1030和聚散深度估计模块1032。在一些实现方式中,由图10中的子模块1012、1014、1016、1020、1022、1024、1030和1032中的一个或多个子模块执行的操作可以分别对应于如上面参考图9所述的由子模块912、914、916、920、922、924、930和932中的一个或多个子模块执行的操作中的至少一些操作。在一些示例中,眼睛跟踪模块814b可以包括一个或多个附加子模块,该一个或多个附加子模块被配置为执行以上参考图9描述的操作中的一个或多个操作。
166.在一些实现方式中,深度分割网络1007可以对应于神经网络或其它模型,该神经网络或其它模型被训练为或以其它方式被配置为执行以上参考图1a-7b所述的眼睛图像分割操作中的一个或多个眼睛图像分割操作。示例神经网络可以包括全连接神经网络、卷积神经网络等。因此,深度分割网络1007可以从眼睛相机252接收用户眼睛的图像作为输入,并且可以将眼睛图像片段数据作为输出提供给轮廓确定模块1009。轮廓确定模块1009可以例如基于由深度分割网络1007生成的眼睛图像片段数据,识别用户眼睛的巩膜、虹膜和/或瞳孔的轮廓或边界。该信息在此也可以被称为虹膜片段数据和/或瞳孔片段数据。在一些实现方式中,轮廓确定模块1009可以向亮斑检测和标记模块1014提供指示所确定的用户虹膜的轮廓的数据。另外,在一些示例中,轮廓确定模块1009可以向质心确定模块1011输出指示所确定的用户瞳孔的轮廓的数据。
167.在由轮廓确定模块1009将指示所确定的虹膜的轮廓的数据作为输入提供给亮斑检测和标记模块1014的实现方式中,在一些示例中,亮斑检测和标记模块1014可以利用此类数据来削减亮斑的搜索空间。更具体地,在一些示例中,亮斑检测和标记模块1014可以基于从轮廓确定模块1009接收的数据,识别从眼睛相机252接收的给定眼睛图像的特定区域,并且搜索识别的特定区域内亮斑的存在。例如,识别的此类特定区域可以至少部分地对应于虹膜的区域。在一些实现方式中,亮斑检测和标记模块1014可以将其对亮斑的搜索限制于此类区域,以使得给定眼睛图像的其他区域被有效地从眼睛亮斑的搜索中排除和/或完全丢弃。因此,亮斑检测和标记模块1014可以能够通过利用由轮廓确定模块1009提供的指示所确定的虹膜的轮廓的数据,以更快和/或计算量更少的方式检测和标记亮斑。
168.如以下参考图11更详细描述的,在一些示例中,亮斑检测和标记模块1014可以利用指示所确定的虹膜的轮廓的数据,如由轮廓确定模块1009基于一个眼睛图像所确定的,以在一个或多个随后接收的眼睛图像中识别特定区域。换句话说,在一些示例中,亮斑检测和标记模块1014可以基于指示如由轮廓确定模块1009提供的由眼睛相机252捕获的第(n-1)个眼睛图像中确定的虹膜的轮廓的数据,在由眼睛相机252捕获的第n个眼睛图像中识别特定区域。给定眼睛图像分割可以是相对计算密集的和时间密集的,以该方式将子模块1007、1009和1011的操作与眼睛跟踪模块的其它子模块814b解耦可以用来减少整体系统延迟。
169.如上所述,在一些示例中,轮廓确定模块1009可以将指示确定的用户瞳孔的轮廓的数据输出到质心确定模块1011。质心确定模块1011进而可以使用此类数据来确定瞳孔的轮廓矩、质量中心或质心。在一些实现方式中,质心确定模块1011可以向瞳孔识别模块1012
提供指示用户瞳孔的质心的数据。在此类实现方式中,在一些示例中,瞳孔识别模块1012可以利用此类数据来提供用于在给定眼睛图像中识别瞳孔的起点。例如,瞳孔识别模块1012可以基于从轮廓确定模块1009接收的数据,在从眼睛相机252接收的给定眼睛图像中识别特定位置,并且从所识别的位置向外搜索瞳孔边界的存在(例如,使用星爆算法)。
170.在采用星爆算法的示例中,瞳孔识别模块1012可以使用上述所识别的位置作为发起星爆的位置(例如,突发(burst)的起源)。并且,如下面参考图11更详细描述的,在一些示例中,瞳孔识别模块1012可以利用指示如由质心确定模块1011基于一个眼睛图像所确定的瞳孔的质心的数据来识别一个或多个随后接收的眼睛图像中的特定位置。换句话说,在一些示例中,瞳孔识别模块1012可以基于指示如由质心确定模块1011提供的由眼睛相机252捕获的第(n-1)个眼睛图像中确定的瞳孔的质心的数据,识别由眼睛相机252捕获的第n个眼睛图像中的特定位置。在此类示例中,瞳孔识别模块1012随后可以从第n个眼睛图像中识别的特定位置向外搜索第n个眼睛图像中瞳孔边界的存在/位置(例如,使用星爆算法)。如上所述,可以通过以该方式将子模块1007、1009和1011的操作与眼睛跟踪模块814b的其它子模块解耦来实现延迟节省。
171.图11是示出用于以减少的延迟执行眼睛跟踪的示例过程1100的流程图。过程1100可以由在此描述的可穿戴显示系统的实施例例如使用上面参考图10描述的眼睛跟踪模块814b执行。在过程1100的各种实现方式中,下面描述的框可以以任何合适的次序或顺序执行,并且可以组合或重新排列框,或者可以添加其它框。
172.在一些实现方式中,过程1100可以由头戴式系统执行,该头戴式系统包括:被配置为捕获用户的眼睛的图像的一个或多个相机;被配置为以在由一个或多个相机所捕获的用户的眼睛的图像中产生亮斑的方式照射用户的眼睛的多个光源(例如,红外光源);以及被耦合到一个或多个相机的一个或多个处理器。在至少一些此类实现方式中,过程1100的一些或所有操作可以至少部分地由系统的一个或多个处理器执行。
173.在框1102至1106(例如,框1102、1104和1106)处,过程1100可以获得由眼睛跟踪相机捕获的第一眼睛图像开始。作为示例,这可以对应于眼睛跟踪模块814b的一个或多个子模块在新的眼睛跟踪会话开始时从眼睛跟踪相机252获得用户眼睛的图像。例如,可以响应于hmd被打开或启动特定应用来发起此类新的眼睛跟踪会话。
174.在框1108处,过程1100包括确定在框1106处所获得的眼睛图像是否表示在框1102处的过程1100的发起之后所捕获和获得的第一眼睛图像。假设在该情况下,框1108的操作在框1102至1106之后立即执行,在该情况下,过程1100可以包括确定在框1106处所获得的眼睛图像确实表示在框1102处的过程1100的发起之后所捕获和获得的第一眼睛图像。因此,在该情况下,过程1100可以进行到框1110和1120。在一些实现方式中,过程1100可以包括同时进行到框1110和1120。
175.在框1110处,过程1100可以包括使用深度分割网络分割第一眼睛图像。这可以例如对应于眼睛跟踪模块814b的深度分割网络1007,如上面参考图10所述,使用以上参考图1a-7b描述的技术中的一种或多种技术来分割眼睛图像。
176.在框1112处,过程1100可以包括在第一眼睛图像中确定分割的虹膜和瞳孔的轮廓。这可以例如对应于眼睛跟踪模块814b的轮廓确定模块1009,如上面参考图10所述,基于由深度分割网络1007生成的数据,在眼睛图像中识别虹膜和瞳孔的轮廓。
177.在框1114处,过程1100可以包括基于所确定的分割的瞳孔的轮廓,在第一眼睛图像中确定分割的瞳孔的质心。作为示例,这可以对应于眼睛跟踪模块814b的质心确定模块1011,如上面参考图10所述,基于由轮廓确定模块1009提供的数据,在眼睛图像中确定分割的瞳孔的轮廓矩、质量中心或质心。
178.在框1120和1108处,过程1100可以包括获得由眼睛跟踪相机捕获的第二眼睛图像。如上所述,在一些实现方式中,与框1120和1108相关联的操作可以与与框1110至1114相关联的操作中的一个或多个操作同时执行。在框1108处,过程1100包括确定在框1106处获得的眼睛图像是否表示在框1102处过程1100发起之后捕获和获得的第一眼睛图像。假设在该情况下,框1108的操作可以在框1120和1106的操作之后执行(例如,紧随其后),在该情况下,过程1100可以包括确定获得的最新眼睛图像不表示在框1102处过程1100的发起之后捕获和获得的第一眼睛图像。因此,在该情况下,过程1100可以进行到框1109和1110。在一些实现方式中,过程1100可以包括同时进行到框1109和1110。
179.在框1109处,过程1100可以包括基于第一眼睛图像中确定的分割的虹膜的轮廓,在第二眼睛图像中识别关注区域。作为示例,这可以对应于眼睛跟踪模块814b的亮斑检测和标记模块1014。如上面参考图10所述,这可以包括识别给定眼睛图像的区域,在该区域内使用由轮廓确定模块1009基于先前眼睛图像的分割生成的数据来搜索亮斑。鉴于在连续的眼睛图像之间可能发生相对较少的眼睛运动,基于第一眼睛图像的分割确定的虹膜轮廓可以充分地提供第二眼睛图像中虹膜的边界的信息,以用于亮斑检测的目的。
180.在框1111处,过程1100可以包括在第二图像中所识别的关注区域中搜索亮斑。例如,第二图像中的一个或多个位置(例如,一组位置)可以被检测为表示亮斑。如上所述,可以识别第二图像内的明亮区域(例如,斑点)或局部强度最大值。在一些实施例中,亮斑的位置可以被识别为两个图像维度中的局部强度最大值(例如,第二图像中的x和y位置)。在这些实施例中,并且作为示例,可以通过在围绕所估计的亮斑的边界框内确定最大强度值来确定亮斑的高斯分布。与最大强度值对应的图像位置可以被指定为亮斑位置。可以基于与第二图像的另一部分相比图像强度(例如,亮度)的增加,确定所估计的亮斑。
181.如上面参考图10所述,与框1111相关联的操作还可以对应于由眼睛跟踪模块814b的亮斑检测和标记模块1014执行的那些操作。
182.在框1113处,过程1100可以包括基于在所识别的关注区域中检测到的亮斑,在第二眼睛图像中估计3d角膜中心的位置。作为示例,这可以对应于眼睛跟踪模块814b的3d角膜中心模块1016。如上面参考图10所述,这可以包括基于由亮斑检测和标记模块1014提供的数据,在给定眼睛图像中估计3d角膜中心的位置。
183.在框1115处,过程1100可以包括基于在第一眼睛图像中所确定的分割的瞳孔的质心,在第二图像中识别瞳孔。作为示例,这可以对应于眼睛跟踪模块814b的瞳孔识别模块1012。如上面参考图10所述,这可以包括使用由质心确定模块1011基于先前眼睛图像的分割及其确定的轮廓而生成的数据来在给定眼睛图像中识别瞳孔。鉴于在连续的眼睛图像之间可能发生相对较少的眼睛运动,基于第一眼睛图像的分割确定的瞳孔的质心可以充分地提供第二眼睛图像中的瞳孔的质心,以用于瞳孔识别的目的。实际上,只要基于第一眼睛图像的分割确定的瞳孔质心落在第二眼睛图像的瞳孔区域内的某处,则就可以以足够高的准确度(例如,使用星爆算法)在第二眼睛图像中识别瞳孔的外边界。在一些实现方式中,与框
1115相关联的操作可以与与框1109至1113相关联的操作并行执行。在一些示例中,与框1115相关联的一个或多个操作可以在与框1109至1113相关联的一个或多个操作之前执行。
184.在框1117处,过程1100可以包括基于在第二眼睛图像中所估计的3d角膜中心的位置和在第一眼睛图像中所识别的瞳孔,在第二眼睛图像中估计3d瞳孔中心的位置。作为示例,这可以对应于眼睛跟踪模块814b的3d瞳孔中心定位模块1020。如上面参考图10所述,这可以包括使用由3d角膜中心模块1016提供的数据和由瞳孔识别模块1012提供的数据来在给定眼睛图像中估计3d角膜中心的位置。
185.在框1119处,过程1100可以包括基于在第二眼睛图像中所估计的3d角膜和瞳孔中心位置,在第二眼睛图像中估计眼睛的光轴的位置和取向。作为示例,这可以对应于眼睛跟踪模块814b的光轴确定模块1022。如上面参考图10所述,这可以包括基于由3d角膜中心估计模块1016提供的数据和由3d瞳孔中心定位模块1020提供的数据,在给定眼睛图像中确定眼睛的光轴的位置和取向。
186.过程1100然后可以进行到框1120和1106以获得并且随后处理由眼睛跟踪相机捕获的下一个眼睛图像(例如,第三眼睛图像)。在一些实现方式中,过程1100然后可以在完成与框1117和/或1119相关联的操作中的一个或多个操作之前进行到框1120和1106。
187.在一些示例中,过程1100的执行可以持续眼睛跟踪会话的持续时间。这样,从第二眼睛图像开始,与框1109、1111、1113、1115、1117和1119相关联的操作可以使用基于先前获得的眼睛图像(例如,第(n-1)个眼睛图像)的分割而生成的数据来应用于最近获得的眼睛图像(例如,第n个眼睛图像)。以该方式,执行过程1100的操作的系统在获得和处理下一个眼睛图像之前不需要等待分割操作完成。这可以用于有效地减少延迟。在一些实现方式中,与框1109、1111、1113、1115、1117和1119相关联的操作可以使用可用的最新片段数据(例如,由子模块1007、1009和1011中的一个或多个生成的数据)。因此,在附加的和/或更强大的计算资源可用于被配置为执行过程1100的操作的系统的情况下,与框1109、1111、1113、1115、1117和1119相关联的操作可以使用基于第n个眼睛图像生成的片段数据来应用于第n个眼睛图像。
188.类似地,在被配置为执行过程1100的操作的系统上放置相对大的计算负载的情况下,与框1109、1111、1113、1115、1117和1119相关联的操作可以使用可用的最新片段数据(例如,最近的片段数据)来应用于第n个眼睛图像,该数据例如可以是基于第(n-1)个眼睛图像、第(n-2)个眼睛图像、第(n-3)个眼睛图像等生成的数据。因此,基于第二图像或第一图像生成的数据可以用于第三图像。
189.在一些实现方式中,如上面参考图9和图10所述,过程1100可以包括与眼睛跟踪模块814a和814b的一个或多个其它子模块的操作相对应的一个或多个附加操作。
190.在与框1109、1111、1113、1115、1117和1119相关联的操作使用可用的最新片段数据的至少一些实现方式中,针对获得的每个眼睛图像可以不必执行与框1110、1112和1114相关联的操作。例如,可以针对获得的每隔一个眼睛图像执行与框1110、1112和1114相关联的操作。然而,在此类示例中,与框1109、1111、1113、1115、1117和1119相关联的操作可以针对获得的每个眼睛图像执行。以该方式,与框1110、1112和1114相关联的操作可以例如以第一频率执行,而与框1109、1111、1113、1115、1117和1119相关联的操作可以以第二频率执行,该第二频率是第一频率的倍数(例如,第一频率的两倍)。例如,在一些示例中,与框
1109、1111、1113、1115、1117和1119相关联的操作可以针对获得的每个眼睛图像以60hz的速率执行,而与框1110、1112和1114相关联的操作可以针对获得的每隔一个眼睛图像以30hz的速率执行。在一些实施例中,与框1110、1112和1114相关联的操作可以针对获得的每隔一个眼睛图像、获得的每三个眼睛图像、获得的每四个眼睛图像或以某个其它间隔执行。其它配置是可能的。
191.示例
192.在此所述的系统、方法和设备各自具有若干方面,其中没有一个方面单独负责其所需属性。在不限制本公开的范围的情况下,现在将简要讨论几个非限制性特征。以下段落描述了在此描述的设备、系统和方法的各种示例实现方式。一个或多个计算机的系统可以被配置为借助于在系统上安装软件、固件、硬件或其组合来执行特定操作或动作,该软件、固件、硬件或其组合在操作中导致或使得系统执行动作。一个或多个计算机程序可以被配置为借助于包括指令来执行特定操作或动作,该指令在由数据处理装置执行时使该装置执行该动作。在此描述的实施例的示例至少包括以下示例:
193.示例1:一种头戴式系统,包括:相机,其被配置为捕获用户的眼睛的图像;一个或多个光源,其被配置为照射所述用户的所述眼睛,以使得亮斑被表示在所述用户的所述眼睛的图像中;以及一个或多个处理器,其被配置为:从所述相机获得所述用户的所述眼睛的第一图像;将所述第一图像作为输入提供给机器学习模型,所述机器学习模型已经被训练为在给定眼睛的图像的情况下生成虹膜片段数据和瞳孔片段数据;在所述第一图像之后从所述相机获得所述用户的所述眼睛的第二图像;基于所述虹膜片段数据,在所述第二图像中检测一个或多个亮斑被表示的一组一个或多个位置;基于所述瞳孔片段数据,识别所述第二图像的所述用户的所述眼睛的瞳孔被表示的区域;以及至少部分地基于在所述第二图像中所检测的一组一个或多个亮斑位置和所识别的所述第二图像的区域,确定所述用户的所述眼睛的姿势。
194.示例2:根据示例1所述的系统,其中,所述一个或多个处理器进一步被配置为:经由所述机器学习模型获得用于所述第二图像的虹膜片段数据和瞳孔片段数据;从所述相机获得所述用户的所述眼睛的第三图像;基于由所述机器学习模型针对所述第二图像生成的所述虹膜片段数据,在所述第三图像中分别检测显示一个或多个亮斑的一组一个或多个位置;基于由所述机器学习模型针对所述第二图像生成的所述瞳孔片段数据,识别在所述第三图像中的所述用户的所述眼睛的瞳孔被表示的区域;以及至少部分地基于在所述第三图像中所检测的一组一个或多个亮斑位置和所识别的所述第三图像的区域,确定所述用户的所述眼睛的姿势。
195.示例3:根据示例1所述的系统,其中,所述一个或多个处理器进一步被配置为:基于所述虹膜片段数据,识别所述第二图像的第二区域,以及其中,为了在所述第二图像中检测显示一个或多个亮斑的所述一组一个或多个位置,所述一个或多个处理器被配置为:在所述第二图像的所述第二区域中搜索在所述第二区域中表现出局部最大值强度值的各个位置。
196.示例4:根据示例3所述的系统,其中,所述一个或多个处理器进一步被配置为:抑制在所述第二图像的所述特定区域之外的区域中搜索显示一个或多个亮斑的一组一个或多个位置。
197.示例5:根据示例3所述的系统,其中,所述一个或多个处理器进一步被配置为:基于所述虹膜片段数据,在所述第一图像中识别所述用户的所述眼睛的虹膜的轮廓,以及其中,为了基于所述虹膜片段数据,识别所述第二图像的不同区域,所述一个或多个处理器被配置为:基于在所述第一图像中所识别的所述用户的所述眼睛的虹膜的轮廓,识别所述第二图像的第三区域。
198.示例6:根据示例1所述的系统,其中,所述一个或多个处理器进一步被配置为:基于所述瞳孔片段数据,在所述第一图像中识别所述用户的所述眼睛的瞳孔的质心,以及其中,为了识别所述第二图像的所述区域,所述一个或多个处理器被配置为:基于在所述第一图像中所识别的所述用户的所述眼睛的瞳孔的质心,识别所述用户的所述眼睛的瞳孔被表示的所述第二图像的第二区域。
199.示例7:根据示例6所述的系统,其中,为了识别所述第二图像的所述第二区域,所述一个或多个处理器被配置为:基于在所述第一图像中所识别的所述用户的所述眼睛的瞳孔的质心,识别在所述第二图像内的位置;以及从在所述第二图像内所识别的所述位置开始搜索瞳孔边界。
200.示例8:根据示例7所述的系统,其中,为了从在所述第二图像内所识别的所述位置开始搜索瞳孔边界,所述一个或多个处理器被配置为:基于在所述第二图像内所识别的位置被指定为起点,执行星爆瞳孔检测过程。
201.示例9:根据示例1所述的系统,其中,为了至少部分地基于在所述第二图像中所检测的一组一个或多个亮斑位置和所识别的所述第二图像的区域,确定所述用户的所述眼睛的所述姿势,所述一个或多个处理器配置为:至少部分地基于在所述第二图像中所检测的一组一个或多个亮斑位置和所识别的所述第二图像的区域,获得所述用户的所述眼睛的光轴的位置和取向估计。
202.示例10:根据示例1所述的系统,其中,所述一个或多个处理器进一步被配置为:基于在所述第二图像中所检测的一组一个或多个亮斑位置,获得在所述第二图像中的所述用户的所述眼睛的角膜的三维位置的估计,以及其中,为了确定所述用户的所述眼睛的所述姿势,所述一个或多个处理器被配置为:至少部分地基于所估计的在所述第二图像中的所述用户的所述眼睛的角膜的位置和所识别的所述第二图像的区域,确定所述姿势。
203.示例11:根据示例10所述的系统,其中,所述一个或多个处理器进一步被配置为:基于所估计的在所述第二图像中的所述用户的所述眼睛的角膜的位置和所识别的所述第二图像的区域,获得在所述第二图像中的所述用户的所述眼睛的瞳孔的三维位置的估计,以及其中,为了确定所述用户的所述眼睛的所述姿势,所述一个或多个处理器被配置为:至少部分地基于所估计的在所述第二图像中的所述用户的所述眼睛的角膜的位置和所估计的在所述第二图像中的所述用户的所述眼睛的瞳孔的位置,确定所述姿势。
204.示例12:根据示例1所述的系统,其中,所述一个或多个处理器进一步被配置为:获得所述用户的所述眼睛的第三图像;基于由所述机器学习模型最近生成的虹膜片段数据,在所述第三图像中分别检测一个或多个亮斑被表示的一组一个或多个位置;基于由所述机器学习模型最近生成的瞳孔片段数据,识别显示所述用户的所述眼睛的瞳孔的所述第三图像的区域;以及至少部分地基于在所述第三图像中所检测的一组一个或多个亮斑位置和所识别的所述第三图像的区域,确定所述用户的所述眼睛的第二姿势。
205.示例13:根据示例12所述的系统,其中,由所述机器学习模型最近生成的所述虹膜片段数据和所述瞳孔片段数据包括由所述机器学习模型针对所述第二图像生成的虹膜片段数据和瞳孔片段数据。
206.示例14:根据示例12所述的系统,其中,由所述机器学习模型最近生成的所述虹膜片段数据和所述瞳孔片段数据包括由所述机器学习模型针对所述第一图像生成的虹膜片段数据和瞳孔片段数据。
207.示例15:根据示例12所述的系统,其中,所述一个或多个处理器进一步被配置为:将所述第二图像作为输入提供给所述机器学习模型,以及其中,由所述机器学习模型最近生成的所述虹膜片段数据和所述瞳孔片段数据包括由所述机器学习模型针对所述第三图像生成的虹膜片段数据和瞳孔片段数据。
208.示例16:根据示例12所述的系统,其中,所述一个或多个处理器进一步被配置为抑制将所述第二图像作为输入提供给所述机器学习模型。
209.示例17:一种由一个或多个处理器的头戴式系统实现的方法,所述头戴式系统被配置为照射用户的眼睛,以使得亮斑被表示在所述眼睛图像中,其中,所述方法包括:获得所述用户的所述眼睛的第一图像;将所述第一图像作为输入提供给机器学习模型,所述机器学习模型已经被训练为在给定眼睛的图像的情况下生成虹膜片段数据和瞳孔片段数据;获得所述用户的所述眼睛的第二图像;基于所述虹膜片段数据,在所述第二图像中检测一个或多个亮斑被表示的一组一个或多个位置;基于所述瞳孔片段数据,识别所述第二图像的所述用户的所述眼睛的瞳孔被表示的区域;以及至少部分地基于在所述第二图像中所检测的一组一个或多个亮斑位置和所识别的所述第二图像的区域,确定所述用户的所述眼睛的姿势。
210.示例18:根据示例17所述的方法,进一步包括:经由所述机器学习模型获得用于所述第二图像的虹膜片段数据和瞳孔片段数据;获得所述用户的所述眼睛的第三图像;基于由所述机器学习模型针对所述第二图像生成的所述虹膜片段数据,在所述第三图像中分别检测显示一个或多个亮斑的一组一个或多个位置;基于由所述机器学习模型针对所述第二图像生成的所述瞳孔片段数据,识别所述第三图像的所述用户的所述眼睛的瞳孔被表示的区域;以及至少部分地基于在所述第三图像中所检测的一组一个或多个亮斑位置和所识别的所述第三图像的区域,确定所述用户的所述眼睛的姿势。
211.示例19:根据示例17所述的方法,进一步包括:基于所述虹膜片段数据,识别所述第二图像的第二区域,以及其中,为了在所述第二图像中检测显示一个或多个亮斑的所述一组一个或多个位置,所述方法进一步包括:在所述第二图像的所述第二区域中搜索在所述第二区域中的表现出局部最大值强度值的各个位置。
212.示例20:根据示例19所述的方法,其中,所述头戴式系统被配置为抑制在所述第二图像的所述特定区域之外的区域中搜索显示一个或多个亮斑的一组一个或多个位置。
213.示例21:根据示例19所述的方法,进一步包括:基于所述虹膜片段数据,在所述第一图像中识别所述用户的所述眼睛的虹膜的轮廓,以及其中,为了基于所述虹膜片段数据,识别所述第二图像的不同区域,所述方法进一步包括:基于在所述第一图像中所识别的所述用户的所述眼睛的虹膜的轮廓,识别所述第二图像的第三区域。
214.示例22:根据示例17所述的方法,进一步包括:基于所述瞳孔片段数据,在所述第
一图像中识别所述用户的所述眼睛的瞳孔的质心,以及其中,为了识别所述第二图像的所述区域,所述方法进一步包括:基于在所述第一图像中所识别的所述用户的所述眼睛的瞳孔的质心,识别所述第二图像的所述用户的所述眼睛的瞳孔被表示的第二区域。
215.示例23:根据示例22所述的方法,其中,为了识别所述第二图像的所述第二区域,所述方法包括:基于在所述第一图像中所识别的所述用户的所述眼睛的瞳孔的质心,识别在所述第二图像内的位置;以及从在所述第二图像内所识别的位置开始搜索瞳孔边界。
216.示例24:根据示例23所述的方法,其中,为了从所述第二图像内的所识别的位置开始搜索瞳孔边界,所述方法包括:基于在所述第二图像内所识别的位置被指定为起点,执行星爆瞳孔检测过程。
217.示例25:根据示例17所述的方法,其中,为了至少部分地基于在所述第二图像中所检测的一组一个或多个亮斑位置和所识别的所述第二图像的区域,确定所述用户的所述眼睛的所述姿势,所述方法包括:至少部分地基于在所述第二图像中所检测的一组一个或多个亮斑位置和所识别的所述第二图像的区域,获得所述用户的所述眼睛的光轴的位置和取向估计。
218.示例26:根据示例17所述的方法,其中,所述方法进一步包括:基于在所述第二图像中所检测的一组一个或多个亮斑位置,获得在所述第二图像中的所述用户的所述眼睛的角膜的三维位置的估计,以及其中,为了确定所述用户的所述眼睛的所述姿势,所述方法包括:至少部分地基于所估计的在所述第二图像中的所述用户的所述眼睛的角膜的位置和所识别的所述第二图像的区域,确定所述姿势。
219.示例27:根据示例26所述的方法,其中,所述方法进一步包括:基于所估计的在所述第二图像中的所述用户的所述眼睛的角膜的位置和所识别的所述第二图像的区域,获得在所述第二图像中的所述用户的所述眼睛的瞳孔的三维位置的估计,以及其中,为了确定所述用户的所述眼睛的所述姿势,所述方法包括:至少部分地基于所估计的在所述第二图像中的所述用户的所述眼睛的角膜的位置和所估计的在所述第二图像中的所述用户的所述眼睛的瞳孔的位置,确定所述姿势。
220.示例28:根据示例17所述的方法,其中,该方法进一步包括:获得所述用户的所述眼睛的第三图像;基于由所述机器学习模型最近生成的虹膜片段数据,在所述第三图像中分别检测一个或多个亮斑被表示的一组一个或多个位置;基于由所述机器学习模型最近生成的瞳孔片段数据,识别所述第三图像的显示所述用户的所述眼睛的瞳孔的区域;以及至少部分地基于在所述第三图像中所检测的一组一个或多个亮斑位置和所识别的所述第三图像的区域,确定所述用户的所述眼睛的第二姿势。
221.示例29:根据示例28所述的方法,其中,由所述机器学习模型最近生成的所述虹膜片段数据和所述瞳孔片段数据包括由所述机器学习模型针对所述第二图像生成的虹膜片段数据和瞳孔片段数据。
222.示例30:根据示例28所述的方法,其中,由所述机器学习模型最近生成的所述虹膜片段数据和所述瞳孔片段数据包括由所述机器学习模型针对所述第一图像生成的虹膜片段数据和瞳孔片段数据。
223.示例31:根据示例28所述的方法,其中,所述方法进一步包括:将所述第二图像作为输入提供给所述机器学习模型,以及其中,由所述机器学习模型最近生成的所述虹膜片
段数据和所述瞳孔片段数据包括由所述机器学习模型针对所述第三图像生成的虹膜片段数据和瞳孔片段数据。
224.示例32:根据示例28所述的方法,其中,所述头戴式系统被配置为抑制将所述第二图像作为输入提供给所述机器学习模型。
225.示例33:一种头戴式系统,包括:相机,其被配置为捕获用户的眼睛的图像;多个光源,其被配置为以在由相机捕获的用户的眼睛的图像中产生亮斑的方式照射用户的眼睛;以及一个或多个处理器,其被可操作地耦合到相机,该一个或多个处理器被配置为:从相机获得用户的眼睛的第一图像;将第一图像作为输入提供给神经网络,该神经网络已经被训练为在给定眼睛的图像的情况下生成虹膜片段数据和瞳孔片段数据;从相机获得用户的眼睛的第二图像,由相机捕获的第二图像紧跟在第一图像之后;基于由神经网络针对第一图像生成的虹膜片段数据,在第二图像中分别检测显示一个或多个亮斑的一组一个或多个位置;基于由神经网络针对第一图像生成的瞳孔片段数据,识别显示用户的眼睛的瞳孔的第二图像的的区域;并且至少部分地基于在第二图像中所检测的一组一个或多个亮斑位置和所识别的第二图像的区域,确定用户的眼睛的姿势。
226.示例34:根据示例33所述的系统,其中,一个或多个处理器进一步被配置为:将第二图像作为输入提供给神经网络;从相机获得用户的眼睛的第三图像,由相机捕获的第三图像紧跟在第二图像之后;基于由神经网络针对第二图像生成的虹膜片段数据,在第三图像中分别检测显示一个或多个亮斑的一组一个或多个位置;基于神经网络针对第二图像生成的瞳孔片段数据,识别显示用户的眼睛的瞳孔的第三图像的区域;以及至少部分地基于在第三图像中所检测的一组一个或多个亮斑位置和所识别的第三图像的区域,确定用户的眼睛的姿势。
227.示例35:根据示例33所述的系统,其中,一个或多个处理器进一步被配置为:基于由神经网络针对第一图像生成的虹膜片段数据,识别第二图像的特定区域,以及其中,为了基于由神经网络针对第一图像生成的虹膜片段数据,在第二图像中分别检测显示一个或多个亮斑的一组一个或多个位置,一个或多个处理器被配置为:在第二图像的特定区域中搜索显示一个或多个亮斑的一组一个或多个位置。
228.示例36:根据示例35所述的系统,其中,一个或多个处理器进一步被配置为:抑制在第二图像的特定区域之外的区域中搜索显示一个或多个亮斑的一组一个或多个位置。
229.示例37:根据示例35所述的系统,其中,一个或多个处理器进一步被配置为:基于神经网络针对第一图像生成的虹膜片段数据,在第一图像中识别用户的眼睛的虹膜的轮廓,以及其中,为了基于由神经网络针对第一图像生成的虹膜片段数据,识别第二图像的特定区域,一个或多个处理器被配置为:基于在第一图像中所识别用户的眼睛的虹膜的轮廓,识别第二图像的特定区域。
230.示例38:根据示例33所述的系统,其中,一个或多个处理器进一步被配置为:基于由神经网络针对第一图像生成的瞳孔片段数据,在第一图像中识别用户的眼睛的瞳孔的质心,以及其中,为了基于由神经网络针对第一图像生成的瞳孔片段数据,识别显示用户的眼睛的瞳孔的第二图像的区域,一个或多个处理器被配置为:基于在第一图像中所识别的用户的眼睛的瞳孔的质心,识别显示用户的眼睛的瞳孔的第二图像的区域。
231.示例39:根据示例38所述的系统,其中,为了基于在第一图像中所识别的用户的眼
睛的瞳孔的质心,识别显示用户的眼睛的瞳孔的第二图像的区域,一个或多个处理器被配置为:基于在第一图像中所识别的用户的眼睛的瞳孔的质心,识别在第二图像内的位置;以及从在第二图像内所识别的位置向外搜索瞳孔边界。
232.示例40:根据示例39所述的系统,其中,为了从在第二图像内所识别的位置向外搜索瞳孔边界,一个或多个处理器被配置为:将在第二图像内所识别的位置用作星爆瞳孔检测例程中的起点。
233.示例41:根据示例33所述的系统,其中,为至少部分地基于在第二图像中所检测的一组一个或多个亮斑位置和所识别的第二图像的区域来确定用户的眼睛的姿势,一个或多个处理器被配置为:至少部分地基于在第二图像中所检测的一组一个或多个亮斑位置和所识别的第二图像的区域,获得用户的眼睛的光轴的位置和取向估计.
234.示例42:根据示例33所述的系统,其中,一个或多个处理器进一步被配置为:基于在第二图像中所检测的一组一个或多个亮斑位置,在第二图像中获得用户的眼睛的角膜的三维位置的估计,以及其中,为了至少部分地基于在第二图像中所检测的一组一个或多个亮斑位置和所识别的第二图像的区域,确定用户的眼睛的姿势,一个或多个处理器被配置为:至少部分地基于在第二图像中所估计的用户的眼睛的角膜的位置和所识别的第二图像的区域,确定用户的眼睛的姿势。
235.示例43:根据示例42所述的系统,其中,一个或多个处理器进一步被配置为:基于在第二图像中所估计的用户的眼睛的角膜的位置和所识别的第二图像的区域,第二图像中获得用户的眼睛的瞳孔的三维位置的估计,以及其中,为至少部分地基于在第二图像中所估计的用户的眼睛的角膜的位置和所识别的第二图像的区域,确定用户的眼睛的姿势,一个或多个处理器被配置为:至少部分地基于在第二图像中所估计的用户的眼睛的角膜的位置和在第二图像中所估计的用户的眼睛的瞳孔位置,确定用户的眼睛的姿势。
236.示例44:根据示例33所述的系统,其中,一个或多个处理器进一步被配置为:从相机获得用户的眼睛的第三图像,由相机捕获的第三图像紧跟在第二图像之后;基于神经网络最近生成的虹膜片段数据,在第三图像中分别检测显示一个或多个亮斑的一组一个或多个位置;基于神经网络最近生成的瞳孔片段数据,识别显示用户的眼睛的瞳孔的第三图像的区域;以及至少部分地基于在第三图像中所检测的一组一个或多个亮斑位置和所识别的第三图像的区域,确定用户的眼睛的姿势。
237.示例45:根据示例44所述的系统,其中,由神经网络最近生成的虹膜片段数据和瞳孔片段数据包括由神经网络针对第二图像生成的虹膜片段数据和瞳孔片段数据。
238.示例46:根据示例44所述的系统,其中,由神经网络最近生成的虹膜片段数据和瞳孔片段数据包括由神经网络针对第一图像生成的虹膜片段数据和瞳孔片段数据。
239.示例47:根据示例44所述的系统,其中,一个或多个处理器进一步被配置为:将第二图像作为输入提供给神经网络,以及其中,由神经网络最近生成的虹膜片段数据和瞳孔片段数据包括由神经网络针对第三图像生成的虹膜片段数据和瞳孔片段数据。
240.示例48:根据示例44所述的系统,其中,一个或多个处理器进一步被配置为抑制将第二图像作为输入提供给神经网络。
241.如上所述,上面提供的描述的示例的实现方式可以包括硬件、方法或过程,和/或计算机可访问介质上的计算机软件。
242.其它注意事项
243.在此描述和/或在附图中描绘的过程、方法和算法中的每一个可以体现在由被配置为执行特定和特别的计算机指令的一个或多个物理计算系统、硬件计算机处理器、特定应用电路、和/或电子硬件执行的代码模块中,并由其完全或部分自动执行。例如,计算系统可以包括用特定计算机指令编程的通用计算机(例如,服务器)或专用计算机、专用电路等。代码模块可以被编译并链接到可执行程序中,被安装在动态链接库中,或者可以用解释的编程语言编写。在一些实现方式中,特定操作和方法可以由专用于给定功能的电路来执行。
244.此外,本公开的功能的某些实现方式在数学上、计算上或技术上足够复杂,因此可能需要特定应用的硬件或一个或多个物理计算设备(利用适当的专用可执行指令)来执行该功能,例如,由于所涉及计算量或复杂性,或为了基本上实时提供结果。例如,视频可能包括许多帧,每帧具有数百万像素,并且需要专门编程的计算机硬件来处理视频数据,以便在商业上合理的时间内提供所需的图像处理任务、眼睛形状模型、或生物特征应用的时间。
245.代码模块或任何类型的数据可以存储在任何类型的非暂态计算机可读介质上,诸如物理计算机存储器,包括硬盘驱动器、固态存储器、随机存取存储器(ram)、只读存储器(rom)、光盘、易失性或非易失性存储装置及其组合等。方法和模块(或数据)也可以在各种计算机可读传输介质上作为生成的数据信号(例如,作为载波或其他模拟或数字传播信号的一部分)被传输,所述传输介质包括基于无线和基于有线/电缆的介质,并且可以采用多种形式(例如,作为单个或多路复用模拟信号的一部分,或作为多个离散数字数据包或帧)。所公开的过程或过程步骤的结果可以持久地或以其它方式被存储在任何类型的非暂态有形计算机存储装置中,或者可以经由计算机可读传输介质进行通信。
246.在此描述和/或在附图中描绘的流程图中的任何过程、方框、状态、步骤或功能应被理解为潜在地表示代码模块、片段或代码部分,其包括用于实现过程中的特定功能(例如,逻辑或算术功能)或步骤的一个或多个可执行指令。各种过程、方框、状态、步骤或功能对在此提供的说明性示例执行以下操作:组合、重新排列、添加、删除、修改或以其它方式改变。在一些实施例中,附加的或不同的计算系统或代码模块可以执行在此描述的功能中的部分或全部。在此所述的方法和过程也不限于任何特定顺序,并且与其相关的方框、步骤或状态可以以其它合适的序列执行,例如顺序地执行、并发地执行或以某种其他方式执行。可以向所公开的示例实施例添加任务或事件或者从中移除任务或事件。此外,在此描述的实现方式中各种系统部件的分离是出于说明性目的,不应理解为在所有实现方式中都需要这种分离。应当理解,所述的程序部件、方法和系统通常可以被一起集成在单个计算机产品中或被封装到多个计算机产品中。许多实现方式变化是可能的。
247.过程、方法和系统可以在网络(或分布式)计算环境中被实现。网络环境包括企业范围的计算机网络、内联网、局域网(lan)、广域网(wan)、个域网(pan)、云计算网络、众包计算网络、互联网和万维网。网络可以是有线或无线网络或任何其它类型的通信网络。
248.本公开的系统和方法各自具有若干创新方面,它们不能单独对本文公开的所需属性负责或要求本文公开的所需属性。上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合使用。所有可能的组合和子组合旨在落入本公开的范围内。对本公开中所描述的实现方式的各种修改对于本领域的技术人员来说是显而易见的,并且在不脱离本公开的精神或范围的情况下,本文定义的一般原理可以应用于其它实现方式。因此,权利要求
不旨在限于在此所示的实现方式,而是要被赋予与本公开、在此公开的原理和新颖特征一致的最宽范围。
249.本说明书中通过分开的实施方式的上下文描述的某些特征也可以在单个实施方式中组合地实现。相反,在单个实现方式的上下文中描述的各种特征也可以在多个实现方式中单独或以任何合适的子组合来实现。此外,尽管特征可以像上文描述的那样以特定组合起作用,并且甚至最初如此要求保护,但在某些情况下,来自所要求保护的组合的一个或多个特征可以从组合中删除,并且所要求保护的组合可以涉及子组合或子组合的变体。对于每个实施例而言,没有任何单个特征或特征组是必需的或不可或缺的。
250.除非另有明确说明,或在所使用的上下文中以其它方式理解,否则在此使用的条件性语言,诸如“能够”、“可以”、“可能”、“可”、“例如”等,通常旨在传达某些实施例包括而其它实施例不包括某些特征、元素和/或步骤。因此,此类条件性语言通常不旨在暗示特征、元素和/或步骤在任何方面都是一个或多个实施例所必需的,也不意在暗示在有或者没有作者输入或提示的情况下,一个或多个实施例必然包括用于决定是否包括这些特征、元素和/或步骤或否是在任何特定实施例中执行这些特征、元素和/或步骤的逻辑。术语“包含”、“包括”、“具有”等是同义词,并且以开放式的方式包容性地使用,并且不排除其它元素、特征、动作、操作等。此外,术语“或”以其包含性含义(而不是排他性含义)使用,以使得例如当用于连接元素列表时,术语“或”表示一个、一些或全部列表元素。此外,除非另有说明,否则本技术和所附权利要求中使用的冠词“一”、“一个”和“所述”应被解释为“一个或多个”或“至少一个”。
251.如在此所使用的,提及项目列表的中的“至少一个”的短语是指这些项目的任何组合,包括单个成员。作为示例,“a、b或c中的至少一个”旨在涵盖:a、b、c、a和b、a和c、b和c、以及a、b和c。除非另有明确说明,否则诸如短语“x、y和z中的至少一个”之类的连接语言应与上下文一起被理解为一般用于表达项目、术语等可以是x、y或z中的至少一个。因此,此类连词语言通常并不旨在暗示特定实施例需要至少一个x、至少一个y和至少一个z各自存在。
252.类似地,尽管可以在附图中以特定此序描述操作,但是应当认识到,此类操作不需要以所示的特定次序或按顺序执行,或者执行所有所示的操作,以实现所需的结果。此外,附图可以以流程图的形式示意性地描绘另一示例过程。然而,未描绘的其他操作可以被并入示意性说明的示例方法和过程中。例如,一个或多个附加操作可以在任何所示操作之前、之后、之间执行,或者与其并行地执行。此外,在其它实现方式中,操作可以被重新排列或重新排序。在某些情况下,多任务和并行处理可能是有利的。此外,上述实现方式中各种系统部件的分离不应理解为在所有实现方式中都需要此类分离,应当理解,所描述的程序部件和系统通常可以一起被集成在单个软件产品中或被封装到多个软件产品。此外,其他实现方式在所附权利要求的范围内。在某些情况下,权利要求中列出的动作可以以不同的此序执行,并且仍能实现所需的结果。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献