确定虚拟内容片段的内容姿态的制作方法

文档序号:22342406发布日期:2020-09-25 18:14阅读:99来源:国知局
确定虚拟内容片段的内容姿态的制作方法

本发明涉及用于确定虚拟内容片段的内容姿态的方法、姿态确定器、计算机程序和计算机程序产品。



背景技术:

混合现实(mr)被预见变成联网社会中的集成技术,并且有力地扰乱消费者电子产品市场。混合现实涵盖增强现实(ar)和增强虚拟性(av)。

ar在这里用于表示向用户呈现现实世界对象和计算机渲染的内容的组合的概念。具体地,ar的一个实现意味着经由透视(see-through)头戴式显示器(hmd)在用户的世界视野上将一个或多个虚拟对象层叠在现实前面。ar的一个应用是允许用户远程地并且以3d(三维)观看和交互,就好像每个参与者共享相同的物理空间。因此,远程通信和交互可以变得与面对面交流一样自然。在av中,用户观看到如由hmd相机捕获并且随后与计算机渲染的内容一起呈现在显示器上的现实世界对象。因此,在av中,显示器是非透视的。

在2016年,microsoft推出了hololens,一种移动arhmd。由包括meta和magicleap的其它公司正在推出若干其它hmd,这些hmd被设置成更进一步改进ar技术。

在虚拟现实(vr)中,用户沉浸在所有内容是虚拟的虚拟环境中。vr应用中的一些是游戏、音乐会、体育等的360度直播视频消费、教育和训练目的等等。vr内容经由非透视hmd(例如oculusrift、htcvive、googledaydream或samsunggearvr)显示。

当mr或vr的虚拟内容片段要被放置在用户的视野中时,此虚拟内容片段被放置处于内容姿态。姿态定义了位置(在三维中)和取向(在三维中)两者。

在现有技术中,在诸如microsofthololens或googletango的装置中,虚拟内容被存储并被附连到装置可使用装置的相机检测的某些视觉特征(空间锚)。当用户返回到相同位置时,执行视觉搜索和匹配,以使由装置的相机所观察到的当前视觉特征与先前存储的视觉特征相关。这样的解决方案的问题在于,其在计算上非常密集,因为装置必须检查环境(使用若干相机,如hololens的情况),并且执行详细的图像分析以推断特定的视觉特征并执行匹配,所述匹配包括来自所有先前访问的位置的内容。这要求大量的处理能力,并且因此要求电池消耗。



技术实现要素:

目的是提供更高效的方式来确定虚拟内容的姿态。

根据第一方面,提供了一种用于确定虚拟内容片段的内容姿态的方法。所述方法在姿态确定器中执行并且包括以下的步骤:获取所述锚定装置的第一锚姿态;确定第一内容姿态,所述第一内容姿态是与所述第一锚姿态相关的虚拟内容片段的姿态;存储与所述第一锚姿态相关的所述第一内容姿态;确定用户装置需要确定所述虚拟内容片段的内容姿态;获取所述锚定装置的第二锚姿态;检索所存储的第一内容姿态;基于所述第一内容姿态和所述第二锚姿态来确定所述虚拟内容片段的第二内容姿态;以及在包括显示器的用户装置上渲染处于所述第二内容姿态的所述虚拟内容片段。

所述方法可以进一步包括以下的步骤:获取姿态不确定性指示符,所述姿态不确定性指示符指示所述锚定装置的所述姿态的不确定性的程度;以及基于由所述用户装置的相机捕获的视觉特征来确定第二内容姿态,所述视觉特征与对应的存储的特征姿态匹配。在这样的情况下,当所述不确定性指示符小于阈值时,执行基于所述第一内容姿态来确定第二内容姿态的所述步骤;以及当所述不确定性指示符大于所述阈值时,执行基于视觉特征来确定第二内容姿态的所述步骤。

所述阈值可以取决于所述虚拟内容片段。

