掌桥专利:专业的专利平台
掌桥专利
首页

使用被绘制在外部显示器上的同步图像用于HMD相机校准的方法

文献发布时间:2023-06-19 11:00:24


使用被绘制在外部显示器上的同步图像用于HMD相机校准的方法

背景技术

虚拟现实(VR)系统由于能够为其用户创建真正独特的体验而受到了广泛的关注。作为参考,常规VR系统通过将其用户的视野限制为仅VR环境/场景来创建完全沉浸式体验。

VR环境通常通过头戴式设备(HMD)被呈现给用户,该HMD完全阻挡了真实世界的任何视野。相反,常规增强现实(AR)系统通过可视地呈现放置在真实世界中或与真实世界交互的虚拟图像来创建AR体验。如本文中使用的,术语“虚拟图像”和“虚拟对象”可以互换使用并且用于共同指代在VR环境/场景内绘制的任何图像。

一些VR系统还利用一个或多个身体上设备(包括HMD)、手持式设备和其他外围设备。HMD提供使得用户能够查看VR环境内的重叠和/或整合的视觉信息(即,虚拟图像)的显示器。用户通常可以通过使用一个或多个外围设备并且有时甚至使用自己的身体来与VR环境中的虚拟对象交互。

硬件能力和绘制技术的不断进步极大地改善了VR系统绘制虚拟对象的方式。实际上,VR系统的绘制技术已经得到了很大的改进,以至于用户经常忘记他们在物理上仍然位于真实世界中。提供这种沉浸式体验的一个负面结果是,用户可能变得失去相对于真实世界的方向感,并且在与VR环境/场景互动时会失去平衡和/或与真实世界中的对象碰撞。

本文中要求保护的主题不限于解决任何缺点或仅在诸如上述这些环境中操作的实施例。而是,仅提供该背景以说明可以实践本文中描述的一些实施例的一个示例性技术领域。

发明内容

所公开的实施例涉及通过利用被绘制在单独计算机系统的显示屏上的显示电子图像来执行HMD的相机系统的内部和/或外部校准的计算机系统、方法和设备(例如,HMD)。

在一些实施例中,HMD使用HMD的相机捕获显示电子图像的一系列图像。该显示图像是包括具有已知的特性的标记的已知图像。作为示例,已知的特性可以包括已知标记形状和多个编码(例如,QR码或条形码)或未编码标记。该一系列图像中的每个图像相对于该系列中的另一图像以不同角度或距离捕获显示电子图像。然后,HMD从该系列图像内标识标记的二维图像位置。此外,HMD使用二维图像位置和标记相对于环境的三维位置来执行束调整,该束调整用于后续确定HMD与单独显示屏之间的特定位置距离和角度对准。在这点上,HMD能够确定内部参数(例如,相机的光心和焦距)和/或外部参数(例如,相机相对于环境的位置)。

提供本“发明内容”以便以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

其他特征和优点将在下面的说明书中阐述,并且部分地将根据该说明书而变得很清楚,或者可以通过本文中的教导的实践而获知。本发明的特征和优点可以借助于所附权利要求中特别指出的手段和组合来实现和获取。本发明的特征将根据以下说明书和所附权利要求书而变得更加完全明显,或者可以通过下文中所述的本发明的实施而获知。

附图说明

为了描述获取上述和其他优点和特征的方式,将通过参考在附图中示出的特定实施例来对以上简要描述的主题进行更具体的描述。理解来这些附图仅描绘典型实施例并且因此不应当被视为对本发明的范围的限制,将通过使用附图以附加特征和细节来描述和解释实施例,在附图中:

图1示出了用于在VR环境内显示与真实世界锚对象相对应的虚拟锚对象的示例方法的流程图。

图2示出了具有多个候选锚对象的示例真实世界环境。

图3示出了HMD如何能够扫描真实世界环境以标识任何数目的候选锚对象。

图4示出了如何在真实世界内选择锚对象以用作VR环境内的视觉提示或参考。

图5示出了VR环境的示例,包括该VR环境的HMD视场(“FOV”)。

图6示出了真实世界锚对象如何用于帮助用户与VR环境互动,同时仍然使得用户能够保持对存在于真实世界环境内、但由于HMD而无法看到的真实世界对象(即,障碍物)的感知/认识。

图7示出了如何在VR环境内绘制与所选择的真实世界锚对象相对应的虚拟锚对象以帮助用户保持对他/她的真实世界环境的认识。

图8示出了不管HMD移动到何处,虚拟锚对象如何保持相对于真实世界被世界锁定,而不是相对于VR环境被世界锁定。

图9示出了如何使用不同视觉特性来显示虚拟锚对象以便增强或减小其对VR环境的视觉影响。

图10示出了在HMD以使得虚拟锚对象能够离开HMD的FOV的方式移动的情况下,如何显示方向指示符以示出如何移动HMD就可以使虚拟锚对象返回到HMD的FOV中。

图11示出了不管HMD在真实世界环境内的取向如何,如何可以提供方向指示符以指示真实世界锚对象相对于HMD的位置。

图12示出了用于选择计算机屏幕以用作锚对象并且用于在VR环境内显示对应的虚拟锚对象的示例方法的流程图。

图13示出了真实世界环境,其中物联网(“IoT”)设备(例如,智能电视)被选择以用作锚对象。

图14示出了如何使用校准标记图像来促进确定HMD与IoT设备的显示屏之间的相对位置的过程。

图15示出了HMD如何能够在校准标记图像被显示在IoT设备的显示屏上的同时记录校准标记图像的图像,以便确定HMD与显示屏之间的相对位置和取向。

图16A、16B和16C示出了如何将校准标记图像中包括的每个标记之间的距离用于促进校准过程(即,确定包括锚点的IoT设备的显示器与HMD之间的相对位置的过程)。图16D示出了用于用HMD来校准标记图像或锚点的示例方法的流程图。

图17示出了在校准过程中如何使用缓存视频。

图18A和18B示出了在VR环境内提供多个真实世界锚对象以及绘制多个对应虚拟锚对象(包括一个呈星形的对象)的场景。

图19示出了用于使用HMD的相机系统来执行内部和/或外部校准的示例方法的流程图。

图20示出了被特别配置为执行所公开的任何操作的示例计算机系统。

具体实施方式

所公开的实施例涉及执行HMD相机系统的内部和/或外部校准的计算机系统、方法和设备(例如,HMD)。为此,HMD捕获显示电子图像的一系列图像。显示图像是包括具有已知的特性的标记的已知图像。然后,HMD标识这些标记相对于彼此以及相对于周围环境的二维和三维特性。使用这些特性,HMD执行束调整,该束调整用于随后确定HMD与显示电子图像的屏幕之间的特定位置距离和角度对准。

在一些实施例中,选择真实世界对象以用作锚对象。一旦选择了锚对象,便会在VR环境内绘制对应虚拟锚对象。该对应虚拟锚对象相对于锚对象的真实世界位置在VR环境内被世界锁定。因此,无论HMD如何移动或VR环境如何变化,对应虚拟锚对象都将在VR环境内被投影在指示/反映锚对象的真实世界位置的位置。这样,HMD的用户可以通过保持对锚对象的位置的了解来保持对他/她的真实世界环境的认识(即使沉浸在VR环境内)。这种认识有助于用户避免与真实世界对象碰撞。

