将物理受限的虚拟环境模制和锚定到现实环境的制作方法

文档序号:11334067阅读:356来源:国知局
将物理受限的虚拟环境模制和锚定到现实环境的制造方法与工艺



背景技术:

增强现实(ar)设备和场景的许多应用构建增强内容,诸如2d叠加、文本、虚拟对象等。增强内容还可以被添加到其他类型的应用,诸如图像上的2d叠加和文本。换句话说,ar设备通常示出世界的、并具有一些信息的覆盖层的视图。与这些类型的ar场景相反,虚拟现实(vr)设备(诸如可穿戴耳机)通常向用户绘制完全虚拟的环境。在完全虚拟的环境中,现实中的对象与vr场景之间不存在连接。



技术实现要素:

提供以下发明内容以简化的形式来介绍概念的选择,这些概念将在下面的具体实施例中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于辅助确定所要求保护的主题的范围。此外,尽管本文可以注意或讨论其他技术的某些缺点,但是所要求保护的主题并不旨在限于可解决或处理这些其他技术的缺点的任何或所有缺点的实现。本发明内容的唯一目的是以简化的形式绘制所要求保护的主题的一些概念,作为下面给出的更详细描述的序言。

通常,如本文所述,“锚定环境生成器”提供了用于生成虚拟环境的各种技术,该虚拟环境被模制并锚定到围绕用户(或在相同现实环境中的多个用户)的现实环境中以产生物理受限的虚拟环境。注意,物理受限的虚拟环境在本文也有时被称为“触觉虚拟现实”(tvr)。tvr的这种模制和锚定确保了tvr的至少一部分匹配现实环境中的一个或多个表面和对象的触觉真相。在一些实施中,tvr从与基于主题的环境规范(例如,法国小酒馆、空间站、星舰、替代现实环境、外来世界、世界末日荒地、中世纪村庄、医院、城堡等)相一致的虚拟建造块被程序地构建。

锚定环境生成器经由诸如头戴式显示器等的显示装置绘制并显示物理受限的虚拟环境。现实环境中的现实对象和表面可能会在tvr中出现为不同的虚拟对象,并且可能具有不同的功能。因此,用户可以在现实世界的环境中移动(而不用看见现实环境),同时触摸tvr中的虚拟对象和与其进行交互,。换句话说,在各种实现中,tvr的视图代替围绕用户的现实环境的视图,同时仍然允许用户经由tvr与现实世界中的表面和对象物理交互。因此,物理受限的虚拟环境通过使得用户能够看到、触摸虚拟对象并与虚拟对象进行交互来改善用户交互和安全,虚拟对象围绕或相对于现实世界的静态和动态表面和对象(也包括现实人和动物)被模制和锚定。

在各种实现中,锚定环境生成器首先通过扫描(作为预处理步骤或实时地)现实环境来分类该环境中的表面和对象的几何形状以及可选的其他特征和功能,来生成特定位置或环境的环境信息。此外,锚定环境生成器接收虚拟建造块的主集合。除了与虚拟建造块有关的各种语义、几何形状和可选的客观限制之外,这些虚拟建造块中的每一个都包括多个特征。注意,在各种实现中,基于多个预定义或用户生成的主题,虚拟建造块的主集合可以被可选地选择。

给定环境信息,锚定环境生成器通过相对于场景特定的成本函数来迭代地优化虚拟建造块的自动选择的可变子集的布局,来过程地模制物理受限的虚拟环境。物理受限的虚拟环境的这种优化的布局的每次迭代与虚拟建造块子集的特征和限制以及现实环境的环境信息一致。此外,针对每次迭代,场景特定的成本函数从虚拟建造块的子集的特征和限制结合环境信息被自动地导出。

最后,锚定环境生成器经由显示设备绘制和显示物理受限的虚拟环境,使得第一物理受限的虚拟环境的至少一部分以匹配第一现实环境中的一个或多个表面和对象的触觉真相的方式锚定到第一现实环境。

鉴于上述发明内容,显而易见的是,本文所述的锚定环境生成器提供了用于生成物理受限的虚拟环境的各种技术,所述虚拟环境以至少部分匹配现实环境中的一个或多个表面和对象的触觉真相的方式被模制和锚定到围绕用户的现实环境中。除了刚描述的好处之外,锚定环境生成器的其他优点将从以下结合附图的下面的详细描述中变得显而易见。

附图说明

关于以下描述、所附权利要求以及附图,所要求保护的主题的具体特征、方面和优点将变得更好理解,其中:

图1提供了图示用于实现如本文所述的“锚定环境生成器”的各种实现的程序模块的示例性架构流程图。

图2图示了如本文所述的用于触觉虚拟环境(tvr)的生成的示例性两阶段过程。

图3图示了如本文所述的图示用于实现锚定环境生成器的各种实现的示例性方法的一般的系统流程图。

图5图示了如本文所述的图示用于实现锚定环境生成器的各种实现的示例性方法的一般的系统流程图。

图4图示了如本文所述的图示用于实现锚定环境生成器的各种实现的示例性方法的一般的系统流程图。

图6是描绘用于实现如本文所述的锚定环境生成器的各种实现的具有简化的计算和i/o能力的简化通用计算设备的一般系统图。

具体实施方式

在下面“锚定环境生成器”的各种实现的描述中,对附图进行参考,附图形成了描述的一部分,并且附图通过其中可以实践锚定环境生成器的示意具体实现来示出。应当理解,在不脱离本发明的范围的情况下,可以利用其他实现并且可以做出结构变化。

还应注意,为了清楚起见,具体术语被用来描述本文中描述的各种实现,并且不旨在将这些实现限于所选择的具体术语。此外,应当理解,每个特定术语包括以大致相似的方式操作以实现类似目的的所有其技术等同物。本文中对“一个实现”或“另一个实现”或“示例性实现”或“备选实现”或类似短语的引用意味着结合实现描述的特定特征、特定结构或特定特征可以被包括在锚定环境生成器的至少一个实现中。此外,整个说明书中这样的短语的出现不必都指代相同的实现,也不是与其他实现相互排斥的单独的或备选的实现。

还应当理解,本文中描述或图示的表示锚定环境生成器的一个或多个实现的任何处理流程的顺序并不固有地指示以所描述或图示的顺序来实现处理的任何要求,本文描述或图示的任何处理流程的任何这样的顺序也不意味着对锚定环境生成器的任何限制。

如本文所利用的术语“部件”、“系统”、“客户端”等旨在指代计算机相关实体,硬件、软件(例如,在执行中)、固件或其组合。例如,部件可以是在处理器上运行的进程、对象、可执行程序、程序、功能、库、子程序、计算机或软件和硬件的组合。通过说明的方式,在服务器上运行的应用程序和服务器两者都可以是部件。一个或多个部件可以驻留在进程内,并且部件可以被本地化在一个计算机上和/或被分布在两个或更多个计算机之间。术语“处理器”通常被理解为指代诸如计算机系统的处理单元的硬件部件。

此外,在某种程度,术语“包括”、“包括有”、“具有”、“包含”、其变体和其他类似词语被用在具体实施例或权利要求中,这些术语旨在以类似于术语“包括”作为开放转接词而不排除任何附加或其他元素的方式是包括性的。

1.0简介

通常,如本文所述的“锚定环境生成器”提供了用于程序地生成物理受限的虚拟环境的各种技术,该物理受限的虚拟环境以匹配现实环境中的一个或多个表面和对象的触觉真相的方式被模制和锚定到用户(或在相同现实环境中的多个用户)周围的现实环境中。注意,在多个用户的情况下,这些用户(或移动代替那些用户的虚拟化身或角色)的表示可以被绘制到tvr中,使得用户可以在tvr内观看并彼此交互。注意,物理受限的虚拟环境在本文也有时被称为“触觉虚拟现实”(tvr)。在一些实施中,tvr从与基于主题的环境规范(例如,法国小酒馆、空间站、星舰、替代的现实环境、外来世界、世界末日荒原、中世纪村庄、医院、城堡等)相一致的虚拟建造块来构建。

锚定环境生成器经由显示设备向用户绘制并绘制物理受限的虚拟环境。例如,在一些实现中,tvr经由显示设备(包括但不限于头戴式显示器、基于眼睛佩戴隐形眼镜的显示设备、智能眼镜等)被绘制给用户。在相关实现中,经由其他数字显示设备(包括但不限于平板计算机、智能电话或其他便携式屏幕或显示设备)提供进入tvr的可移动窗口。用于绘制tvr的任何显示设备可以在逐像素基础上被控制,以允许用户移动、观看tvr的不同部分和与tvr的不同部分物理地交互而不实际上看到潜在的现实环境(除非现实环境的某个部件或对象被故意地在绘制和显示在tvr中)的方式向用户绘制tvr。

此外,锚定环境生成器和用于绘制tvr的任何显示设备可以可选地感测或响应用户运动以及其他现实人、动物和对象的运动。这使得锚定环境生成器能够在与tvr交互的同时动态修改tvr的绘制内容以对应于现实环境变化和/或用户运动、位置和动作。用户运动和与tvr的交互也可以通过向锚定环境生成器提供实时输入的体穿戴或外部图像感测设备以及运动感测设备的任何期望组合的应用来确定。

由锚定环境生成器生成的物理受限的虚拟环境的许多优点中的一个是,现实环境中的现实对象和表面可能在tvr中作为不同的虚拟对象出现,并且可能具有与现实对象和表面不同的功能。因此,在触摸tvr中的虚拟对象和与tvr中的虚拟对象进行交互时,用户可以在现实环境中移动(而不实际看到现实环境)。换句话说,在各种实现中,tvr的视图替代用户周围的现实环境,同时仍然允许用户经由tvr中的虚拟表面和对象来物理上与现实世界中的表面和对象进行交互。

请注意,现实环境中的一些现实对象和表面可以选择性地由tvr隐藏,例如,具有门、窗口和悬挂图像的现实世界的墙壁可以出现为虚拟流动的河流或露天场地(或任何其他虚拟实体)或简单的空白空间。相反,包括经由多个感测装置中的任何一个从现实世界对象、动物和人的任何组合中捕获的现场或增强的视频和/或音频通过的数字表示可以在tvr中在任何期望时间被有意地绘制和绘制。例如:为了用户交互的目的,现实世界的振铃电话可能会在tvr的视图中消失;如果用户指示饥饿,则一盘真正的食物或真正的饮料可以是可见的用于由用户消费,而如果用户没有指示饥饿,则这样的食物可能出现为虚拟盆栽植物或其他虚拟对象,等等。此外,任何这样的现实世界的对象或实体也可以在tvr中绘制和显示为可提供对应的现实世界对象的一些或全部功能的兼容的虚拟对象。因此,即使在完全沉浸在tvr中的情况下,用户也可以继续与现实环境的一个或多个元素进行交互。