所述方法可以进一步包括以下的步骤:基于所述虚拟内容片段的标识的重新定位来调整所述阈值。

所述方法可以进一步包括以下的步骤:获取指示所述锚定装置自从捕获所述第一锚姿态以来已经移动的移动标志。在这样的情况下,是执行基于所述第一内容姿态来确定第二内容姿态的所述步骤还是执行基于视觉特征来确定第二内容姿态的所述步骤的确定也基于所述移动标志。

所述方法可以进一步包括以下的步骤:获取指示所述锚定装置自从捕获所述第一锚姿态以来已经移动的移动标志;以及基于由所述用户装置的相机捕获的视觉特征来确定第二内容姿态,所述视觉特征与对应的存储的特征姿态匹配。在这样的情况下,当所述移动标志指示没有移动时,执行基于所述第一内容姿态来确定第二内容姿态的所述步骤;以及当所述移动标志指示移动时,执行基于视觉特征来确定第二内容姿态的所述步骤。

获取第一锚姿态的所述步骤可以包括接收在所述锚定装置的坐标系中的所述第一锚姿态,并且确定在所述用户装置的坐标系中的所述第一锚姿态;存储所述第一内容姿态的所述步骤可以包括在存储之前确定在所述锚定装置的所述坐标系中的所述第一内容姿态;获取所述第二锚姿态的所述步骤可以包括接收在所述锚定装置的坐标系中的所述第二锚姿态;以及确定第二内容姿态的所述步骤可以包括确定在所述用户装置的所述坐标系中的所述锚定装置的所述姿态。

根据第二方面,提供了一种用于确定虚拟内容片段的内容姿态的姿态确定器。所述姿态确定器包括:处理器;以及存储器,所述存储器存储指令,所述指令在由所述处理器执行时使所述姿态确定器:获取所述锚定装置的第一锚姿态;确定第一内容姿态,所述第一内容姿态是与所述第一锚姿态相关的虚拟内容片段的姿态;存储与所述第一锚姿态相关的所述第一内容姿态;确定用户装置需要确定所述虚拟内容片段的内容姿态;获取所述锚定装置的第二锚姿态;检索所存储的第一内容姿态;基于所述第一内容姿态和所述第二锚姿态来确定所述虚拟内容片段的第二内容姿态;以及在包括显示器的用户装置上渲染处于所述第二内容姿态的所述虚拟内容片段。

所述姿态确定器可以进一步包括指令,所述指令在由所述处理器执行时使所述姿态确定器:获取姿态不确定性指示符,所述姿态不确定性指示符指示所述锚定装置的所述姿态的不确定性的程度;以及基于由所述用户装置的相机捕获的视觉特征来确定第二内容姿态,所述视觉特征与对应的存储的特征姿态匹配。在这样的情况下,当所述不确定性指示符小于阈值时执行用于基于所述第一内容姿态来确定第二内容姿态的所述指令;以及当所述不确定性指示符大于所述阈值时,执行用于基于视觉特征来确定第二内容姿态的所述指令。

所述阈值可以取决于所述虚拟内容片段。

所述姿态确定器可以进一步包括指令,所述指令在由所述处理器执行时使所述姿态确定器:基于所述虚拟内容片段的标识的重新定位来调整所述阈值。

所述姿态确定器可以进一步包括指令,所述指令在由所述处理器执行时使所述姿态确定器:获取指示所述锚定装置自从捕获所述第一锚姿态以来已经移动的移动标志。在这样的情况下,是执行用于基于所述第一内容姿态来确定第二内容姿态的所述指令还是执行用于基于视觉特征来确定第二内容姿态的所述指令的确定也基于所述移动标志。