在一些实施例中,显示屏(例如,计算机屏幕、智能电话屏幕、电视(“TV”)屏幕、游戏控制台屏幕等)被选择以用作真实世界锚对象。在这种情况下,HMD向控制显示屏的计算机系统发出指令以使显示屏显示一个或多个已知图像(例如,校准标记图像、缓存视频记录等)。一旦已知图像被显示,当已知图像被显示在显示屏上时,HMD捕获/记录所显示的已知图像的图像,并且HMD确定已知图像的某些属性。这些属性然后用于生成描述显示屏与HMD之间的位置关系的信息。另外,与显示屏相对应的虚拟锚对象被绘制在由HMD投影的VR环境内。响应于HMD的移动,虚拟锚对象在VR环境内的位置被更新以反映HMD与显示屏之间的位置关系。

通过执行这些和其他操作,所公开的实施例能够显著改善用户的体验。例如,VR头戴设备的主要优点之一是它们提供真正的沉浸式体验。但是,完全沉浸在虚拟世界中会带来一定的代价,因为用户看不见真实世界。已经表明,当用户与VR环境交互时,用户经常会与真实世界对象碰撞。这些碰撞突然地破坏了用户的VR沉浸式体验。所公开的实施例通过提供(在VR环境内)与静态或确切地说是固定的真实世界锚对象相关联的虚拟锚对象来为这些技术问题以及其他技术问题提供了技术解决方案。使用该虚拟锚对象,用户能够在他/她的头脑中推断出真实世界中障碍物(例如,墙壁、固定装置、家具等)的位置并且然后在与VR环境互动时避开这些障碍物。因此,用户的VR体验可以不会被突然中断。

所公开的校准方法(例如,参考图16D公开的)还促进在VR环境内通过适当定位(例如,通过正确的取向、距离、大小和角度对准)来呈现锚点的方式。

现在将注意力转向图1,图1涉及可以执行的很多方法和方法动作。尽管该方法动作可以以某种顺序讨论或者在流程图中被示出为以特定顺序发生,但是不需要特定顺序,除非特别说明或者因为一个动作依赖于在该动作执行之前完成的另一动作而需要。提供图1中呈现的方法以介绍所公开的实施例,而本公开的后续部分将更充分地阐明所公开的实施例的不同方面。

图1示出了用于在VR环境内提供与真实世界锚对象相对应的虚拟锚对象的示例方法100的流程图。最初,方法100包括动作105,其中选择位于真实世界环境(与VR环境相对)内的特定真实世界对象以用作锚对象。确定哪个真实世界对象将用作锚对象基于检测到的真实世界对象的一个或多个属性。

例如,图2示出了用户205所在的真实世界环境200。用户205当前正在使用HMD210。在真实世界环境200内,可以有任何数目的候选锚对象,诸如例如候选215A、候选215B和候选215C。HMD210能够使用任何数目的相机来扫描真实世界环境200并且彼此分类/分割对象。作为该分割过程的一部分,HMD 210能够标识这些对象的某些属性。以例如候选215A(即,相框)为例。HMD 210能够确定候选215A非常有可能是高度静止、静态或固定的对象,因为它是安装在墙上的相框(例如,HMD 210能够确定这样的对象通常不会移动)。由于检测到的候选215A的属性(即,它是相框,它安装在墙壁上,等等)强烈暗示候选215A不太可能移动,因此HMD 210会将候选215A视为可以用作锚对象的良好候选。

另一方面,候选215B可以被标识为仅是中等可接受的候选。更具体地,候选215B是具有床罩的床。在此,HMD 210可以确定:由于床罩有时会移动(例如,由于人坐在床上),因此HMD 210可以将床(包括床罩)标识为仅中等可接受用作锚对象。

然而,候选215C可以被标识为不良候选。更具体地,候选215C是足球。HMD 210可以确定足球极不可能长时间地在一个位置保持静止。基于分析候选215C的类型和所确定的特性/属性,HMD 210可以将候选215C分类为不良候选。应当理解,该分析可以由单独的计算机系统执行,诸如例如在云环境中运行的计算机或服务。

图3示出了其中HMD 300对真实世界环境310执行扫描操作305的示例场景。在此,HMD 300表示图2的HMD 210,并且真实世界环境310表示真实世界环境200。由此,应当理解,所公开的实施例能够扫描真实世界环境310以检测真实世界对象。一旦检测到,实施例就能够基于其检测到的属性来分析和表征/分割这些对象。在某些情况下,机器学习算法可以用于表征/分割对象。另外,从互联网或某种其他数据存储库获取的分类信息可以用于更好地评估真实世界环境310内的真实世界对象的属性。基于这些特性,实施例随后能够将对象分类为:良好候选、中等可接受候选或不良候选(或一些其他分类方案)。将对象分组为不同候选等级可以基于特定对象被确定为有多稳定。也就是说,选择所确定的稳定性属性至少满足稳定性阈值水平的对象(例如,以用作锚对象)是有益的。可以将不同阈值用于不同等级(例如,良好、中等和不良)。

如上所述,在一些实施例中,选择特定真实世界对象以用作锚对象的过程最初可以包括从真实世界环境内标识多个真实世界对象。然后,可以基于指定标准(例如,稳定性标准)对这些真实世界对象中的每个对象进行分类。此后,实施例可以基于确定所选择的真实世界对象的指定标准(例如,稳定性标准)充分满足预先建立的标准阈值(例如,稳定性阈值)来选择一个(或多个)真实世界对象以用作锚对象。该选择可以由HMD自动发生,或者替代地,可以响应于用户输入而发生。例如,可以向用户呈现任何数目的可选择候选锚对象。由此,用户可以选择这些候选锚对象中的一个(或多个)以实际用作锚对象。

返回图1,在动作110中,确定锚对象相对于计算机系统的位置和取向。例如,图4示出了表示图2和图3的真实世界环境的真实世界环境400以及关于特定锚点405(即,相框)的选择的指示。在图4所示的场景中,HMD能够确定其相对于锚点405的位置和取向。确定位置和取向将结合图13至17更详细地讨论。然而,简言之,应当理解,位置和取向信息可以包括位置/定位信息、深度信息、角度对准信息、视角信息和/或取向信息中的任何一个或多个。

返回图1,在动作115中,特定虚拟锚对象也被绘制在由计算机系统(例如,HMD)绘制的VR环境内。该虚拟锚对象被绘制在VR环境内指示/反映锚对象相对于计算机系统的所确定的位置和取向的放置位置处。例如,虚拟锚对象被绘制为具有深度、视角、角度对准(例如,对应的俯仰、偏航和横滚)、倾斜和取向(例如,垂直和水平),其表示真实世界锚对象相对于HMD的深度、角度对准、倾斜、视角和取向。稍后结合图16A-16D更详细地讨论这样的特征。

简要地转向图5,在此示出了由HMD 505(例如,在图1的动作115中的计算机系统)绘制的VR环境500。在该示例场景中,VR环境500表示过山车体验,其中当过山车沿着一组轨道行进时,用户似乎坐在过山车中。在这点上,VR环境500可以被认为是非静止的移动环境,使得VR环境500看起来相对于佩戴HMD的用户正在移动,并且其中VR环境500移动与用户或HMD的任何移动无关(即,即使用户坐着完全不动,环境看起来仍在移动)。在其他实施例中,VR环境500可以是在用户保持静止时不会移动的静止环境(例如,房间)。例如,如果VR环境500是房间,则用户可以在虚拟房间内走来走去,但是虚拟房间看起来似乎是静止的。因此,如接下来将要说明的,虚拟锚对象可以被绘制为相对于真实世界环境处于锁定位置,而不是相对于VR环境(甚至是非静止的VR环境)被锁定,使得虚拟锚对象被固定地显示,而与VR环境或甚至HMD的移动无关。