还要注意,tvr中的虚拟对象不必是到现实世界的类似物或其他现实世界对象的范围的一一对应的映射。例如,示出动态空间战斗或爆炸星的外部空间的虚拟窗口可以经由物理受限的虚拟环境被显示为存在于现实环境中的实体墙(或实体地板或天花板)的边界内。类似地,现实世界的房间(或世界任何地方的任何其他现实世界的空间)的现实墙壁或这样的墙壁的一部分(或正在被显示的代替tvr中的那些墙壁的任何事物)的给定足够成像,可以在tvr内部被虚拟地移除或做成透明,以将虚拟实时视图或窗口提供到来自tvr内部的相邻或远程现实世界空间。

在将虚拟对象部分映射到现实世界对象的范围的另一个简单示例中,虚拟剑的柄可以被显示在tvr中,使得其被模制并锚定到现实环境中的用户的现实手机(或其他现实对象)的位置。以这种方式,当用户拿起将作为虚拟剑的柄绘制给用户的手机时,当用户移动手机时,整个虚拟剑将在绘制给用户的tvr中移动。在这种情况下,代替手机绘制的虚拟剑的柄的至少一部分将存在触觉真相,但对于包括剑的剑刃的虚拟剑的其余部分将不存在触觉真相。注意,在各种实现中,蜂窝电话(或具有这种传感器的任何其他设备)中的运动传感器、成像设备等可以由锚定环境生成器使用任何现有的有线或无线通信协议来访问以跟踪和响应对应的虚拟剑(或其他虚拟对象)的运动。

在另一个简单的示例中,在现实环境中的老式扶手椅(或绘制座位表面的一些其他物理对象)可以在tvr中作为华丽的宝座或作为坠落的圆木上的座位表面显示给用户。这使得用户能够物理上触摸虚拟的华丽宝座、坐在虚拟的华丽宝座中、移动虚拟的华丽宝座、将对象放置在虚拟的华丽宝座上等,而不需要实际看到对应的现实世界的物理扶手椅或座位表面。类似地,现有的现实空间、墙壁、表面、建筑物、室外空间和景观等的虚拟改造可以在具有虚拟对象的不同颜色、纹理、图案、组合、尺度和放置等的tvr中被绘制。注意,术语“可用性”在本文中可以用于指这些概念。换句话说,潜在的现实世界对象的功能特征可以被并入虚拟对象用于由用户使用,即使那些现实世界对象对于用户来说是不可见的。

因此,物理受限的虚拟环境的绘制通过允许用户在虚拟环境内移动和与虚拟环境物理地交互,改善虚拟环境中的用户体验和交互性能,该虚拟环境被模制和锚定到现实世界的环境中而不实际向用户显示现实环境。此外,通过将tvr模制和锚定到现实世界的环境中,并通过在用户沉浸在tvr中时提供用于与现实对象交互的各种机制,来改善现实环境中用户安全和其他人和对象的安全。

此外,在各种实现中,tvr是3d现实世界空间内的3d虚拟环境。因此,在这种实现中,随着用户(或多个用户)在对应的现实环境中环顾或移动,tvr保持一致(从不同的视角和方面)。由于这样的用户安全和用户交互都针对单个用户和在同一现实环境中与tvr交互的多个用户进行了改进。

例如,如上所述,由锚定环境生成器构建的tvr以至少部分地匹配现实环境中的一个或多个表面和对象的触觉真相性的方式被模制并锚定到现实环境中。因此,在没有实际看到现实世界的环境的情况下,用户可以通过简单地在tvr中移动并与tvr中的虚拟表面和对象进行交互来避免与现实世界的人、动物、表面和对象意外接触。换句话说,在各种实现中,锚定环境生成器在虚拟世界中向移动用户增加安全和安全性,而不需要幻想破坏性措施,如安全标记和现实世界的结构。然而,在各种实现中,现实对象或安全标记等的虚拟绘制可以被静态地或动态地绘制到tvr中,以突出显示现实环境中要使用的现实世界对象或要避免的现实世界对象或障碍物。

在各种实现中,tvr的构建的一般过程包括但不限于以下步骤:

1.经由自动场景扫描和场景处理技术来确定环境信息,以便提供用户周围的现实环境的上下文和语义的理解。注意,自动场景扫描和场景处理可以作为预处理步骤或作为实时步骤、或者作为预处理和实时操作的一些组合来执行;

2.鉴于用户周围的现实环境的上下文和语义理解,与虚拟对象相关联的限制的优化。这些限制可以包括但不限于:

a.几何形状限制与现实环境和将被绘制到对应的tvr中的虚拟对象有关。请注意,这些几何形状限制的使用的目的中的一个是确保环境的基础几何形状可以被用于向tvr的一个或多个虚拟元素提供触觉真值;

b.语义限制与虚拟对象功能和现实环境与那些虚拟对象之间的对应上下文关系有关、以及也与两个或多个虚拟对象之间的功能和/或上下文关系有关;以及

c.可选的客观限制与tvr相关联的(例如在tvr中杀死虚拟怪物之后,在城堡中定位虚拟宝藏)目的或意图有关。

3.将tvr(具有可选的固定或定向音频内容)的静态和/或动态构建和绘制或绘制执行到显示设备中(根据基于限制的优化的结果);

4.当现实环境中的任何事物移动或以其他方式更改以向tvr提供实时更新时,通过重复步骤1、2和3中的任意一个或全部,响应现实环境中的动态对象、人、动物等。换句话说,物理受限的虚拟环境可能会以与优化的限制一致的方式而随着时间变化,其还可以鉴于动态对象或对环境的变化而随时间变化。

5.实时用户与物理受限的虚拟环境交互。这可能会导致现实环境或现实环境中的对象、人或动物或tvr中的虚拟内容的变化。然后,这些变化可能导致重复步骤1至4中的任何一个或全部以向tvr提供实时更新。

1.1系统概述:

如上所述,“锚定环境生成器”提供了用于生成物理受限的虚拟环境的各种技术,该物理授限虚拟环境以匹配现实环境内的一个或多个表面和对象的触觉真相的方式被模制和锚定到用户周围的现实环境。上面总结的过程由图1的一般系统图示。具体地,图1的系统图示了用于实现锚定环境生成器的各种实现的程序模块之间的相互关系,如本文所述的。此外,虽然图1的系统图示了锚定环境生成器的各种实现的高级视图,但是图1并不旨在提供如在整个本文件中所描述的锚定环境生成器的每个可能实现的详尽或完整的说明。

另外,应当注意,可以由图1中的用虚线或短划线表示的任何框和框之间的互连表示本文所述的锚定环境生成器的备选实现,并且如下所述这些备选实现中的任何一个或全部可以与整个本文件中所描述的其他备选实现组合使用。

通常,如图1所图示的,由锚定环境生成器启用的处理的各种实现通过应用环境扫描模块100通过使用各种传感器(例如,2d相机、3d深度相机、激光扫描设备或其他成像和/或测距传感器)扫描现实环境来生成环境信息以开始操作。然后所得到的传感器信息被应用于分类该环境中的表面和对象的几何形状。

然后虚拟建造块输入模块110接收虚拟建造块120的主集合。除了语义和几何形状限制和可选的客观限制之外,这些虚拟建造块120中的每一个包括各种特征(例如,3d模型、纹理、材料等)。在各种实现中,该虚拟建造块120的集合可选地被限制到对应于可选地指定的主题的虚拟对象。这些主题的示例包括但不限于,例如法国小酒馆、太空站、星舰、替代现实环境、外星人世界、世界末日荒地、中世纪村庄、医院、城堡、战场、体育舞台等。换句话说,该虚拟建造块120集合由3d对象、纹理、材料、颜色和确保这些对象相对于tvr的内部一致性的规则集合组成。例如,这样的规则可以包括在房间中存在不超过一个虚拟气锁、不多于两个到外部空间的虚拟窗口等。

在各种实现中,虚拟对象的一些限制和特征可以经由用户界面模块140来提供,该用户界面模块140使得用户或设计者能够指定或选择可选的用户提供的限制、主题、虚拟对象之间的关系、虚拟对象的参数或特征等的任意组合。换句话说,在各种实现中,用户界面模块140使用户或设计者能够定义或选择主题、虚拟对象、与这些对象相关联的参数、限定对象、参数和现实环境等的任何组合之间的关系的限制。

然后,程序模制模块130通过迭代地优化虚拟建造块的自动选择的子集的布局来程序地模制物理受限的虚拟环境以用于相对于场景特定的成本函数来构建物理受限的虚拟环境。物理受限的虚拟环境的虚拟建造块的优化的布局的每次迭代与虚拟建造块的特征和限制以及现实环境的环境信息一致。

成本函数导出模块150被应用于导出由过程模制模块130执行的每次优化迭代的上述成本函数。该成本函数是从虚拟建造块的子集的特征和限制结合环境信息导出的。

然后,tvr显示模块160经由显示设备来绘制并显示物理受限的虚拟环境(即,触觉虚拟现实(tvr)),使得物理受限的虚拟环境的至少一部分以至少部分地匹配现实环境中的一个或多个表面和对象的触觉真相的方式被锚定到现实环境。最后,在各种实现中,动态适配模块170可以响应于用户与tvr的交互和/或响应于现实环境中的变化而可选地更新tvr。

2.0锚定环境生成器的操作细节:

上述程序模块被用于实例化锚定环境生成器的各种实现。如上所总结的,锚定环境生成器提供了用于生成物理受限的虚拟环境的各种技术,该物理受限的虚拟环境以匹配现实环境中的一个或多个表面和对象的触觉真相的方式被模制和锚定到用户周围的现实环境中。以下部分提供了锚定环境生成器的各种实现的操作的详细讨论,以及用于实现关于图1的第1节中描述的程序模块的示例性方法的讨论。具体地,以下部分提供了锚定环境生成器的各种实现的示例和操作细节,包括:

●锚定环境生成器的操作概述;

●在tvr构建中使用的示例性限制;

●锚定程序级生成(aplg)过程;

●用于识别tvr解决方案的并行性应用;

●tvr构建的示例性算法:

●示例性使用场景。

2.1操作概述:

如上所述,本文描述的基于锚定环境生成器的过程提供了用于生成物理受限的虚拟环境的各种技术,该物理受限的虚拟环境以匹配现实环境中的一个或多个表面和对象的触觉真相的方式被模制和锚定到用户周围的现实环境。请注意,与tvr相关的现实环境不必需是一个房间,但可以是整个楼层、一套房间、整个建筑、室外空间、任何这种空间的组合等。