所述姿态确定器可以进一步包括指令,所述指令在由所述处理器执行时使所述姿态确定器:获取指示所述锚定装置自从捕获所述第一锚姿态以来已经移动的移动标志;以及基于由所述用户装置的相机捕获的视觉特征来确定第二内容姿态,所述视觉特征与对应的存储的特征姿态匹配。在这样的情况下,当所述移动标志指示没有移动时,执行用于基于所述第一内容姿态来确定第二内容姿态的所述指令;以及当所述移动标志指示移动时,执行用于基于视觉特征来确定第二内容姿态的所述指令。

用于获取第一锚姿态的所述指令可以包括指令,该指令在由所述处理器执行时使所述姿态确定器接收在所述锚定装置的坐标系中的所述第一锚姿态,并且确定在所述用户装置的坐标系中的所述第一锚姿态;用于存储所述第一内容姿态的所述指令可以包括指令,该指令在由所述处理器执行时使所述姿态确定器在存储之前确定在所述锚定装置的所述坐标系中的所述第一内容姿态;用于获取所述第二锚姿态的所述指令可以包括指令,该指令在由所述处理器执行时使所述姿态确定器接收在所述锚定装置的坐标系中的所述第二锚姿态;以及用于确定第二内容姿态的所述指令可以包括指令,该指令在由所述处理器执行时使所述姿态确定器确定在所述用户装置的所述坐标系中的所述锚定装置的所述姿态。

根据第三方面,提供了一种姿态确定器,其包括:用于获取所述锚定装置的第一锚姿态的部件;用于确定第一内容姿态的部件,所述第一内容姿态是与所述第一锚姿态相关的虚拟内容片段的片段的姿态;用于存储与所述第一锚姿态相关的所述第一内容姿态的部件;用于确定用户装置需要确定所述虚拟内容片段的内容姿态的部件;用于获取所述锚定装置的第二锚姿态的部件;用于检索所存储的第一内容姿态的部件;用于基于所述第一内容姿态和所述第二锚姿态来确定所述虚拟内容片段的第二内容姿态的部件;以及用于在包括显示器的用户装置上渲染处于所述第二内容姿态的所述虚拟内容片段的部件。

根据第四方面,提供了一种用于确定虚拟内容片段的内容姿态的计算机程序。该计算机程序包括计算机程序代码,所述计算机程序代码当在姿态确定器上运行时使所述姿态确定器:获取所述锚定装置的第一锚姿态;确定第一内容姿态,所述第一内容姿态是与所述第一锚姿态相关的虚拟内容片段的姿态;存储与所述第一锚姿态相关的所述第一内容姿态;确定所述用户装置需要确定所述虚拟内容片段的内容姿态;获取所述锚定装置的第二锚姿态;检索所存储的第一内容姿态;基于所述第一内容姿态和所述第二锚姿态来确定所述虚拟内容片段的第二内容姿态;以及在包括显示器的用户装置上渲染处于所述第二内容姿态的所述虚拟内容片段。

根据第五方面,提供了一种计算机程序产品,其包括根据第四方面所述的计算机程序以及计算机可读部件,在所述计算机可读部件上存储所述计算机程序。

一般地,除非本文明确地以其它方式定义,否则权利要求中使用的所有术语要根据它们在技术领域中的普通含义来解释。除非以其它方式明确陈述,否则对“一(a/an)/该元件、设备、组件、部件、步骤等”的所有引用要被开放地解释为指该元件、设备、组件、部件、步骤等的至少一个实例。除非明确陈述,否则本文所公开的任何方法的步骤不必须以所公开的确切顺序来执行。

附图说明

现在参照附图通过示例的方式来描述本发明,其中:

图1是示出了在其中可应用本文所呈现的实施例的环境的示意图;

图2a-b是示出了在其中可实现姿态确定器的实施例的示意图;

图3a-b是示出用于确定虚拟内容片段的内容姿态的方法的实施例的流程图;

图4是示出根据一个实施例的图2a-b的姿态确定器1的功能模块的示意图;

图5是示出图2a-b的姿态确定器1的组件的示意图;以及

图6示出了包括计算机可读部件的计算机程序产品的一个示例。

具体实施方式