尽管VR环境500可能非常广阔,但应当理解,HMD 505的用户将只能看到呈现在HMD505的视场(FOV)510内的内容。通过重新定位/移动HMD 505,VR环境500的不同部分将被显示在FOV 510中。如图所示,VR环境500可以包括任何数目的虚拟对象,诸如例如VR对象515(例如,过山车轨道)、VR对象520(例如,树)和VR对象525(例如,过山车火车)。

图6示出了即使用户物理地位于表示先前描述的真实世界环境的真实世界环境600内,用户如何与表示先前描述的VR环境的VR环境605互动。因为用户可能在沉浸在VR环境605中的同时在移动,所以提醒用户他/她仍在真实世界环境600中并且用户应当避免与真实世界对象碰撞是有益的。因此,选择锚点610以帮助用户保持对真实世界环境600的认识。

为此,如先前在图1的动作115中所述,所公开的实施例在VR环境内绘制特定虚拟锚对象,其中虚拟锚对象对应于锚对象。这种场景如图7所示。

更具体地,图7示出了VR环境700以及与图6的锚点610和图4的锚点405相对应的绘制虚拟锚对象(标记为锚点705)。应当理解,图7中的锚点705(对应于相框)在VR环境700内被绘制在反映相框的实际真实世界位置和取向的放置位置处。也就是说,无论HMD如何移动以及显示在HMD的FOV中的内容如何,锚点705在VR环境700内始终被绘制在与真实世界锚点的位置和取向一致的位置处。此外,锚点705以能够反映真实世界锚对象相对于HMD的位置、深度、取向、角度对准、倾斜和/或视角的方式被绘制。

例如,返回到图1,响应于计算机系统的跟踪移动,描述锚对象的相对位置和相对取向的信息被更新(动作120)。执行这些更新以跟踪计算机系统的位置相对于锚对象的位置的一个或多个改变。

利用这些更新,根据经更新的信息来更新虚拟锚对象在VR环境内的放置位置(图1中的动作125)。也就是说,虚拟锚对象的放置位置被更新以反映虚拟锚对象的放置位置与锚对象的位置之间的世界锁定关系。

图7和8更充分地阐明了这一方面。例如,在图7中,锚点705(对应于相框)被显示在HMD的FOV的右侧区域中。相反,图8示出了表示图7的VR环境700的VR环境800、以及相同的锚点805。但是,在此,锚点805被显示在HMD的FOV的左侧区域。放置位置的这种变化是由于HMD相对于相框的移动位置而导致的。例如,在图7所示的场景中,HMD的用户物理上位于真实世界环境内使得相框在用户的右侧外部视图内。后来,如图8所示的场景所示,用户和HMD发生位置移动,从而使相框现在位于用户的右侧外围视图内。应当理解,在某些情况下,VR环境800中的虚拟对象也可以基于用户的新位置而改变,但是为了简单起见,在图8中使用与图7相同的虚拟对象。以这种方式,VR环境被更新使得与相框相关联的虚拟锚对象(即,分别为图7和8的锚点705和805)被绘制在适当位置,以保持真实世界之间的世界锁定关系,而不是相对于VR环境被世界锁定。

因此,所公开的实施例有益地在VR环境内提供了虚拟锚对象,其中虚拟锚对象在VR环境内被绘制在始终与真实世界锚对象相对应的位置处。虚拟锚对象的这种绘制有助于用户保持对他/她的真实世界物理环境的感知。通过维持这种感知,用户将能够直观地想起真实世界中的障碍物(例如,家具、固定装置、墙壁等)的位置,并且即使沉浸在VR环境内也可以避开这些障碍物。

现在将注意力转向图9,图9示出了具有绘制锚点905的另一示例VR环境900。在此,锚点905被绘制为在VR环境900中至少部分透明,使得锚点905仅部分遮挡VR环境900中的其他虚拟内容。例如,锚点905被示出为被显示在过山车轨道和树的一部分上方。因为锚点905是透明的,所以用户仍然可以看到下面的过山车轨道和树。在这点上,锚点905的各种视觉属性可以以不同方式被修改。在某些情况下,视觉属性可以自动改变,而在其他情况下,该属性可以手动改变。可以在透明度、颜色、形状、轮廓、填充、三维特性、连续显示状态和闪烁状态方面对锚点905的视觉外观进行修改。

作为示例,图9示出了锚点905的形状对应于图3的相框的形状。也就是说,可以使用真实世界对象(例如,矩形相框)的属性来确定锚点905的形状或轮廓。此外,图7的锚点705与图8的锚805之间的形状的视觉差异表明,绘制形状可以取决于真实世界锚对象相对于HMD的当前深度、角度对准(例如,俯仰、偏航和横滚)、倾斜、取向和视角。例如,如果相框位于HMD正前方,则所绘制的锚对象将被绘制为矩形。如果用户要移动HMD使得相框朝着用户的外围视觉逐渐移开,则绘制锚对象的形状也将逐渐变化(例如,可能从矩形形状变为有角度的多边形形状以匹配相框的外围视图)。以这种方式,锚点905的形状可以动态地改变以与真实世界锚点相对于HMD的深度、取向、角度对准、倾斜和视角一致。

图9还示出了锚点905是图3的相框的轮廓,而不是被完全填充。应当理解,轮廓的边界的厚度可以是自动或手动可配置的。在一些实施例中,取代真实世界锚点的轮廓,锚点905可以被完全填充。类似地,取代被绘制为二维平面对象,锚点905可以被绘制为具有三维特性。另外,锚点905的颜色可以是可配置的。在某些情况下,颜色可以对应于真实世界锚点的真实世界颜色,而在其他情况下,颜色可以是完全唯一的。一些实施例将虚拟锚对象显示为具有与真实世界锚对象的形状完全不同的形状。例如,一些实施例将虚拟锚对象成形为星形(如图18A中稍后所示),或者甚至成形为锚。星形可以表示古代旅行者在旅行中将其用作向导的北极星。在这点上,星形虚拟锚对象可以引导用户使得用户可以避免与真实世界障碍物碰撞。在其他实施例中,锚点905的视觉外观可以准确地反映真实世界锚对象的外观。例如,锚点905可以被可视化为具有与真实世界图片相同的图片的相框。在某些情况下,该相框和图片可以是透明的。在其他情况下,如图17稍后总体上所示,可以使用实时流或预先记录的缓存流来将虚拟锚点纹理化,该实时流或缓存流来自头戴设备的跟踪相机,该跟踪相机示出了锚对象、VR环境或甚至任何其他对象的真实图像。当然,也可以使用上述特征的组合。