在各种实现中,锚定环境生成器明确地应用由设计者或用户提供的各种规则和关系,用于由锚定环境生成器使用。此外,在各种实现中,锚定环境生成器应用各种机器学习技术以从设计者提供的有限数量的示例中学习或提取隐式设计规则(例如,从其中锚定环境生成器学习如何模制新的飞船的若干飞船设计)。设计师或用户提供的规则和机器学习规则的任何组合可以被组合用于构建tvr。在任一情况下,在各种实现中,锚定环境生成器将这样的设计规则应用于虚拟建造块的主集合,以在语义限制下执行tvr级别、房间、建筑物、室外空间等的自动程序生成,以至少部分地匹配现实世界的几何形状和功能,以及可选的设计师美学(或客观限制)或用户选择或创建的主题。

在各种实现中,得到的物理受限的虚拟环境还可以包括来自现实世界、被绘制或以其他方式并入tvr的多个项目。例如,物理休息处(例如,特定的现实世界的椅子或座位表面)可以当用户访问时使得锚定环境生成器自动暂停与tvr相关联的动态内容(例如,在基于目标的动态tvr中激活“休息时段”)。类似地,例如,当用户沉浸在tvr中时,可以访问或使用诸如蜂窝电话的现实对象。然而,如上所述,由于tvr的物理受限的虚拟环境替代用户的现实环境以构建充当现实与无限虚拟环境之间的网关的身临其境的体验,所以将这样的现实对象被绘制到tvr中。

在各种实现中,如图2所示,锚定环境生成器作为两阶段过程进行操作。这个两部分过程的第一阶段是场景理解阶段220,其操作以执行自动的现实环境布局推理和对象检测,以从现实环境原始数据(210)导出任意现实环境的环境信息230,现实环境原始数据是从包括但不限于2d相机、3d深度相机、激光扫描设备或其他成像和/或测距传感器的各种传感器(200)接收的。这个两部分过程的第二阶段是锚定的程序级生成(aplg)阶段240,其基于从相对于环境信息(230)的虚拟建造块(120)导出的虚拟对象的语义理解,通常操作以构建物理受限的虚拟环境(即,前述的触觉虚拟现实(tvr))。

在各种实现中,场景理解阶段的布局推理部分应用各种成像和场景重建技术来构建现实环境的粗略3d模型(例如,单房间、诸如家的多房间、完整的办公室楼层或多层楼、室外空间等)。这个3d模型代表了现实环境的课程蓝图,它提供了在楼层的层级、墙壁、天花板、诸如门和窗的开口、分隔屋等处的现实环境的几何形状。有利的是,锚定环境生成器能够用噪声数据进行操作,例如,头戴式或手持式相机可被用于快速扫描现实环境(包括实时扫描)以构建现实环境的粗糙的3d模型。

此外,在各种实现中,确定场景布局也是一种推断,即可以使用与用于tvr构建的相同优化引擎并且仅依赖于场景(而不管所使用的tvr)的限制优化过程。在这种情况下,限制考虑了墙壁(和地板和天花板)的总数,并覆盖了整个观察到的现实世界场景或环境(例如整个房间)。此外,在该优化过程中,导致并行壁和以优选角度(例如,90度角)的壁的建模解决方案的被奖励或给予增加的概率或权重,而彼此在意想不到的或异常的角度的壁被惩罚或给予降低的概率或权重。

场景理解阶段的对象检测部分通常应用各种对象识别技术和过程,以从一个或多个对象定义的大集合中检测现实环境中的现实对象的位置和实例,并且以确定相对于现实环境的这些对象的语义理解。对象检测可以基于对象的全部或部分视图。例如,从用户的角度来看,或者用于处理现实环境的成像或扫描设备的角度来看,在与已经被标识为桌子的另一个现实对象相邻时,只有椅子的后部(例如,大致矩形的形状)可以是可见的。这种近似矩形形状的上下文评估可能足以将对象标识为椅子。此外,即使检测到的对象(例如,椅子)不同于数据库中的椅子,但足够接近(例如,该对象是椅子的概率为85%),那么构建该对象可以被标记为椅子用于构建tvr的目的,。

关于确定对象的语义理解,锚定环境生成器评估相对于现实环境的被识别的对象以及可选的相对于其他被标识的现实世界对象,以确定这些对象的可用性或特征。例如,在被标识为椅子的对象的情况下,这些语义理解可以包括信息或可用性,诸如椅子允许坐(或将对象放置在座位上)、椅子不太可能被放置在天花板上或者在沙发上等。然后,这些信息中的一些可以用于向虚拟对象分配可用性(例如,用户经由潜在的现实世界的座位表面坐在虚拟椅子中)。

在各种实现中,由两阶段过程的aplg部分使用的优化引擎应用从现实环境导出的规则和限制的集合,以及由设计者提供或由用户选择的可选的客观限制和设计标准,将来自虚拟建造块的主集合的可用虚拟对象的子集模制和锚定到现实环境以构建tvr。如本文进一步详细讨论的,各种技术,包括但不限于标记的马可夫点过程(mmpp),被应用于实现用于构建tvr的aplg过程。得到的物理受限的虚拟环境保持至少部分地将tvr匹配到对应现实环境中的现实对象和表面的触觉真相。此外,在各种实现中,当用户在tvr内移动并与tvr交互时,aplg过程能够实现对tvr的实时更新,以为用户提供动态和沉浸式的虚拟体验。

2.2限制:

如上所述,tvr基于相对于各种限制和环境信息的tvr内的虚拟对象的配置的限制优化来构建。为此目的可以考虑任何数量或类型的限制。然而,为了解释的目的,考虑了三种一般类型的设计限制,包括几何形状限制、语义限制和客观限制。这些限制还可以可选地包括由设计者提供的设计限制,例如特定虚拟对象的使用、与这些对象相关联的特定行为规则、那些虚拟对象的一般或特定外观等。

2.2.1几何形状限制:

通常,几何形状限制确保当用户伸出手触摸tvr中的某些东西(现实或虚拟)时,对象实际上在那里被触摸(例如,tvr中的虚拟对象的x,y,z坐标至少部分地匹配在现实环境中的现实对象或表面的相同x,y,z坐标)。但是,虚拟对象可能与现实对象不一样。例如,虚拟的箱子可以被绘制在现实世界桌子的地方,使得当她伸出手并且实际上触摸现实的桌子的顶部时,其对用户看起来并且感觉她到正在触摸虚拟箱子的顶部。换句话说,在几何形状限制的情况下,不论一些虚拟对象看起来像什么,只要当用户伸出手来触摸它时,就在那儿存在一些现实世界对象或表面以提供触觉反馈。

在各种实现中,可以通过使优化引擎考虑包括但不限于“实际覆盖”级别和“制造比”的可变参数或权重来进一步调整锚定环境生成器的各种触觉反馈特征。这些可变参数中的两者可以由用户或开发人员设置或修改,并且可以由锚定环境生成器响应于对可能是对用户可访问的或不可访问的现实世界场景的一个或多个区域的自动确定而自动被定义。

一般来说,实际覆盖参数定义由虚拟对象覆盖的现实场景的近似百分比。100%的实际覆盖水平意味着由锚定环境生成器标识的所有现实世界物理项都被虚拟地表示为那些现实世界物理项的虚拟重复、表示为这些现实世界物理项的更改的虚拟版本(例如,颜色、纹理等)、或者作为覆盖现实世界对象的完全虚拟对象,如本文所述。一般来说,100%的实际覆盖水平易于增加用户的安全性,因为用户不太可能与由tvr隐藏的一些现实世界对象做出意外接触。

然而,关于tvr的优化,100%的实际覆盖水平的使用可以被限制在某些情况下(例如,房间大小、对象数量、对象放置等)。因此,在各种实现中,不同的现实覆盖权重可以被分配给场景的不同部分。例如,根据实际的天花板高度,用户可能无法(或不大可能)物理上达到天花板。在这种情况下,天花板的实际覆盖权重可以被降低,潜在地为零。换句话说,在各种实现中,场景的实际覆盖权重或级别可以取决于用户可能达到或不可能达到的区域,相对于不太可能接触的区域,可能接触的区域的现实覆盖被增加。

通常,制造比提供了添加到场景中的完全虚拟材料的量的度量。应当理解的是,与具有某些触觉真相的虚拟对象相比,这种完全虚拟的材料表示用户不能物理上触摸的完全虚拟的对象(或字符),尽管在某些实现中虚拟交互仍然被启用(例如,与虚拟角色对话、杀死虚拟怪物等)。类似于实际覆盖权重,制造比例也可以取决于用户可能达到或不可能达到的现实世界场景的面积,其中相对于不可接触的区域,可能接触的面积的制造比被减小。

换句话说,对于用户不可能达到的现实场景的区域,对制造比的调整允许完全虚拟对象的数量增加到期望的任何级别。例如,取决于现实的天花板高度,用户可能无法物理上达到天花板。在这种情况下,天花板的制造比可以被增加,潜在地达到100%。因此,例如,其中将特定天花板或墙壁的制造比设定为高水平,而不是将天花板绘制为一些固定表面的情况下,对应于天花板或墙壁的tvr的部分可以被绘制为在微风中摇摆的树枝、被力场阻挡的、充满了动态的虚拟水生生物的大量的水、一个遥远视图的开阔区域等。

注意,在一些实现中,用户可以佩戴与诸如耳机或扬声器的输出设备以及诸如麦克风、2d相机、3d深度相机或其他成像和/或测距技术的传感器组合的头戴式显示器等。这些类型的传感器可以映射或以其他方式被应用于确定现实环境的几何形状限制和范围,并将该信息传递给计算资源用于对象和场景识别(并用于确定语义限制结合与要在tvr中被绘制的虚拟对象相关联的特征和规则)。

例如,在预处理的情况下,用户可以走过她的房屋利用扫描设备捕获场景几何形状并识别对象。虽然这通常是完全自动的过程,但手动用户输入也可以被用于标识或指定特定的对象或空间(例如,房间中的易碎的花瓶可以被指定为以某种方式虚拟突出显示的东西,以便用户在与tvr进行交互时不会意外地敲那个花瓶)。

还要注意,即使在预处理环境中,这些环境的变化(例如移动过的对象或家具、在房间中移动的宠物或人等)也可以被捕获并被处理以将这些变化实时地并入tvr。例如,假设用户的母亲正在走过在tvr中用户沉浸的现实世界的房间。用户的母亲可以被绘制为幽灵、骨骼轮廓或简单地像她自己一样,使得在用户移动通过被模制和锚定到现实环境的tvr时,她不会碰到或以其他方式干扰她的母亲。