现在将在后文中参考附图更充分地描述本发明,附图中示出了本发明的某些实施例。然而,本发明可以以许多不同的形式体现,并且不应该被解释为限于本文阐述的实施例;相反,通过示例的方式提供这些实施例,使得此公开将是彻底和完整的,并且将向本领域技术人员充分传达本发明的范围。在整个描述中,类似的数字指类似的元件。

本文呈现的实施例基于利用外部装置(表示为锚定装置),所述外部装置具有姿态数据来确定虚拟内容片段的内容姿态。更具体地,虚拟内容片段的内容姿态首先与锚定装置相关地被锚定(即,其位置与锚定装置相关地被确定)在房间或其它明确定义的物理空间中,并且被存储。随后,当重新进入该空间时,通过获得锚定装置的当前位置,可基于存储的内容姿态和锚定装置的当前位置来确定当前内容姿态。当以这种方式确定内容姿态时,不需要资源密集视觉特征匹配,因此减少了对于确定内容姿态所要求的资源使用和时间。

图1是示出了在其中可应用本文所呈现的实施例的环境的示意图。图1中示出的环境用于mr或vr,其中用户5穿戴诸如头戴式显示器(hmd)的用户装置2。当用于mr时,用户装置2允许用户5观看现实世界对象11-15和虚拟对象10a-10b两者。第一虚拟对象10a是虚拟圣诞树。第二虚拟对象10b是虚拟屏幕,其例如用于示出图片、视频流或玩游戏。

当用于vr时,用户装置2允许用户5仅观看虚拟对象10a-10b。用户装置2包含传感器(例如,加速度计、陀螺仪等),例如作为惯性测量单元(imu)的一部分。这由用户装置用来确定用户装置2在三维空间中的位置和取向。位置和取向被统称为姿态。姿态在本文称为p(i,j),其中i是元素的标记,并且j是坐标系的标记。姿态是6元素向量,包括3d位置(x,y,z)和取向(横滚(roll),俯仰(pitch),偏转(yaw))。

用户装置2包括用于捕获用户5周围的环境的图像的一个或多个相机20。每个相机20可在可见光范围(也称为rgb、红绿蓝)和/或红外范围中,并且甚至可以是热相机。

用户装置2连接到网络9。网络9可以是例如局域网(lan)和/或诸如因特网的广域网(wan)。用户装置2和网络9之间的连接可基于无线技术,诸如wifi(ieee802.11x标准中的任何标准)、蓝牙等。备选地或附加地,用户装置2和网络之间的连接基于蜂窝网络连接,例如符合5gnr(新空口)、lte(长期演进)、lte-高级、w-cdma(宽带码分复用)、edge(增强数据速率gsm(全球移动通信系统)演进)、gprs(通用分组无线电业务)、cdma2000(码分多址2000)或者任何其它当前或未来无线网络中的任何一个或组合。服务器3也连接到网络9。

在用户附近,存在锚定装置4。锚定装置4是电子装置,其能够确定其姿态(例如,在imu的辅助下)并且可将其姿态传递到其它装置。锚定装置4可具有不同于充当锚定装置的其它主要目的。例如,锚定装置4可被实现为智能扬声器、计算机、智能灯、智能冰箱、智能洗衣机、智能咖啡机等。可以存在多于一个锚定装置4。每个锚定装置4可以是基本上静态的装置,诸如智能冰箱或智能洗衣机,或者是更可移动的装置,诸如个人数字助理或智能扬声器。在这样的情况下,静态装置可以是优选的。

在用户周围存在若干视觉元素,诸如门11和门框12。此外,存在附加的视觉元素,诸如地板线13、墙壁之间的拐角14和天花板线15。

