用于校准可穿戴装置中的图像传感器的系统和方法与流程

文档序号:18523690发布日期:2019-08-24 10:02阅读:132来源:国知局
用于校准可穿戴装置中的图像传感器的系统和方法与流程

本申请要求于2018年2月15日提交的美国临时专利申请号62/631,196的权益,所述美国临时专利申请的全部公开内容如在本文中完整阐述的那样出于所有目的通过引用结合在此。

本申请涉及注视检测系统和方法。



背景技术:

与计算设备的交互是当今世界的一种基本行为。诸如个人计算机等计算设备在日常生活中随处可见。用于与这种设备进行交互的系统和方法定义了如何使用它们以及它们用于何种用途。

眼睛跟踪技术的进步已使得使用个人的注视信息而与计算设备进行交互成为可能。换而言之,用户正在注视的显示器上的位置。此信息可以单独地、或者与接触式交互技术(例如,使用用户输入设备,诸如键盘、鼠标或触摸屏)结合地用于交互。

基于注视的交互技术正在寻找其应用于可穿戴计算设备中的方式,所述可穿戴计算设备诸如虚拟现实(vr)头戴装置和增强现实(ar)头戴装置。有利地,这些技术允许用户控制可穿戴计算设备的某些方面(例如,用户界面、设置、所呈现的内容等)。



技术实现要素:

在一个实施例中,提供了一种增强现实装置、虚拟现实装置、或其他可穿戴装置。所述装置可以包括:设置在所述可穿戴装置上的全息膜、和包括图像传感器和照明器的眼睛跟踪设备、以及一个或多个处理器。所述处理器可以被配置用于:激活所述照明器来照亮所述全息膜;以及当所述全息膜被照亮时,利用所述图像传感器来捕获所述全息膜的至少一个部分的图像。所述处理器还可以被配置用于:基于所述图像来确定所述全息膜的特性;以及基于所述特性来确定所述图像传感器相对于所述全息膜的位置或取向中的至少一者。所述处理器可以进一步被配置用于:基于所述图像传感器相对于所述全息膜的所述位置或所述取向中的至少一者来改变所述图像传感器的至少一个校准参数。

在另一实施例中,提供了一种用于改变增强现实装置、虚拟现实装置、或其他可穿戴装置的眼睛跟踪设备中的图像传感器的至少一个校准参数的方法。所述方法可以包括:激活眼睛跟踪设备的照明器来照亮设置在可穿戴装置上的全息膜。所述方法还可以包括:在所述全息膜被照亮时,利用所述眼睛跟踪设备的图像传感器来捕获所述全息膜的至少一个部分的图像。所述方法可以进一步包括:基于所述图像来确定所述全息膜的特性。另外,所述方法可以包括:基于所述特性来确定所述图像传感器相对于所述全息膜的位置或取向中的至少一者。此外,所述方法可以包括:基于所述图像传感器相对于所述全息膜的所述位置或所述取向来改变所述图像传感器的至少一个校准参数。

在另一实施例中,提供了一种非暂态机器可读介质,其上存储有指令,所述指令用于改变增强现实装置、虚拟现实装置、或其他可穿戴装置的眼睛跟踪设备中的图像传感器的至少一个校准参数。所述指令可以由一个或多个处理器执行以执行方法。所述方法可以包括:激活眼睛跟踪设备的照明器来照亮设置在可穿戴装置上的全息膜。所述方法还可以包括:在所述全息膜被照亮时,利用所述眼睛跟踪设备的图像传感器来捕获所述全息膜的至少一个部分的图像。所述方法可以进一步包括:基于所述图像来确定所述全息膜的特性。另外,所述方法可以包括:基于所述特性来确定所述图像传感器相对于所述全息膜的位置或取向中的至少一者。此外,所述方法可以包括:基于所述图像传感器相对于所述全息膜的所述位置或所述取向来改变所述图像传感器的至少一个校准参数。

在一个实施例中,提供一种增强现实装置、虚拟现实装置、或其他可穿戴装置,其包括:全息膜,其设置在可穿戴装置上;眼睛跟踪设备,其包括图像传感器和照明器;以及一个或多个处理器,其被配置用于至少:激活所述照明器来照亮所述全息膜;在所述全息膜被照亮时,利用所述图像传感器来捕获所述全息膜的至少一部分的图像;基于所述图像来确定所述全息膜的特性;基于所述特性来确定所述图像传感器相对于所述全息膜的位置或取向中的至少一者;以及基于所述图像传感器相对于所述全息膜的所述位置或所述取向中的至少一者来改变所述图像传感器的至少一个校准参数。

所述图像包括:离开所述全息膜的光反射。

所述反射包括:来自所述全息膜的特征的漫反射。

所述反射包括:所述全息膜的特征的镜面反射。

所述图像包括:在不具有光反射的区域周围的光漫反射。

所述图像包括:由所述全息膜的边缘界定的光漫反射。

确定所述图像传感器相对于所述全息膜的所述位置或所述取向包括:确定所述图像传感器相对于三条正交轴线的位置或取向。

所述全息膜包括:布置在所述全息膜中的两条轴线中的三个特性,所述三个特性朝向所述图像传感器对光进行镜面反射。

所述全息膜包括:反射光的仅一个特性,其中,所述特性是二维的。

所述全息膜包括:不反射光的至少一个特性,其中,所述至少一个特性的至少某部分由所述全息膜的反射部分来界定,并且其中,所述至少一个特性是二维的。

在一个实施例中,提供一种用于改变增强现实装置、虚拟现实装置、或其他可穿戴装置的眼睛跟踪设备中的图像传感器的至少一个校准参数的方法,所述方法包括:激活眼睛跟踪设备的照明器来照亮设置在可穿戴装置上的全息膜;在所述全息膜被照亮时,利用所述眼睛跟踪设备的图像传感器来捕获所述全息膜的至少一部分的图像;基于所述图像来确定所述全息膜的特性;基于所述特性来确定所述图像传感器相对于所述全息膜的位置或取向中的至少一者;以及基于所述图像传感器相对于所述全息膜的所述位置或所述取向来改变所述图像传感器的至少一个校准参数。

所述图像包括:离开所述全息膜的光反射,并且其中,所述反射包括来自所述全息膜的特征的漫反射或者所述全息膜的特征的镜面反射。

所述图像包括:在不具有光反射的区域周围的光漫反射。

所述图像包括:由所述全息膜的边缘界定的光漫反射。

确定所述图像传感器相对于所述全息膜的所述位置或所述取向包括:确定所述图像传感器相对于三条正交轴线的位置或取向。

在一个实施例中,提供一种非暂态机器可读介质,其上存储有指令,所述指令用于改变增强现实装置、虚拟现实装置、或其他可穿戴装置的眼睛跟踪设备中的图像传感器的至少一个校准参数,其中,所述指令可由一个或多个处理器执行以便至少进行以下操作:激活眼睛跟踪设备的照明器来照亮设置在可穿戴装置上的全息膜;在所述全息膜被照亮时,利用所述眼睛跟踪设备的图像传感器来捕获所述全息膜的至少一部分的图像;基于所述图像来确定所述全息膜的特性;基于所述特性来确定所述图像传感器相对于所述全息膜的位置或取向中的至少一者;以及基于所述图像传感器相对于所述全息膜的所述位置或所述取向来改变所述图像传感器的至少一个校准参数。

所述图像包括:离开所述全息膜的光反射,并且其中,所述反射包括来自所述全息膜的特征的漫反射或者所述全息膜的特征的镜面反射。

所述图像包括:在不具有光反射的区域周围的光漫反射。

所述图像包括:由所述全息膜的边缘界定的光漫反射。

确定所述图像传感器相对于所述全息膜的所述位置或所述取向包括:

确定所述图像传感器相对于三条正交轴线的位置或取向。

附图说明

结合附图描述了本发明的实施例:

图1示出了示例性眼睛跟踪系统;

图2示出了由图像传感器捕获的眼睛的示例图像;

图3示出了专用计算机系统;

图4示出了示例性可穿戴计算设备;

图5示出了虚拟现实头戴装置的示例部件;

图6示出了透镜上的标记的示例;

图7示出了使用透镜上的标记的示例;

图8示出了一种用于更新校准参数的方法;

图9示出了角膜中心到透镜的距离的示例;

图10示出了图像枕形失真的示例;

图11示出了另一种用于更新校准参数的方法;

图12示出了优化的菲涅尔透镜的示例;

图13示出了两层菲涅尔透镜的示例;

图14示出了操纵虚拟现实环境中的对象的示例;

图15示出了一种用于操纵虚拟环境中的对象的方法;

图16示出了操纵虚拟现实环境中的多个对象的示例;

图17示出了一种用于操纵虚拟现实环境中的多个对象的方法;

图18示出了操纵虚拟现实环境中的多个对象的另一示例;

图19示出了另一种用于操纵虚拟现实环境中的多个对象的方法;

图20示出了更换虚拟环境中的控制器的示例;

图21示出了一种用于更换虚拟环境中的控制器的方法;

图22示出了可穿戴装置的示意性示例,其展示了本发明的一个实施例;以及

图23a至图23f示出了其上具有反射性标记的示例全息膜。

在附图中,类似部件和/或特征可以具有相同的数字参考标记。进一步地,可以通过在参考标记之后用区分类似部件和/或特征的字母来区分相同类型的各部件。如果在说明书中仅使用了第一数字参考标记,则所述描述适用于在不考虑字母后缀的情况下具有相同的第一数字参考标记的类似部件和/或特征中的任一个。

具体实施方式

本申请涉及注视检测系统和方法。在示例中,这种系统和方法在虚拟现实设备、增强现实设备、和/或其他计算设备中具体实施,并且支持使用注视信息来进行用户与这种计算设备的交互。

与计算设备的交互是当今世界的一种基本行为。诸如个人计算机等计算设备在日常生活中随处可见。用于与这种设备进行交互的系统和方法定义了如何使用它们以及它们用于何种用途。

眼睛跟踪技术的进步已使得使用个人的注视信息而与计算设备进行交互成为可能。换而言之,用户正在注视的显示器上的位置。此信息可以单独地、或者与接触式交互技术(例如,使用用户输入设备,诸如键盘、鼠标或触摸屏)结合地用于交互。