在一些实施例中,锚点905的状态/视觉外观可以基于用户到任何真实世界对象/障碍物的接近度而改变。例如,如果当用户响应于由VR环境提供的刺激而移动时,用户在真实世界障碍物附近移动,则锚点905的视觉外观可以改变,以警告用户他/她将要与障碍物碰撞。作为示例,最初,当不太可能发生碰撞时,锚点905可以以连续方式被显示,并且随后,然后当可能发生碰撞时,锚点905可以开始闪光、闪烁或以其他方式改变视觉外观。一旦用户距离障碍物在阈值距离内,该闪烁可能会缓慢发生,但是随着用户靠近障碍物,该闪烁可能会逐渐变快。另外地或替代地,颜色可以改变(例如,从非强调颜色变为诸如红色等明亮强调颜色)以反映可能的碰撞。类似地,透明度可以改变(例如,变得不那么透明并且因此更加强调)。锚点905也可以变得更加填充(例如,从仅仅小的边框轮廓变成完全填充的对象),等等。在这点上,锚点905的视觉外观的改变可以用于在即将与真实世界障碍物即将发生碰撞时警告用户。在一些实施例中(如后面的附图中所述),锚对象是单独计算机系统的屏幕。如果用户离得很远,则屏幕可以但不必用其轮廓来表示。当用户靠近2D(或3D)矩形轮廓(或至少靠近锚对象的阈值距离内)时,可以使用真实屏幕内容作为纹理来填充轮廓。以这种方式,用户可以例如实时或接近实时地在虚拟屏幕上键入文本并且查看结果。

图10示出了一种场景,其中由于HMD被移动,虚拟锚对象不再被显示在VR环境1000的HMD的FOV内(即,虚拟锚对象位于HMD的FOV之外)。由于虚拟锚对象位于FOV之外,因此第二虚拟锚对象(即,方向指示符1005)被绘制在FOV中并且被提供以指示必须移动HMD以使虚拟锚对象回到HMD的FOV中的移动方向。参考图10,HMD将必须向左移动(如方向指示符1005的左箭头所示)以使虚拟锚对象进入HMD的FOV中。当然,方向指示符1005的尺寸、颜色、透明度和其他视觉特性可以以先前讨论的任何方式来修改。在一些实施例中,方向指示符1005的长度可以反映HMD与锚对象之间的距离或深度,其中较长的方向指示符暗示较长的距离,而较短的方向指示符暗示较短的距离。

图11示出了方向指示符如何用于帮助用户保持对他/她的真实世界环境的认识的另一图示。更具体地,图11示出了表示先前讨论的任何真实世界环境的真实世界环境1100、锚点1105、以及在该真实世界环境1100内佩戴HMD的用户。用户被示出为相对于锚点1105位于不同的位置、深度、角度对准和取向,如视角视角1110A、视角视角1110B、视角视角1110C和视角视角1110D所示。

在视角视角1110A中,指示符1115A示出用户必须将HMD左移,更确切地说,逆时针旋转大约90度,以便使锚点1105进入HMD的FOV中。在视角视角1110B中,指示符1115B示出用户将必须将HMD向左(例如,逆时针)或向右(例如,顺时针)移动大约180度,以便使锚点1105进入HMD的FOV中。从视角视角1110C来看,指示符1115C示出用户必须将HMD向右(例如,顺时针)移动大约90度,以便使锚点1105进入HMD的FOV中。最后,从视角视角1110D来看,指示符1115D示出用户将必须稍微向上移动HMD以使锚点1105进入HMD的FOV中。在这点上,虚拟锚对象可以是指向指示符,该指向指示符可以基于其所指向的方向/取向来在视觉上指示真实世界锚点与HMD之间的位置关系。

在一些实施例中,电子显示屏(例如,电视、笔记本电脑屏幕、台式机屏幕、移动电话屏幕、游戏控制台屏幕等)可以用作真实世界锚对象。此外,一些实施例被配置为对显示屏执行一个或多个校准,以提供关于显示屏与HMD之间的位置关系的增强信息。图12示出了示例方法1200的流程图,其中选择显示屏以用作真实世界对象。

最初,方法1200包括动作1205:向被确定为与HMD位于同一环境中的单独计算机系统发布指令(例如,来自HMD或来自另一系统(诸如云VR管理系统))。该指令在由单独计算机系统执行时使单独计算机系统在其显示屏上显示一个或多个已知图像。

作为示例,考虑图13中呈现的场景。在此,存在其中用户佩戴有HMD 1305的真实世界环境1300。真实世界环境1300内包括的是智能电视1310。应当理解,尽管图13示出了智能电视的存在,但是带有对应处理器和通信信道的其他物联网(IoT)设备也可以存在并且可以代替(或补充)智能电视1310,诸如智能电话、笔记本电脑、平板电脑、游戏机、台式机等。在这种场景下,HMD 1305具有与智能电视1310开放的通信信道,并且能够通过这个开放的通信信道将指令传递给智能电视1310。这些信道的示例包括但不限于近场通信(NFC)、Bluetooth、其他类型的无线连接、系留连接、或可以在多个电子设备之间建立的任何其他连接。

如在图12的动作1205中所述,在一些实施例中,图13的HMD 1305(或某种其他计算机系统)能够向IoT设备(例如,智能电视1310)传输指令1315。指令1315被配置为使得当智能电视1310处理指令1315时,智能电视1310将在其显示屏上绘制一个或多个已知图像。

这些已知图像的一个示例是校准标记图像1400,如图14所示。更具体地,校准标记图像1400可以包括任何数目的图像,诸如例如标记1400A、标记1400B、标记1400C、标记1400D、标记1400E和标记1400F。如图所示,每个标记1400A-1400F可以是彼此唯一的(例如,在这些标记中的每个标记中,粗体线条被不同地配置)。另外,校准标记图像1400内的每个个体标记(即,标记1400A-1400F)之间的距离可以是已知的。为了说明,距离1405、距离1410、距离1415和距离1420可以由HMD预先建立并且是HMD已知的。应当理解,可以选择校准标记图像1400内的任何数目的点,并且这些点之间的距离可以被维持并且是已知的。

在一些实施例中使显示屏显示已知图像的过程和HMD确定其相对于显示屏的位置/取向的过程(例如,通过确定已知图像中的标记之间的距离)构成初始校准过程。也就是说,被选择以用作锚对象的真实世界对象可以是单独计算机系统的显示屏。此外,选择该显示屏以用作锚对象的过程可以包括在显示屏与HMD之间执行上述校准。

在一些实施例中,当用户沉浸在VR环境内时,该校准过程可以重复多次。通过多次执行该校准过程,HMD可以校正在HMD理解其在真实世界环境内的位置中的可能发生的任何漂移。

还应当理解,显示屏可以仅在临时时间段内显示校准标记图像。例如,在某些情况下,HMD可以被系留到单独显示屏。该系留使显示屏可以显示HMD的用户正在查看的相同内容,从而允许其他朋友或用户在用户与VR环境互动时观看。为了使对其他观看者的干扰最小化,可以显示校准标记图像,直到诸如HMD成功捕获包括校准标记的显示屏的清晰图像等的时间。一旦捕获图像被分析并且被确定为具有足够高的质量(即,其满足质量阈值),则HMD可以向单独计算机系统发布另一指令以向其指示校准标记图像可以被去除。另外地或替代地,可以在经过超时时段之后,使校准标记图像被自动去除。