当视觉特征用于姿态确定、补充使用锚定装置4的姿态确定时,从用户装置2和/或服务器3的存储设备获得环境数据(二维或三维)。关键元素在捕获的图像中被标识,并与环境数据比较,以允许在环境内定位用户装置2,这可选地还使用来自imu的数据。关键元素可以是视觉元素11-15的任何子集(或全部)。要注意到,视觉元素取决于用户5所位于的地方而变化。地图构建(mapping)也可同时发生,由此更新环境数据。在跟踪区域内用户的当前位置和取向的同时学习所述区域的过程被称为同时定位和地图构建或slam。

例如可使用诸如microsofthololens或odgr7/r8/r9的hmd来实现用户装置2。hmd还可以是用于vr应用的oculusrift或htcvive。使用可选地具有光学增强的另一类型的可穿戴装置、智能电话和/或平板计算机(例如googlecarboard、miraprism等等)来实现用户装置2也是可能的。用户装置2还可以是智能电话,诸如googletango电话(lenovo和asus)或具有arkit(来自apple)或arcore(来自google)的iphone或android电话。要注意到,本文使用的术语“计算机”要被解释为具有数字处理能力而无论大小的任何电子装置。因此,术语计算机包括诸如服务器、桌上型计算机、膝上型计算机、平板计算机、智能电话、移动电话、智能手表、微控制器等的装置。

要注意到,图1的环境仅是其中可应用本文所呈现的实施例的一个示例。本文呈现的实施例可同样好地应用在诸如用于自动驾驶车辆、工业应用、室内机器人等的其它环境中。

图2a-b是示出了其中可实现姿态确定器1的实施例的示意图。姿态确定器1是确定虚拟内容的内容姿态的装置。姿态确定器1可被实现为独立装置,或者其可形成主机装置的一部分,如图2a-b中示出的。

在图2a中,在用户装置2中实现姿态确定器。用户装置2因此是姿态确定器1的主机装置。在这样的实施例中,姿态确定器被提供有来自一个或多个锚定装置的姿态,并且从用户装置内检索相关姿态。

在图2b中,在服务器3中实现姿态确定器。服务器3因此是用于姿态确定器1的主机装置。在这样的实施例中,姿态确定器被提供有不仅来自一个或多个锚定装置而且还来自用户装置的姿态。

图3a-b是示出用于确定虚拟内容片段的内容姿态的方法的实施例的流程图。在姿态确定器中执行所述方法。

所述方法在检测到需要锚定虚拟内容片段时开始。要注意到,虽然下面的步骤涉及特定的虚拟内容片段,但是涉及虚拟内容片段的所有步骤可被扩展以应用于多个虚拟内容片段。

在获取第一锚姿态的步骤40中,姿态确定器获取锚定装置的第一锚姿态,其例如形成通过无线通信信道从锚定装置接收的信号的一部分。这可通过接收在锚定装置的坐标系中的第一锚姿态,并确定在用户装置的坐标系中的第一锚姿态来实现。

换言之,锚定装置将其第一锚姿态传送到姿态确定器,所述第一锚姿态在锚定装置坐标系中。我们通过p(a,a)来表示这个姿态。

姿态确定器然后可确定在用户装置坐标系中的锚定装置的姿态,我们通过p(a,u)来表示该姿态。这样的确定可使用本领域本身中提出的各种定位技术和方法来执行,诸如经由视觉部件(例如,基于被动或主动标记或者基于非标记的方法)、基于无线电的部件(例如,wifi、超宽带、gps(全球位置系统)等)、音频部件、电磁部件等。

基于知道p(a,a)和p(a,u),可计算变换矩阵tua(从用户装置到锚装置的坐标系变换),其使两个姿态相关,即p(a,a)=tua*p(a,u)。为了确定tua的鲁棒值,可确定各种姿态p(a,u),并且例如可执行考虑各种p(a,u)值的tua的最小二乘估计。

在确定第一内容姿态的步骤42中,姿态确定器确定第一内容姿态。第一内容姿态是与第一锚姿态相关的虚拟内容片段的姿态。这可通过在存储之前确定在锚定装置的坐标系中的第一内容姿态来实现。