先前提出的使用注视信息的交互技术可以在美国专利6,204,828、美国专利申请公开20130169560、美国专利7,113,170、美国专利申请公开20140247232和美国专利9,619,020中找到。这些专利和申请的全部说明书通过引用结合于本文中。

基于注视的交互技术正在寻找其应用于可穿戴计算设备中的方式,所述可穿戴计算设备诸如虚拟现实(vr)头戴装置和增强现实(ar)头戴装置。有利地,这些技术允许用户控制可穿戴计算设备的某些方面(例如,用户界面、设置、所呈现的内容等)。

尽管如此,考虑到这些类型的计算设备的便携性,出现了许多技术挑战。例如,由于不同的原因,注视信息的准确性可能降低。可穿戴计算设备经历重复移动,这可以改变光处理硬件部件的对准。随着时间的推移,未对准(misalignment)降低了从处理所测量的光数据导出的信息的准确性。另一原因与这些光处理硬件部件(例如,所使用的透镜)中的一些的尺寸有关。尺寸通常由于可穿戴计算设备的大小而受到限制。进而,所述限制可能影响硬件部件对光进行处理(例如,传输、反射、扭曲、散射)的良好程度。

此外,在可穿戴计算设备上可用的许多应用都涉及外部控制器的使用。使用外部控制器来准确且直观地与虚拟对象进行交互影响这种应用的可用性、成功和失败。将虚拟世界与外部控制器和注视信息整合具有挑战性。

本公开的实施例涉及提高检测注视信息的准确性以及依赖外部控制器的应用的可用性。在使用基于注视的交互技术的可穿戴计算设备的示例背景中,可以基于随着时间推移的部件校准和/或基于考虑到总体尺寸限制的特定部件构造提高准确性。部件校准一般包括更新注视相关参数。在第一示例中,更新注视相关参数依赖于对图像进行处理,以基于定位在透镜上的标记来确定相机和透镜的位置和旋转。在第二示例中,更新注视相关参数依赖于对图像进行处理,以确定角膜中心与透镜中心之间的距离并且使用此距离来补偿失真(例如,枕形失真)。在第三示例中,更新注视相关参数依赖于对图像进行处理,以确定多个闪光位置并且更新立体参数(例如,角膜的中心和半径、以及到相机的距离)。关于特定部件构造,在示例中使用菲涅尔透镜。这个透镜的中心区没有任何菲涅尔阶梯。相反,菲涅尔阶梯以环形方式围绕中心区,并且具有不同的凹槽深度和阶梯大小。下文进一步描述了这些和其他示例。为了清楚地解释,首先描述了注视检测系统的部件,随后描述了如何在可穿戴便携设备中实施这种部件。此后,描述了示例部件校准和示例菲涅尔透镜构造的细节。在使用基于注视的交互技术和外部控制器的可穿戴计算设备的示例背景中,跟踪用户对虚拟环境中的虚拟对象的注视并且在虚拟环境中呈现外部控制器的虚拟表示。在检测到用户已经对特定对象注视了一段时间时,可穿戴计算设备选择并锁定所述对象。考虑到外部控制器的用户触摸区域,可穿戴计算设备呈现虚拟菜单以操纵经锁定的虚拟对象。菜单上的选项取决于用户触摸区域。以这种方式,用户能够通过在外部控制器的触摸区域周围移动他或她的手指来准确且直观地操纵经锁定的虚拟对象。

眼睛跟踪

图1示出了根据实施例的眼睛跟踪系统100(其还可以被称为注视跟踪系统)。系统100包括用于照亮(或照射)用户眼睛的照明器(或发光器)111和112,以及用于捕获用户眼睛的图像的图像传感器113。照明器111和112可以例如是发射红外频段中或近红外频段中的光的发光二极管。图像传感器113可以例如是相机,诸如互补金属氧化物半导体(cmos)相机或电荷耦合器件(ccd)相机。所述相机不限于ir相机或深度相机或光场相机。图像传感器的快门机构可以是卷帘快门或者全局快门。

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

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

图2示出了眼睛200的由图像传感器113捕获的图像的示例。电路系统120可以例如采用图像处理(诸如数字图像处理)来提取图像中的特征。电路系统120可以例如采用瞳孔中心角膜反射(pccr)眼睛跟踪来确定眼睛200正在看的位置。在pccr眼睛跟踪中,处理器120估计在眼睛200处瞳孔210中心的位置以及闪光220中心的位置。闪光220是由来自照明器111和112之一的光的反射引起的。处理器120使用闪光220计算用户在空间中的位置,并且使用瞳孔210计算用户的眼睛200正指向的位置。由于在眼睛200的光学中心与中央凹(fovea)之间通常存在偏移,因此处理器120执行中央凹偏移校准,以便能够确定用户正在看的位置。然后可以对从左眼和从右眼获得的注视方向进行组合以形成组合估计注视方向(或观察方向)。如以下将描述的,许多不同因素可能影响左眼和右眼的注视方向在形成这个组合时应当如何相对于彼此而被加权。

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

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

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

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

实施眼睛跟踪的可穿戴计算设备

图4示出了可穿戴计算设备400的示例,所述可穿戴计算设备实施如结合图1至图2描述的眼睛跟踪系统的上述部件中的一些或全部。可穿戴计算设备400可以是可以由用户穿戴的vr头戴装置或ar头戴装置。如所展示的,可穿戴计算设备400包括一组透镜410(诸如,菲涅尔透镜)、一组相机420、一组热镜430(例如,如图12至图14中进一步展示的,在各实施例中这组热镜包括用于每只眼睛的两个热镜)、以及一组显示器440。相机420可以包括图1的图像传感器113。尽管在图4中未示出,但可穿戴计算设备400还可以包括一组照明器和处理电路系统。这些和其他部件可以被集成在可穿戴计算设备400的壳体450内。以这种方式,在用户将可穿戴计算设备400装设在他或她的头部上时,这组透镜410将相对靠近用户的眼睛,并且这组显示器将相对远离用户的眼睛,并且剩余部件可以位于两者之间。对这些部件的布置允许在三维虚拟或真实空间中检测用户的注视点。

图5示出了vr头戴装置的示例部件,所述vr头戴装置实施如结合图1至图5描述的眼睛跟踪系统和专用计算机系统的上述部件中的一些或全部。如所展示的,所述部件包括透镜杯510(也可以被称为透镜筒)。在示例中,透镜杯510是由诸如塑料的刚性材料制成的壳体,并且包括沿着横向轴线的两个相对的开口512和514。透镜杯510的形状沿着所述轴线基本上为半锥式(或漏斗式)壳体,其中,第一开口512代替全圆锥的锥峰,并且第二开口514处于基部。头戴式(hmd)透镜520安装在第一开口512中并且利用照明器盖530来进行保护。光照明器540设置在盖530内并且处于透镜杯510的外部。替代性地,可以暴露照明器540而无需盖530。光照明器540可以包括发射在红外或近红外光谱中的光的一组发光二极管(led)。透镜杯510的一侧包括形成腔室516的开口和壁。相机模块550安装在腔室中并且其光学传感器面向腔室516的开口。部件还包括热镜560、vr显示器570、和电子板580。热镜560在接近第二开口514的位置处安装在透镜杯510的外部。vr显示器570相对于第二开口514而安装在热镜560的后面(例如,更远离第二开口514)。电子板580包括图3的专用计算机系统300的一些或全部部件(例如,cpu、存储设备、计算机可读存储介质读取器、通信系统、处理加速单元和工作存储器)。

基于相机和透镜在使用期间的位置和旋转的硬件校准

一般而言,可穿戴计算设备(如图4至图5中所展示的可穿戴计算设备)由于用户的随机移动而不稳定(摇晃)。例如,突然的下落可能引起内部部件、尤其是相机和透镜的移动。相机与透镜的未对准导致不准确的眼睛跟踪。为解决未对准并且提高准确性,可以使用校准。

在现有的系统中,校准将涉及手动地拆卸可穿戴计算设备并且将这些部件重新安装到正确位置。并且然后从一开始就启动注视校准过程,这意味着需要各种参数(例如,透镜的焦距、透镜直径、相机的焦距/fov、相机位置和取向、热镜的位置、相机的成像参数、照明参数等)来用于校准过程。

相反,本公开的实施例显著地简化了校准过程。例如,校准包括:基于相机和透镜的位置和/或旋转来确定未对准;以及在计算注视信息时考虑所述位置和/或所述旋转。

使用这种类型的校准的技术挑战是没有直接的方法来确定相机和透镜在使用期间的位置和旋转。本公开的实施例使用通过在透镜上放置标记并依赖于透镜上的标记的间接方法。基于由相机捕获的一个或多个图像来计算相机(例如,图像传感器平面或表面的位置)与透镜上的标记(例如,标记的x坐标和y坐标)之间的距离,而不是考虑上述参数。通过使用距离值,眼睛跟踪系统可以调整相机的校准参数(例如,成像参数、焦距、失真参数和照明参数)。相机可以是:(i)具有光学布置的至少一个图像传感器;或者(ii)不具有光学布置但具有超薄光学相控阵(opa)的至少一个无透镜相机,所述至少一个无透镜相机在不使用传统透镜的情况下操纵入射光来捕获图像。

在示例中,本公开的实施例包括存储原始距离和新近更新的距离历史信息。存储对于可穿戴计算设备而言可以是本地的或远程的(例如,在用户标识时可从远程服务器中检索)。通过使用由眼睛跟踪相机(例如,ir相机)(眼睛跟踪相机在本文中被称为“相机”)捕获的图像来估计距离。所捕获的用于硬件校准的这些图像中的每个图像本地地或远程地存储在非易失性(例如,闪存)存储器中。每当启动可穿戴计算设备时,可以如本文描述的那样捕获新图像。新捕获的图像可与所存储的最近的(至少一个)图像一起来标识是否发生了标记的任何相对移动。如果是,则至少进一步分析该新捕获的图像以执行校准。否则,跳过校准。