返回图12,一旦已知图像(例如,校准标记图像)被显示在单独计算机系统的显示屏上,则在已知图像被显示在显示屏上时,检测这些图像的一个或多个属性(动作1210)。例如,图15示出了真实世界环境1500,其中HMD使用其一个或多个相机(例如,一个或多个跟踪相机,诸如头部跟踪相机)扫描1505真实世界环境1500以检测显示在智能电视上的已知图像(例如,标记1510)。通过执行该扫描1505,HMD能够记录标记1510的图像并且确定其属性,诸如例如标记1510中包括的个体标记之间的间隔。因为该间隔是由HMD先前建立并且已知的,所以HMD能够分析捕获图像,计算所记录的图像中呈现的间距,然后基于实际间距值与捕获图像中记录的间距值之间的关系来确定HMD与智能电视之间的位置关系。

以上过程体现在方法1200的动作1215中,其中使用一个或多个已知图像的一个或多个属性来生成描述计算机系统与单独计算机系统的显示屏之间的位置关系的信息。图16A、16B和16C更充分地说明了这一概念。

特别地,图16A示出了显示在显示屏(例如,桌面屏幕,但是可以使用智能电视屏幕或任何其他屏幕)上的标记图像的捕获图像(例如,使用HMD的跟踪相机)。在该实施例中,捕获图像(例如,由HMD捕获的图像)包括显示屏、显示屏上的标记和整个计算机。

在图16A中,HMD相对于显示屏的深度、取向、角度对准(例如,俯仰、偏航和横滚)、倾斜和位置由1600A所示的计算机的视角来反映。通过在屏幕显示已知图像的同时捕获显示屏的图像,HMD能够计算校准标记图像中包括的个体标记之间的距离1605A。为了说明,通过将捕获/记录距离1605A与已知距离(例如,图14的距离1415、1410、1415或1420)进行比较,HMD能够准确地确定其相对于显示屏的位置、深度、角度对准、倾斜和取向。然后,该信息用于确保锚点(例如,标记或显示屏边界或与标记相关联的其他对应图像、或者甚至真实世界环境中相对于标记具有已知位置的另一对象/锚点)在VR环境内被呈现为具有适当位置和大小的锚点。因为标记中的每个点是已知的(例如,长度、宽度、高度、粗体等),所以实施例能够比较所记录的标记的图像,确定记录图像中的点,然后将记录点属性与已知点属性进行比较。通过该比较,实施例能够确定HMD相对于显示标记的位置。应当理解,在该分析期间可以使用任何数目的点,尽管更大数目的点的比较通常将产生更准确的确定。当然,实施例能够智能地选择和使用最佳数目的点,以便减少时间和资源消耗。此外,实施例可以在滚动的基础上执行分析。也就是说,首先,可以使用选定数目的点。如果在分析过程中确定应当使用更多点,则实施例能够递增地增加点数,直到实现可靠确定。

图16B示出了计算机以及对应显示图像和标记的另一视角1600B(该视角是由HMD观察到的视角),其中一组标记的距离1605B将不同于同一组标记的距离1605A,因为视角1600B不同于视角1600A。类似地,图16C示出了计算机以及对应显示器和标记的又一视角1605C,该组标记具有记录/计算的距离1600C。基于不同深度、角度对准、取向和视角,现在可以基于标记的已知距离及其在各个视角(例如,1600A、1600B、1600C)中检测到的距离的变化来确定显示屏与HMD之间的精确位置关系。

图16D提供了用于校准HMD与被绘制在单独计算机系统的显示屏上的电子图像之间的位置距离、角度对准和相对取向的示例方法1615的流程图。这样的过程可以被包括作为图12的方法1200的方法动作1210和1215的一部分。

最初,方法1615包括动作1620,即,使用HMD的一个或多个相机来捕获由单独计算机系统绘制(例如,在与单独计算机系统相关联的显示屏上,或者在投影图像上)的显示电子图像的HMD图像。例如,图16A-图16C的视角1600A、1600B和1600C中的任何一个都可以表示上述图像,该图像包括显示电子图像及其对应已知校准标记。校准标记具有已知图像特性,该图像特性被定义和存储在图像文件中和/或通过HMD的图像来检测。

可以已知的特性的非限制性示例包括已知图像内包括的第一组两个已知点之间的第一已知距离(例如,图14的图像中的标记之间的距离1405)以及已知图像内包括的第二组两个已知点之间的第二已知距离(例如,图14的距离1405、1410、1415或1420)。应当理解,也可以使用任何数目的点和任何数目的距离,并且该距离不限于矩形条之间的距离(例如,它们可以包括形状的直径、显示元素与显示图像的边缘之间的距离、或具有已知尺寸的任何其他距离)。另外地或替代地,一些实施例还确定线宽(例如,图14中的深色矩形的宽度)或其他视觉特性。

在使用HMD的相机捕获HMD图像(从而保留HMD与显示屏之间的有利视角)之后,HMD(或某个其他服务,诸如例如云服务)隔离和/或标识HMD图像内的校准标记。这可以包括标识与标记相关联的分别具有预定的第一已知距离和第二已知距离的两组独立的点。

在某些情况下,通过使用图像滤波器标识与标记相关联的标签,和/或使用对象识别软件标识预定且已知存在于显示图像中并且以特定视角被绘制在显示电子图像中的校准标记,来执行标记标识/提取(动作1625)。为了清楚起见,捕获图像可以是例如不仅包括校准标记图像而且还包括其他对象(例如,沙发、固定装置等)的增大图像。因此,实施例能够从图像中标识/提取相关校准标记。这些具有已知距离和与其相关联的其他尺寸的标记将基于HMD观看校准标记的相对视角而在捕获图像中以不同视角尺寸(例如,距离、大小等)被查看。例如,在一定角度处看到的两个标记之间的距离看起来小于标记之间的实际距离。

例如,图15示出了其中HMD与标记1510隔开一定距离的情况。由于这种差异,与实际图像相比,次生电子图像将包括视觉外观的一些差异。例如,如果HMD位于屏幕正前方,则视觉外观的差异将相对较小。相反,如果用户相距2米(或3米、4米、5米或任何其他距离)并且相对于显示屏成非垂直(即,倾斜)角度放置,则该差异将更加明显,如图16A-图16C中分别通过视角1600A、1600B和1600C之间的差异所示。在图15中,用户略微位于标记1510下方并且远离标记1510。由于这个视角,标记1510中每个已知点之间的距离将略微偏斜。使用这种偏斜,实施例能够将标记1510的记录图像与标记1510的已知属性进行比较以确定用户相对于标记1510的位置关系。

此后,HMD针对与标记相关联的第一组已知点来计算在显示电子图像内观察到的标记的第一组已知点之间的第一视角距离(图16D中的动作1630)。同样,HMD针对与标记相关联的第二组已知点来计算在显示电子图像内观察到的标记的第二组已知点之间的第二视角距离(图16D中的动作1630)。

接下来,通过比较至少(1)第一视角距离与与标记相关联的第一已知距离,以及(2)第二视角距离与与标记相关联的第二已知距离,HMD确定(1)HMD与单独计算机系统的显示屏之间的位置距离,(2)HMD与单独计算机系统的显示屏之间的角度对准,以及(3)HMD与单独计算机系统的显示屏之间的相对取向(图16D中的动作1635)。以这种方式,通过分析和比较记录图像的属性与预先建立的图像的已知属性,HMD能够准确地确定其相对于显示屏的位置(包括深度、角度对准和取向)。以角度对准为例,考虑相机的“光轴”。如本文中使用的,光轴是指穿过相机镜头的中心的假想线。该假想线可以被认为是相机对准的方向。如果相机的光轴垂直于校准标记的中心区域对准,则校准标记看起来具有较小的歪斜或确切说角位移,则场景是将相机的光轴以非垂直方式对准校准标记。因此,当提及“角度对准”时,通常是指相机光轴相对于校准标记的中心点或区域的角位移(相对于垂直方向)。

