本公开总体涉及眼睛追踪,并且具体地,涉及使用闪烁来进行眼睛追踪。
背景技术:
眼睛追踪指的是检测用户注视的方向的过程,其可以包括检测三维(3d)空间中的眼睛的定向。在例如虚拟现实(vr)和/或增强现实(ar)应用中使用的头戴式耳机背景中的眼睛追踪可以是重要特征。然而,头戴式显示器的功率预算和形状因数考虑因素会使设计精确的眼睛追踪系统变得困难。
技术实现要素:
眼睛追踪系统被配置为使用闪烁来检测用户注视的方向。眼睛追踪系统包括多个发射器、相机和控制器。多个发射器用光图案照射眼罩,其中用户的眼睛位于眼罩内,并且光图案在眼睛的表面的部分上产生多次闪烁。眼睛的表面的部分包括眼睛的巩膜和眼睛的角膜之间的边界区域,其中每次闪烁与多个发射器的相应发射器相关联。相机捕获眼睛的部分的图像。捕获的图像包括由边界区域反射的多次闪烁的子集。控制器使用捕获图像识别眼睛的边界区域中的闪烁子集,并且部分地基于所识别的闪烁和眼睛的模型来估计眼睛的位置。在一些实施例中,眼睛追踪系统可以是头戴式显示器的一部分。例如,hmd用在人工现实环境中。
附图说明
图1是根据实施例的头戴式显示器(hmd)的图。
图2是根据实施例的图1中所示的hmd的前刚性主体的横截面。
图3是根据实施例的眼睛追踪系统的框图。
图4示出根据实施例的投射到眼睛上的示例光图案。
图5是示出根据实施例的反射位置的歧义消除的图。
图6是示出根据实施例的眼睛追踪过程的流程图。
图7是根据实施例的hmd系统的框图。
附图仅出于说明的目的描绘了各种实施例。从以下讨论中,本领域技术人员将容易认识到,不脱离本文所述的原理的情况下,可以采用本文所示的结构和方法的替代实施例。
具体实施方式
概述
实施例涉及包括眼睛追踪系统的头戴式显示器。眼睛追踪系统包括源组件、相机和控制器。在一些实施例中,源组件是多个源并且被定位成照射至少眼睛的边界区域。在一些实施例中,源被掩蔽为特定形状。边界区域是眼睛上角膜过渡到巩膜的位置。相机捕获从眼睛的目标区域反射的光图案的图像。在一些实施例中,相机可以检测反射光的偏振,并且眼睛追踪系统使用偏振来消除可能的反射位置的歧义。类似地,飞行时间也可用于消除潜在反射位置的歧义。控制器使用来自探测器的信息来追踪用户眼睛的位置。更具体地,控制器分析偏振信息以识别来自眼睛的边界区域的闪烁,并且基于所识别的闪烁,更新眼睛的模型以识别用户眼睛的位置。
本发明的实施例可以包括人工现实系统或者与人工现实系统结合实施。人工现实是在呈现给用户之前已经以某种方式调整的现实形式,其可以包括例如虚拟现实(vr)、增强现实(ar)、混合现实(mr)、混合式现实、或其某些组合和/或衍生物。人工现实内容可以包括完全生成的内容或者与捕获的(例如,真实世界)内容相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或其某种组合,并且其中的任何一个可以在单个频道或多个频道(诸如向观看者产生三维效果的立体视频)中呈现。另外,在一些实施例中,人工现实还可以与应用、产品、附件、服务或其某种组合相关联,其用于例如在人工现实中创建内容和/或以其他方式在人工现实中使用(例如,执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,包括连接到主计算机系统的头戴式显示器(hmd)、独立hmd、移动设备或计算系统、或者能够向一个或多个观看者提供人工现实内容的任何其他硬件平台。
系统架构
图1是根据实施例的hmd100的图。hmd100可以是人工现实系统的一部分。hmd100包括具有前侧120a、顶侧120b、底侧120c、右侧120d和左侧120e以及带110的前刚性主体105。在一些实施例中,hmd100的前侧120a的部分在可见光波段(~380nm至750nm)中至少部分透明,并且hmd100的位于hmd100的前侧120a和用户眼睛之间的部分至少部分透明(例如,部分透明的电子显示器)。
前刚性主体105包括一个或多个电子显示器(图1中未示出)、惯性测量单元(imu)130、一个或多个位置传感器125、以及一个或多个定位器135。在由图1所示的实施例中,位置传感器125位于imu130内,并且imu130和位置传感器125对用户都不可见。
定位器135可以相对于彼此并且相对于参考点115位于前刚性主体105上的固定位置。在图1的示例中,参考点115位于imu的中心。每个定位器135可以发射可由成像设备检测的光(例如,图7中所示的成像设备710,下面更详细地描述)。在一些实施例中,定位器135可包括无源元件(例如,回反射器),其被配置为反射来自光源的可由成像设备检测的光。在图1的示例中,定位器135或定位器135的部分位于前刚性主体105的前侧120a、顶侧120b、底侧120c、右侧120d和/或左侧120e上。成像设备可以被配置为基于检测到的定位器135的位置来确定hmd100的位置(包括方向),其可以用于确定要向用户显示的内容。例如,在hmd100是hmd系统的一部分的情况下,hmd100的位置可以用于确定位于不同位置的哪些虚拟对象对于hmd100的用户是可见的。
图2是图1中所示的hmd100的前刚性主体105的横截面200。如图2所示,前刚性主体105包括电子显示元件205、光学块210和眼睛追踪系统215。为了说明的目的,图2示出了根据单眼220的前刚性主体105的横截面。尽管图2描绘了眼睛220的中心横截面与眼睛追踪系统215处于同一平面,但是眼睛220和眼睛追踪系统215的中心横截面不必在同一平面内。另外,与图2所示的那些分开的另一电子显示元件205和光学块210可包括在前刚性主体105中,以将内容呈现给用户的另一只眼睛。
电子显示元件205向用户显示如由hmd100或其他设备生成的图像和/或视频。具体地,电子显示元件205朝向光学块210发射图像光。电子显示元件205的示例包括:液晶显示器(lcd)、有机发光二极管(oled)显示器、有源矩阵有机光-发光二极管显示器(amoled)、透明有机发光二极管显示器(toled)、一些其他显示器、或它们的一些组合。
光学块210放大来自电子显示元件205的接收图像光,校正与图像光相关联的光学误差,并将校正后的图像光呈现给hmd100的用户。光学块210将放大的和/或校正的图像光引导到眼罩245,以呈现给佩戴hmd100的用户。眼罩245是空间中将被hmd100的用户的眼睛220占据的位置。
在实施例中,光学块210包括一个或多个光学元件和/或不同光学元件的组合。例如,光学元件是光圈、菲涅耳透镜、凸透镜、凹透镜、滤光器或影响从电子显示元件205发射的图像光的任何其它合适的光学元件。在一些实施例中,光学块210中的一个或多个光学元件可以具有一个或多个涂层,例如抗反射涂层。
通过光学块210放大图像光允许电子显示元件205在物理上更小,重量更轻并且比更大的显示器消耗更少的功率。另外,放大可以增加所显示内容的视野。例如,所显示内容的视野使得使用几乎所有(例如,110度对角线)并且在一些情况下全部用户的视野来呈现所显示的内容。在一些实施例中,光学块210被设计成使其有效焦距大于电子显示元件205的间距,这放大了由电子显示元件205投射的图像光。另外,在一些实施例中,放大倍数通过添加或移除光学元件来调整。
在一些实施例中,光学块210被设计为校正一种或多种类型的光学误差。光学误差的示例包括:二维光学误差、三维光学误差或其某种组合。二维误差是在二维中发生的光学像差。二维误差的示例类型包括:桶形失真、枕形失真、纵向色差、横向色差或任何其他类型的二维光学误差。三维误差是三维中出现的光学误差。三维误差的示例类型包括球面像差、彗形像差、像场弯曲、像散或任何其他类型的三维光学误差。在一些实施例中,提供给用于显示的电子显示元件205的内容是预失真的,并且当光学块210从电子显示元件205接收基于内容生成的图像光时,光学块210校正失真。
眼睛追踪系统215追踪眼睛220的位置。眼睛追踪系统215包括源组件225、相机230和控制器235。尽管图2中仅示出了用户的一只眼睛220,在一些实施例中,眼睛追踪系统可以包括用于用户的每只眼睛的至少一个源组件225和至少一个相机230。在一些实施例中,可以为用户的每只眼睛实现单独的眼睛追踪系统。
源组件225根据追踪指令(例如,来自控制器235)用光图案240照射眼睛220的部分。在一些实施例中,源组件225包括多个发射器(例如,可以充当单独的点源),其发射红外(ir)波段(~750nm至1700nm)的光。发射器可以是例如发光二极管(led)、微led、激光二极管、可调谐激光器等。在一些实施例中,多个发射器被布置成环形配置。可以使用光圈掩蔽多个发射器以具有特定形状,例如圆形发射区域。
注意,虽然源组件225被示出为位于光学块210和眼睛220之间,但是在可选实施例中,源组件225中的一些或全部可以位于其他地方。例如,源组件225中的一些或全部可以是光学块210的一部分,或者可以位于光学块210和电子显示器元件205之间。
在一些实施例中,光图案240是目标区域(例如,眼睛220的表面)内的光图案,该图案使用例如一个或多个光发射器产生。目标区域是眼睛追踪系统215用于追踪眼睛220的眼睛220的区域。在一些实施例中,目标区域包括眼睛220的角膜中的一些或全部。目标区域还可以包括眼睛220的一些或全部。在一些实施例中,目标区域具有至少12mm的直径(成人角膜的直径为~11.5mm)。但是在其他实施例中,目标区域可以显著更大(15mm或更大)。目标区域可以具有任何形状,例如圆形、矩形、正方形、椭圆形等。在一些实施例中,目标区域包括眼睛220的巩膜和眼睛220的角膜之间的边界区域。边界区域可以由眼睛220上角膜过渡到巩膜的位置限定。
例如,光图案240可以是投射在目标区域(例如,包括用户角膜的15mm×15mm区域)上的30×30网格点。在该示例中,光图案240在整个目标区域上具有0.5mm的点间距。
相机230捕获从目标区域反射的光图案240的图像。反射光包括例如从目标区域中的眼睛220的部分(例如,角膜、虹膜和/或巩膜)的光图案245的反射。相机230可以是例如光电二极管的阵列(1d或2d)、电荷耦接显示器(ccd)阵列、能够检测光图案245中的一些或全部的一些其他设备、或其某种组合。相机230根据由控制器235生成的追踪指令捕获图像。在一些实施例中,光图案245在眼睛的表面的部分上产生多次闪烁,其中每次闪烁与多个发射器中的相应发射器相关联。在一些实施例中,相机230是事件相机,其被配置为响应于检测到运动而发送稀疏信号。
控制器235控制眼睛追踪系统215的组件。控制器235为源组件225和相机230生成追踪指令。在一些实施例中,控制器235接收由相机组件230捕获的用户眼睛220的一个或多个图像。由相机230捕获的图像包括由边界区域反射的多次闪烁的子集。这消除了将整个图像从相机230发送回控制器235的需要,从而减少了眼睛追踪系统的总带宽。也可以减少相机的曝光时间。如下面关于图3详细讨论的,控制器235使用一个或多个图像确定眼睛追踪信息(例如,眼睛位置)。
图3是根据实施例的眼睛追踪系统300的框图。眼睛追踪系统300包括照明组件310、相机组件320和控制器330。眼睛追踪系统215是眼睛追踪系统300的实施例。在其他实施例中,与本文描述的那些相比,眼睛追踪系统300包括额外的或更少的模块。类似地,功能可以以与此处描述的方式不同的方式在模块和/或不同实体之间分配。
照明组件310根据追踪指令用光图案照射用户的一只或两只眼睛中的一些或全部。照明组件310包括一个或多个源组件(例如,源组件225)。源组件可以发射可见光波段(~380nm至750nm)、红外(ir)波段(~750nm至1700nm)、紫外波段(10nm至380nm)、电磁波谱的一些其他部分、或其某种组合。源组件225可包括一个或多个发射器。发射器可以包括例如发光二极管(led)、微led、激光二极管、可调谐激光器等。
照明组件310可以根据追踪指令调整一个或多个发射参数。发射参数是影响如何从照明组件310发射光的参数。发射参数可以包括例如亮度、脉冲率(包括连续照射)、波长、脉冲长度、影响如何从照明组件310发射光的一些其他参数、或其某种组合。在一个实施例中,照明组件310在飞行操作时发射光脉冲。
相机组件320捕获从目标区域反射的光图案的图像。相机组件320包括一个或多个相机(例如,相机230)。反射光包括例如来自目标区域中眼睛部分(例如,角膜、虹膜和/或巩膜)的光图案的反射。相机组件320包括一个或多个相机,并且如上面关于图2所述,相机可以是例如光电二极管的阵列(1d或2d)、电荷耦接显示器(ccd)阵列、能够检测一些或全部光图案的一些其他设备、或其某种组合。在一些实施例中,相机组件230包括能够捕获偏振信息的一个或多个偏振敏感相机。偏振信息描述了捕获光的偏振。例如,偏振敏感相机包括偏振敏感像素阵列(例如,0°、45°、90°和135°)。关于偏振敏感照相机的其他细节在美国专利是申请第15/808,758号中描述,其全部内容通过引用并入本文。相机组件320根据控制器330生成的追踪指令捕获图像。
相机组件320可以根据追踪指令调整一个或多个成像参数。成像参数是影响相机组件320如何捕获图像的参数。成像参数可以包括例如帧速率、光圈、增益、曝光长度、帧定时、影响相机组件320如何捕获图像的一些其他参数、或其某种组合。
控制器330控制眼睛追踪系统300的组件。控制器330包括数据存储器340、组件控制模块350、位置估计模块360和校准模块370。在其他实施例中,控制器330包括比本文描述的模块更多或更少的模块。类似地,功能可以以与此处描述的方式不同的方式在模块和/或不同实体之间分配。
数据存储器340是存储眼睛追踪系统300的信息的存储器。存储的信息可以包括例如追踪指令、发射参数、成像参数、用户眼睛的模型(m)、眼睛追踪信息、由相机组件320捕获的图像、眼睛追踪系统300使用的一些其他信息、或其某种组合。数据存储器340是存储器,诸如只读存储器(rom)、动态随机存取存储器(dram)、静态随机存取存储器(sram)或其某种组合。数据存储器340可以是hmd系统的较大数字存储器的一部分。存储在数据存储器340中的模型m可以是眼睛的部分的3d模型。眼睛的该部分可包括例如角膜、虹膜、瞳孔、巩膜、巩膜和角膜之间的边界区域、前房、眼睛的一些其他部分或它们的一些组合。模型m描述了眼睛的部分的几何形状和眼睛的部分的其他方面。例如,模型m还可以描述眼睛的一些部分(例如,角膜、前房等)以及空气的折射指数。另外,m还可以包括描述眼睛运动的眼睛的加速度矢量和/或速度矢量。在扫描用户的两只眼睛的实施例中,数据存储器340可以包含两个模型m1和m2:一个模型针对一只眼睛。模型m描述具有六个自由度的眼睛的位置,因此,模型m还描述眼睛的方向。另外,在一些实施例中,模型m可包括虹膜相对于眼睛角膜的位置。
在一些实施例中,模型m可包括大致指定眼睛形状的多个参数。例如,这些参数可以对应于眼睛的平均半径、眼睛的巩膜的平均半径、将巩膜的形状近似为椭圆体一组三个参数、眼睛的角膜半径、眼睛边界区域的半径、角膜从巩膜突出的测量值、指定角膜形状的一组参数、以及眼睛的旋转点。可以使用附加参数来解释与参数指定的理想模型的偏差。例如,可以通过这些附加参数在m中考虑由血管引起的眼睛表面上的凸起。
组件控制模块350生成追踪指令。追踪指令控制灯组件310和相机组件320。组件控制模块350使相机组件320与灯组件310同步,使得目标区域的图像包括从眼睛表面反射的一些或全部光图案。组件控制模块350可以确定一个或多个发射参数和/或成像参数,以例如增加捕获图像中的反射光图案的信噪比。此外,组件控制模块350可以确定一个或多个发射参数以确保光图案的功率在眼睛安全阈值内。组件控制模块350使用发射参数和/或成像参数来生成追踪指令。组件控制模块350将追踪指令提供给灯组件310和/或相机组件320。
位置估计模块360使用来自相机组件320的一个或多个图像确定用户的一只或两只眼睛的位置。位置估计模块360基于来自数据存储器340的模型m和由相机组件320捕获的一个或多个图像来生成眼睛位置的估计。在一些实施例中,位置估计模块360使用由相机组件320捕获的一个或多个图像来识别眼睛的边界区域中的闪烁子集,并且部分地基于所识别的闪烁和眼睛的模型m来估计眼睛的位置。另外,位置估计模块360可以检测反射光的偏振并使用偏振来消除可能的反射位置的歧义。位置估计模块360是在一个或多个处理器、专用硬件单元或其某种组合上实现的软件模块。
在一些实施例中,位置估计模块360生成与由照明组件310照射的眼睛的区域相对应的眼睛表面的3d近似。在一些实施例中,由照明组件310发射的光图案包括多个可唯一识别的特征。在一个实施例中,特征是由点光源发光器发射的光。位置估计模块360使用投射光和模型m的已知结构来确定由眼睛表面的边界区域(以及在某种程度上来自虹膜的反射)引起的光的失真。根据失真,眼睛姿势估计模块360将深度信息归因于图像的不同部分。使用深度信息,位置估计模块360更新眼睛的一部分的3d近似。位置估计模块360可以使用深度信息来确定眼睛追踪信息。眼睛追踪信息可以包括例如眼睛的位置、注视角度、瞳孔间距离等。在一个实施例中,位置估计模块360分析反射光中的偏振信息以消除多个可能位置的歧义以识别实际反射点。一旦确定了实际反射点,模型m就更新眼睛的部分的3d近似。可选地,在飞行操作时,位置估计模块360使用捕获的光脉冲来消除用户眼睛位置的歧义。
校准模块370在校准序列期间在眼睛追踪之前生成或训练模型m。校准模块370是在一个或多个处理器、专用硬件单元或其某种组合上实现的软件模块。由校准模块370实现的校准序列可以包括指示照明组件310发射光图案,并且使照相机组件320在观察已知位置时捕获从眼睛的边界区域反射的光图案的图像。在一个实施例中,指示用户查看在电子显示器(例如,hmd)上显示的特定对象(例如,虚拟图标)。而且当用户正在观察对象时,相机组件捕获从眼睛反射的光图案的图像。可以在不同位置显示对象的位置,使得眼睛追踪系统300可以在多个已知方位捕获眼睛的图像。光图案的图像可以内插到存储在数据存储器340中的模型m中。一旦校准模块370产生m,就可以开始眼睛追踪。通常,对于特定用户的眼睛训练的模型m的眼睛追踪比没有这种模型的眼睛追踪更准确。在一些实施例中,校准模块370在追踪期间继续更新m。在一些实施例中,系统可以基于人眼的统计规范开始用标称模型m追踪,并且校准模块370在追踪期间更新m。
图4示出根据一个实施例的投射到眼睛220上的示例性光图案410。在该示例中,光图案410是投影到包括眼睛220的目标区域上的反射组450(例如,点)的图案。在该实施例中,光图案410填充目标区域,并且目标区域包括眼睛220的角膜(未示出)、眼睛220的虹膜420、眼睛220的瞳孔430、以及眼睛220的一些巩膜440。更具体地,参考图4,目标区域包括巩膜440和角膜之间的边界区域460。边界区域可以由眼睛220上的角膜过渡到巩膜440的位置限定。
在该实施例中,光图案410是反射组450的阵列。注意,反射组450可以包括在图4中示出的不同尺寸、形状和位置的一个或多个光特征。另外,在可选实施例中,光图案410被动态投影到比图4中所示的更小的目标区域上。例如,目标区域可以大致是虹膜420的大小。而且眼睛追踪系统300使用眼睛追踪信息预测目标区域的位置,并将光图案420投影到目标区域中。
图5是示出根据实施例的反射位置的消歧的图。眼睛追踪系统300利用消除歧义来确定闪烁的位置。非偏振光源510发射指向镜面520的非偏振光。镜面520可以是例如眼睛角膜的部分、边界区域或两者。在一个实施例中,非偏振光源510是图2中的光源组件225的发射器。非偏振光的光线被产生闪烁的镜面520反射,并且反射为反射光增加一定程度的偏振。
偏振敏感相机530捕获反射光。注意,沿着线550存在多个可能的位置(例如,假反射点540),实际反射点560位于该线550处。为了将实际反射点560与多个可能位置分开,偏振敏感相机530捕获反射光以及反射光的偏振信息。
控制器(例如,控制器330)分析反射光中的偏振信息以消除多个可能位置的歧义以识别实际反射点560。例如,控制器可以确定沿着线550到实际反射点560的实际距离。在美国专利申请第15/808,758号中详细讨论了关于如何使用偏振信息来确定深度的附加信息,其全部内容通过引用并入本文。如上面参考图5所述,在飞行操作时,控制器使用捕获的光脉冲来消除用户眼睛的位置的歧义。如上面关于例如图2至图6所讨论的,一旦确定了实际反射点560,控制器就可以确定眼睛的眼睛追踪信息。
示例过程
图6是根据实施例的用于使用光图案进行眼睛追踪的示例过程600的流程图。图6的过程600可以由眼睛追踪系统300执行。其他实体(例如,hmd)可以执行其他实施例中的过程的一些或所有步骤。同样地,实施例可以包括不同的和/或附加的步骤,或者以不同的顺序执行步骤。
眼睛追踪系统300用光图案照射610用户的眼睛(例如,眼睛220)的部分。眼睛追踪系统300用由照明组件(例如,照明组件310)发射的光图案照射眼睛的部分。光图案由眼睛追踪系统300投射到包括眼睛的部分的目标区域中。目标区域包括眼睛的巩膜和眼睛的角膜之间的边界区域。例如,光图案可以在目标区域上具有每0.5mm至少1个光特征的密度。
眼睛追踪系统300捕获620眼睛的被照射部分的一个或多个图像。眼睛追踪系统300使用相机230(例如,相机组件320)捕获眼睛的被照射部分的一个或多个图像。捕获图像中的至少一个包括由边界区域反射的多次闪烁的子集。
眼睛追踪系统300基于一个或多个图像和眼睛的模型估计630眼睛的位置。眼睛追踪系统300使用投射光图案的已知结构和眼睛的模型m来确定由眼睛的形状引起的光的失真(并且在某种程度上来自虹膜的反射,如下面关于图5详细描述的)。根据失真,眼睛追踪系统300将深度信息归因于图像的不同部分。使用深度信息,眼睛追踪系统300更新存储在模型m中的眼睛的部分的3d近似。眼睛追踪系统300可以使用深度信息来确定眼睛追踪信息(例如,注视角度),并将眼睛追踪信息提供给hmd和/或控制台以便于例如注视点渲染、焦点调整等。在一些实施例中,眼睛追踪系统300使用捕获的图像识别眼睛的边界区域中的闪烁子集,并且部分地基于所识别的闪烁和眼睛的模型m来估计眼睛的位置。
hmd系统概述
图7是根据实施例的hmd系统700。系统700可以用作人工现实系统。在该示例中,系统700包括hmd705、成像设备710和i/o接口715,它们各自耦接到控制台725。虽然图7示出了单个hmd705、单个成像设备710和单个i/o接口715,但是在其他实施例中,系统中可以包括任何数量的这些组件。例如,可以存在多个hmd700,每个hmd700具有关联的i/o接口715并且由一个或多个成像设备710监视,其中每个hmd705、i/o接口715和成像设备710与控制台725通信。在可选配置中,系统700中还可以包括不同的和/或附加的组件。
hmd705可以充当人工现实hmd。在一些实施例中,人工现实hmd利用计算机生成的元素(例如,图像、视频、声音等)来增强物理真实世界环境的视图。hmd705向用户呈现内容。在一些实施例中,hmd100是hmd705的实施例。示例内容包括图像、视频、音频或其某种组合。音频内容可以经由hmd705外部的单独设备(例如,扬声器和/或耳机)呈现,该单独设备从hmd705、控制台725或两者接收音频信息。hmd705包括电子显示器730、光学块210、一个或多个定位器735、位置传感器125、内部测量单元(imu)130、眼睛追踪系统300和可选的变焦模块740。
电子显示器730根据从控制台725接收的数据向用户显示2d或3d图像。在各种实施例中,电子显示器730包括单个电子显示元件(例如,电子显示元件205)或多个电子显示器(例如,用于用户的每只眼睛的显示器)。电子显示元件的示例包括:液晶显示器(lcd)、有机发光二极管(oled)显示器、无机发光二极管(iled)显示器、有源矩阵有机发光二极管(amoled)显示器、透明有机发光二极管(toled)显示器、波导显示器、一些其他显示器或它们的一些组合。
光学块210放大从电子显示器730接收的图像光,校正与图像光相关联的光学误差,并将校正的图像光呈现给hmd705的用户。光学块210包括多个光学元件。包括在光学块210中的示例光学元件包括:光圈、菲涅耳透镜、凸透镜、凹透镜、滤光器、反射表面、特征波导或影响图像光的任何其他合适的光学元件。此外,光学块210可包括不同光学元件的组合。在一些实施例中,光学块210中的一个或多个光学元件可具有一个或多个涂层,例如部分反射或抗反射涂层。
定位器735是位于hmd705上相对于彼此并且相对于hmd705上的特定参考点的特定位置的物体。定位器135是定位器735的实施例。定位器735可以是发光二极管(led)、角隅棱镜反射器、反射标记、与hmd705操作的环境形成对比的光源类型、或其某种组合。有源定位器735(即,led或其他类型的发光器件)可以在可见光波段(~380nm至750nm)、红外(ir)波段(~440nm至1700nm)、紫外波段(10nm至380nm)、电磁波谱的一些其他部分或其某种组合中发光。
定位器735可以位于hmd705的外表面下方,其对于由定位器735发射或反射的光的波长是透明的,或者足够薄以基本上不会衰减由定位器735发射或反射的光的波长。此外,hmd705的外表面或其他部分在可见光波长波段中可以是不透明的。因此,定位器735可以在hmd705的外表面下方时在ir波段中发光,其在ir波段中是透明的但在可见波段中是不透明的。
如上面参考图1所述,imu130是基于从一个或多个位置传感器125接收的测量信号产生imu数据的电子设备,其响应于hmd705的运动产生一个或多个测量信号。位置传感器125的示例包括加速计、陀螺仪、磁力计、适于检测运动、校正与imu130相关的误差的其他传感器、或其某种组合。
基于来自位置传感器125的测量信号,imu130生成指示hmd705相对于hmd705的初始位置的估计位置的imu数据。例如,位置传感器125包括多个加速度计以进行测量平移运动(前进/后退、上/下、左/右)和多个陀螺仪以测量旋转运动(例如,俯仰、偏航和滚转)。imu130可以例如快速采样测量信号并根据采样数据计算hmd705的估计位置。例如,imu130随时间对从加速度计接收的测量信号积分以估计速度矢量并且随时间对速度矢量积分以确定hmd705上的参考点的估计位置。参考点是可以用于描述hmd705的位置的点。虽然参考点通常可以被定义为空间中的点,但是在各种实施例中,参考点被定义为hmd705内(例如,imu130的中心)的点。可选地,imu130将采样的测量信号提供给确定imu数据的控制台725。
imu130还可以从控制台725接收一个或多个校准参数。如下面进一步讨论的,一个或多个校准参数用于维持hmd705的追踪。基于接收的校准参数,imu130可以调整一个或多个imu参数(例如,采样率)。在一些实施例中,某些校准参数使imu130更新参考点的初始位置以对应于参考点的下一个校准位置。将参考点的初始位置更新为参考点的下一个校准位置有助于减少与确定估计位置相关联的累积误差。累积误差(也称为漂移误差)使得参考点的估计位置随时间“漂移”远离参考点的实际位置。
眼睛追踪系统300确定与佩戴hmd705的用户的一只或两只眼睛相关联的眼睛追踪信息。眼睛追踪系统300确定的眼睛追踪信息可包括关于用户眼睛的方向的信息,即,关于眼睛注视角度的信息。眼睛追踪系统300包括源组件,其以光图案照射用户的一只或两只眼睛。相机组件捕获由被追踪的眼睛的部分反射的光图案的图像。捕获图像中的至少一个包括由边界区域反射的多次闪烁的子集。眼睛追踪系统300确定眼睛的位置,如上面关于图2至图6详细讨论的。然后,眼睛追踪系统300使用所确定的位置确定眼睛追踪信息。例如,给定眼睛的位置,眼睛追踪系统300可以确定注视角度。在一个实施例中,眼睛追踪系统300使用飞行时间消除可能的反射位置的歧义。在可选实施例中,眼睛追踪系统300使用偏振信息消除可能的反射位置的歧义。
在一些实施例中,变焦模块740进一步集成到hmd705中。变焦模块740可以耦接到眼睛追踪系统300以获得由眼睛追踪系统300确定的眼睛追踪信息。变焦模块740可以被配置为基于从眼睛追踪系统300获得的确定的眼睛追踪信息来调整在电子显示器730上显示的一个或多个图像的焦点。以这种方式,变焦模块740可以减轻与图像光相关的聚散度调节冲突。变焦模块740可以与电子显示器730中的至少一个和光学块210中的至少一个光学元件接口(例如,机械地或电气地)。然后,基于从眼睛追踪系统300获得的确定的眼睛追踪信息,变焦模块740可以被配置为通过调整电子显示器730中的至少一个和光学块210中的至少一个光学元件的位置来调整在电子显示器730上显示的一个或多个图像的焦点。通过调整位置,变焦模块740改变从电子显示器730朝向用户的眼睛输出的图像光的焦点。变焦模块740还可以被配置为至少部分地基于从眼睛追踪系统300获得的所确定的眼睛追踪信息,通过执行所显示的图像的中央渲染来调整在电子显示器525上显示的图像的分辨率。在这种情况下,变焦模块740向电子显示器730提供适当的图像信号。变焦模块740仅在用户眼睛注视的中央凹区域中为电子显示器730提供具有最大像素密度的图像信号,同时在电子显示器730的其他区域中提供具有较低像素密度的图像信号。
成像设备710根据从控制台725接收的校准参数生成图像数据。图像数据包括示出可由成像设备710检测的定位器735的观察位置的一个或多个图像。成像设备710可包括一个或更多相机、一个或多个视频相机、能够捕获包括一个或多个定位器735的图像的其他设备、或其某种组合。另外,成像设备710可包括一个或多个滤波器(例如,用于增加信噪比)。成像设备710被配置为检测在成像设备710的视野中从定位器735发射或反射的光。在定位器735包括无源元件(例如,后向反射器)的实施例中,成像设备710可包括照射一些或所有定位器735的光源,其将光逆源反射向成像设备710中的光源。图像数据从成像设备710传送到控制台725,并且成像设备710从控制台725接收一个或多个校准参数,以调整一个或多个成像参数(例如,焦距、焦点、帧速率、iso、传感器温度、快门速度、光圈等)。
i/o接口715是允许用户向控制台725发送动作请求的设备。动作请求是执行特定动作的请求。例如,动作请求可以是开始或结束应用程序或在应用程序内执行特定动作。i/o接口715可以包括一个或多个输入设备。示例输入设备包括键盘、鼠标、游戏控制器、或用于接收动作请求并将所接收的动作请求传送到控制台725的任何其他合适的设备。由i/o接口715接收的动作请求被传送到控制台725,其执行与动作请求相对应的动作。在一些实施例中,i/o接口715可以根据从控制台725接收的指令向用户提供触觉反馈。例如,当接收到动作请求时,i/o接口715提供触觉反馈,或者控制台725将指令传送到i/o接口715,使得i/o接口715在控制台725执行动作时生成触觉反馈。
控制台725向hmd705提供内容,以根据从成像设备710、hmd705、或i/o接口715接收的信息呈现给用户。在图7所示的示例中,控制台725包括应用程序商店745、追踪模块750和引擎760。控制台725的一些实施例具有与结合图7描述的模块不同或附加的模块。类似地,下面进一步描述的功能可以以与这里描述的方式不同的方式分布在控制台725的组件之间。
应用程序商店745存储一个或多个应用程序以供控制台725执行。应用程序是一组指令,当由处理器执行时,生成用于呈现给用户的内容。由应用程序生成的内容可以响应于通过hmd705或i/o接口715的移动从用户接收的输入。应用程序的示例包括游戏应用程序、会议应用程序、视频回放应用程序或其他合适的应用程序。
追踪模块750使用一个或多个校准参数来校准系统700,并且可以调整一个或多个校准参数以减少确定hmd705的位置时的误差。例如,追踪模块750调整成像设备710的焦点,以获得hmd705上观察到的定位器735的更准确位置。此外,由追踪模块750执行的校准还考虑从imu215接收的信息。另外,如果丢失了hmd705的追踪(例如,成像设备710失去至少阈值数量的定位器735的视线),追踪模块750重新校准系统700组件中的一些或全部。
另外,追踪模块750使用来自成像设备710的图像信息追踪hmd705的移动,并使用来自图像信息的观察到的定位器和hmd705的模型确定hmd705上的参考点的位置。追踪模块750还使用来自hmd705上的imu215的imu信息的位置信息来确定hmd705上的参考点的位置。另外,追踪模块750可以使用imu信息的部分、图像信息或其某种组合,以预测hmd705的未来位置,其被提供给引擎760。
引擎760执行系统700内的应用程序并从追踪模块750接收hmd705的位置信息、加速度信息、速度信息、预测的未来位置或其某种组合。基于所接收的信息,引擎760确定要提供给hmd705以供呈现给用户的内容,诸如虚拟场景、覆盖到现实世界场景上的一个或多个虚拟对象等。此外,响应于从i/o接口715接收的动作请求,引擎760在控制台725上执行的应用程序内执行动作,并向用户提供执行动作的反馈。所提供的反馈可以是经由hmd705的视觉或听觉反馈或经由vri/o接口715的触觉反馈。
在一些实施例中,基于从眼睛追踪系统300接收的眼睛追踪信息(例如,用户眼睛的方向),引擎760确定提供给hmd705的内容的分辨率,以便在电子显示器730上呈现给用户。引擎760将内容提供给在用户注视的中央凹区域中的电子显示器730上具有最大像素分辨率的hmd705,而引擎760在电子显示器730的其他区域中提供较低的像素分辨率,因此,在hmd705处实现较少的功耗并且节省控制台725的计算周期而不损害用户的视觉体验。在一些实施例中,引擎760可以进一步使用眼睛追踪信息来调整在电子显示器730上显示对象的位置以防止聚散调节冲突。
其他配置信息
已经出于说明的目的呈现了本公开的实施例的前述描述;其并非旨在穷举或将本公开限制于所公开的精确形式。相关领域的技术人员可以理解,鉴于以上公开内容,许多修改和变化是可能的。
本说明书的一些部分在关于信息的操作的算法和符号表示方面描述了本公开的实施例。数据处理领域的技术人员通常使用这些算法描述和表示来有效地将其工作的实质传达给本领域其他技术人员。虽然在功能上、计算上或逻辑上描述这些操作,但应理解为由计算机程序或等效电路、微代码等实现。此外,在不失一般性的情况下,将这些操作安排称为模块,有时也证明是方便的。所描述的操作及其相关模块可以体现为软件、固件、硬件或其任何组合。
本文描述的任何步骤、操作或过程可以单独地或与其他设备组合地用一个或多个硬件或软件模块来执行或实现。在一个实施例中,软件模块用计算机程序产品实现,该计算机程序产品包括含有计算机程序代码的计算机可读介质,该计算机程序代码可以由计算机处理器执行以执行所描述的任何或所有步骤、操作或过程。
本公开的实施例还可以涉及用于执行本文的操作的设备。该设备可以为所需目的而专门构造,和/或它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算设备。这样的计算机程序可以存储在非暂时性有形计算机可读存储介质中,或者可以耦接到计算机系统总线的适合于存储电子指令的任何类型的介质中。此外,说明书中提到的任何计算系统可以包括单个处理器,或者可以是采用多个处理器设计以提高计算能力的架构。
本公开的实施例还可以涉及通过本文描述的计算过程产生的产品。这样的产品可以包括由计算过程产生的信息,其中信息存储在非暂时性有形计算机可读存储介质上,并且可以包括计算机程序产品的任何实施例或本文描述的其他数据组合。
最后,说明书中使用的语言主要是出于可读性和指导目的而选择的,并且可能未选择它来描绘或限制本发明的主题。因此,本公开的范围旨在不受该详细描述的限制,而是受基于此在本申请上发布的任何权利要求的限制。因此,实施例的公开内容旨在说明而非限制本公开的范围,本公开的范围在所附权利要求中阐述。