标记处于相机的同一侧,并且优选地可以被放置在透镜之一上和/或嵌入透镜之一内。如果存在两个或更多个透镜,则一个或多个标记被放置在透镜中的每一个上和/或嵌入透镜中的每一个内,因为任何意外的下落都可能引起透镜中的每一个透镜和与其对应部件的不一致移动。这种类型的校准还可以用于其他场景。例如,可以移动透镜中的一个或多个来补偿视觉假象,诸如近视或远视。在这种场景中,可以以类似方式(例如,通过依赖于相机到标记的距离和/或标记的x坐标和y坐标)视觉检测光学设置。标记可以是十字标记、点图案(例如,透镜内led照明器图案)或线。可以将标记放置在透镜组的光学器件中的每一个或一些光学器件中。例如,可以将标记放置在菲涅尔透镜的一个或多个层上,并且甚至放置在热镜上。在不同的透镜元件中可以使用不同的标记。例如,十字可以用作一个透镜上的标记,圆圈用作另一透镜上的标记,并且三角形用作第三透镜上的标记。以这种方式,标记的类型(例如,如在图像中检测到的)可以用于将标记与透镜相关联。

由于已知相机与透镜的原始相对位置和对准,因此一旦透镜或相机被移动,通过使用标记的估计位置,我们就可以“重构”相机与透镜的新的相对位置和对准。因此,将自动且立即重新校准眼睛跟踪相机和照明器。

可以使用不同的方式来触发校准。在一种方式中,只要头戴装置通电或者在由眼睛跟踪相机检测到用户眼睛时,校准在头戴装置的寿命期间总是开启的。在另一种方式中,可以使用传感器来触发校准。例如,加速度计和/或陀螺仪用于突然移动检测并且然后触发校准过程。在又一种方式中,用户可以使用手动控件(例如,vr头戴装置上的物理按钮)来发起重新校准过程。在一些或所有方式中,在不完美的眼睛跟踪情况下(例如,响应于传感器触发)将给出警告反馈(可听到的或可见的警告反馈或振动)。在进一步示例中,触发是对用户存在(或用户不存在)的检测。例如,在经过预定义时间段(诸如20秒)未看到用户之后检测到用户存在时,可以执行校准。

在执行硬件校准之前或眼睛跟踪头戴装置的运行时间之前,眼睛跟踪头戴装置内部的每个部件的位置和对准的(出厂默认)信息或数据存储在计算机可读介质中,并且其是已知的或被输入到系统中的。所述部件至少包括热镜560、照明模块(530+540)、相机模块550、透镜杯510、和vr显示器570。部件的位置和对准数据由3d坐标系来表示。

在实施例中,提供了一种增强现实装置、虚拟现实装置、或其他可穿戴装置。图4至图5的可穿戴计算设备是这种装置的示例。在示例中,所述装置包括眼睛跟踪设备和一个或多个处理器。所述眼睛跟踪设备包括图像传感器(诸如相机)和第一透镜。所述第一透镜包括第一标记。例如,第一标记处于第一透镜的表面上或嵌入第一透镜中。第一标记的位置在相机的视野或视场(fov)内。第一标记选自由以下各项组成的组:十字标记、点图案、点、线、和几何图形。附加地或替代性地,第一标记包括发光元件(例如,一个或多个led)。所述装置或眼睛跟踪设备进一步包括第二透镜,所述第二透镜包括第二标记。第二标记位于透镜的一个层处。附加地或替代性地,所述装置进一步包括热镜,所述热镜包括另一标记。

所述一个或多个处理器被配置为(例如,基于存储在一个或多个非暂态计算机可读存储介质中的计算机可读指令)至少:从图像传感器接收第一图像,其中,所述第一图像示出了第一标记;基于所述第一图像来确定从图像传感器到第一标记的第一距离;以及基于所述第一距离来改变与眼睛跟踪设备一起使用的眼睛跟踪算法的至少一个校准参数。

在示例中,改变所述至少一个校准参数是进一步基于第一距离不同于第二距离而进行的,其中,所述第二距离是先前测量和存储的距离。在示例中,基于所述第一距离来改变所述至少一个校准参数包括:基于所述第一距离以及第一标记在第一透镜处的已知位置来确定从图像传感器到第一透镜的另一距离;以及基于所述第二距离来改变与眼睛跟踪设备一起使用的眼睛跟踪算法的所述至少一个校准参数。所述一个或多个处理器可以进一步被配置用于基于第一图像来确定图像传感器相对于第一标记的方向。如果是这样的话,则改变所述至少一个校准参数是进一步基于所述方向进行的。

在进一步的示例中,在以下情况下执行对校准参数的改变:(a)新确定的距离不同于先前确定的值;以及(b)对校准参数的调整不仅仅基于新确定的且不同的距离值,而且还基于部件的输入位置和对准数据。

在示例中,如果第二标记包括在第一透镜中,则第一图像示出第二标记。所述一个或多个处理器进一步被配置用于:基于第一图像来确定从图像传感器到第二标记的第二距离;以及基于所述第二距离来改变眼睛跟踪算法的至少一个校准参数。在另一示例中,如果第二标记包括在第二透镜中,则所述一个或多个处理器进一步被配置用于:从图像传感器接收第二图像,其中,所述第二图像示出第二标记;基于所述第二图像来确定从图像传感器到第二标记的第二距离;以及基于所述第二距离来改变眼睛跟踪算法的至少一个校准参数。在又一示例中,如果第二标记包括在热镜中,则从图像传感器接收到的第一图像或第二图像示出第二标记。所述一个或多个处理器进一步被配置用于:基于第一图像或第二图像来确定从图像传感器到第二标记的第二距离;以及基于第二距离来改变与眼睛跟踪设备一起使用的眼睛跟踪算法的至少一个校准参数。在这些不同的示例中,所述至少一个校准参数选自由以下各项组成的组:成像参数、焦距、失真参数和照明参数。

结合图6至图8进一步描述这些和其他特征。图6展示了透镜上或透镜中的标记的示例。图7展示了标记的图像的示例以及基于图像来计算距离和方向的示例。图8展示了用于更新校准参数的流程的示例。

图6展示了根据本公开的某些实施例的透镜620上或透镜620中的标记610的示例。如所展示的,透镜620可以具有几何形状(例如,圆圈和椭圆)并且具有适于装配在诸如vr头戴装置或ar头戴装置等可穿戴计算设备中的尺寸。例如,透镜620是菲涅尔透镜。

标记610可以附接(例如,胶合)或嵌入(例如,蚀刻或纹理化)在透镜620的外表面上,或者可以嵌入在透镜620的内部体积内。在示例中,标记610可以具有诸如十字标记、点图案、点、线、几何形状等的形状,和/或可以包括发光元件(例如,包括以预定义图案布置在透镜上或嵌入在透镜中的多个led的照明矩阵)。所述形状和/或由所述形状和/或发光元件传达的任何图案可以编码或呈现关于标记610的信息。此信息可以用于计算距离和方向。例如,所述信息可以指示标记610的大小(其允许基于图像分析来确立像素比例,并且所述像素比例在计算时是可用的,如结合图7至图8进一步描述的)。进一步地,所述信息可以指示标记610在透镜620上或中的原始位置(例如,透镜的顶部、距透镜620的外周界五毫米内),所述原始位置也可以在计算时使用。所述信息还可以标识标记610或透镜620(其可用于从存储器中检索关于大小、位置、和/或先前的距离和方向的相关信息)。

不同的技术可以用于基于可穿戴计算设备的部件(例如,透镜和图像传感器)的位置和对准来调整一个或多个校准参数。一般而言,可从存储器中获得部件的现有位置和对准数据。图像由图像传感器捕获并且示出透镜上的标记。基于所述图像来计算标记与透镜之间的距离。基于内部部件的现有位置和对准数据以及基于所计算的距离来调整(多个)校准参数。

不同的技术可用于基于图像数据来计算可穿戴计算设备的部件之间的相对移动。在示例中,将每个部件的位置和对准数据映射到三维坐标系中。这个系统还包括标记的位置。部件的相对距离和位置首先对系统而言是已知的,或者基于先前确定的结果来进行存储。一旦图像传感器检测到标记的移动,就可以基于来自图像的信息以及可从三维坐标系获得的信息来计算所述移动。由于所有的相对位置和对准都被映射在同一三维坐标系上,因此可以基于由图像传感器生成的图像数据通过将部件重新映射到三维坐标系来自动地计算部件中的每一个部件的新的相对位置和对准。新的映射与先前的映射之间的差异指示用于改变(多个)校准参数的新的相对位置和对准。

图7展示了根据本公开的某些实施例的标记的图像的示例以及基于所述图像来计算距离和方向的示例。在示例中,所述距离是标记(例如,标记的表面上的点)与相机710(或相机710的图像传感器的表面上的点)之间的直线距离。这个直线距离指示相机710与透镜的位置(例如,表示两者之间的距离间隔的值)。所述方向是标记从先前位置移动的方向。这个方向指示透镜相对于相机710的旋转(或者反之亦然)。对标记移动的确定不限于前述方向计算。这种移动的原因可能由于部件的不同制造方法而变化。

用于导出距离和方向的图像数可能取决于由标记传达的信息和/或可从存储器获得的相关信息。在示例中,在标记编码或呈现其大小和原始位置时,单个图像就足够了。类似地,在标记标识其自身或透镜并且关于大小和原始位置的信息可基于该标识符从存储器获得时,单个图像就足够了。在这些示例中,单个图像基于相机710和/或透镜的移动示出了在其当前位置中的标记。否则,可以使用两个或更多个图像。这些图像之一示出了先前位置,其中,先前位置与可从存储器获得的先前距离相对应。其他图像之一示出了当前位置,针对所述当前位置,应计算距离和方向。先前位置与当前位置之间的差异指示方向。本文接下来更详细地描述单个图像的使用,随后是对使用两个图像的描述。

一般而言,距离和方向可以相对于坐标系(例如,以相机710的图像传感器的中心为中心的坐标系)来定义,并且可以被表示为向量(距离是向量的大小并且方向是向量的方向)。相机的位置(如通过(多个)图像确定的)被映射到坐标系中的坐标。进一步地,在坐标系中,向量可以在相机710处开始并且在标记的坐标处终止。应用几何重构以便基于(多个)图像来计算向量的方向和大小。

在单个图像的情况下,图像示出在其当前位置中的标记。可以直接根据图像中的编码信息或间接根据存储在存储器中的相关信息标识标记的大小。将所述大小与标记在图像中占用的像素数进行比较。所述比较确立了像素比例(例如,如果标记为十毫米宽并且占用了图像中的十个像素,则图像中的每个像素对应于一毫米)。