因此,现实世界捕获阶段通过扫描现实环境来生成环境信息以对环境中的表面和对象的几何形状进行分类。这个现实世界的捕获阶段包括确定地板、墙壁、门、天花板、空间中的对象等的位置的场景理解过程。还要注意,在各种实现中,锚定环境生成器可选地使用各种图像和对象识别技术来完成缺失的信息(例如桌子后面的部分可见的对象)来处理可见信息。

2.2.2语义限制:

语义限制基于场景理解的一个组成部分,其基于现实环境感测在tvr中给虚拟对象的特征增加更深级别的可信度。例如,任何现实环境的2d和/或3d扫描和对象识别可以被执行以映射几何形状并识别该现实环境内的对象(和对象特征和能力)。取决于可用的处理能力,这或者作为使用本地或基于云的计算资源的预处理步骤被执行,或者作为用户进入环境或移动通过环境时被实时(再次使用本地或基于云的计算资源)处理。还要注意,如本文进一步详细讨论的,这样的限制可以是统一的(即,应用于单个虚拟对象)、全局的(即,应用于所有虚拟对象或一些相关的虚拟对象集合中的所有虚拟对象),它们可以应用于附近的虚拟对象对或更大虚拟对象的组,或者它们可以应用于任何距离的有关或交互的虚拟对象的集合或组。

通常,与在场景中检测到的对象相关联的语义限制具有与它们相关联的一组标签或标记。这些标签可以属于分类,例如家庭→家具→椅子,还可以包括一个或多个可用性,如坐、睡、可移动等。在各种实现中,这些标签也可以表示一些重要性(例如,易碎的、热的、危险的等)。这些标签可用于构建语义限制用于由锚定环境生成器使用。所提供的数据集或主题(例如,宇宙飞船)具有与其对象相关联的标签。场景中放置对象的成本(即上述成本函数)是与对象的标签与现实房间或其他现实环境中附近对象的标签多么匹配(经由语义限制)有关。

例如,环境中的现实桌子或其他水平表面可以被绘制为与正在使用的任何主题(例如,宇宙飞船、古老城堡等)一起出现,使得用户可以触摸并使用该桌子,即使与现实桌子相比,它具有完全不同的外观。换句话说,与现实桌子相关联的语义限制和可用性可以是锚定到现实桌子的位置的虚拟对象旨在被放置在锚定在对应tvr内的该现实桌子的位置的对应虚拟表面上,并且用户可以与桌子交互(例如,将项设置在桌子上、坐在桌子等上)。语义限制的另一个简单示例可以是虚拟全息显示器被放置在具有现实键盘或其他现实输入机制的任何桌子或表面上方,或虚拟键盘或其他虚拟输入机制被提供给用户以与虚拟全息显示器上的虚拟内容交互。

2.2.3客观限制:

一般来说,客观限制强制用于构建tvr的设计师提供的数据集的自我一致性。通常,数据集存在固有的逻辑,诸如限制在程序上生成的房间中的对象的实例的数量(例如,取决于房间的大小来限制床的数量)或定义两个对象之间的关系(例如,餐厅tvr中的盘子和餐具对象很可能被放在桌子上或碗架上)。此外,其他客观限制涉及旨在经由tvr绘制的体验的设计。例如,这些客观限制中的一些可以包括但不限于:目标标记(例如开始和结束位置);虚拟对手(例如,在充满怪物的末日荒地主题中的僵尸)的类型或行为,其在如由限制所代表的tvr的生成中被定位和考虑;当由用户访问时,物理休息位置可以暂停tvr的绘制和显示;等。

客观限制的简单示例包括但不限于以下客观限制:

●在tvr中将虚拟全息显示器放在虚拟桌子或写字台上;

●放置指向目标位置的方向的多个虚拟符号(例如“核反应堆→”);

●在tvr中定位怪物产卵点。注意,怪物在tvr中在那些产卵点的实际产卵被执行同时绘制tvr并且本身不是客观限制;

2.3锚定程序级别生成(aplg):

如上所述,锚定环境生成器执行用于构建可选主题的tvr以代替用户的物理环境来匹配现实和虚拟资产、规则和限制集合的优化过程。得到的tvr环境保持触觉真相,其至少部分地将虚拟对象和表面与现实对象和表面匹配。

一般来说,优化问题可以从从建造来自大的虚拟部分集合(即,虚拟建造块的主集合和列表,其可以包括虚拟2d和3d对象和表面、包括2d和3d动画的动态内容、视频和电影、实时通信馈送等)的虚拟世界(即tvr)的视角考虑,其中的任何一个可以被多次使用(和/或经由转化的转换、缩放、旋转、倾斜、着色、纹理化、等等)建造虚拟世界。请注意,为此目的可以使用不同的基于主题的虚拟对象的集合。然而,锚定环境生成器不是随机建造虚拟世界来满足一些特定的主题,而是考虑到潜在的大量限制,例如选择哪个虚拟对象、如何转换所选择的虚拟对象、虚拟世界的稳定性、虚拟世界(或虚拟世界中的一个或多个虚拟对象)与现实环境多么接近地匹配、用户安全考虑、与现实世界服务、对象、表面、人和动物等的潜在用户交互等等。因此,给定虚拟建造块和限制的虚拟无限组合,计算构建tvr的最佳解决方案可能被认为是指数硬优化问题。

可以使用各种优化技术(包括但不限于各种基于马尔科夫的过程)来解决这种类型的指数硬优化问题。例如,基于马尔科夫的优化过程可以通过评估试验解决方案(例如,相对于现实环境的tvr构建的一些初始或试验虚拟对象布局)的配置的成本函数或能量开始,同时基于相对接近试验解决方案的其他解决方案与试用解决方案大致同样好的假设来检查附加的附近解决方案(在某些特征空间中)。换句话说,这假设了对于解决方案空间,存在一些平滑性,并且优化引擎以迭代和改进当前的解决方案是可能的。

换句话说,基于马尔可夫的优化过程假设对于相对较小的移动,试验解决方案附近的解决方案的质量没显著的变化。这能够实现解决方案空间的蒙特卡洛(或其他基于统计的)探索,其以用于试图定位多个相对良好的和不良的试用解决方案的大的移动开始,随后围绕每个试验解决方案进行小的移动,以定位在围绕每个试验解决方案的空间的改善的解决方案。更具体地说,基于蒙特卡洛的探索方法提供了广泛类型的计算算法,该计算算法依赖重复的随机采样来获得经过大量模拟的数值结果,以便获得未知的概率实体的分布,在本例中,用于标识用于tvr的构建的优化解决方案。

例如,假设属于较大的虚拟对象的主集合x的虚拟对象xi的子集将被用于模拟或重建现实环境或该现实环境的某些虚拟模拟。模拟解决方案的质量可以通过计算所得到的解决方案的能量来评估。该解决方案的质量通过u(x)进行评估,其是对每个虚拟对象的单一函数以及每个虚拟对象如何适应环境的组合。例如,该过程可以确定虚拟桌子是否适合由解决方案提供的位置,或确定是否存在防止桌子坐落于特定位置(例如地灯上方)的语义限制(或其他限制)。例如,坐落在大桌子顶部的小桌子可能是低成本(即,低能量),而坐落在沙发或灯上的桌子可能是高成本(即高能量)。

该分析的单一性质意味着桌子(或其他虚拟对象)不关心作为解决方案一部分的其他虚拟对象的布置,而只关心其本身的布置。为此,添加了一个成本函数v(xi,xj),其给出了两个相邻对象xi和xj之间的成对交互。类似地,也可以考虑较大的多对象交互(例如,三元组、四元组、五元组等)。换句话说,其中两个或更多个对象足够接近以进行交互,问题是这些对象是否正在恰当地交互。例如,其中在tvr的虚拟空间中两个虚拟对象重叠,这可能是不恰当的交互(尽管存在许多异常,例如虚拟剑穿透虚拟怪物的情况)。

针对虚拟对象的单一限制的简单示例可以包括但显然不限于:

●虚拟垃圾箱属于地板上;

●虚拟灯属于桌子、写字台上等;

●虚拟窗户属于墙壁中;

●每扇墙一个虚拟门;

成对限制的简单示例可以包括但显然不限于:

●针对两个或多个特定虚拟对象的成对限制(例如标志和宝箱在彼此之间的预定距离内);

针对虚拟对象的全局限制的简单示例可能包括但显然不限于:

●房间内不多于两个虚拟垃圾箱;

●五至七名士兵被排列在女王周围;

●沿着一些现实的或虚拟的线或表面排列的多个虚拟对象;

这些全局限制中的一些可以使用基于“局可满足的建议”的过程来实现。例如,给定其中条件或特征由用户指定或自动地确定的任意动态环境,可以使用解决方案空间探索方法来应用局部可满足的建议以创建两个或多个虚拟对象的布局。这种方法利用了以下事实:对于许多类型的限制,可以有效地发现可满足的布局分配,换句话说,这些限制是局部可满足的。执行每个虚拟对象的布局的迭代更新,直到限制的全局成本被最小化,或直到达到迭代的一些最大次数。这允许针对每个限制从部分概率分布函数采样候选对象值,以便实时选择与限制、与其他对象和与环境相一致的对象布局。

鉴于上述讨论,应当清楚的是,锚定环境生成器支持单一、成对和全局限制的各种组合。然而,应当理解,由从虚拟建造块主的集合或列表选择的用于使用的虚拟对象及其参数构成的tvr的解决方案空间是不固定的维度,这意味着在优化过程期间锚定环境生成器可以添加/删除虚拟对象。

在各种实现中,经由迭代优化过程由锚定环境生成器产生tvr,该迭代优化过程包括但不限于标记的马尔可夫点过程(mmpp)。如下面进一步详细讨论的,基于mmpp的优化过程接收数据的输入,该数据包括用户的环境(即其中tvr被构建的现实环境)以及从其tvr被建造的可选的基于主题的虚拟建造块集合(即虚拟对象和表面)。然后,基于mmpp的优化过程操作以从虚拟建造块的集合中发现和布置可用虚拟对象的子集,使得所选择的子集最小化成本函数。换句话说,成本函数是与系统相关联的不同限制的总和成本(在运行时确定)。针对任何给定的配置可以评估每个限制(几何形状、语义和客观),并返回成本(现实)值。评估限制的成本函数是通过相对于tvr被重建的现实环境的特征来检查所涉及的对象的值(例如,一如果其是单一限制,二如果其是成对)来进行。