在一些实施例中,由于HMD与单独显示屏远离/相距太远,或者由于显示电子图像的显示器反射性太强或太多的眩光/光亮,所以次生电子图像的质量可能不满足质量阈值要求。在这些情况下,可能有益的是,触发单独计算机系统在同一显示屏或不同显示屏上绘制具有已知点尺寸/距离的不同标记的不同图像,或者甚至使不同显示屏绘制图像(例如,如稍后在图18B中所示)。不同图像可以具有不同内容或仅具有放大内容。在一些实施例中,HMD能够控制显示器的分辨率设置,以试图补偿诸如眩光等环境因素。作为示例,一些实施例能够减小或增加显示屏的亮度或分辨率。此外,在包括很多物联网(IoT)设备(例如,灯、阴影等)的真实世界环境内,一些实施例能够降低百叶窗,增加或减少头顶灯的暗度/亮度,或者执行提高真实世界环境中的可见性的任何其他动作。

相对较大版本的电子图像或新的电子图像替换显示在单独计算机系统的显示屏上的电子图像。一旦较大的图像或新的图像被显示,HMD然后使用相对较大版本的电子图像或新的电子图像代替电子图像来确定HMD与单独计算机系统的显示屏之间的(1)位置距离,(2)角度对准,以及(3)相对取向。这可以通过将一组新的已知距离与从新的显示图像的拍摄到的新的HMD图像中获取的一组新的捕获视角距离进行比较来完成。

在一些实施例中,代替在显示屏上显示电子图像,图像可以是使用投影仪的投影图像。作为示例,可以指示投影仪在真实世界环境内将图像投影到墙上。另外地或替代地,图像可以通过任何数目的反射镜或其他反射表面被投影和反射。另外地或替代地,图像可以被打印在一张纸上并且被悬挂在墙壁或其他高度可见的区域上。因此,所公开的实施例能够确定所显示的图像(例如,显示在计算机屏幕上或由将图像投影到表面上的投影仪显示)相对于HMD的位置关系(包括深度、角度对准和取向),只要投影图像与投影仪之间的距离已知,以标识/计算所显示的各组标记点之间的预定距离。

应当理解,在将HMD校准到真实世界之后,HMD可以在虚拟真实世界环境内绘制虚拟锚对象,其中虚拟锚对象被绘制以反映HMD与单独计算机系统的显示屏之间的位置差异、HMD与单独计算机系统的显示屏之间的角度对准、以及HMD与单独计算机系统的显示屏之间的相对取向。该虚拟锚对象可以包括上述标记或显示图像之一。

一些实施例执行跨多个不同时间段的多个校准。也就是说,这些实施例能够通过周期性地使显示电子图像被重新显示在显示屏上来周期性地重新校准。一旦被显示,则实施例将捕获显示电子图像的一个或多个经更新的HMD图像。应当理解,可以捕获任何数目的HMD图像。例如,一些实施例仅捕获单个图像,而其他实施例执行突发捕获,其中获取多个图像。如果使用突发技术,则实施例能够分析每个突发图像以标识图像质量最高的图像(例如,相机失真或其他失真最少的图像)。

在一些实施例中,还应当理解,代替在显示屏上显示图像以用于校准,可以使用已知尺寸的实际真实世界对象来帮助校准HMD相对于真实世界的相对位置。

例如,可以使用沙发、桌子、架子、框架、电灯开关、门框或其他家具或固定装置,其中尺寸是已知的或被获取的(例如,从第三方数据库或在线自动查询)。在线/第三方数据库还可以提供各种对象的图像定义,以促进其标识和其标记的标识(例如,与动作1620、1625相关联)。在这种情况下,对象本身以及这些对象的已知特征/属性可以用于执行本文中描述的校准方法。例如,通过将沙发的已知高度和长度尺寸与从HMD观察到的沙发的感知尺寸进行比较,可以确定HMD相对于沙发的相对位置(例如,距离、高度、取向、角度对准等)。然后,如果无法确定,则HMD可以触发对其他对象的选择,并且该过程可以根据需要被重复。一旦进行了校准,在某些情况下,该同一对象将用于在VR中生成对应的虚拟对象锚点。

返回图12,在大多数情况下,用户将在真实世界环境内四处移动。这样,可以根据HMD的任何检测到的移动来连续或周期性地更新位置关系信息(即,描述HMD与显示屏之间的关系的信息)(动作1220)。通过这些更新,还可以绘制被绘制在VR环境内的虚拟锚对象,并且可以连续地或周期性地更新该虚拟锚对象,以反映检测到的HMD的移动(动作1225)。

在一些实施例中,代替使用静态图像作为已知图像,可以将缓存视频记录用作已知图像。在这种情况下,通过将在单独计算机系统的显示屏上播放的缓存视频记录与由HMD生成的对应缓存视频进行比较来完成生成描述HMD与显示屏之间的位置关系的信息的过程。在某些情况下,缓存视频可以是用户在VR环境内正在观看的内容的记录。在其他情况下,缓存视频可以与用户所看到的内容完全不同。

图17示出了真实世界环境1700的示例场景,其中HMD正在扫描1705显示缓存视频1710的智能电视的显示屏。通过用其相机记录缓存视频1710,HMD可以将记录的缓存视频1710的内容与HMD上的对应视频进行比较以确定其相对于智能电视的位置关系。

在很多真实世界环境中,可以存在很多合适或更确切地说更可选择的以用作锚对象的潜在/候选真实世界对象。因此,在一些实施例中,选择多个真实世界对象作为锚对象。这样的场景在图18A中示出,该场景中显示有VR环境1800以及多个锚对象(例如,与图17的智能电视相对应的锚点1805A和与图17中的桌子相对应,但是被可视化为星形的锚点1805B)。在此,两个锚对象1805A和1805B由于在图17的真实世界环境1700中彼此靠近而被显示为彼此相对靠近。在使用多个锚对象的一些实施例中,可以有目的地选择彼此远离的这些锚对象。作为示例,可以选择锚对象使得一次在特定FOV内仅显示一个锚对象。随着FOV的变化使得一个虚拟锚对象离开FOV,另一虚拟锚对象可以进入FOV。在这点上,锚对象可以在真实世界环境内间隔开并且可以选择性地用于确保至少一个(尽管可能更多)虚拟锚对象始终被显示在HMD的FOV中。

这样的场景在图18B中示出,在该场景中提供有多个真实世界对象以用作锚对象。为了说明,视角1810A示出了包括标记1815A和另一标记1820A的环境。尽管在图18B中示出了校准标记,但是应当理解,可以改为使用其他图像、标记或对象。