这可根据以下来计算。由于变换矩阵tua是已知的,因此通过执行以下计算:p(v,a)=tua*p(v,u),虚拟内容片段的第一内容姿态可从用户装置坐标系变换到锚定装置坐标系中。

p(v,a)的值现在可用作虚拟内容片段到锚定装置的锚。

相同的操作可针对在环境中发现的视觉特征而执行作为p(vf,a),其中vf表示“视觉特征”。

在存储第一内容姿态的步骤44中,姿态确定器存储例如在锚定装置的坐标系中的与第一锚姿态相关的第一内容姿态。

在确定需要确定内容姿态的步骤45中,姿态确定器确定用户装置需要确定虚拟内容片段的内容姿态。确定内容姿态的需要可通过用户装置的启用(例如装置被开启,用户从当前位置请求加载虚拟内容,或者用户重新进入物理空间,在所述物理空间中先前已经执行了如本文描述的锚定)来被触发。

在接收第二锚姿态的步骤46中,姿态确定器获取锚定装置的第二锚姿态。第二锚姿态可在锚定装置的坐标系中被接收。第二锚姿态被表示为p’(a,a)。当锚定装置是基本上静态的装置(诸如智能冰箱)时,第二锚姿态将最可能与第一锚姿态相同,而如果锚定装置是更可移动的,诸如智能灯,则锚定装置已经移动是更可能的,意味着第二锚姿态不同于第一锚姿态。

在检索存储的内容姿态的步骤48中,姿态确定器检索所存储的第一内容姿态,即p(v,a)。

在基于第一内容姿态来确定第二内容姿态的步骤50中,姿态确定器基于第一内容姿态和第二锚姿态来确定虚拟内容片段的第二内容姿态。这可通过确定在用户装置的坐标系中的锚定装置的姿态来实现。

姿态确定器首先使用本领域本身中已知的技术和方法来相对于用户装置坐标系确定在用户装置坐标系中的锚定装置的姿态p’(a,u)。

然后,可如上面所执行的那样计算两个坐标系之间的新变换tua’,即,p’(a,a)=tua’*p’(a,u)。作为附注,如果锚定装置和用户装置的坐标系保持相同,则变换将仍然相同,在这种情况下tua’将与tua相同。

虚拟内容片段相对于用户装置坐标系的姿态可然后被确定为p’(v,u)=tua-1*p(v,a),其中已从存储设备检索到p(v,a)。

在渲染的步骤52中,姿态确定器在包括显示器的用户装置上渲染处于第二内容姿态的虚拟内容片段。这可包括例如当姿态确定器在服务器中实现并且使用用户装置执行渲染时,触发实际渲染在单独的装置上发生。

因此,用户装置使用姿态p’(v,u)来显示虚拟内容片段。实现显示而不采用如现有技术中的视觉匹配。

现在参见图3b,将仅描述与图3a的步骤相比的新的或修改的步骤。

在可选的获取姿态不确定性指示符的步骤47中,姿态确定器获取姿态不确定性指示符。姿态不确定性指示符指示锚定装置的姿态的不确定性的程度。如下面更详细地解释的,不确定性指示符可用于确定是否要使用上面描述的内容姿态的确定,或者是否要替代地使用(基于视觉特征的)常规方法。

可根据各种方法来计算不确定性指示符,所述方法取决于所使用的位置技术。作为示例,如果锚定装置拥有imu以计算其姿态,则imu受噪声的影响,该噪声可引入与加速度的持续时间和平方率成比例的位置漂移。因此,无论何时锚定装置移动,其姿态的不确定性增长。

可相对于位置(x,y,z)和取向(横滚、俯仰、偏转)单独地给出不确定性指示符。这是由于具有不同估计质量的不同传感器可用于计算位置和取向,并且锚定装置可以改变其位置并且不改变其取向,或者反之。