例如,假设在基于空间站的虚拟环境中tvr旨在包括虚拟沙发和虚拟桌子,用户可以在物理上与这两者交互。这些虚拟对象中的每一个都被分配物理位置,并且包括超出定义对象的特征的参数集合。换句话说,被优化以建造tvr的配置包括虚拟对象集合(其中在mmpp中这些对象中的每一个是“点”)、以及针对每个虚拟对象的参数集合。每个配置不限于维度。因此,在优化过程中从一步到下一步,可能存在较多或较少的虚拟对象(例如,孵化或删除一个或多个虚拟对象)。

在各种实现中,使用基于可逆跳转蒙特卡洛马尔可夫链(rjmcmc)的过程来解决mmpp优化问题,如下文进一步详述。一般来说,给定解决方案,rjmcmc使用转化内核(即“命名内核”)以将当前配置(即试验解决方案)转换为新配置。然后,执行检查以确定新配置是否已经改善(例如,较低的成本、较低的能量或较低的温度)。如果解决方案已经改善,则可能会接受新配置(在某种概率之内),或者如果新配置更差,则其不太可能被接受(同样在某种概率之内)。

2.3.1点过程概述:

通常,点过程描述了连续有界集合k中的点的随机配置,其中每个配置具有概率。每个配置是(不同数量的)点的集合。每个点pi可以由附加的参数mi进行标记,使得点与对象相关联,使得xi=(pi,mi)。因此,配置可以被定义为虚拟对象集合这种关系的能量可以用公式(1)来表示,其中:

其中,d(xi)是测量对象xi的质量的单一数据项,并且v(xi,xj)是两个对象xi和xj之间的成对项(如上所述,更大数量的对象之间的关系也可以通过用适当的关系代替等式(1)中的成对项来考虑)。在等式(1)的示例中,~关系经由极限距离ε来定义,该极限距离ε指定点在该极限距离之外不会彼此影响(例如,房间一侧的对象的移动可能太远以至于不影响比极限距离ε还远的该房间相对侧的对象)。

通常,点过程的上述定义是马尔科夫随机场(mrf)的泛化,但对能量类型具有更少的限制。此外,如上所述,不是限于成对的交互,等式(1)中的关系可以被修改,用于多于两个虚拟对象之间的关系或交互使用更高阶项(例如,三元、四元等)。在各种实现中,如下文进一步详细讨论的,使用更高阶关系可以通过增加并行单元的大小来解决。

2.3.2rjmcmc概述:

可以使用诸如rjmcmc(即可逆跳转蒙特卡洛马尔科夫链)的过程来模拟点过程,以搜索最小化能量u的配置。在每次迭代时,使用称为命题核的密度函数q(x→)将单个马尔可夫链的当前配置x扰动到配置y。在实践中,尽管给出足够的计算资源和增加的时间,可以使用更大数量的对象,但x与y的不同不多于一个虚拟对象(即,围绕每个试验解决方案或配置的小移动)。取决于x和y之间的能量变化和弛豫参数tt(即链的温度),新配置以一定的概率被接受。在每个步骤中存在几个可以选择的离散的扰动,通常调整参数xi和虚拟对象的出生或死亡。随着温度的降低,解决方案(即,虚拟对象的配置)通常会改善。实现rjmcmc采样器的典型过程如下表1所示:

表1:典型的rjmcmc采样器算法

换句话说,rjmcmc采样器算法在时间t=0处接收初始配置,然后在每次迭代中,rjmcmc采样器算法选择子内核,该子内核确定该配置将如何被扰动(例如,移动、缩放、添加对象、删除对象等)。然后,rjmcmc采样器算法计算一个比率(即“绿色比率”),该比率取决于温度来确定新配置相对于旧配置如何优良。然后,基于该比率,rjmcmc采样器算法选择是接受还是拒绝新配置。然后重复迭代整个算法,同时在迭代过程中跟踪找到的最低能量解决方案。

2.4用于标识tvr解决方案的并行性的应用:

在各种实现中,锚定环境生成器应用各种基于并行性的技术来用于标识用于构建tvr的最优或近似最优可接受的解决方案。这种基于并行性的技术的使用已经被观察到以显著地减少用于标识或以其他方式选择用于构建tvr的可接受的解决方案的时间。以下段落更详细地描述了这些基于并行性的技术中的一些。

2.4.1并行回火:

在各种实现中,锚定环境生成器通过适配在不同温度运行多个马尔科夫链、同时在采样期间频繁地交换链之间的配置的“并行回火”过程来显著地降低优化时间。在几次迭代之后,链对被随机地选出,并且具有一定的概率,那些链切换其配置。每个链条始终保持其局部“最优”解决方案,并且它们由主机收集。

这种并行回火过程对冷却过程带来鲁棒性,并且在存在多个可接受的解决方案的情况下已经被证明有效,并且在在检索可接受的解决方案而不仅仅是最低能量解决方案的情况下是有效的。有利地,通过利用这些处理器的并行性质,并行回火过程可以被实现在现代图形处理单元(gpu)上。

2.4.2基于距离的并行采样:

在各种实现中,锚定环境生成器通过适配并行采样技术用于在优化过程中使用来进一步减少优化时间。一般来说,并行采样提供了一种在链的每次迭代中并行化采样的方式。该方法依赖于马尔可夫原理和ε存在,即两个对象(在不同的单元中)之间的距离超过一个对象上的扰动不影响另一个对象的距离。

2.4.3影响基于组的并行采样:

不幸的是,如上文第2.4.2节所述,基于距离的并行采样不适用于对象具有相互影响的情况,无论距离如何。因此,在各种实现中,通过确定“影响组”来处理虚拟对象之间的交互。具体地,在已知两个或者更多对象相互影响的情况下,而不是建造网格,如上文关于基于距离的并行采样所讨论的,锚定环境生成器在能够实现“基于限制的并行采样”的使用的有关的对象组之间建造更复杂的结构。

2.5tvr结构示例算法:

在进一步的实现中,锚定环境生成器使用上述技术和过程的各种组合来构建tvr环境。为了解释的目的,以下段落基于这些技术和过程描述了用于构建tvr的几种算法的示例性实现。应当理解,下面描述的算法仅合并本文讨论的许多概念和实现中的一些,并且这些算法并不旨在将锚定环境生成器的范围限制于算法的具体步骤或能力。

通常,生成tvr的许多可能的实现中的一个由接收初始参数的输入开始。这些初始参数包括但不限于虚拟对象主列表(在本文中也称为虚拟建造块的主集合)、在生成tvr时要应用的一个或多个限制、初始配置、和从为其tvr被绘制的现实环境导出的环境信息。给定此输入,锚定环境生成器输出描述tvr的参数的一个或多个配置,然后将其绘制用于绘制给用户。

更具体地,虚拟对象主列表通常提供虚拟建造块集合(即虚拟对象以及用于绘制那些虚拟对象的任何模型、纹理、限制等),该虚拟建造块对在构建tvr中的使用是有用的。单独的虚拟建造块包括各种参数和特征,包括但不限于对象名称或id、对象几何形状、对象模型参数、对象边界框、初始变换(例如、转换、缩放、旋转、偏斜、着色、纹理等)、限制等

在各种实现中,这些虚拟建造块可以被限制到特定用户选择的或指定的主题。换句话说,用于相同现实环境的tvr可以对应于多个用户指定的或选择的主题中的任何一个。这些主题的示例包括但显然不限于法国小酒馆、太空站、星舰、替代现实环境、外星人世界、世界末日荒原、中世纪村庄、医院、城堡等。

当生成tvr时要应用的上述限制包括但不限于单一限制、成对限制、基于影响组的限制、全局限制等。

通常,单一限制包括但不限于适用于特定虚拟对象id的属性、这种对象的一个或多个实例或所有虚拟对象。在各种实现中,这些属性还可以包括指定的“类型”和一个或多个“参数”。单一限制的简单示例可以包括但显然不限于:限制对象尺度(例如[0.7-1.2])、限制对象旋转(例如,仅围绕y(向上)轴的旋转)、指定特定对象要被附接到地板或墙壁(需要某种支撑(即不能浮在空中)等)、重叠环境、与环境的语义相似性等。

成对限制的简单示例可以包括但显然不限于:隐式限制(例如,避免与其他虚拟对象的冲突)、显式限制(例如,对象之间的特定距离)等。全局限制的简单示例可以包括但显然不限于:所覆盖的环境的比例、对象类型的限制(例如不多于一个沙发、不多于两个窗户等)等。

通常,上述初始配置包括但不限于虚拟对象实例的列表,虚拟对象实例的列表中的每个可以具有属性,包括但不限于实例id、对象id(即,到对象主列表中的虚拟对象的链接)、初始变换、静态标志(即,如果标志被设置,则不能被去除)等。此外,针对初始配置的对象的这些属性中的许多属性可能与客观限制有关,即,它们可能是经由tvr旨在绘制给用户的体验或主题的组成部分。

最后,从现实环境导出的环境信息包括但不限于:场景几何形状、推测的场景布局(地板、墙壁等)、现实世界对象、环境中的人、动物等、环境中的控制对象(诸如光开关、电源按钮、遥控器等控件)、以及与现实环境和现实环境中的现实事物有关的语义。

如上所述,给定上述输入,锚定环境生成器输出具有与初始配置相同结构的一个或多个tvr配置(如所期望的),以及用于确定配置质量的得分。通常,当应用基于mmpp的优化过程时,tvr优化过程由并行操作的一个或多个马尔可夫链组成。每个链保持有效的配置。在每个链的每次迭代中,执行以下处理:

1.扰动当前配置以创建新配置;以及

2.根据链温度(即能量)、和当前配置与新配置之间的成本(概率)的比率来接受或拒绝新配置。

链可以被做成“独立”的,在这种情况下,,它可以随着时间冷却(即,较低的能量),以实现稳定的分布;或“并行”(即并行回火,如上所述),在这种情况下,链的温度被固定,锚定环境生成器用于切换链之间的配置并存储结果。每个链是执行以下步骤的函数或内核:

1.初始化:

a.在环境中创建可分离的单元格的集合(取决于链的几何形状和温度);以及

b.为要从中采样的虚拟对象的主集合中为每个对象创建位置种子;

2.迭代:

a.选择单元格集合和操作,对每个单元格中的对象进行采样;以及

b.基于所得到的温度来评估并且决定接受或拒绝更改。

在进一步的实现中,用于构建tvr的算法可以包括但不限于以下输入:

1.重建场景(例如,3d网格或代表现实环境的模型);

2.房间布局元素(如地板、天花板、墙壁、门等)的检测;