此后,基于使用像素比例的几何重构来计算距离和方向。例如,在相机710与图像中的标记的当前位置之间(斜边是相机710的位置到当前位置)以及在当前位置与图像的边缘(例如,直角边)之间形成直角三角形。基于像素比例通过图像确定(多个)内角和直角边。使用三角运算来计算斜边(例如,距离)。

为了通过单个图像来计算方向,确定标记在图像中的当前位置,并且(例如,从图像中示出的编码信息)直接访问或(例如,从存储器中的相关信息)间接访问原始位置。将这两个位置进行比较,并且将像素比例应用于这两个位置之间的差异以导出方向。

在使用两个或更多个图像的情况下,将标记在一个或多个先前图像中的一个或多个先前位置与标记在当前图像中的当前位置进行比较。先前位置与先前的已知方向和位置相对应。可以使用与当前位置的差异来生成差异向量。可以如以上或者根据先前位置和先前距离来计算像素比例。将像素比例应用于差异向量。差异向量的大小和方向表示标记的方向。应用几何重构来从先前方向和差异向量中导出方向。

在图7中进一步展示了对两个图像的使用。这两个图像之间的差异被示出为差异图像720。标记从先前位置730(如在先前图像中示出的)移动至其当前位置740(如在当前图像中示出的)。这两者之间的差异确立了差异向量750。由于先前位置730与相机710之间的先前距离760是已知的,因此可以导出像素比例并将像素比例应用于差异向量750以计算所述差异向量的大小。大小和方向指示标记到新位置740的移动。然后应用几何重构来计算旋转角度780以及当前位置740处的标记到相机710之间的新的距离790。

当然,可能没有移动标记。相反,可能已经移动了相机710并且可以使用类似的方式(单个或多个图像)。同样地,如果移动了两个部件,则也仍可以使用类似的方式。

图8展示了根据本公开的某些实施例的用于更新校准参数的流程的示例。所述流程在操作802处开始,在此操作中,由计算机系统(例如,图5的电子板580)来接收图像。所述图像示出了至少一个标记。所述标记处于透镜上或透镜中。由相机生成(例如,由相机的图像传感器捕获)所述图像。

在操作804处,计算机系统基于图像来确定从相机(例如,从图像传感器)到标记的距离和/或方向。如结合图6至图7描述的,各种方式是可能的。在一种方式中,单个图像可能就足够了。在另一种方式中,访问距离和/或位置的历史。所述历史可以包括示出在先前位置处的标记的先前图像。一般而言,在这两种方式中都应用了几何重构来测量距离和方向。

在操作806处,计算机系统基于标记在透镜上的已知位置来确定从相机(例如,从图像传感器)到透镜的距离和/或方向。例如,这个距离和方向是从图像传感器的中心到透镜的中心。标记的已知位置标识了标记的中心与透镜的中心之间的向量。使用这个向量以便根据操作804中的距离和方向导出相机与透镜之间的距离和方向。

在操作808处,计算机系统基于如在操作804和806处计算的相对于标记和/或透镜的距离和/或方向来改变与眼睛跟踪设备一起使用的眼睛跟踪算法的至少一个校准参数。在示例中,改变校准参数包括改变成像参数、焦距、失真参数和照明参数中的一项或多项。可以在存储在计算机系统的本地存储器中的或存储在可由计算机系统通过数据网络访问的远程存储器中的表中指定所述改变。所述表将校准参数的值和相机与另一部件(例如,透镜、热镜等)之间的距离和/或方向相关联。可以在受控实验室环境下对可穿戴计算设备进行设计、开发和测试阶段期间或在试操作阶段导出表中的值。

在操作810处,计算机系统确定图像中是否可获得的其他标记。另一标记的存在可以基于图像分析或基于关于预期标记数量的先验知识。所述另一标记可以位于同一透镜上或中、另一透镜上、或热镜上。如果是,则接下来进行操作804。以这种方式,可以计算附加距离和/或方向以更新校准参数。更具体地,如果所述另一标记处于同一透镜上,则可以增大距离计算和方向计算的准确性(例如,通过对这两个向量求平均,一个向量针对透镜上的每个标记)。如果所述另一标记处于不同的透镜或处于热镜上,则可以类似地计算并使用从相机到所述另一标记的(多个)距离和(多个)方向以进一步更新如在表中指定的(多个)相关校准参数。如果图像中未示出其他标记,则流程移动至操作812。

在操作812处,计算机系统确定是否可以获得示出其他标记的其他图像。如果是,则接下来进行操作804。同样以这种方式,可以计算附加距离和/或方向以更新校准参数。否则,所述流程移至操作814。

在操作814处,计算机系统确定是否存在用于重复所述校准的触发。各种类型的触发是可能的。在一个示例类型中,如果可穿戴计算设备通电或者在由其眼睛跟踪系统检测到用户眼睛时,则重复所述校准。在另一示例类型中,可以使用传感器来触发校准。例如,加速度计或陀螺仪用于突然移动检测并且然后触发校准过程。在又一示例类型中,用户可以使用手动控件(例如,vr头戴装置上的物理按钮)来发起重新校准过程。如果接收到触发,则流程循环返回至操作802(例如,基于触发操作802开始并且重复)。否则,流程结束。

距离确定不限于使用基于相机的感测系统。无相机感测系统也是可能的,例如,还可以实施特定类型的微电子机械系统(或mems)来实现类似的结果。

基于失真补偿的硬件校准

一般而言,可穿戴计算设备(诸如图4至图5中所述展示的可穿戴计算设备)中的透镜遭受枕形失真。这种失真强烈地直接影响眼睛图像捕获,并且间接影响注视跟踪性能。在技术上,由于透镜枕形失真,所捕获的眼睛图像可能具有很多失真,尤其是在眼睛移动远离透镜(相对于阈值)时。

在其他情况下,可能存在其他类型的失真,其通常被分类为桶形失真和胡子形失真(mustachedistortion)。失真可以是不规则的或遵循许多图案。在vr实施方式中,大多数常见的失真是径向对称的。然而,取决于相机与透镜之间的相对放置和对准,眼睛图像也可能遭受非对称失真。总之,任何类型的几何失真都是可能的并且都受到透镜设计的强烈影响。并且失真校正模型适应于各种类型的失真。

需要失真补偿模型来校正所捕获的用于注视跟踪的眼睛图像。这种失真校正模型取决于角膜中心到透镜中心的距离(在图9和图10中被示出为d0)。这意味着失真模型应当适于每帧(frame)处的角膜到透镜的距离,以补偿用于注视跟踪的眼睛图像。进一步地,待使用的失真模型可以取决于到眼睛的距离以及眼睛在x和y坐标中相对于透镜和显示器的位置。

因此,(根据每帧估算的)更新的角膜中心到透镜中心的值被馈送到失真校正模型中。为了做到这点,针对角膜中心到透镜中心,(基于统计平均值)设置标称(默认)值。基于默认的角膜中心到透镜中心来建立失真校正模型。在眼睛跟踪期间,诸如基于每个眼睛图像或替代帧或基于触发(可以由用户手动地调整或根据头戴装置的移动(例如,用户是否频繁地移动头戴装置)自动地调整图像捕获操作,移动由眼睛图像捕获以及机载加速计和陀螺仪来检测)以某速率自动地估计角膜中心到透镜中心(诸如,如图9至图10中示出的距离d1、d2、d3)的值。估计并更新角膜中心到透镜中心。使用新估计和更新的角膜中心到透镜中心来建立新的/更新的失真校正模型。并且所述过程在建立失真校正模型与使用新估计值来更新这个模型之间来回循环。

如果改变了角膜中心到透镜中心的距离,如图9至图10所示出的,距离变化,并且假设原始距离(例如,d0)为最佳距离。一般而言,距离(例如,d3)越长,存在的枕形失真就越多。

在实施例中,提供了一种增强现实装置、虚拟现实装置、或其他可穿戴装置。图4至图5的可穿戴计算设备是这种装置的示例。在示例中,所述装置包括眼睛跟踪设备和一个或多个处理器。所述一个或多个处理器被配置为(例如,基于存储在一个或多个非暂态计算机可读存储介质中的计算机可读指令)至少:从图像传感器接收图像数据,其中,所述图像数据对应于如通过透镜观察到的图像;基于所述图像数据来确定图像中的枕形失真的程度和图案(pattern);以及基于枕形失真的程度和图案来改变与眼睛跟踪设备一起使用的眼睛跟踪算法的至少一个校准参数。

在示例中,基于所述枕形失真的程度或图案来改变所述至少一个校准参数包括:基于枕形失真的程度或图案来确定图像传感器的相对位置或相对方向;以及基于图像传感器的所述相对位置或所述相对方向来改变与眼睛跟踪设备一起使用的眼睛跟踪算法的所述至少一个校准参数。

在示例中,所述装置进一步包括运动传感器。所述至少一个处理器进一步被配置用于:从运动传感器接收信号;基于所述信号确定所述装置已经加速或减速超出阈值量;以及响应于确定所述装置已经加速或减速超出所述阈值量而发起至少一个动作。所述至少一个动作包括选择由以下各项组成的组中的至少一项:向所述装置的用户发出警报、以及改变眼睛跟踪算法的至少一个校准参数。

结合图9至图11进一步描述这些和其他特征。图9展示了角膜中心到透镜中心的距离的示例。图10展示了枕形失真的示例的图像的示例。图11展示了用于基于眼睛的图像来更新校准参数的流程的示例,其中,所述图像遭受枕形失真。

图9展示了根据本公开的某些实施例的角膜中心到透镜中心的距离的示例。尽管图9展示了被示出为d0,……,d3的四个距离,但是取决于枕形失真的程度或图案,任何数量的距离都是可能的,并且总体可以被称为di,其中,“i”是正整数。角膜中心表示角膜的中心。在三维空间中确定角膜中心。为了确定角膜中心,需要考虑若干参数,所述若干参数包括相机的位置和至少两个照明器的位置、角膜的球形区上的至少两个闪光位置(由至少两个不同的照明器引起的)、以及角膜半径。透镜中心表示透镜的中心。角膜中心到透镜中心的距离表示角膜的中心与透镜的中心之间的距离。

如所展示的,透镜910安装在可穿戴计算设备(未示出)中。透镜的中心912与用户的人眼球920的角膜的中心922之间的距离的标称值被定义为d0930。这个标称值表示默认的角膜中心到透镜中心的距离并且当可穿戴计算设备装设在用户头部时,并且所述标称值是基于穿戴这种设备的不同用户的统计平均值(或者通过使用数据建模和/或实际数据)来定义的。