在视角1810A中,用户更完全地面向标记1815A。因此,标记1815A将用作用户的VR环境内的锚对象(或校准对象)。但是,稍后用户已经移动位置,如视角1810B所示。视角1810B示出了与视角1810A中的标记1815A相对应的标记1815B和与视角1810A中的标记1820A相对应的标记1820B。如视角1810B所示,用户现在已经将他的注意力更加完全地集中在标记1820B上。由于注意力/位置的这种变化,新的锚对象可以被显示在用户的VR环境内,其中新的锚对象对应于标记1820B,而不是标记1815B。根据该描述,应当理解,可以使用任何数目的不同锚对象。此外,应当理解,在一些实施例中,可以以一种方式选择和显示新的锚对象,使得至少一个锚对象总是被显示在用户的当前视场内。也就是说,随着用户四处走动使得其视场改变,并且随着现有锚对象离开用户的当前视场,可以选择新的锚对象并且使其进入用户的视场。以这种方式,可以始终向用户提供锚对象以帮助用户在与VR环境交互时导航真实世界环境。这样的特征对于避免障碍物特别有利。

在一些实施例中,真实世界锚点与预扫描环境结合使用。“预扫描环境”是指HMD能够使用其深度相机对环境进行初始扫描以生成该环境的空间映射。一旦环境通常经由映射操作变为已知,则实施例可以以本文中描述的方式利用锚点。也就是说,一旦知道房间的映射并且一旦知道锚对象的位置,实施例就能够在虚拟现实体验期间使用锚对象和/或空间映射中的一个或两个来避开障碍物(即,在用户对真实世界的视野被完全切断的情况下)。

还应当理解,所公开的实施例能够维护详细描述当前使用的和先前使用的锚对象的信息的数据库或数据存储库。该数据库可以维护与这些锚对象的物理位置有关的信息(例如,GPS坐标、相对于其他检测到的对象的位置关系等)。另外,数据库可以包括这些锚对象的优先级度量或偏好度量。作为示例,一些锚对象的质量可以高于其他锚对象,其中质量可以基于以下各项中的任一个或其组合:锚对象的稳定性(例如,其移动的可能性)、锚对象的可见性(例如,是否仅当用户位于特定位置时对象才可见)、锚对象的反射率或可检测性(例如,HMD的相机是否可以轻松检测到锚对象)、锚对象的通信能力(例如,锚对象是否为电子设备,使得HMD能够控制其输出)等。在这点上,数据库可以存储和维护锚对象的任何类型或数量的信息。通过存储该信息,实施例将能够快速参考该信息,从而加快VR环境的配置。另外,当多个锚对象可用于选择时,一些实施例可以基于上述优先级等级对一个锚对象进行比较、对比或以其他方式加权。在这种情况下,实施例可以选择优先级最高的锚对象,并且在VR环境内仅显示单个锚对象。然而,在其他实施例中,可以选择多个锚对象(例如,排名最高的两个锚对象、或排名最高的三个锚对象等)。

应当理解,任何真实世界对象都可以用作锚对象。例如,参考图18B,代替标记1820A和/或1820B,电视框或相框本身可以用作锚对象。在某些情况下,可以使用电视或相框的物理尺寸,诸如例如电视或相框的边界区域之间的间距,或者甚至是其在墙上的放置位置。在这点上,任何物理属性或尺寸都可以用作锚对象,或者任何显示图像都可以用作锚对象。

因此,所公开的实施例能够选择真实世界锚对象,然后在VR环境内绘制对应虚拟锚对象。通过这样做,即使当用户不能实际看到真实世界环境时,实施例也能够帮助用户保持对他/她的真实世界环境的认识。

图19示出了用于使用显示在显示屏上的电子图像来校准HMD的相关实施例。特别地,图19示出了用于使HMD通过利用被绘制在单独计算机系统的显示屏上的显示电子图像来对HMD的相机系统执行内部校准(例如,确定相机的光心和焦距)和/或外部校准(例如,确定相机相对于三维环境的相对位置)的示例性方法1900的流程图,该相机系统包括一个或多个相机。

方法1900最初包括使用HMD的一个或多个相机捕获显示电子图像的一系列图像的动作(1905)。该显示电子图像是包括具有已知的特性(例如,距离1405、1410、1415、1420、线宽等)的标记(例如,图14的标记1400A、1400B、1400C、1400D、1400E或1400F)的已知图像。作为示例,已知的特性可以包括已知标记形状(例如,矩形、正方形、圆形或任何其他形状)和多个已编码或未编码标记。编码标记的示例可以是QR码、条形码或任何其他类型的编码图像。未编码标记可以是没有特定含义的标记。该一系列图像中的每个图像相对于该一系列图像中的另一图像以不同角度或距离捕获显示电子图像。

在一些实施例中,标记的已知的特性包括已知图像中的任何一对点之间的已知距离。在一些实施例中,已知的特性包括已知线条粗细、线条粗体、线条宽度、和/或线条高度。在一些实施例中,使用与单独计算机系统的显示屏的模型的尺寸相关联的特性来计算图像中的任何一对点之间的距离。也就是说,不同模型可以以不同方式来可视化显示电子图像。通过预先了解模型,HMD可以执行补偿或其他修正操作,以更好地确定显示电子图像的可视化特性。

方法1900还包括动作1910,其中从该系列图像内标识标记的二维图像位置。例如,参考图16A、16B和16C,视角1600A可以由该系列中的一个图像捕获,视角1600B可以由该系列中的另一图像捕获,视角1600C可以由该系列中的另一图像捕获。如图所示,这些图像中的每个以不同角度捕获所显示的标记。使用这些图像,HMD能够确定标记的二维位置(例如,通过标识距离1605A、1605B和1605C),以便确定位置关系。

随后,方法1900包括动作1915,其中HMD使用二维图像位置和标记相对于彼此和/或相对于环境/HMD的所确定的三维位置来执行束调整,以确定HMD与单独显示屏之间的位置距离和角度对准。该束调整可以用于确定内部和/或外部相机参数。作为介绍,相机参数通常包括外部、内部和/或失真系数。为了正确确定/估计相机参数,具有对象的三维点(例如,显示电子图像)和该对象的对应二维图像点是有益的。在某些实施例中,内部参数表示相机的光心和焦距。内部参数可以另外包括偏斜系数。外部参数表示相机相对于三维环境的位置。此外,这些外部参数包括相机的图像平面的平移和旋转。通过确定这些参数,实施例能够补偿不同径向变形,诸如但不限于负的径向变形(例如,枕形效应)和正的径向变形(例如,桶效应)。其他补偿可以包括对切向失真的补偿,其中相机镜头不平行于图像平面。

在一个示例中,当HMD仅包括单个相机时,束调整的结果包括:(1)内部相机校准参数和(2)显示屏的三维位置。在另一示例中,当HMD包括多个相机时,束调整的结果包括:(1)多个相机中包括的每个相机的内部校准参数,(2)外部校准参数,多个相机中包括的每个相机相对于彼此的位置和取向,以及(3)显示屏相对于三维坐标系的特定位置和特定取向。

在一些实施例中,还可以周期性地或响应于确定HMD的原始或先前校准已经漂移而执行重新校准过程。该重新校准过程可以通过重做以上任何过程来执行。此外,为了发起重新校准过程,可以引导用户的移动,使得HMD足够靠近单独计算机系统的显示屏。在某些情况下,可以通过在HMD的显示器上显示指令和/或通过用HMD的一个或多个扬声器投射音频指令来引导用户移动。