3.语义对象检测,提供为以下各项中的一项:

a.具有到由对应的现实环境提供的虚拟空间的变换的虚拟对象的数据集中的模型;

b.在场景体积上的热图(虚拟对象最有可能的最大值);

4.虚拟对象主列表或基于主题的虚拟对象(如宇宙飞船、医院、村庄等)的集合;以及

5.限制的集合。

给定立即的在前输入,“场景布局推理算法”通过构建环境的水密(即封闭空间)表示,开始从场景和房间布局输入来构建tvr的过程。请注意,这种表示不是基于tvr本身,其只是对现实世界中环境布局的推理。在各种实现中,表示可以是平面集合,每个平面被标记为地板、墙壁、天花板等,所有这些都保证与所有边缘上的另一个平面相邻(因此被包围)。每个平面的附加属性可以表示门户(例如窗口、门等)。在各种实现中,较大的现实环境(例如,房屋、建筑物等)可以进一步被分割成房间。给定这些信息,在各种实现中,锚定环境生成器将优化问题转化为2d(例如,检测的墙壁的集合被投影到检测到的底面)。布局的初步猜测是封闭的多边形,其是围绕观察到的环境是一个凸多边形。于是,由场景布局推理算法优化的元素可以包括:

1.最小化墙壁数量(将它保持成简单的形状);

2.墙是正交的或平行的(关于典型的人造环境的启发);

3.墙壁“粘”到观察的墙壁(用于触觉真相);

4.在表面重构中观察到的场景的元素可能被多边形包围(保持其在优化过程期间中不会收缩);

5.经由可逆跳转蒙特卡洛马尔科夫链(rjmcmc)来优化多边形。

锚定环境生成器然后应用“内部优化算法”,从前述输入结合来自场景布局推理算法的输出来在程序上生成tvr。通常,内部优化算法首先为虚拟对象主列表或基于主题的虚拟对象的集合中的每个对象生成候选位置的集合。这是通过主要在gpu上运行的修改的对象检测算法完成的。在各种实现中,使用大量的点对来应用对象检测技术以构建每个虚拟对象的密集签名。对于每个点对,特征被计算然后被散列。给定一个场景,内部优化算法然后提取多个参考点,并尝试在密集对象签名中找到匹配(经由散列)。然后使用最高质量的匹配来产生将虚拟对象放置于tvr中的候选位置的变换。

给定虚拟对象的候选位置,锚定环境生成器然后针对利用虚拟对象主列表或基于主题的虚拟对象的集合一起提供的限制,应用类似于上述场景布局推理算法的附加优化算法。然而,在这种情况下,在rjmcmc的每次迭代中的移动由候选位置决定。这种最终优化算法的输出是用于绘制tvr的可接受的解决方案。

2.6示例性使用场景:

如本文所讨论的,在各种实现中,锚定环境生成器提供对于用户是可见的、物理受限的虚拟环境的每个像素的完全控制,从而创建可以包括或可以不包括现实世界元素的绘制的完全沉浸式体验。换句话说,锚定环境生成器以将虚拟真实环境映射到现实世界中的对象、几何形状、人等的方式,将现实环境与虚拟现实相结合。在不实际显示底层的现实环境的情况下,这些特征向由锚定环境生成器绘制给用户的得到的物理受限的虚拟环境提供触觉真相,从而能够实现虚拟地无限的使用场景。

以下段落描述了在其中由锚定环境生成器构建的tvr可以被实现并被绘制的用于用户交互的、许多方式中的一些方式的各种示例。应当理解,下面描述的各种示例仅用于提供对由tvr能够实现的几个虚拟地无限的使用场景的一般性理解的目的,并且这些示例并不旨在将锚定环境生成器的范围限制于所提供的示例。

例如,现实世界房间的整个楼层的单独的(但相关的)tvr可以被构建,以看起来像来自与巫师和魔法学校有关的著名电影或书籍的场景或房间。然后纸卷轴可以被放置在不同的现实世界位置(并且在tvr的对应位置中被绘制为虚拟卷轴)。然后,用户可以随时拿起并展开这些虚拟卷轴(经由对应的现实卷轴)。虚拟内容(包括静态和动态内容的组合)然后可以被绘制到tvr内的这些卷轴。类似地,虚拟卷轴可以在不同位置漂浮在空中,然后响应于用户来打开并显示内容(例如,当用户接近、说出命令、用手或魔杖虚拟地触摸或手势等时)。

继续上述示例,用户携带的笔、铅笔、棒或其他现实对象可能被绘制到tvr中,以出现为魔杖或其他魔法物品。此外,虚拟特效可以从被显示为从对于用户出现为魔杖或其他魔术物品的、由用户携带的那些现实对象发出。此外,来自现实角色(即,相同的现实环境中或从其他远程环境链接的其他用户)或tvr中的虚拟角色的任何组合的音频还可以被绘制。结合起来,这样的效果用于完成一个触觉、视觉和听觉的幻觉,该幻觉使用户感觉到、看到和听到她周围的世界,就好像她实际上在魔法世界中,并与魔杖和魔术卷轴交互,在存在并且可选地与可能本身是现实人、现实的人的虚拟表示或完全虚拟的人的多个其他人或角色进行交互。

在各种实现中,单个现实世界的房间或空间可以被绘制给用户作为许多不同的基于tvr或环境。例如,现实环境中的真正的门口、壁橱或开放空间可以被绘制为表现为tvr内的虚拟运输机制,诸如电梯、传送垫等。然后,用户可以通过进入该空间并且可选地发出口头或手势命令或其他输入来利用虚拟传输机制。然后,通过简单的重新绘制在其中用户已经正在使用不同的tvr的房间或空间,将用户虚拟地传送到新的空间。然而,对于用户在虚拟传输之后物理上转向观看新的tvr可能是必需的,假设用户已经走入诸如在tvr中充当虚拟运送器的现实壁橱或房间角落的小空间中。换句话说,走进一个tvr中的现实的壁橱,然后转向并且离开壁橱进入新的tvr,可选地遵循在一个或两个tvr中显示的额外的虚拟传输特效。这样的过程可以以允许用户在单个小的或有限的物理空间(或一些扩展空间或多个空间)中移动,而它对于用户看起来好像她在更大的不同空间序列中的方式重复执行。

3.0锚定环境生成器的操作总结:

上面关于图1至图2以及上面在第1和2节中提供的详细描述的进一步的视图中所描述的过程,通过图3到图5的一般操作流程图来图示。具体地,图3至图5提供了总结锚定环境生成器的各种实现中的一些的操作的示例性操作流程图的备选实现。注意,图3至图5不旨在提供本文描述的锚定环境生成器的所有各种实现的详尽表示,并且仅为了说明的目的提供图3至图5中表示的实现。

此外,应当注意,在图3至图6中的任何一个中用虚线或短划线表示的任何框以及框之间的互连表示本文所述的锚定环境生成器的可选的或备选的实现,并且如下所述的这些可选的或备选的实现中的任何一个或全部可以与在整个本文件中描述的其他备选实现组合使用。

通常,如图3所图示,在各种实现中,锚定环境生成器通过使用多个传感器200扫描任何期望的现实环境来开始操作,以产生现实环境原始数据210。然后,锚定环境生成器然后通过分类现实环境中的表面和对象的几何形状,来从现实环境原始数据210中生成(300)环境信息230。

然后指定(310)或以其他方式选择、提供或接收的虚拟建造块120的主集合用于在生成tvr中使用。一般来说,该虚拟建造块120的主集合包括多个虚拟建造块,每个虚拟建造块包括与各种几何形状、语义和可选的客观限制相结合的各种特征。此外,在各种实现中,用户或开发人员可以可选地定义(320)或选择主题、虚拟对象、与虚拟对象相关联的参数、现实环境的特征、定义对象、参数和现实环境的任意组合之间的关系的限制等。

然后,锚定环境生成器通过相对于场景特定的成本函数来迭代地优化虚拟建造块的自动选择的可变子集的布局,来程序地模制(330)物理受限的虚拟环境,其中优化的布局的每次迭代与虚拟建造块子集的特征和限制以及现实环境的环境信息相一致。锚定环境生成器从虚拟建造块120的子集的特征和限制结合环境信息230导出(340)每次迭代的场景特定的成本函数。

然后,锚定环境生成器经由显示设备显示(350)物理受限的虚拟环境,使得物理受限的虚拟环境的至少一部分以至少部分地匹配现实环境中的一个或多个表面和对象的触觉真相的方式,被锚定到现实环境中。

此外,在各种实现中,锚定环境生成器通过可选地监视(360)与物理受限的虚拟环境的用户交互、并且可选地监视现实环境中的人和现实对象的运动或变化来继续。这种监控的目的是确定对任何实际或虚拟对象是否存在任何变化(370),对现实环境是否存在任何变化,或对限制中的任何一个是否存在任何变化。在检测到任何这样的变化的情况下,通过以考虑所观察的变化的一些或全部的方式来重复程序地模制和显示过程(即,330、340和350),以实时地动态地更新物理受限的虚拟环境。

通常,如图4所示,在各种实现中,锚定环境生成器通过接收(400)现实环境405内存在的多个现实表面和对象的几何形状的分类来开始操作。另外,锚定环境生成器接收(410)虚拟对象的集合415,虚拟对象的集合415包括虚拟对象特征结合与虚拟对象有关的各种语义、几何形状和客观限制。另外,在各种实现中,提供用户界面等,使得用户或开发人员能够可选地定义(420)或选择主题、虚拟对象、与对象相关联的参数、现实环境的特征、定义对象、参数和现实环境的任何组合之间的关系的限制等。

接下来,在各种实现中,锚定环境生成器相对于场景特定的成本函数来迭代地优化(435)虚拟对象的自动选择的可变子集的布局,其中虚拟对象415的子集的优化的布局的每次迭代与现实环境405中的表面和对象的几何形状一致。在该迭代过程期间,锚定环境生成器应用(430)场景特定的成本函数,以基于相对于真实环境405内的表面和对象的几何形状的虚拟对象415的子集的特征和限制,对优化的布局的每一次迭代进行评分。

然后,锚定环境生成器绘制(435)虚拟对象415的迭代优化的布局,以生成触觉虚拟现实(tvr)。锚定环境生成器然后通过经由头戴式显示设备向这些用户显示tvr来代替(440)围绕多个用户的现实环境的视图,使得tvr的至少一部分以至少部分地匹配现实环境中的一个或多个表面和对象的触觉真相的方式被锚定到现实环境。最后,锚定环境生成器响应于用户与tvr的交互来动态地执行对tvr的实时更新445。