在可选的获取移动标志的步骤49中,姿态确定器获取指示锚定装置自从捕获第一锚姿态以来已经移动的移动标志。可以使用其它比imu更简单的传感器(例如对接站(dockingstation)中的接触传感器)来确定移动标志。当然,也可使用imu来确定移动标志。可利用对接站中的接触传感器的使用来重置任何检测到的移动。例如,如果包括imu的膝上型计算机充当锚定装置,则一旦脱离(undocked),可使用imu来检测其移动。一旦膝上型计算机再次对接,所有的移动都被重置,并且移动标志可被设置成“没有移动”,而不管由imu测量引入的可能累积的不准确性和不确定性。

要注意到,可在不执行步骤49的情况下执行步骤47,并且反之亦然,或者可执行两个步骤。

在可选的有条件的使用存储的内容姿态的步骤55中,姿态确定器确定是否使用存储的内容姿态。这可基于不确定性指示符,使得当不确定性指示符小于阈值(即,比某个阈值不确定性更小)时,确定使用所存储的内容。在一个实施例中,当多个锚定装置可用时,具有最低不确定性的(一个或多个)锚定装置用于此步骤中的以及随后在方法中的确定。

阈值可取决于虚拟内容片段,例如虚拟内容片段的类型和属性。作为示例,如果虚拟内容片段与用户在起居室中已经玩过的动态游戏的项目相关,并且当重新进入物理空间时应该再次显示游戏的项目,则可允许游戏对象离其原始位置多达50cm。此外,可允许这样的对象不具有最大允许的取向误差,因为对象的取向是什么可能不重要。在另一方面,桌子顶部上的虚拟植物可能不被允许具有大于10cm的误差,并且取向误差可以是小的,以确保虚拟植物的花指向正确的方向。换句话说,动态内容可配置成允许比静态内容更大的不确定性。而且,阈值可以是复合值,对于位置和取向独立地考虑该复合值。

备选地或附加地,是否使用所存储的内容姿态的确定还进一步基于移动标志,例如,当没有发生锚定装置的移动时,则确定使用所存储的内容姿态。当存在多个锚定装置时,可优先考虑未移动的(一个或多个)锚定装置(例如,通过忽略其它(一个或多个)锚定装置)。

无论何时锚姿态被报告给姿态确定器(步骤40和步骤46),可重置不确定性指示符,因为在这样的时刻,装置可重置其姿态,并且因此重置其不确定性。

当确定使用所存储的内容姿态时,所述方法继续到基于第一内容姿态来确定第二内容姿态的步骤50。否则,所述方法继续到可选的基于视觉特征来确定第二内容姿态的步骤51。

在可选的基于视觉特征来确定第二内容姿态的步骤51中,姿态确定器基于视觉特征来确定第二内容姿态。视觉特征由用户装置的相机捕获。视觉特征与对应的存储的特征姿态匹配以确定虚拟内容片段的第二姿态。

当借助于锚定装置可获得的第二内容姿态不够好时,可能需要执行此步骤。

相对于用户装置坐标系的视觉特征的姿态可然后被确定为p’(vf,u)=tua-1*p(vf,a)。

然而,即使不确定,视觉特征的姿态的知识也允许姿态确定器显著收窄要搜索的视觉特征及其预期位置两者的搜索空间,还使步骤51的视觉匹配比现有技术中显著地更快且在计算上更高效并且因此更能量高效。

在可选的调整阈值的步骤54中,姿态确定器基于虚拟内容片段的标识的重新定位来调整阈值。例如,可根据识别的用户交互动态地调整阈值。作为示例,如果用户在虚拟内容片段被显示之后重新定位虚拟内容片段,则根据用户调整来减少阈值。这样的阈值减少不需要完全对应于用户调整,但是可随时间而补偿用户调整。例如,如果用户将虚拟内容片段的姿态调整了x,即x=|padjusted(v,u)-poriginal(v,u)|,则阈值被调整为阈值=阈值-(x/n),其中n>1。以这种方式,阈值被调整成逐渐变得更严格。n是可配置的,并且可被设置成任何值以控制阈值调整的积极性(aggressiveness)。较低的n意味着更积极的阈值调整。