当眼睛移动远离这个默认距离时,失真的程度和/或图案可改变。所述移动可以由不同原因引起,包括可穿戴计算设备中的透镜910的位置变化(例如,有意地基于用户调整、或者无意地由于一般移动、以及有时用户的可穿戴计算设备的突然下落)。

当眼睛920进一步移动远离透镜的中心912时,枕形失真的程度和/或图案改变。所述程度指示眼睛920的图像中将存在的失真量,其中,这个图像用于眼睛跟踪。所述图案指示失真如何在图像中呈现。

因此,在表示角膜中心到透镜中心的另一值的距离d1940处,枕形失真的程度和图案不同于在距离d0930处的程度和图案。同样地,在表示角膜中心到透镜中心的另一值的距离d2950处,枕形失真的程度和图案不同于在距离d0930和d1940处的程度和图案。类似地,在表示角膜中心到透镜中心的另一值的距离d3960处,枕形失真的程度和图案不同于在距离d0930、d1940、d2950处的程度和图案。这些距离d1940、和d2950、和d3960中的每一个表示默认距离d0930的改变。距离越大,存在的失真就越多(例如,失真量增大并且图案变得更显著)。

图10展示了根据某些实施例的枕形失真的示例的图像的示例。如图9中那样,在此结合四个距离d0,……,d3(对应于图9中的距离)展示了枕形失真。然而,取决于枕形失真的程度或图案,任何数量的距离都是可能的,并且总体可以被称为di,其中,“i”是正整数。尽管在图10中未示出,但是所展示的失真是穿戴可穿戴计算设备的用户的眼睛的图像的失真。并且这个图像用于眼睛跟踪。

如所展示的,枕形图案随距离di而变化。距离di越大,失真量(例如,程度)越大,从而导致不同的图案。利用诸如扭曲的矩形(例如,三角形的垂直边是凸形线而不是直线)的特定形状来展示失真的图案。由特定形状的大小、面积、和/或周长来展示失真的程度。

因此,在表示角膜中心到透镜中心的默认值的距离d01010处,可通过眼睛图像(被示出为在中心处的扭曲矩形)标识默认失真。在表示角膜中心到透镜中心的另一值的距离d11020处,失真的程度和/或图案从距离d01010处的程度和/或图案变化(利用较大的扭曲矩形来示出所述变化)。同样地,在表示角膜中心到透镜中心的另一值的距离d21030处,失真的程度和/或图案从距离d01010和d11020处的程度和/或图案变化(利用甚至更大的扭曲矩形来示出所述变化)。类似地,在表示角膜中心到透镜中心的另一值的距离d31040处,失真的程度和/或图案从距离d01010、d11020、和d21030处的程度和/或图案变化(利用最大的扭曲矩形来示出所述变化)。

图11展示了根据本公开的某些实施例的用于基于眼睛的图像来更新校准参数的流程的示例,其中,所述图像遭受枕形失真。所述流程在操作1102处开始,在此操作中,由计算机系统(例如,图5的电子板580)来设置默认的角膜中心到透镜中心的距离。这个默认值可以存储在计算机系统的本地存储器中并且可以表示平均的角膜中心到透镜中心的距离。

在操作1104处,计算机系统基于默认的角膜中心到透镜中心的距离来建立失真校正模型。例如,计算机系统从存储器加载这个模型以用于眼睛跟踪。在示例中,使用预测模型,并且所述预测模型将枕形失真的程度和/或图案与一个或多个校准参数的值(例如,成像参数、焦距、失真参数和照明参数等的值)相关联。所述关联可以包括在预测模型中潜在枕形失真的已知图像、潜在枕形失真的程度和/或图案、角膜中心到透镜中心的距离以及校准参数的值之间的映射。这些已知的图像可以存储在预测模型本身中,或单独地存储在计算机系统的本地存储器或存储在可由计算机系统通过网络访问的远程存储器中。可以在受控实验室环境下对可穿戴计算设备的设计、开发和测试阶段期间导出所述值,或在试操作阶段导出所述值。建立失真校正模型包括:例如,从预测模型访问与在默认的角膜中心到透镜中心的距离处应当观察到的枕形失真相对应的值;以及指定这些值应当用于眼睛跟踪以补偿失真。

在操作1106处,计算机系统开始眼睛跟踪。不同触发是可能的。在示例中,所述跟踪响应于可穿戴计算设备被开启(基于感测到这个设备已经被穿戴在用户的头部,或者基于在可穿戴计算设备处接收到的用户手动输入)而开始。一般而言,眼睛跟踪涉及对用户的至少一个眼睛的图像进行分析。这种眼睛图像可能遭受枕形失真,这取决于角膜中心到透镜中心的距离。

在操作1108处,计算机系统从可穿戴计算设备的图像传感器(例如,相机)接收图像数据。此图像数据表示用户眼睛的图像并且被接收作为眼睛跟踪的一部分。

在操作1110处,计算机系统基于图像数据确定图像中的枕形失真的程度和/或图案。在示例中,计算机系统应用模式识别(patternrecognition)或图像分析算法来识别程度和图案。在另一示例中,计算机系统将图像数据与可从预测模型、本地存储器或远程存储器获得的已知图像之一进行匹配。例如,标识最佳匹配,并且使用所匹配的已知图像。所述已知图像与预测模型中的枕形失真的程度和图案相关联。

在操作1112处,计算机系统估计更新的角膜中心到透镜中心的距离。在示例中,这个更新的距离是通过模式识别或图像分析算法导出的(如果在操作1110中使用了模式识别或图像分析算法中的一者)。在另一示例中,所述更新的距离是通过预测模型确定的,其中,这个模型将枕形失真的程度和图案与更新的角膜中心到透镜中心的距离相关联。一般而言,所述距离基于枕形失真的程度或图案来指示图像传感器的相对位置或相对方向。

在操作1114处,计算机系统改变失真校正模型。在示例中,计算机系统访问与更新的角膜中心到透镜中心的距离(或等效地,枕形失真的程度和/或图案)相关的校准参数的值,并且通过指定这些值应当与眼睛跟踪结合使用来更新失真校正模型。

在操作1116处,计算机系统基于枕形失真的程度或图案来改变与眼睛跟踪设备一起使用的眼睛跟踪算法的至少一个校准参数。例如,按照通过预测模型所标识的那样来改变相关校准参数的值。

在操作1118处,计算机系统确定是否存在用于重复所述改变的触发。如果是,则流程循环返回至操作1108。否则,流程结束。各种触发是可能的。在一个示例中,所述改变以帧间隔自动地进行重复(例如,对于每个接收到的图像,或对于每隔一个图像)。在另一示例中,计算机系统从可穿戴计算设备的运动传感器接收信号。基于所述信号,计算机系统确定:可穿戴计算设备被移动,并且所述移动指示可穿戴计算设备已经加速或减速超出阈值量。计算机系统然后响应于确定所述装置已经加速或减速超出所述阈值量而发起至少一个动作。所述动作包括重复所述改变并且向用户发出警报。例如,警报是关于所述改变的,并且可以在视觉上在显示器上呈现,和/或在听觉上在扬声器上呈现。

优化的菲涅尔透镜

许多可穿戴计算设备使用菲涅尔透镜。菲涅尔透镜的典型构造是用于具有大且恒定的阶梯大小的环的透镜。这些菲涅尔阶梯的问题在于它们在眼睛跟踪图像(即,眼睛图像)中清晰可见,因为它们使图像局部扭曲并且它们散射来自照明器的可以被解释为闪光的光。因此,眼睛图像是无用的或难以用于注视确定。

本公开的实施例涉及一种优化的菲涅尔透镜,所述优化的菲涅尔透镜改善眼睛跟踪和提高用户体验。在示例中,菲涅尔阶梯小于某一阶梯大小。在菲涅尔透镜的中心区中,可以完全不存在任何菲涅尔阶梯。通过在中心区中不具有任何菲涅尔阶梯,使得杂散光最小化(由此提高了用户体验),提高了图像质量并且不存在失真闪光(由此改善了眼睛跟踪)。菲涅尔阶梯/环以不断增加的凹槽深度以及可能地不断增大的阶梯大小逐渐围绕清晰的中心区。

因此,菲涅尔透镜包括没有间隙的平坦中央区、以及中央区外部的可变大小的菲涅尔透镜阶梯。关于菲涅尔透镜阶梯的较小大小,菲涅尔环的阶梯大小/间距小于:相机像素的像素大小(或者如果使用像素组合(binning),则为组合像素的大小)除以相机的焦距再乘以相机与透镜之间的光学距离再乘以二。比这个值小得多的菲涅尔环间距可能生成不必要的杂散光。在中央平坦区外部,菲涅尔透镜的凹槽深度逐渐增加,并且可能地阶梯大小增大。

进一步,两层(或多层)菲涅尔透镜构造是可能的。每一层具有不同的透镜阶梯和大小。中央平坦区的大小也可以不同。

另外,可以通过引入抗反射(ar)技术来减少杂散光。标准的抗反射涂层需要复杂的涂层工艺,所述复杂的涂层工艺昂贵并且可能不能很好地适于高生产量。像蛾眼结构(motheye-structure,me)或等其他技术可能更合适。所产生的表面对污染物敏感,因此这些技术不应当在面向用户的表面上使用,但是可以在所有其他表面上使用。甚至在菲涅尔表面上也可以使用这些ar技术。

图12展示了根据本公开的实施例的优化的菲涅尔透镜1200的示例。如所展示的,菲涅尔透镜1200包括中央(或中心)区1210以及围绕中央区1210的菲涅尔环1220。中央区1210没有任何这种环并且在光学上是清晰的,使得光可以穿过所述区。中央区1210的不同形状和大小是可能的,这取决于菲涅尔透镜1200的形状和大小及其相对于可穿戴计算设备中的其他部件(例如,相机、用于接收用户眼睛的区域等)的放置。在示例中,菲涅尔透镜1210具有直径在十到五十毫米范围内的圆形横截面。中央区1210也是圆形的并且直径在菲涅尔透镜1200的直径的1%至25%的范围内。