通常,如图5所图示的,在各种实现中,锚定环境生成器开始操作,(500)通过评估由一个或多个扫描设备530捕获的传感器数据520来分类一个或多个现实环境510内的多个表面和对象的几何形状。

锚定环境生成器然后接收包括虚拟对象特征、并且包括与虚拟对象有关的语义和几何形状限制的虚拟对象550的集合。锚定环境生成器然后使用该信息来相对于场景特定的成本函数来迭代地优化(560)虚拟对象550的集合的自动选择的可变子集的布局,场景特定的成本函数基于相对于现实环境中的表面和对象的几何形状的虚拟对象子集的特征和限制,来对优化的布局的每次迭代进行评分。注意,虚拟对象子集的优化的布局的每次迭代与现实环境510中的表面和对象的几何形状一致。

锚定环境生成器然后绘制(570)虚拟对象的迭代优化的布局,以生成触觉虚拟现实(tvr),该触觉虚拟现实(tvr)以至少部分地匹配现实环境中的一个或多个表面和对象的触觉真相的方式被锚定到现实环境510。最后,在各种实现中,锚定环境生成器通过经由沉浸式显示设备显示tvr,来代替(580)围绕一个或多个用户的现实环境510的视图。

4.0示例性实现:

以下段落总结了本文件中可以要求保护的实现的各种示例。然而,应当理解,下面总结的实现方式并不旨在鉴于锚定环境生成器的详细描述来限制可以要求保护的主题。此外,下面总结的实现的任何一个或所有可以以与通过整个详细描述中所描述的实现和在一个或多个附图中所图示的任何实现以及下面描述的任何其它实现和示例的一些或全部实现的任何期望的组合来保护。此外,应当注意,以下实现和示例旨在鉴于在整个文件中描述的详细描述和附图来理解。

在各种实现中,锚定环境生成器通过用于生成物理受限的虚拟环境的手段、过程或技术来实现,该物理受限的虚拟环境以至少部分地匹配现实环境中一个或多个表面和对象的触觉真相的方式来被模制并锚定到围绕用户的现实环境中。因此,物理受限的虚拟环境的绘制通过允许用户在来虚拟环境内移动或与虚拟环境物理地交互来改善虚拟环境中的用户体验和交互性能,该虚拟环境被模制和锚定到现实世界的环境中而不实际向用户显示现实环境。此外,还通过将tvr模制和锚定到现实世界的环境中,并通过在用户沉浸在tvr中的同时提供用于与现实世界对象进行交互的各种机制,来改善现实环境中的用户的安全性和其他人和对象的安全性。

作为第一示例,在各种实现中,经由用于构建虚拟环境的手段、过程或技术来提供计算机实现的过程。在各种实现中,这种虚拟环境的构建开始于:通过从现实环境的扫描来生成环境以分类该环境内的表面和对象的几何形状。结合起来,提供了虚拟建造块的主集合。这些虚拟建造块中的每一个包括多个特征连同与虚拟建造块有关的各种语义和几何形状限制。虚拟环境的构建继续于:通过相对于场景特定的成本函数的虚拟建造块的自动选择的可变子集的布局的迭代优化,程序地模制物理受限的虚拟环境。此外,物理受限的虚拟环境的优化的布局的每次迭代与虚拟建造块的子集的特征和限制以及现实环境的环境信息一致。另外,对于每次迭代,场景特定的成本函数来自虚拟建造块的子集的特征和限制结合环境信息。最后,经由显示设备显示或绘制物理受限的虚拟环境,使得物理受限的虚拟环境的至少一部分以至少部分地匹配现实环境中的一个或多个表面和对象的触觉真相的方式被锚定到现实环境中。

作为第二示例,在各种实现中,经由用于将一个或多个现实世界对象的虚拟表示绘制到物理受限的虚拟环境中以使得一个或多个用户能够与那些现实世界对象交互的手段、过程或技术来进一步修改第一示例。

作为第三示例,在各种实现中,通过用于经由基于语音的命令,能够实现与物理受限的虚拟环境用户交互的手段、过程或技术来进一步修改第一示例和第二示例中的任何一个。

作为第四示例,在各种实现中,经由用于经由基于手势的命令,能够实现与物理受限的虚拟环境的用户交互的手段、过程或技术来进一步修改第一示例、第二示例和第三示例中的任一个。

作为第五示例,在各种实现中,经由用于将虚拟对象绘制到物理受限的虚拟环境的用户手中的手段、过程或技术来进一步修改了第一示例、第二示例、第三示例和第四示例中的任一个。

作为第六示例,在各种实现中,经由用于绘制虚拟对象以至少部分地匹配在物理受限的虚拟环境内在用户的手中持有的现实对象的触觉真相的手段、过程或技术来进一步修改第一示例、第二示例、第三示例、第四示例和第五示例中的任一个。

作为第七示例,在各种实现中,经由用于响应于一个或多个用户与物理受限的虚拟环境中的虚拟建造块的一个或多个的交互来动态地更新物理受限的虚拟环境的手段、过程或技术来进一步修改第一示例、第二示例、第三示例、第四示例、第五示例和第六示例中的任何一个。

作为第八示例,在各种实现中,经由用于响应于现实环境中的一个或多个用户的移动,动态地更新物理受限的虚拟环境的手段、过程或技术来进一步修改第一示例、第二示例、第三示例、第四示例、第五示例、第六示例和第七示例中的任一个。

作为第九示例,在各种实现中,经由用于响应于现实环境中的一个或多个现实对象的移动来动态地更新物理受限的虚拟环境的手段、过程或技术来进一步修改第一示例、第二示例、第三示例、第四示例、第五示例、第六示例、第七示例和第八示例中的任一个。

作为第十示例,在各种实现中,经由用于应用用于评估场景特定的成本函数以评分物理受限的虚拟环境的优化的布局的每次迭代的标记的马尔可夫点过程的手段、过程或技术来进一步修改第一示例、第二示例、第三示例、第四示例、第五示例、第六示例、第七示例、第八示例和第九示例中的任一个。

作为第十一示例,在各种实现中,经由用于将自动选择的虚拟建造块的可变子集限制于基于主题的规范的手段、过程或技术来进一步修改第一示例、第二示例、第三示例、第四示例、第五示例、第六示例、第七示例、第八示例、第九示例和第十示例中的任一个。

作为第十二示例,在各种实现中,经由用于确保物理受限的虚拟环境的优化的布局的每次迭代也与一个或多个客观限制一致的手段、过程或技术来进一步修改第一示例、第二示例、第三示例、第四示例、第五示例、第六示例、第七示例、第八示例、第九示例、第十示例和第十一示例中的任一个。

作为第十三示例,在各种实现中,经由用于生成沉浸式虚拟环境的手段、过程或技术来提供方法。在各种实现中,这种沉浸式虚拟环境的生成开始于:接收现实环境中的表面和对象的几何形状的分类结合包括虚拟对象特征并且包括与虚拟对象有关的语义、几何形状和客观限制的虚拟对象的集合。沉浸式虚拟环境的生成然后继续:相对于场景特定的成本函数来迭代地优化虚拟对象的自动选择的可变子集的布局。此外,虚拟对象的子集的优化的布局的每次迭代与现实环境中的表面和对象的几何形状一致。此外,场景特定的成本函数基于相对于现实环境中的表面和对象的几何形状的虚拟建造块的子集的特征和限制,评分优化的布局的每次迭代。接下来,通过绘制迭代地优化的虚拟对象的布局来生成触觉虚拟现实(tvr)。在各种实现中,该tvr然后用于通过经由头戴式显示设备向那些用户显示tvr来代替围绕多个用户的现实环境的视图,使得tvr的至少一部分以至少部分地匹配现实环境中的一个或多个表面和对象的触觉真相的方式被锚定到现实环境。最后,在各种实现中,响应于与tvr的用户交互,动态地执行对tvr的实时更新。

作为第十四示例,在各种实现中,经由用于将存在于现实环境中的一个或多个现实世界对象的虚拟表示绘制到tvr内的对应位置使得虚拟表示至少部分匹配对应的现实世界对象的触觉真相的手段、过程或技术来进一步修改第十三示例。

作为第十五示例,经由用于应用一个或多个自然用户界面(nui)处理以使得经由基于语音的命令、手势和面部表情的任何组合实现与tvr的用户交互的手段、过程或技术来进一步修改第十三示例和第十四示例中的任一个。

作为第十六示例,经由用于绘制虚拟对象以至少部分地匹配在tvr内用户手中持有的现实对象的触觉真相的手段、过程或技术进一步修改第十三示例、第十四示例和第十五示例中的任一个。

作为第十七示例,经由用于响应于对应于tvr的现实环境中的一个或多个现实对象的移动来实时地动态地更新tvr的手段、过程或技术来进一步修改第十三示例、第十四示例、第十五示例和第十六示例中的任一个。

作为第十八示例,经由用于自动选择虚拟对象的可变子集以与基于主题的规范一致的手段、过程或技术来进一步修改第十三示例、第十四示例、第十五示例、第十六示例和第十七示例中的任一个。

作为第十九示例,在各种实现中,经由用于通过提供计算机可执行指令来生成触觉虚拟现实的手段、过程或技术来提供一种方法,所述计算机可执行指令使得计算设备响应于从一个或多个扫描设备接收到的环境信息来自动地分类现实环境中的表面和对象的几何形状。另外,这些计算机可执行指令使得计算机接收包括虚拟对象特征并包括与虚拟对象有关的语义和几何形状限制的虚拟对象的集合。计算机可执行指令还使计算机相对于场景特定的成本函数来迭代地优化虚拟对象的自动选择的可变子集的布局,该场景特定的成本函数基于相对于现实环境中的表面和对象的几何形状的虚拟建造块的子集的特征和限制,评分优化的布局的每次迭代。此外,虚拟对象的子集的优化的布局的每次迭代均与现实环境中的表面和对象的几何形状一致。计算机可执行指令然后使得计算机绘制虚拟对象的迭代优化的布局以生成触觉虚拟现实(tvr),该触觉虚拟现实以至少部分匹配现实环境中的一个或多个表面和对象的触觉真相的方式被锚定到现实环境。最后,计算机可执行指令使得计算机通过经由沉浸式显示设备显示tvr来替代围绕一个或多个用户的现实环境的视图。

作为第二十个示例,在各种实现中,经由用于响应于与tvr中的任何虚拟对象以及对应于tvr的现实环境中的任何现实对象的任何用户交互来动态地执行对tvr的实时更新的手段、过程或技术来进一步修改第十九示例。

5.0示例性操作环境:

本文描述的锚定环境生成器实现在许多类型的通用或专用计算系统环境或配置中操作。图6图示了通用计算机系统的简化示例,在其中可以实现如本文所述的锚定环境生成器的各种实现和元件。注意,在图6所示的简化计算设备600中由虚线或短划线表示的任何框代表简化计算设备的备选实现。如下所述,这些备选实现中的任何一个或全部可以与整个本文件中描述的其他备选实现结合使用。

简化的计算设备600通常在具有至少一些最小计算能力的设备中被发现,诸如个人计算机(pc)、服务器计算机、手持计算设备、膝上型计算机或移动计算机、诸如蜂窝电话和个人数字助理(pda)的通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机、大型计算机以及音频或视频介质播放器。

为了允许设备实现本文描述的锚定环境生成器实现,设备应当具有足够的计算能力和系统存储器以能够实现基本的计算操作。具体地,图6所示的简化计算设备600的计算能力通常由一个或多个处理单元610来图示,并且还可以包括一个或多个图形处理单元(gpu)615,其中一者或两者与系统存储器620通信。请注意,简化计算设备600的处理单元610可以是专用微处理器(例如数字信号处理器(dsp)、非常长的指令字(vliw)处理器,现场可编程门阵列(fpga)或其他微控制器)、或者可以是具有一个或多个处理核并且还可以包括一个或多个基于gpu的核或多核处理器中的其他专用核的常规中央处理单元(cpu)。

此外,简化的计算设备600还可以包括其他部件,诸如通信接口630。简化的计算设备600还可以包括一个或多个常规的计算机输入设备640(例如,触摸屏、触敏表面、指示设备、键盘、音频输入设备、基于话音或语音的输入和控制设备、视频输入设备、触觉输入设备、用于接收有线或无线数据传输的设备等)或这些设备的任何组合。

类似地,与简化的计算设备600以及锚定环境生成器的任何其他部件或特征的各种交互(包括输入、输出、控制、反馈以及对与锚定环境生成器相关联的一个或多个用户或其他设备或系统的响应)通过各种自然用户界面(nui)场景实现。由锚定环境生成器能够实现的nui技术和场景包括但不限于允许一个或多个用户以“自然”的方式与锚定环境生成器进行交互的接口技术,而不受输入设备(诸如鼠标、键盘、遥控器等)施加的人为限制。

通过各种技术的应用来能够实现这样的nui实现,包括但不限于使用从经由麦克风或其他输入设备640或系统传感器605捕获的用户语音或发声导出的nui信息。这样的nui实现也可以通过各种技术的应用来实现,包括但不限于从系统传感器605或其他输入设备640导出的、来自用户的面部表情和来自用户的手、手指、手腕、手臂、腿、身体、头部、眼睛等的位置、运动或方向的信息,其中这些信息可以使用各种类型的2d或深度成像设备(诸如立体视觉或飞行时间摄像机系统、红外相机系统、rgb(红、绿和蓝)相机系统以及类似物、或这些设备的任何组合)来捕获。这种nui实现的其它示例包括但不限于从触摸和触笔识别、手势识别(屏幕上和相邻于屏幕或显示器表面的两者)、空中或基于接触的手势、用户触摸(各种表面、对象或其他用户)、基于悬停的输入或动作等。这样的nui实现还可以包括但不限于各种预测机器智能过程的应用,其评估当前或过去的用户行为、输入、动作等,单独地或与其他nui信息组合,以预测诸如用户的意图、期望和/或目标的信息。不管基于nui的信息的类型或来源,这样的信息然后被用于启动、终止或以其他方式控制锚定环境生成器的一个或多个输入、输出、动作或功能特征或与锚定环境生成器的一个或多个输入、输出、动作或功能特征进行交互。

然而,应当理解,可以通过将人造限制或附加信号的使用与nui输入的任何组合结合来进一步增强上述示例性的nui场景。这样的人造限制或附加信号可能由诸如鼠标、键盘和遥控器的输入设备640或由各种远程或用户穿戴设备施加或生成,该设备诸如加速计、用于接收代表用户肌肉生成的电信号的肌电信号的肌电图(emg)传感器、心率监测器、用于测量用户汗水的电流皮肤传感器、用于测量或以其他方式感测使用者大脑活动或电场的可穿戴或远程生物传感器、用于测量用户体温变化或差异的可穿戴或远程生物传感器等。从这些类型的人造限制或附加信号导出的任何这样的信息可以与任何一个或多个nui输入组合以发起、终止或以其他方式控制锚定环境生成器的一个或多个输入、输出、动作或功能特征或与控制锚定环境生成器的一个或多个输入、输出、动作或功能特征交互。

简化的计算设备600还可以包括诸如一个或多个常规计算机输出设备650的其他可选部件(例如,显示设备655、音频输出设备、视频输出设备、用于传送有线或无线数据传输的设备等)。注意,通用计算机的典型通信接口630、输入设备640、输出设备650和存储设备660是本领域技术人员公知的,本文将不再详细描述。

图6所示的简化计算设备600还可以包括各种计算机可读介质。计算机可读介质可以是可以由计算设备600经由存储设备660访问的任何可用介质,并且包括可移动670和/或不可移除680的易失性和非易失性介质,用于存储诸如计算机可读或计算机可执行指令、数据结构、程序模块或其他数据的信息。

计算机可读介质包括计算机存储介质和通信介质。计算机存储介质是指代有形的计算机可读或机器可读介质或存储设备,诸如数字通用盘(dvd)、蓝光盘(bd)、光盘(cd)、软盘、磁带驱动器、硬盘驱动器、光学驱动器、固态存储器设备、随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、cd-rom或其它光盘存储器、智能卡、闪存(例如、卡、棒和钥匙驱动器)、磁带盒、磁带、磁盘存储器、磁条或其他磁存储设备。此外,传播的信号不包括在计算机可读存储介质的范围内。

诸如计算机可读或计算机可执行指令、数据结构、程序模块等的信息的保留也可以通过使用各种上述通信介质(与计算机存储介质相对)中的任何一个来编码一个或更多调制的数据信号或载波、或其他传输机制或通信协议来完成,并且可以包括任何有线或无线信息传递机制。注意,术语“调制数据信号”或“载波”通常是指代以对信号中的信息进行编码的方式设置或变化其特征中的一个或多个的信号。例如,通信介质可以包括诸如承载一个或多个调制数据信号的有线网络或直接有线连接的有线介质、以及诸如声、射频(rf)、红外、激光的无线介质和用于传输和/或接收一个或多个调制数据信号或载波的其他无线介质。

此外,实施本文所描述的各种锚定环境生成器实现中的一些或全部或其部分的软件、程序和/或计算机程序产品可以从计算机可读或机器可读介质或存储设备以及以计算机可执行指令或其他数据结构形式的通信介质的任何期望的组合中存储、接收、发送或读取。另外,所要求保护的主题可以被实现为使用标准编程和/或工程技术来产生软件、固件625、硬件或其任何组合以控制计算机来实现所公开的主题的方法、装置或制品。本文所用的术语“制品”旨在涵盖可从任何计算机可读设备或介质访问的计算机程序。

本文描述的锚定环境生成器实现可以在由计算设备执行的诸如程序模块的计算机可执行指令的一般上下文中被进一步描述。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。锚定环境生成器实现也可以在分布式计算环境中实现,其中任务由一个或多个远程处理设备执行;或者在通过一个或多个通信网络链接的一个或多个设备的云中执行。在分布式计算环境中,程序模块可以位于包括介质存储设备的本地和远程计算机存储介质中。附加地,上述指令可以部分地或全部地被实现为硬件逻辑电路,硬件逻辑电路可以包括或可以不包括处理器。

备选地或另外地,本文描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,并且在没有限制的情况下,可以使用的示意性类型的硬件逻辑部件包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、系统级芯片系统(soc)、复杂可编程逻辑器件(cpld)等。

6.0其他实施:

为了说明和描述的目的,已经绘制了锚定环境生成器的前述描述。这并不旨在是穷举的,或将所要求保护的主题限制为所公开的精确形式。根据上述教导,许多修改和变化是可能的。此外,应当注意,上述替代实现中的任何一个或全部可以在被期望形成锚定环境生成器的附加混合实现的任何组合中使用。它旨在,锚定环境生成器的范围不由该详细描述限制,而是由附到其的权利要求限制。虽然主题已经以特定于结构特征和/或方法动作的语言描述,但是应当理解,在所附权利要求中限定的主题不必限于上述具体特征或动作。相反,上述特定特征和动作被公开为实施权利要求的示例形式,并且其他等同特征和动作旨在在权利要求的范围内。

上面已经描述的内容包括示例实现。为了描述所要求保护的主题的目的,当然不可能描述部件或方法的每个可想到的组合,但是本领域普通技术人员中的一个可以识别,许多进一步的组合和排列是可能的。因此,所要求保护的主题旨在包含落在上述锚定环境生成器的详细描述的精神和范围内的所有这样的变化、修改和变体。

关于由上述部件、装置、电路、系统等执行的各种功能,用于描述这些部件的术语(包括对“装置”的引用),除非另被指出,旨在对应于执行所述部件的指定功能(例如,功能等效)的任何部件,即使在结构上不等同于所公开的结构但执行,其在本文中执行被图示的所要求保护的主题的示例性方面的功能。在这方面,还将认识到,前述实现包括系统以及具有用于执行所要求保护的主题的各种方法的动作和/或事件的计算机可执行指令的计算机可读存储介质。

存在实现前述实现(诸如适当的应用程序编程接口(api)、工具包、驱动器代码、操作系统、控制、独立或可下载的软件对象等)的多种方式,其启动应用和服务以使用本文描述的实现。所要求保护的主题从api(或其他软件对象)的观点以及从根据本文所阐述的实现进行操作的软件或硬件对象的角度观点来考虑这种使用。因此,本文描述的各种实现可以具有完全以硬件、或者部分地以硬件并且部分地以软件或完全以软件的方面。

已经关于几个部件之间的交互描述了上述系统。应当理解,这样的系统和部件可以包括那些部件或指定的子部件、指定部件或子部件中的一些、和/或附加部件,并且根据前述的各种排列和组合。子部件还可以被实现为通信地耦合到其他部件而不是包括在父部件(例如,分层部件)内的部件。

另外,应当注意,一个或多个部件可以被组合入提供聚合功能的单个部件或被分成几个单独的子部件,并且诸如管理层的任何一个或多个中间层可以被提供以通信地耦合到这样的子部件以便于提供集成的功能。本文描述的任何部件还可以与本文未具体描述但本领域技术人员通常已知的一个或多个其它部件进行交互。

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