可选地,当调整阈值时,考虑用户进行调整所花费的时间。例如,快速调整意味着调整是显著的并且对用户重要,在这种情况下更积极地调整阈值。在另一方面,如果用户调整花费长时间,则这指示调整重要性较小,在这种情况下,较不积极地或甚至根本不调整阈值。

忽视用户已经调整虚拟内容片段多少的另一类似选项是阈值=阈值/n,其中n>1。也可基于自动调整(即,不是由用户进行的调整)来调整阈值。例如,可零星地或周期性地触发使用相机图像的视觉特征匹配(因为这些可能用于slam),以检查虚拟内容是否具有相对于现实世界的正确姿态。可通过将虚拟内容的姿态与已经存储的视觉特征比较来对这进行检查。如果差异太大,则对于应用和/或虚拟内容的类型调整阈值。

图4是示出根据一个实施例的图2a-b的姿态确定器1的功能模块的示意图。使用软件指令(诸如在姿态确定器1中执行的计算机程序)实现所述模块。备选地或附加地,使用硬件(诸如asic(专用集成电路)、fpga(现场可编程门阵列)或离散逻辑电路中的任何一个或多个)实现所述模块。所述模块对应于图3a和3b中示出的方法中的步骤。

第一锚姿态接收器70对应于步骤40。第一内容姿态确定器72对应于步骤42。第一内容姿态存储器74对应于步骤44。内容姿态需要评估器步骤75对应于步骤45。第二锚姿态接收器76对应于步骤46。不确定性指示符接收器77对应于步骤47。存储的第一内容姿态检索器78对应于步骤48。移动标志获取器79对应于步骤49。第二内容姿态确定器80对应于步骤50和步骤51。渲染器82对应于步骤52。阈值调整器84对应于步骤54。

图5是示出图2a-b的姿态确定器1的组件的示意图。要注意到,当可适用时,可与诸如用户装置或服务器的主机装置共享所提到的组件中的一个或多个。使用能够执行存储在存储器64(其因此可以是计算机程序产品)中的软件指令67的适合的中央处理单元(cpu)、多处理器、微控制器、数字信号处理器(dsp)、专用集成电路等中的一个或多个的任合组合来提供处理器60。处理器60可配置成执行上面参考图3a-b描述的方法。

存储器64可以是随机存取存储器(ram)和只读存储器(rom)的任何组合。存储器64还包括永久性存储设备,其例如可以是磁存储器、光存储器、固态存储器或甚至远程安装的存储器中的任何单独一个或组合。

还提供数据存储器66以用于在处理器60中执行软件指令期间读取和/或存储数据。数据存储器66可以是随机存取存储器(ram)和只读存储器(rom)的任何组合。

姿态确定器1进一步包括用于与其它外部实体通信的i/o接口62。可选地,i/o接口62还包括用户接口。

姿态确定器1的其它组件被省略以便不使本文所呈现的概念模糊。

图6示出了包括计算机可读部件的计算机程序产品90的一个示例。在此计算机可读部件上,可存储计算机程序91,所述计算机程序可使处理器执行根据本文描述的实施例的方法。在此示例中,计算机程序产品是光盘,诸如cd(压缩盘)或dvd(数字多功能盘)或蓝光盘。如上面所解释的,计算机程序产品还可以被体现在装置的存储器中,诸如图5的计算机程序产品64。虽然计算机程序91在这里被示意性地示出为所描绘的光盘上的轨道,但是可采用适合用于计算机程序产品的任何方式(诸如可移动固态存储器,例如通用串行总线(usb)驱动器)存储计算机程序。

上面已经参考几个实施例主要描述了本发明。然而,如由本领域技术人员容易意识到的,不同于上面公开的实施例的其它实施例在如由所附专利权利要求定义的本发明的范围内同样是可能的。

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