在示例中,菲涅尔环1220包括环状地围绕中央区1210的多个环。这些环1220的数量和大小取决于菲涅尔透镜1200和/或中央区1210的形状和大小。一般而言,菲涅尔环1220各自均具有凹槽深度和阶梯大小。凹槽深度和/或阶梯大小随着菲涅尔环1220的直径的增大而增大。凹槽深度可以在微米范围内。阶梯大小可以在毫米范围内。

图13展示了根据本公开的实施例的两层菲涅尔透镜1300的示例。第一层1310包括中央区1312和围绕中央区1312的多个菲涅尔环1314。类似地,第二层1320包括中央区1322和围绕中央区1322的多个菲涅尔环1324。一般而言,这些中央区1312和1322是对准的,并且它们的中心可以、但不必在同一轴线上(水平轴线经过它们的中心)。如所展示的,中央区1312和1322的大小不同。菲涅尔环1314和1324的大小也可以不同。

虚拟环境控制

图14至图21展示了用于操纵虚拟环境中的虚拟对象的不同示例。为了简洁起见,虚拟对象在本文中被称为“对象”。一般而言,可以在虚拟环境的不同层中来表示对象。每个对象具有控制如何呈现对象的一组参数(在本文中被称为呈现参数)以及适用于对象的操纵操作(在本文中被称为操纵参数)。

外部控制器在虚拟环境中被呈现为虚拟控制器。同样为了简洁起见,虚拟控制器在本文中被称为“控制器”(而外部控制器为物理控制器)。外部控制器可以具有一个或多个触摸区域,诸如触敏表面、触觉按钮、按键开关等。这些触摸区域可以被呈现为虚拟菜单(在本文中被称为虚拟环境中的“菜单”)。

将菜单放置在虚拟现实或增强现实环境中对于用户体验来说是重要的。尤其是在复杂的虚拟背景下,将菜单放置在适当位置/对准使得用户的操作更加自然和直观。在本公开中,使用基于注视的与对象的交互以及来自外部控制器的控件的组合来触发、放置和操作菜单。

在示例中,跟踪用户在虚拟环境中的注视。如果用户持续比时间阈值更长的时间段注视某一对象,则所述对象被选择。所述选择可以锁定对象,使得用户可以将视线或注视从所述对象移开,同时所述对象将仍被选择并且可用于进行操纵。此后,取决于用户对外部控制器上的触摸区域的保持(hold),在虚拟环境中呈现特定于所述触摸区域的菜单。所述菜单提供用于根据对象的参数来操纵对象的选项。用户操作外部控制器上的触摸区域,以查阅并选择可用的菜单选项并且操纵虚拟环境中的对象。

在示例中,对象的呈现参数指示应当在其中呈现对象的虚拟环境层,以及对象的外观感觉。对象的操纵参数指示可编辑视觉特性(例如,大小、形状、颜色)、移动和放置虚拟环境中的对象的约束(例如,对象可以与另一对象相邻放置吗)、以及与其他对象的关联。与触摸区域相对应的菜单允许如在对象的呈现参数和操纵参数中设置的那样来编辑和操纵所述对象。

可以定义不同类型的关联。这些关联影响可以如何根据虚拟环境中的其他对象来操纵一个对象,并且因此可以控制外部控制器如何可用于操纵这些对象。“关系关联”是示例并且指定两个对象如何相关。例如,结合图16描述了亲-子关联。在图16中,3d打印机与打印对象相关联,其中,所述打印机是亲代并且所述打印对象是子代。在这种情况下,可以操纵3d打印机来创建打印对象。关联的另一示例是“操纵关联”,所述操纵关联指定对对象的操纵应当从另一对象开展还是转移到另一对象以及如何可以将这两个对象一起操纵。例如,结合图14描述了树。对所述树的操纵基于其操纵关联而独立于环境中的其他对象,这指示所述树不与其他对象相关联。相比之下,结合图18展示了卡片游戏。在图18中,卡片与桌子上的用于接收所述卡片的槽相关联。对卡片的操纵可以转移到槽上,使得卡片可以放置在所述槽中。

图14展示了根据本公开的实施例的操纵虚拟环境1400中的对象1410的示例。可穿戴计算设备(诸如,如图4至图5中展示的vr或ar头戴装置)呈现了虚拟环境1400。可穿戴计算设备通过数据网络与外部控制器通信地耦接。外部控制器可以包括多个触摸区域,所述多个触摸区域中的每一个提供控件。所述数据网络可以是有线或无线网络,包括局域网、点对点网络、通信总线、或适用于在外部控制器与可穿戴计算设备之间交换控制信息的任何其他数据网络。虚拟环境1400在vr头戴装置的情况下可以是虚拟现实环境,或者在ar头戴装置的情况下可以是增强现实环境。

如所展示的,虚拟环境1400呈现了对象1410。这个对象1410具有使其交互的一组参数。具体地,用户可以与虚拟环境中的对象1410进行交互,其中,交互涉及通过改变对象1410的特性中的一个或多个特性来操纵所述对象。对象1410被示出为三维树。

可穿戴计算设备将虚拟环境1400呈现在一组显示器上,并且在用户观察这组显示器并注视所显示的虚拟环境1400时跟踪他或她的注视。在示例中,基于所述跟踪以及在这组显示器与虚拟环境1400之间的映射,可穿戴计算设备在虚拟环境中呈现用户的注视位置的指示1420。例如,指示1420在虚拟环境1400的层中被呈现为几何形状(例如,有色圆圈)。在另一示例中,注视指示1420可能对用户不可见或者可能未被显示。实际上,在这种基于注视的交互期间,用户已经知道他和她正在注视什么。这样,可能不需要呈现指示1420。

进一步地,当用户移动外部控制器时,可穿戴计算设备基于通过数据网络与外部控制器的数据通信来检测移动,并且在虚拟环境1400中显示虚拟控制器1430。这个控制器1430可以具有模仿外部控制器的外观(相对形状和大小)。

如果用户保持物理控制器的触摸区域或与其接触,则计算设备从外部控制器得到物理环境中的这种“物理集成”的指示,并且更新控制器1430以突显相应的虚拟触摸区域1432。如图14中所展示的,当用户与外部控制器上的物理触敏区域交互时,在虚拟环境中的控制器1430上突显相应的区域1432。

如果可穿戴计算设备持续预定义时间段检测到用户对对象1410(例如,三维树)的注视,则可穿戴计算设备可将注视锁定到对象1410。此后,用户可以将注视从对象1410移开并且仍经由外部控制器控制对象1410。

用于锁定对象1410的其他技术是可能的。例如,围绕对象1410的注视区是预定义的。如果可穿戴计算设备检测到用户的注视落在这个区内并且并行地从外部控制器接收用户操作的指示,则可穿戴计算设备锁定目标1410。可以基于对象的参数来预定义注视区。例如,注视区是围绕对象1410的几何区域,并且因此通常比对象1410的大小更大。

一旦对象1410被锁定,可穿戴计算设备就在虚拟环境中呈现菜单1440。在图14的示例展示中,菜单1440被定位成接近(例如,邻近)对象1410,使得在操纵对象1410时用户可以看到对象1410和菜单1440两者。这个菜单1440在虚拟环境中处于与对象1410不同的层中(如图14中示出的,菜单处于顶层并且部分地包括对象1410)。然而,元素1410和1440两者都可以替代性地处于同一层。

在示例中,菜单1440本身在某种程度上是虚拟对象,并且具有控制菜单1440的外观感觉的一组参数以及菜单1440所支持的操纵操作。可穿戴计算设备根据用户与之进行交互的、外部控制器上的触摸区域(而不是在外部控制器本身上)来设置这些参数。例如,如果物理触摸区域是能够实现旋转操作的圆形触敏区域,则将菜单1440设置为也能够实现旋转操作的圆形菜单。如果物理触摸区域是触觉按钮或按键开关,则将菜单1440设置为虚拟电源开关。

在某些实施例中,菜单1440的外观感觉可以与物理触摸区域匹配。例如,当物理触摸区域是按钮或开关状的控制器时,呈现圆形菜单1440。尽管如此,菜单1440仍可用于提供旋转操作,但这种操作将需要物理环境中与仅点击按钮/开关不同的操作。例如,用户可以在物理环境中以圆形方式移动外部控制器。可穿戴计算设备可以从外部控制器接收关于此移动的信息,并且使用这种信息经由菜单1440反映对对象1410施加的控制。

一旦菜单1440被呈现,用户就可以操作相应的触摸区域(或如在先前段落中解释的那样,在不匹配的情况下,操作整个控制器)以便根据对象1410的参数和菜单1440(或类似地,物理触摸区域/控制器)支持的功能来操纵对象1410。例如,用户可以对虚拟环境中的对象1410的颜色、形状、大小、位置、动画等进行编辑。这样,可穿戴计算设备从外部控制器接收相关控制信息、更新菜单1440的呈现以表明相应的控件正在被应用、并且更新对象1410及其显示以示出对象1410的改变。

图15展示了根据本公开的实施例的用于基于注视信息以及外部控制器(例如,物理控制器)上的物理控件来操纵虚拟环境中的对象的示例流程。所述示例流程在操作1502处开始,在此操作中,可穿戴计算设备显示包括对象的虚拟环境。在操作1504处,可穿戴计算设备显示用户在虚拟环境中的注视位置的指示。例如,可穿戴计算设备跟踪用户注视并将所述用户注视映射到虚拟环境,并且如在虚拟环境中映射的那样在注视位置处显示几何形状。

在操作1506处,可穿戴计算设备锁定虚拟对象。例如,可穿戴计算设备持续预定义时间段检测到注视位置处于对象上。在另一示例中,可穿戴计算设备检测到注视位置处于围绕对象的预定义注视区内并且并行地从外部控制器接收用户与物理控制器进行交互的信息。在这两个示例中,可穿戴计算设备选择对象,并且更新其参数,以指示所述对象已经被选择并且受到操纵。

在操作1508处,可穿戴计算设备显示与操纵对象相关联的菜单。在示例中,可穿戴计算设备在虚拟环境中呈现靠近对象的菜单。这个菜单可以对应于物理控制器上的、用户所保持的或与之交互的物理触摸区域。例如,可穿戴计算设备从外部控制器接收触摸区域的标识符,并且从存储器访问外部控制器和物理触摸区域的虚拟模型。所述虚拟模型可以定义相应虚拟触摸区域的形状、大小、外观感觉、和功能。可穿戴计算设备将这个虚拟触摸区域呈现为菜单。