现在将注意力转向图20,图20示出了可以用于促进本文中描述的操作的示例计算机系统2000。特别地,该计算机系统2000可以采用先前描述的HMD的形式。

实际上,计算机系统2000可以采用各种不同形式。例如,在图20中,计算机系统2000可以体现为平板电脑2000A、台式机2000B或HMD 2000C。省略号2000D示出了计算机系统2000可以以任何形式体现。实际上,计算机系统2000也可以是分布式系统,该分布式系统包括与计算机系统2000、膝上型计算机、移动电话、服务器、数据中心和/或任何其他计算机系统通信的一个或多个连接的计算组件/设备。省略号2000D还指示其他系统子组件可以被包括在计算机系统2000中或与计算机系统2000附接,例如包括被配置为检测传感器数据(诸如用户属性)的传感器(例如,心率传感器)以及类似相机的传感器和其他传感器,这些传感器被配置为检测诸如环境条件和位置/定位等传感器数据(例如,时钟、压力传感器、温度传感器、陀螺仪、加速度计等),所有这些传感器数据可以包括在所公开的实施例的应用期间使用的不同类型的信息。

在其最基本配置中,计算机系统2000包括各种不同组件。例如,图20示出了计算机系统2000包括至少一个处理器2005(又称为“硬件处理单元”)、相机系统2010、混合现实(MNR)引擎2015(例如,用于生成VR环境)、和存储装置2020。

计算机系统2000还可以包括深度引擎,该深度引擎包括用于扫描和生成环境的空间映射的任何类型的3D感测硬件。例如,深度引擎可以包括任何数目的飞行时间相机、立体相机(例如,一对立体相机)和/或一个或多个深度相机。使用这些相机,深度引擎能够捕获环境的图像并且生成该环境的3D表示。因此,深度引擎包括生成空间映射所必需的任何硬件和/或软件组件(其可以包括深度图、3D点/点云、和/或3D网格)。如前所述,该空间映射可以在真实世界环境中对对象进行分割和特征化时使用。

存储装置2020被示出为包括可执行代码/指令2025。存储装置2020可以是物理系统存储器,其可以是易失性的、非易失性的或这两者的某种组合。术语“存储器”在本文中还可以用于指代非易失性大容量存储装置,诸如物理存储介质。如果计算机系统2000是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如本文中使用的,术语“可执行模块”、“可执行组件”或甚至“组件”可以指代可以在计算机系统2000上执行的软件对象、例程或方法。本文中描述的不同的组件、模块、引擎和服务可以被实现为在计算机系统2000上执行的对象或处理器(例如,作为单独线程)。

所公开的实施例可以包括或利用专用或通用计算机,该计算机包括计算机硬件,诸如例如一个或多个处理器(诸如处理器2005)和系统存储器(诸如存储装置2020),如在下面更详细地讨论的。实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可以由通用或专用计算机系统访问的任何可用介质。以数据形式存储计算机可执行指令的计算机可读介质是物理计算机存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,当前实施例可以包括至少两种明显不同种类的计算机可读介质:计算机存储介质和传输介质。

计算机存储介质是硬件存储设备,诸如RAM、ROM、EEPROM、CD-ROM、基于RAM、闪存、相变存储器(PCM)或其他类型的存储器的固态驱动器(SSD)、或其他光盘存储、磁盘存储或其他磁性存储设备、或者可以用于以计算机可执行指令、数据或数据结构的形式存储期望程序代码并且可以由通用或专用计算机访问的任何其他介质。

计算机系统2000还可以(经由有线或无线连接)连接到外部传感器(例如,一个或多个远程相机、加速度计、陀螺仪、声传感器、磁力计等)。此外,计算机系统2000还可以通过一个或多个有线或无线网络2030连接到被配置为执行关于计算机系统2000而描述的任何处理的远程/单独计算机系统2035。另外,单独计算机系统2035可以是先前讨论的单独计算机系统(例如,智能电视、移动电话、游戏机等)。

在使用期间,计算机系统2000的用户能够通过显示屏来感知信息(例如,MR环境(包括VR或AR)),该显示屏被包括在计算机系统2000的输入/输出(“I/O”)中并且是用户可见的。I/O接口和具有I/O的传感器还包括手势检测设备、眼动仪和/或其他移动检测组件(例如,相机、陀螺仪、加速度计、磁力计、声学传感器、全球定位系统(“GPS”)等),该组件能够检测一个或多个真实世界对象的定位和移动,诸如用户的手、手写笔、和/或用户在沉浸在VR环境中时可以与之交互的任何其他对象。

图形绘制引擎还可以被配置为与处理器2005一起在VR环境内绘制一个或多个虚拟对象。结果,当用户在虚拟场景内交互时,虚拟对象响应于用户的移动和/或响应于用户输入而准确地移动。

类似于图20所示的网络2030的“网络”被定义为能够在计算机系统、模块和/或其他电子设备之间传输电子数据的一个或多个数据链路和/或数据交换机。当通过网络(硬连线、无线或硬连线和无线的组合)将信息传输或提供给计算机时,计算机将连接正确地视为传输介质。计算机系统2000将包括用于与网络2030通信的一个或多个通信信道。传输介质包括可以用于以计算机可执行指令的形式或以数据结构的形式来承载数据或期望程序代码装置的网络。此外,这些计算机可执行指令可以由通用或专用计算机访问。上述各项的组合也应当被包括在计算机可读介质的范围内。

在到达各种计算机系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以从传输介质自动传输到计算机存储介质(反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以缓存在网络接口模块(例如,网络接口卡或“NIC”)内的RAM中并且然后最终传输到计算机系统RAM和/或到计算机系统处的不太易失性的计算机存储介质。因此,应当理解,计算机存储介质可以被包括在也(或者甚至主要地)利用传输介质的计算机系统组件中。

计算机可执行(或计算机可解释)指令包括例如使通用计算机、专用计算机或专用处理设备执行特定功能或功能组的指令。计算机可执行指令可以是例如二进制、中间格式指令(诸如汇编语言)或甚至源代码。尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求书中定义的主题不必限于上述的特征或动作。而是,所描述的特征和动作被公开作为实现权利要求的示例形式。

本领域技术人员将理解,实施例可以在具有很多类型的计算机系统配置的网络计算环境中实践,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器或可编程的消费类电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等。实施例也可以在分布式系统环境中实践,在分布式系统环境中,通过网络链接的本地和远程计算机系统(通过硬连线数据链接、无线数据链接、或通过硬连线和无线数据链接的组合)每个执行任务(例如,云计算、云服务等)。在分布式系统环境中,程序模块可以位于本地和远程存储设备两者中。

另外地或替代地,本文中描述的功能可以至少部分由一个或多个硬件逻辑组件(例如,处理器2005)执行。例如而非限制,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、特定程序或应用特定集成电路(ASIC)、特定程序标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)、中央处理单元(CPU)和其他类型的可编程硬件。

在不脱离本发明的精神或特征的情况下,本发明可以以其他特定形式来体现。所描述的实施例在所有方面仅被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求书而不是前面的描述指示。落入权利要求的等同方案的含义和范围内的所有改变均应当被包含在其范围之内。

相关技术
  • 使用被绘制在外部显示器上的同步图像用于HMD相机校准的方法
  • 用于在使用时间编码的图案目标的情况下校准由至少一个传感器相机构成的图像采集传感器的方法
技术分类

06120112768969