在操作1510处,可穿戴计算设备操纵对象。在示例中,可穿戴计算设备基于用户与物理触摸区域的交互来从外部控制器接收控制信息。由于对象被锁定,因此可穿戴计算设备在菜单上呈现用户交互的虚拟表示、基于控制信息来操纵对象、并且在虚拟环境中呈现如正被操纵的对象的改变。

图16展示了根据本公开的实施例的操纵虚拟环境中的多个对象的示例。在此,以下两个对象彼此相关联:三维(3d)打印机1610和打印对象1630(例如,盒)。可以在虚拟环境中操纵3d打印机1610来打印该打印对象1630。换而言之,第二对象1630的创建取决于对第一对象1610的操纵。

如图16的左上角中所展示的,可穿戴计算设备检测用户在对象1610(虚拟3d打印机)上的注视。基于这个对象的参数,呈现了关于使用这个对象的导引1620。导引1620在虚拟环境中呈现关于操作外部控制器以与对象1610进行交互的信息。

在示例中,可穿戴计算设备设置导引1620以至少复制虚拟控制器的形状(进而复制外部控制器的形状)。可以相对于复制形状示出操作信息。如图16中所展示的,导引1620通知用户“按压”蓝色触摸区域。

一旦用户按压外部控制器上的相应触摸区域,可穿戴计算设备就从其接收此按压的指示。由于虚拟3d打印机与虚拟打印对象之间的关联,可穿戴计算设备在对象1610中(例如,在虚拟3d打印机中)生成并呈现对象1630(例如,虚拟打印对象),如图16的右上角中所展示的。

此时,用户可以注视对象1630以锁定该对象。替代性地,由于用户已经按压了蓝色触摸区域以便在虚拟环境中打印该打印对象,因此可穿戴计算设备基于对象1630的生成自动地锁定所述对象(在没有特定注视的情况下)。一旦被锁定,就可以操纵对象1630。

因此,可穿戴计算设备呈现用于操纵对象1630的菜单。在示例中,可穿戴计算设备从外部控制器接收用户与外部控制器的物理触摸区域的交互的指示。作为响应,可穿戴计算设备调用并呈现所述菜单。所述呈现可以是渐进的,使得菜单从初始状态转换到稳定状态(例如,在虚拟环境中菜单向前朝向用户转换)。

图16的左下角示出了从初始状态转换中的菜单(被示出为转换中菜单1640)。在转换中,以第一倾斜角显示菜单。可穿戴计算设备更新对菜单的呈现,使得其逐渐朝向用户前方的视野移动。在菜单移动期间,所述倾斜角被调整为第二倾斜角直到在虚拟环境中最终稳定放置在用户的前方。图16的右下角示出了以第二倾斜角处于稳定状态下的菜单(被示出为稳定菜单1650)。

一旦被充分显示,菜单就包括可以布置在虚拟环境的一个或多个层上的多个组成部分。这些组成部分中的一些可以是能够被锁定并被操纵的对象。例如,基于检测到在“宽度”组成部分上的注视位置,可穿戴计算设备锁定这个组成部分以便进行操纵。所述操纵可以经由用户与外部控制器的触摸区域的交互而发生。

图17展示了根据本公开的实施例的用于基于注视信息以及外部控制器(例如,物理控制器)上的物理控件来操纵虚拟环境中的多个对象的示例流程。所述示例流程在操作1702处开始,在此操作中,可穿戴计算设备检测在虚拟环境中的第一对象(例如,虚拟3d打印机)上的注视位置。在操作1704处,可穿戴计算设备显示与使用第一对象相关联的导引。在示例中,所述导引基于第一对象的参数及其与第二对象(例如,虚拟打印对象)的关联而被显示。所述导引示出了关于使用外部控制器来操纵第一对象的信息。例如,导引通知用户按压物理控件(例如,与物理触摸区域交互)以生成第二对象。

在操作1706处,可穿戴计算设备基于交互信息在虚拟环境中显示第二对象。在示例中,所述交互信息包括控制信息,所述控制信息是由外部控制器基于用户响应于导引信息而按压物理控件来提供的。可穿戴计算设备接收交互,并且因此生成并显示第二对象。

在操作1708处,可穿戴计算设备锁定第二对象。在示例中,基于响应于接收到交互信息而生成第二对象,自动地锁定第二对象(例如,在没有附加用户输入或用户注视的情况下)。

在操作1710处,可穿戴计算设备显示与操纵第二对象相关联的菜单。在示例中,所述菜单与外部控制器的物理触摸区域相对应,并且基于用户与物理触摸区域的交互来促进对第二对象的操纵。菜单的一些或全部组成部分也是可以基于对其的注视的检测而被锁定的对象,并且所述对象一旦被锁定就可以基于用户与外部控制器上的物理触摸区域的交互来操纵所述对象。

图18展示了根据本公开的实施例的操纵虚拟环境中的多个对象的另一示例。在此,以下两个对象彼此相关联:卡片1810以及桌子的槽1850。卡片1810是第一对象,所述第一对象具有指定其可以在虚拟环境中移动并被放置在槽1850中的参数。所述槽是第二对象,所述第二对象具有指定其在虚拟环境中是静态的并且其可以是其他对象的目的地对象(例如,可以接收卡片1810)的参数。换而言之,对第一对象1810的操纵可以涉及对第二对象1850的操纵。

如图18的左上角中所展示的,可穿戴计算设备持续预定义时间段检测到用户在对象1810(卡片)上的注视1840。基于这个对象的参数,选择对象1810。可穿戴计算设备通过突显对象1810来示出选择1830。

接下来,可穿戴计算设备从外部控制器接收用户与外部控制器的触摸区域的交互(例如,对按钮的按压)的信息。可穿戴计算设备确定此信息对应于对该对象1810的保持,并且相应地更新对象1810的呈现,以表明所述对象在虚拟环境中被保持。

一旦被保持,可穿戴计算设备检测用户注视从对象1810(例如,卡片)移开而到达目的地对象1850(例如,桌子上的用于接收卡片的槽)。图18的最右角示出了元素1810正被定位在目的地对象1850上时的更新的注视。

在用户注视目的地对象1850之后,可穿戴计算设备可以允许用户将注视移开,并操作外部控制器以将对象1810移动到目的地对象1850。在从外部控制器接收到用户与外部控制器的触摸区域的交互(例如,另一次按钮按压)的信息时,做出对象1810应被放置在目的地对象1850中的确定,并且因此更新虚拟环境以示出对象1810落在目标对象1850中,如利用图18的下方中心部分的元素1860示出的。

图19展示了根据本公开的实施例的用于操纵虚拟环境中的多个对象的流程的另一示例。在此,两个对象彼此相关联,使得可以在虚拟环境中将第一对象移动到第二对象的附近(例如,被放置在所述第二对象中、上、下方等)。

所述示例流程在操作1902处开始,在此操作中,可穿戴计算设备持续预定义时间段检测到在虚拟环境中的第一对象上的位置注视。因此,可穿戴计算设备锁定第一对象。

在操作1904处,可穿戴计算设备检测用于保持虚拟环境中的第一对象的用户交互。例如,计算设备从外部控制器接收关于用户交互的信息,其中,所述用户交互是与外部控制器的触摸区域进行的并且指示所述保持。因此,可穿戴计算设备更新第一对象的参数及其在虚拟环境中的呈现以反映所述保持。

在操作1906处,可穿戴计算设备持续预定义时间段检测到在虚拟环境中的第二对象上的位置注视。因此,可穿戴计算设备锁定第二对象。

在操作1908处,可穿戴计算设备检测用于将第一对象放置到第二对象上的用户交互。例如,计算设备从外部控制器接收关于用户交互的信息,其中,此交互是与控制器的触摸区域进行的并且指示所述放置。

在操作1910处,可穿戴计算设备基于所检测的用户将第一对象放置到第二对象上。例如,可穿戴计算设备更新第一对象的参数及其在虚拟环境中的呈现以反映所述放置。

图20展示了根据本公开的实施例的更换虚拟环境中的控制器的示例。在此,以下两个对象彼此相关联:当前控制器2010和可用控制器2020。这两个对象在虚拟环境中的使用是彼此互斥的。换而言之,允许用户在虚拟环境中在任何时候仅使用其中一个控制器。

在示例中,用户可以使用外部控制器,并且可穿戴计算设备可以在虚拟环境中呈现相应的控制器。用户可以将外部控制器更换为另一外部控制器。可穿戴计算设备将相应地更换虚拟环境中的控制器。替代性地,用户可以使用通用外部控制器,所述通用外部控制器可以被映射为不同虚拟模型,该不同的虚拟模型存储在本地存储器中或者由可穿戴计算设备经由远程存储器访问。可穿戴计算设备将这些不同的虚拟模型呈现为虚拟环境中的可用控制器,并且允许用户在它们之间进行切换。

如图20的左上角中所展示的,可穿戴计算设备显示用户正在虚拟环境中操作的当前控制器2010以及用于选择的其他(多个)可用控制器2020。如图20的右上角中所展示的,为了从当前控制器2010切换到可用控制器2020,用户操作外部控制器使得在虚拟环境中当前控制器2010朝向可用控制器2020的位置移动。例如,可穿戴计算设备从外部控制器接收指示用户与外部控制器的触摸区域或外部控制器本身的交互的信息,其中,所述用户交互用于将当前控制器2010朝向可用控制器2020移动。基于此信息,可穿戴计算设备更新参数以及对当前控制器2010的呈现,以示出虚拟环境中的此移动。

为了切换至可用控制器2020,用户可能需要对可用控制器进行敲击(punchortap)。并且,用户操作外部控制器以在虚拟环境中执行此操作,并且可穿戴计算设备从外部控制器接收相关信息并且更新虚拟环境。如图20的右上角中所示出的,可穿戴计算设备通过改变可用控制器2420的视觉特性(例如,通过将其颜色设置成亮色或闪烁)来突显虚拟敲击2030。

一旦选择了可用控制器2020(被示出为图20的下方中心部分中的所选控制器2040),就利用所选控制器2040来代替当前控制器2010。在示例中,当前控制器2010是在虚拟环境的顶层呈现的对象。可用控制器2020还是在选择之前在虚拟环境的下层中呈现的另一对象。基于所述选择,可穿戴计算设备从顶层消除(例如,从呈现中移除)表示当前控制器2010的对象,并且将表示可用控制器2020的对象添加到这个顶层中。替代性地,可穿戴计算设备将顶层中的对象的参数从当前控制器2010的参数改变为可用控制器2020的参数,而不是移除以及添加。

图21展示了根据本公开的实施例的用于更换虚拟环境中的控制器的流程的示例。所述示例流程在操作2102处开始,在此操作中,可穿戴计算设备检测在虚拟环境中第一控制器朝向第二控制器移动。例如,计算设备从外部控制器接收关于用户与外部控制器的触摸区域或外部控制器本身的交互的信息,其中,所述用户交互指示所述移动。因此,可穿戴计算设备更新第一控制器的参数及其在虚拟环境中的呈现以反映所述移动。

在操作2104处,可穿戴计算设备检测在虚拟环境中第一控制器与第二控制器的接触(例如,虚拟接触)。此接触对应于虚拟敲击。例如,计算设备从外部控制器接收关于用户与外部控制器的触摸区域的交互的信息,其中,所述用户交互指示所述虚拟接触。

在操作2106处,可穿戴计算设备基于虚拟接触而选择第二控制器。在操作2108处,可穿戴计算设备在虚拟环境中用第二控制器来代替第一控制器。

图22示出了可穿戴装置2200的示意性示例,其展示了本发明的实施例。在一些实施例中,可穿戴装置2200可以是增强现实或虚拟现实头戴装置。在这个实施例中,可穿戴装置2200被示出为一种类型的虚拟现实头戴装置。

可穿戴装置2200可以包括眼睛跟踪设备2210,所述眼睛跟踪设备2210至少包括至少一个图像传感器2213和至少一个照明器2216(其在本文中分别被称为图像传感器2213和照明器2216)。眼睛跟踪设备2210还可以包括一个或多个处理器2219、或连接到远离眼睛跟踪设备2210和/或装置2200的但都执行相同和/或类似功能的一个或多个处理器(在本文中全部被称为处理器2219)的连接件。

照明器2216可以发射一种或多种波长的光,并且图像传感器2213可以被配置或选择为响应于相应的波长。在一些实施例中,由照明器2216提供的光可以处于红外波长中,并且因此图像传感器2213可以响应于红外波长光。

眼睛跟踪设备2210可以被配置用于选择性地激活照明器2216来照亮可穿戴装置2200的用户的至少一只眼睛2220。处理器2219可以对所照亮的眼睛2220的图像进行分析并且基于此确定眼睛2220的注视方向。

可穿戴装置2200还可以包括设置在可穿戴装置2200上的某位置处的至少一个全息膜2230。在所示出的示例中,在可穿戴装置2200上的三个可能位置中示出了全息膜2230。在第一可能位置中,在可穿戴装置2200的透镜2240上示出了全息膜2230a。在第二可能位置中,在可穿戴装置2200的显示器2250上示出了全息膜2230b。在第三可能位置中,在可穿戴装置2200的独立式(无透镜)部分2260上示出了全息膜2230c。实践中,可以仅存在一个全息膜2230。在一些实施例中,可以存在多个不同的全息膜2230。在各实施例中,图像传感器2213可以以相对于注视射线入射全息膜2230的法线的角度(θ)被定位。在一些实施例中,θ可以在约5度与约75度之间。

另外,应当注意的是,可以基于在给定实施例中的这个示例修改眼睛跟踪设备2210(以及因此图像传感器2213和/或照明器2216)以及全息膜2230的取向和放置。例如,照明器2216可以被定位成相对远离图像传感器2213且更直接地寻址到(address)眼睛2220,其中,从眼睛反射的光再次被全息膜2230朝向图像传感器2213反射。此外,在与虚拟现实头戴装置不同的装置中,全息膜2230可以布置在这种装置的其他部分(即,增强现实头戴装置的光导)上。

全息膜2230可以是允许在其上呈现全息图案和图像的任何种类的膜。用于全息膜2230的示例材料包括聚酯、聚丙烯、尼龙、和/或其他聚合物。在一些实施例中,采用表面反射全息图,其中,可以可能地通过创建以各种角度和不同形状切割在膜中的微小凹槽来在所述表面反射全息图上浮雕(embossed)图案和图像。这允许呈现可具有三维效果的图案和图像。在其他实施例中,可以采用体积反射全息图,其中,通过利用选择性地改变膜的折射率的光来曝光全息膜从而创建所述全息图。

图案和图像的反射可以是镜面反射或漫反射。镜面反射在单个方向上从全息膜2230行进,而漫反射在多个/许多方向上从全息膜2230行进。可以采用具有一种或两种类型的反射性的全息膜2230,如以下将讨论的。

当采用具有镜面反射的全息膜2230时,全息膜2230必须设置在装置2200的部分上,其中,相对于图像传感器2213和照明器2216的反射角使得图像传感器2213将确实能够检测到来自照明器2216的、在全息膜2230上的反射。当采用具有漫反射的全息膜2230时,图像传感器2213、照明器2216和全息膜2230的更宽范围的相对位置是可能的。

在使用眼睛跟踪设备2220来确定眼睛2220的注视方向的正常过程之外的活动中,处理器2219还可以被配置用于激活照明器2216来照亮全息膜2230,并且在全息膜2230被照亮时利用图像传感器2213来捕获全息膜2230的至少一个部分的图像。处理器2219然后可以基于图像来确定全息膜2230的特性。例如,处理器2219可以确定全息膜2230的不同反射部分的大小和相对位置。

基于所确定的全息膜2230的特性,处理器2219然后可以确定图像传感器2213相对于全息膜2230(或图像传感器2213的某关键子部件;例如,透镜、电荷耦合器件(ccd)、有源像素传感器等)的位置、取向和/或其他特性。处理器2219然后可以被配置用于基于所述位置、取向、或其他特性中的至少一者来改变图像传感器2213的至少一个校准参数。

替代性地,处理器2219可以向图像传感器2213发送关于位置、取向、和/或其他特性的数据,以供图像传感器2213使用以改变其自身的至少一个校准参数。在进一步替代方案中,处理器2219可以使用关于位置、取向、和/或其他特性的数据来校准由处理器2219使用的算法,以便使用图像传感器2213和照明器2216来确定注视方向。所调整的校准参数可以仅通过示例的方式包括:成像参数、焦距、失真参数、照明参数、图像传感器相对于全息图的取向、视野、到全息图的距离、和/或图像传感器相对于全息膜2230的角度。

全息膜2230可以具有不同的反射特性,所述反射特性中的每一个可足以实施所描述的本发明的实施例。为了使来自全息膜2230的反射光的图像足以从其确定图像传感器2213的位置和/或取向,必须存在至少两条正交轴线中的特性。在一些实施例中,将提供具有二维特性的单个特征。在其他实施例中,可以存在具有经组合的二维特性的两个或更多个特征。

图23a至图23f示出了可以用于实施本发明的实施例的具有不同特性的多种全息膜。其他变体是可能的。这些图的阴影部分表示其第一反射部分,而非阴影部分表示第二反射部分。然而,第一反射部分的反射角可能不同于第二反射部分的反射角。替代性地,所述图的阴影部分或非阴影部分可以表示膜的非反射区域。即,全息膜/镜中的孔或腔,可基于其特性(大小、位置等)进行校准。在一些实施例中,非阴影部分可以反射眼睛的图像以用于注视检测,而阴影部分可以提供朝向图像传感器2213的镜面反射以用于如本文所讨论的校准。尽管全息膜上的更复杂且更大的标记可以提供更多的信息并且产生更准确确定的图像传感器2213的位置/取向,但较小的标记将降低图像传感器2213由于反射光而饱和的可能性,饱和可能使从其中得到的数据更少或不可用。

图23a示出了具有标记的全息膜,所述标记具有二维特性。这个标记可以取决于照明器2216和图像传感器2213的放置而进行漫射式或镜面反射式呈现。可以以本领域已知的、或者将来在本领域中变得已知的任何方式来制作漫射标记。

图23b示出了也具有二维特性的替代标记。这个标记也可以取决于照明器2216和图像传感器2213的放置而进行漫射式或镜面反射式呈现。

图23c示出了另一标记,由此呈现了至少三个全息球体。对球体的照明的反射在二维布局中提供三个大体的点位置。由于全息球体的圆形性质,来自球体的整体反射将在不同方向上扩散。较大的球体将提供比较小球体更多的反射光、但较低的准确性,所述较小的球体将提供更少的反射光、但具有增大的准确性。还可以采用其他三维全息标记。

图23d示出了另一可能的标记,其中,照亮区域的尺寸以及非照亮区域的隐式尺寸两者都可以用作可由本发明的系统和方法使用以确定图像传感器2213的位置和/或取向的特性。这个标记也可以取决于照明器2216和图像传感器2213的放置而进行漫射式或镜面反射式呈现。

图23e示出了另一标记,由此,整体反射全息膜的总体尺寸提供了必要的二维特性。这个标记也可以取决于照明器2216和图像传感器2213的放置而进行漫射式或镜面反射式呈现。

图23f示出了具有两个单维(或者近似单维的)标记的另一标记,由此,标记的长度及其彼此的相对放置提供了必要的二维特性。这个标记也可以取决于照明器2216和图像传感器2213的放置而进行漫射式或镜面反射式呈现。

执行图8、11、15、17、19和21中所示的流程图的程序或指令可存储在(多个)计算机可读存储介质读取器350中和/或存储在工作存储器380的(多个)其他代码388中,并且可以由图3中所示的(多个)cpu310来执行。

为了清楚和理解的目的,现在已经详细地描述了本公开。然而,将理解的是,可以在所附权利要求的范围内实践某些改变和修改。

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

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

以下描述中给出了特定细节以便提供对实施例的透彻理解。然而,本领域技术人员将理解,没有这些特定细节也可以实践实施例。例如,可以以框图形式将本公开中的电路、系统、网络、过程和其他要素示出为组成部分,以便不会以不必要的细节模糊实施例。在其他实例中,可以没有不必要的细节地示出公知的电路、过程、算法、结构和技术以避免模糊实施例。

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

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

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

如在本文中使用的,短语“基于第二件事的第一件事”等可能意味着:第一件事仅仅基于第二件事;或者第一件事基于第二件事以及一件或多件附加的事件。

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