首页> 中国专利> 在扩增现实系统中将虚拟图像锚定到真实世界表面

在扩增现实系统中将虚拟图像锚定到真实世界表面

摘要

一种头戴式设备提供用于观看数据和使得能在多个用户间进行协作的身临其境的虚拟或扩增现实体验。在虚拟或扩增现实系统中渲染图像可包括用身佩式相机和传感器阵列捕捉图像和空间数据,接收指示第一锚表面的输入,计算相对于该身佩式相机的参数,并且显示虚拟对象以使得该虚拟对象显现为锚定于所选的第一锚表面。进一步的操作可包括接收指示捕捉到的图像内与第一锚表面不同的一第二锚表面的第二输入,计算相对于第二锚表面的参数,并显示虚拟对象以使得该虚拟对象显现为锚定于所选的第二锚表面并从第一锚表面移过来。

著录项

  • 公开/公告号CN103460256A

    专利类型发明专利

  • 公开/公告日2013-12-18

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN201280016357.8

  • 申请日2012-03-29

  • 分类号G06T19/00(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人袁逸

  • 地址 美国加利福尼亚州

  • 入库时间 2024-02-19 22:49:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-09-14

    授权

    授权

  • 2014-01-15

    实质审查的生效 IPC(主分类):G06T19/00 申请日:20120329

    实质审查的生效

  • 2013-12-18

    公开

    公开

说明书

相关专利申请的交叉引用

本专利申请要求于2011年3月29日提交的题为“Systems and Methods for  Gesture Driven Interaction for Digitally Augmented Physical Spaces(用于数字扩增物 理空间的姿势驱动式交互的系统和方法)”的美国临时专利申请S/N.:61/468,937 的优先权权益,其全部内容通过援引纳入于此以用于所有目的。

发明领域

本申请涉及使用头戴式显示器、或诸如智能电话或平板计算机之类的其他移 动设备的扩增或虚拟现实系统,其可将虚拟对象或界面置于所选物理表面上,以使 得单个用户或多个用户能进行协作以观看该物理表面上的虚拟对象或者与之交互。 背景

人们越来越多地在地球各处针对包括演示、文档、视频、图表和照片等的各 种媒体进行协作。一般而言,会议室中的大型平板显示器是观看媒体(包括 演示)的极好的源。此外,一些家具可包括触摸屏输入设 备,因此用户能直接在桌面的表面上观看视频。通常,此类大型物品非常昂贵并且 为处于远程位置的各用户之间的协作所提供的支持是有限的。个人将从能够摆脱这 些约束并获得既在共处一地的各用户也在各远程用户之间共享的大屏幕虚拟或扩 增现实体验中获益。

发明概述

各种实施例包括在扩增现实系统中渲染虚拟图像的方法,这些方法包括:用 身佩式相机捕捉图像,用身佩式传感器阵列捕捉空间数据,识别所捕捉到的图像内 的物体,接收指示所捕捉到的图像中与位于该图像中的第一表面相对应的第一锚表 面的第一用户输入,计算包括与第一锚表面相对应的相对于该身佩式相机的距离和 取向等的参数,显示虚拟对象以使得该虚拟对象显现为锚定于所选的第一锚表面, 接收指示捕捉到的图像内与第一锚表面不同的第二锚表面的第二输入,其中该第二 锚表面对应于位于该图像中的第二表面,并且第一和第二表面可以是不同的,计算 包括与第二锚表面相对应的相对于该身佩式相机的距离和取向等的参数,以及显示 该虚拟对象以使得该虚拟对象对用户而言显现为被锚定到所选的第二锚表面并且 是从第一锚表面移过来的。在一实施例中,该方法可包括随着用户转动他/她的头 以及关于所选的第一或第二锚表面移动而持续更新所生成的虚拟对象的显示以使 得该虚拟对象显现为锚定于所选的第一或第二锚表面。

在一进一步的实施例中,显示虚拟对象可包括在头戴式显示器上显示该虚拟 对象,并且该方法可进一步包括将视频图像输出为就像在头戴式显示器上显现为锚 定于所选的第一或第二锚表面上那样。在一进一步的实施例中,显示所生成的虚拟 对象以使得该虚拟对象对用户而言显现为锚定于所选的第二锚表面并且是从第一 锚表面移过来的可包括:将该虚拟对象生成为仿效平面屏幕显示器的矩形形状的虚 拟对象,并将所生成的虚拟对象显示在半透明显示器上,其中该虚拟对象叠加在透 过该半透明显示器可见的真实世界表面上。在一进一步的实施例中,第一或第二锚 表面可包括房间中的墙壁,并且随着用户在该房间中四处移动,该虚拟对象保持锚 定在该房间中的该墙壁上。在一进一步的实施例中,显示所生成的虚拟对象以使得 该虚拟对象显现为锚定于所选的第一或第二锚表面可包括:生成虚拟对象以使其显 现为接触第一或第二锚表面并且使得第一或第二锚表面显现为对锚定的虚拟对象 的刚性支撑点。在一进一步的实施例中,显示所生成的虚拟对象以使得该虚拟对象 显现为锚定到所选锚表面可包括:生成虚拟对象以使其显现为与第一或第二锚表面 间隔开但悬浮在相对于第一或第二锚表面间隔开的固定位置。在一进一步的实施例 中,该方法可包括将包括捕捉到的空间数据、所生成的虚拟对象和该图像的数据传 送到第二头戴式显示器。

在一进一步的实施例中,该方法可包括利用话筒从用户接收音频,对接收到 的音频应用检测算法以检测预定音频信号,并在检测到预定音频信号时实现预定义 用户输入。在一进一步的实施例中,对接收到的音频应用检测算法以检测预定音频 信号可包括对接收到的音频应用检测算法以检测由用户说出的与预定义用户输入 相对应的预定音频信号。在一进一步的实施例中,与检测到的预定音频信号相对应 的预定义用户输入可以是以下之一:第一输入、第二输入、或对第一和第二输入之 一的确认。在一进一步的实施例中,该方法可包括用与头戴式显示器搭载和布置在 一起的身佩式相机来捕捉图像,并在头戴式显示器上显示虚拟对象。在一进一步的 实施例中,该身佩式相机和头戴式显示器包括身佩式设备,该方法进一步包括在该 身佩式设备与第二身佩式设备之间建立无线数据链路,经由该无线数据链路从第二 身佩式设备接收音频数据,以及使用接收到的音频数据来向用户输出音频。

在一进一步的实施例中,该方法可包括经由无线数据链路来接收视频数据, 以及使用接收到的视频数据在头戴式显示器上输出从第二身佩式设备接收到的视 频图像,其中该视频显示了锚定的虚拟对象。在一进一步的实施例中,经由无线数 据链路接收视频数据可包括接收以下一项或多项:虚拟对象的三维模型数据、锚定 表面的三维数据、锚定点的三维数据、三维深度数据、以及三维距离数据。在一进 一步的实施例中,该方法可包括接收指示虚拟对象的待命位置的第三输入,其中该 待命位置可以不同于第一和第二锚表面,计算包括与该待命位置相对应的相对于该 身佩式相机的距离和取向等的参数,以及在该待命位置显示该虚拟对象。在一进一 步的实施例中,该待命位置被显示为自由漂浮在显示器上,其中随着用户转动他/ 她的头以及移动,该虚拟对象在该显示器上显现为可移动的且未连接到该图像中的 各表面。

在一进一步的实施例中,用身佩式相机捕捉图像可包括由全彩摄像机来捕捉 视频数据,并且用身佩式传感器阵列来捕捉空间数据可包括利用距离传感器来捕捉 空间数据以确定距该图像中各物体的距离。在一进一步的实施例中,用身佩式传感 器阵列来捕捉空间数据可包括使用红外激光器和红外传感器来捕捉该图像中各物 体的距离信息。在一进一步的实施例中,该方法可包括基于捕捉到的视频数据和计 算出的空间数据来构建三维地图。

在一进一步的实施例中,该方法可包括利用身佩式相机来跟踪用户的运动, 对跟踪到的用户运动应用检测算法以检测预定姿势,以及在检测到预定姿势时执行 与该预定姿势对应的命令。在一进一步的实施例中,所检测到的预定姿势可以是从 下组中选择的,包括“OK”手势、拳头、打开的手、用一个手指进行指点、用两 个手指进行指点、用三个或四个手指进行指点、向外伸出的手、手旋转、挥手、一 个或多个手指的移动、身体部位或脚的移动、及其任何组合。在一进一步的实施例 中,预定姿势可以是从姿势字典中检索的。在一进一步的实施例中,姿势字典可定 义以下一项或多项:用于目标选择或来回切换的戳姿势、轻拍姿势、或叩击姿势, 用于引导屏幕对象越过屏幕的推姿势,用于向屏幕对象赋予动量的弹拂姿势,用于 旋转屏幕对象的转向姿势,用于缩放操作的抓姿势或拉姿势,用于摇摄操作的双手 移动姿势,用于调整屏幕对象大小的将双手分开姿势,以及用于在媒体中水平滚动 或穿梭的挥扫姿势。在一进一步的实施例中,接收指示捕捉到的图像中的第一锚表 面的第一输入可包括:检测由佩戴者作出的与将捕捉到的图像内的一表面指定为锚 表面的命令相对应的第一预定姿势、并应用该命令,并且接收要在图像中锚定虚拟 对象的第二输入可包括:检测由佩戴者作出的与将锚表面移到捕捉到的图像中的另 一表面的命令相对应的第二预定姿势、并应用该命令。在一进一步的实施例中,第 一和第二检测到的预定姿势中的任一者可包括用户指向捕捉到的图像中的一表面。 在一进一步的实施例中,该方法可包括在接收到第一输入之后继续跟踪用户的运 动,对跟踪到的运动应用检测算法以检测与确认该第一输入的用户输入对应的第三 预定姿势,并响应于第三预定姿势将虚拟对象锚定在所选锚表面上。

进一步的实施例包括系统,该系统可包括第一头戴式或身佩式设备和第二头 戴式或身佩式设备,其中第一头戴式或身佩式设备可包括第一头戴式或身佩式相 机、第一头戴式或身佩式显示器、第一收发机、以及耦合到该第一相机、第一显示 器和第一收发机的第一头戴式或身佩式设备处理器;第二头戴式或身佩式设备包括 第二头戴式或身佩式相机、第二头戴式或身佩式显示器、第二收发机、以及耦合到 该第二相机、第二显示器和第二收发机的第二头戴式或身佩式设备处理器。在进一 步的实施例中,该第一和第二头戴式或身佩式设备可用处理器可执行指令配置成执 行与以上讨论的方法操作相对应的各种操作。进一步的实施例可包括服务器,该服 务器可包括存储器以及耦合到该存储器的服务器处理器,该服务器处理器用服务器 可执行指令配置成执行与以上讨论的各种方法相对应的操作和/或用于经由网络将 信息传送给该第一和第二头戴式或身佩式设备的操作。

进一步的实施例包括计算设备,该计算设备可包括用处理器可执行指令配置 成执行与以上讨论的方法相对应的各种操作的处理器。进一步的实施例包括计算设 备,该计算设备可包括用于执行与以上讨论的方法操作相对应的功能的各种装置。 进一步的实施例包括非瞬态处理器可读存储介质,其上存储有处理器可执行指令, 这些处理器可执行指令配置成使处理器执行与以上讨论的方法相对应的各种操作。 附图简述

纳入于此且构成本说明书一部分的附图解说了本发明的示例性实施例,并与 以上给出的概括描述和下面给出的详细描述一起用来解释本发明的特征。

图1是适合与各种实施例联用的头戴式设备的解说,其中有虚拟对象被锚定 在物理表面上。

图2是两个用户彼此并排站在桌边并佩戴着用于与虚拟对象交互的两个头戴 式设备的解说。

图3是两个用户彼此坐在桌子对面并佩戴着用于与虚拟对象交互的两个头戴 式设备且该虚拟对象为每一用户均正确取向的解说。

图4是在两个不同远程位置处的两个用户佩戴着两个头戴式设备并进行协作 且研究为每一用户均正确取向的相同虚拟对象的解说。

图5A是头戴式设备的数个用于与虚拟对象交互以及生成虚拟对象的组件的 高级组件框图。

图5B是根据另一实施例的使佩戴头戴式设备的用户能与服务器通信的系统 的高级组件框图。

图6是用于使用头戴式设备来将虚拟对象锚定在锚表面上的实施例方法的过 程流程图,其中该虚拟对象在头戴式显示器上保持固定于该锚表面。

图7A是用于将虚拟对象锚定在头戴式设备的显示器中可见的物理表面上的 实施例方法的过程流程图。

图7B是用于藉由输入命令使虚拟对象在至少两个不同锚点或表面之间移动 的实施例方法的过程流程图。

图8A是由头戴式设备来投影虚拟对象以使其看起来锚定在物理表面上、并在 第二头戴式设备上投影第二虚拟对象以使其对于第二用户而言看起来锚定在一不 同物理表面上的实施例方法的过程流程图。

图8B是渲染对于每个用户的视点而言均取向正确的共享虚拟对象的实施例 方法的过程流程图。

图9A和9B是用于使用坐标地图来将虚拟对象锚定在物理表面上并用于使用 第二设备来使用坐标地图将第二虚拟对象锚定在一不同的物理表面上的实施例方 法的过程流程图。

图10是用于发现其他头戴式设备来链接和共享数据的实施例方法的过程流程 图。

图11是用于识别来自用户的姿势和音频两者作为用于控制头戴式设备的经确 认输入命令的实施例方法的过程流程图。

图12是用于使用头戴式设备的捕捉用户的图像以识别姿势来作为输入命令的 实施例方法的过程流程图。

图13是用于控制某些对象在图像内的渲染的实施例方法的过程流程图。

图14是用于使用头戴式设备来捕捉与用户相关联的图像并检测该用户的以及 其他个人的特征、并且当检测到这些其他个人的特征时将虚拟对象叠加在这些其他 个人的特征之上以便不遮蔽该虚拟对象的实施例方法的过程流程图。

图15是示出虚拟对象的头戴式显示器输出的俯视图,其中用户的手以及其他 个人的手遮蔽了该虚拟对象,并且该虚拟对象显示为叠加在这些其他个人的手之上 以使这些其他个人的手看起来是透明的。

图16是头戴式设备的侧视图,其中该头戴式设备经由高速无线数据链路来与 移动通信设备通信,从而在该头戴式设备处的传感器捕捉数据时在该移动通信设备 上执行软件。

图17是用于使用头戴式设备来无线地链接到移动通信设备以交换数据的实施 例方法的过程流程图。

图18是用于使用头戴式设备来扫描区域、计算区域的参数、以及将所计算出 的该区域的参数上传至共享存储器以供另一设备访问的实施例方法的过程流程图。

图19是使用头戴式设备来生成区域的三维模型、用位置数据来给该数据作标 签、并上传该模型以与其他设备共享该数据的实施例方法的过程流程图。

图20是使用头戴式设备来在服务器上执行应用并与其他设备共享该数据的实 施例方法的过程流程图。

图21是使用头戴式设备藉由目录来发现其他头戴式设备以与其他设备共享数 据并进行协作的实施例方法的过程流程图。

图22–23解说了两个头戴式设备访问共享服务或共享存储器以交换扫描的数 据并与彼此协作。

图24是使用头戴式设备来扫描区域、渲染虚拟对象、用位置数据来给计算出 的参数作标签、以及将作了标签的参数上传到共享存储器以惠及其他头戴式设备的 实施例方法的过程流程图。

图25A是若干移动设备与云服务器通信以向该云服务器提供共享数据并允许 新的设备利用该共享数据来扫描区域并对其进行地图绘制的高级解说。

图25B是将作了标签且扫描的参数存储在云服务器中以供第二头戴式设备用 来渲染虚拟对象的方法的过程流程图。

图26–28B是使用头戴式设备在显示器上渲染虚拟对象并在该显示器上将该 虚拟对象叠加在身体部位之上的实施例方法的过程流程图。

图29是使用头戴式设备和云服务器来与若干其他头戴式设备共享扫描的和计 算出的数据参数的实施例方法的过程流程图。

图30是使用两个不同的头戴式设备以及服务器来通过使用两个用到虚拟对象 输入设备的不同软件应用来共享数据和协作的实施例方法的过程流程图,藉由该方 法,在这两个不同软件应用之间的冲突得以解决。

图31是若干用户使用不同软件应用来共享数据并进行协作的高级框图。

图32是使用两个不同的计算设备以使用两个不同的文字处理应用来共享数据 并进行协作的实施例方法的过程流程图。

图33—34是使用头戴式设备来识别姿势和音频命令两者、并在相继检测到第 一命令和第二命令时将这些命令作为经确认的输入命令来处理的实施例方法的过 程流程图。

图35-36是使用头戴式设备来识别姿势命令以在所生成的虚拟对象上渲染 “虚拟对象输入设备”以使用户可使用该虚拟输入设备来控制该虚拟对象的实施例 方法的过程流程图。

图37是使用姿势跟踪相机和/或RGB和距离测量相机(或若干此类相机)来 提供“虚拟对象输入设备”的实施例的高级框图,该“虚拟对象输入设备”是受用 户的手指控制以选择虚拟对象上的图标的虚拟指针设备。

图38-39示出使用头戴式设备和服务器来共享数据并使用户能够协作的基于 对等的系统和基于中央云配置的系统的高级框图。

图40A是使用姿势跟踪相机及一相机来提供形成虚拟指针设备的“虚拟对象 输入设备”的实施例系统的高级框图,其中虚拟对象可在头戴式显示器上被渲染得 很大。

图40B-40C示出使用模块化微微型投影仪来渲染虚拟对象的另一实施例,该 模块化微微型投影仪可检测姿势并为用户输出投影。

图40D示出通过检测一个或多个姿势用微微型投影仪来为用户在适宜的位置 上投影图像的实施例方法的过程流程图。

图41是适于与各个实施例联用的移动计算设备的组件框图。

图42是适于与各个实施例联用的服务器计算设备的组件框图。

详细描述

将参照附图详细描述各种实施例。在任何可能的地方,相同附图标记用于在 附图中通篇指代相同或类似部分。对特定示例和实现所作的引用是用于解说性的目 的,而无意限定本发明或权利要求的范围。

措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述 为“示例性”的任何实现不必然被解释为优于或胜过其它实现。

如本文中所使用的,术语“移动电话”和“手持式设备”是指以下设备中的 任何一个:蜂窝电话、智能电话、平板计算机、个人数据助理(PDA)、无线电子 邮件接收机、有因特网能力的多媒体蜂窝电话、全球定位系统(GPS)接收机、无 线游戏控制器、上网本、以及包括可编程处理器和存储器、并配置成与无线通信网 络通信、且具有web浏览器的类似个人电子设备。

如本文中所使用的,术语“计算机”、“个人计算机”和“计算设备”是指 已知的或者将来将被开发的任何可编程计算机系统。在优选实施例中,计算机将被 耦合至诸如本文中所描述的网络。计算机系统可被配置有处理器可执行软件指令以 执行本文中所描述的各过程。

如本文中所使用的,术语“组件”、“模块”、以及“系统”旨在指代计算 机相关实体,无论该计算机相关实体是硬件、硬件与软件的组合、软件、还是执行 中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可 执行件、执行的线程、程序、和/或计算机。作为解说,运行在服务器上的应用和 该服务器两者都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内, 并且组件可局部化在一台计算机上和/或分布在两台或更多台计算机之间。

如本文中所使用的,术语“头戴式设备”(HMD)是指捕捉距离传感器数据 并具有链接到移动处理器的显示能力的设备,该移动处理器可以是相对于该头戴式 设备而言分开的设备,并如图16中所示。在一实施例中,头戴式设备10可以是用 于移动设备CPU(例如蜂窝电话、平板计算机、智能电话等的处理器)的配件, 其中头戴式设备控制系统1610(附图中的“VIRT(虚拟)控制系统”)的主处理 在移动设备1605的处理器上执行。在另一个实施例中,头戴式设备可包括处理器、 存储器、显示器和相机。在一实施例中,头戴式设备10可以是包括用于从环境(例 如房间等)扫描或收集信息的一个或多个传感器(例如深度传感器、相机等)以及 用于向另一个设备(例如服务器、第二移动设备等)传送所收集到的信息的电路系 统的移动设备(例如智能电话等)。

在另一个实施例中,头戴式设备可包括用于与因特网、局部无线网络、或另 一计算设备连接的无线接口。在另一个实施例中,微微型投影仪可以被关联在头戴 式设备中以使得能够将图像投影到表面上。头戴式设备优选地为轻质的且被构造为 避免使用重组件,重组件可能使得该设备佩戴起来不舒适。头戴式设备还可以能操 作用于从用户接收音频/姿势输入。此类姿势或音频输入可以是说出的语音命令或 识别出的用户姿势,其在由计算设备识别出时可使得该设备执行对应的命令。

术语“对等网络”旨在涵盖任何形式的已知的或将来可被开发的对等网络技 术。尽管一些实施例提及使用超文本传输协议(HTTP)消息接发的对等网络,但 是此类参引仅仅旨在用作示例,而并不意图将权利要求的范围限定到任何特定联网 技术。

为了便于参引,解说各种实施例的功能运作的各示例可将网络称为第一网络 和第二网络或第一和第二用户,或者称为网络A和网络B以及用户A和用户B。 例如,第一用户可被称为“用户A”,并且第二用户可被称为“用户B”。附图和 说明书中的此类参引是任意的并被用来简化网络和用户参引,由此并不旨在将权利 要求的范围限定到仅仅两个网络或者仅仅两个用户,或者将特定用户限定到特定网 络,因为各种实施例支持任何数目的网络和用户。

各种实施例将以可包括数个组件以及模块的系统的形式来呈现。应该理解并 领会,各种系统可包括附加组件、模块等,并且可以并不包括结合附图讨论的组件、 模块等的全部。也可以使用这些办法的组合。

转到图1,各种实施例使得头戴式设备10能够渲染显示在锚定表面16上的虚 拟对象14以提供扩增现实体验,扩增现实体验能促成与计算设备的交互以及与其 他用户的协作。各种实施例可包括用头戴式或者身佩式(例如佩戴在用户的颈部、 肩膀或手臂上的、或者手持的)相机来捕捉图像。为了便于参引,如本文中和权利 要求中所使用的术语“身佩式”涵盖头戴式。在一个实施例中,该相机可以是头戴 式或者身佩式立体相机,其可生成图像数据,处理器能分析该图像数据以通过对立 体图像进行三角分析来估计距图像中的物体的距离。替换地或附加地,头戴式设备 可包括能测量距图像内各个表面的距离的一个或多个距离测量传感器(例如激光或 声波测距仪)。如以下更详细讨论的,在各种实施例中,各式各样的不同类型的距 离测量传感器和算法可被用于要测量的所成像场景以测量距用户观看的场景内的 各物体的距离。而且,头戴式设备中可使用不止一个传感器和不止一种类型的传感 器。因此,为了便于描述和前后一致,头戴式设备上可包括的各种集合和类型的距 离测量传感器在本文中被共同地或个体地称为“距离传感器”。

此外,头戴式设备10可包括取向传感器,诸如加速计、陀螺仪、磁性传感器、 光学传感器、机械或电子水平传感器、和惯性传感器,这些传感器单独或组合起来 可向设备的处理器提供关于该设备的上/下/水平取向的数据(例如通过感测重力取 向)以及由此提供用户的头部位置/取向(以及从中提供视角)。此外,头戴式设 备可包括旋转取向传感器,诸如电子罗盘和加速计,这些旋转取向传感器能向设备 的处理器提供关于左/右取向和移动的数据。配置成提供关于头戴式设备的上/下和 旋转取向的数据(以及由此提供用户的视角)的传感器(包括加速计、陀螺仪、磁 性传感器、光学传感器、机械或电子水平传感器、惯性传感器、和电子罗盘)在本 文中被共同地称为“取向传感器”。

系统可被配置成识别用户输入,并且标识表面或位置以用于在所成像场景内 放置虚拟对象,其中用户输入可以通过可由相机成像的姿势做出。距图像内识别出 的物体的距离可以根据从立体图像和/或距离传感器汇集的数据来确定。头戴式设 备10可向移动处理器提供图像和距离传感器数据以及从移动处理器接收显示信 息,该移动处理器可以是与头戴式设备分开的,诸如在智能电话或其他移动设备中, 如以下参照图16更详细讨论的。相对于周围环境对头戴式设备进行取向、并确定 距各种表面的距离以及各种表面的取向的该过程可由数个用户佩戴着的每个设备 来完成,从而每个用户从对每个用户而言合适的视角看到所显示的虚拟对象。此外, 该过程可被持续地贯彻,从而每个头戴式设备能随着它在空间中移动通过不断地参 照所扫描的三维(3D)环境的地形移位来对其自己的位置和观看角度作三角测量, 由此执行同步定位和地图绘制(SLAM)操作。

在一实施例中,头戴式设备10可接收指示所捕捉到的图像中的第一锚表面16 的第一用户输入。该输入可以是各式各样的用户输入中的任何输入,诸如是按钮按 压、在头戴式相机的视野中执行的可识别姿势、用户目光集中的凝视(其识别为保 持相对静止达预定时期的图像)、或者其他可识别输入的形式。第一锚表面16可 以对应于位于由头戴式设备10的相机所获得的图像中的第一表面。耦合至头戴式 设备10或者在其内的处理器可生成虚拟对象14并计算与显示相关的参数,包括与 虚拟对象14的显示位置相对应的、相对于头戴式或身佩式相机的距离和取向。当 用户选择显示锚定到指定锚表面的虚拟对象14时,耦合至头戴式设备10或者在其 内的处理器可在显示器上(或通过投影仪)渲染该虚拟对象14,从而在通过该显 示器观看该虚拟对象时,该虚拟对象看起来是在第一锚表面16上。虚拟对象14 可以是任何虚拟对象14,包括例如文本、图形、图像和3D形状。当以此方式来呈 现时,放置在周围环境内的指定位置处/上的虚拟对象的投影能创建虚拟现实的体 验并使得用户能够与该虚拟对象进行交互。各个实施例使得能够与虚拟对象和数字 资产(文档、图片、视频等)进行自然的交互。与虚拟对象和数字资产的此类自然 交互可包括对该虚拟对象的姿势控制、触摸操纵、对其被触摸的部分的高亮强调等。 可识别姿势可以用可由头戴式设备访问的姿势字典的形式来存储或组织。此类姿势 字典可存储用于识别姿势的运动数据或模式,这些姿势可包括戳、轻拍、叩击、推、 指引、弹拂、转向、旋转、抓和拉、两手的手掌打开以摇摄图像、绘图(例如手指 绘画)、用手指形成形状(例如“OK”手势)、以及挥击,所有这些姿势可以在 所生成显示中的虚拟对象的视在位置上、紧邻该视在位置、或往该视在位置的方向 (相对于用户而言)来完成。以此方式,各种实施例使得能够与虚拟对象进行自然 的交互,这些交互可包括姿势控制或者其他合适的控制输入方法。

可使用不同类型的头戴式显示器来实现各种实施例。一些头戴式显示器可以 是半透明的,以使得用户能够观看到越过显示器外的场景,其中所投影的图像显现 为被叠加在背景场景上。在其他实施例中,头戴式显示器完全阻挡用户看到房间。 在此实施例中,头戴式显示器提供虚拟或扩增现实体验。为了看到房间中的物体, 由用户佩戴的一个或多个相机所获得的图像可被用来将房间的视图投影到头戴式 显示器上。在该实施例中,虚拟对象可被添加到投影在头戴式显示器上的图像,由 此显现为与由相机获得的实际图像一样真实。

在头戴式显示器为不透明(即,完全遮蔽)的实施例中,头戴式设备10可以 显示用户前面的场景的图像,且14处的各虚拟对象被包括在显示器中,以使得它 们显现为锚定到所选锚表面16上。在该实施例中,成像传感器和头戴式设备将用 户前面的场景的图像投影到不透明显示器上。为由用户对该场景进行导航,用户在 头戴式显示器上观看从头戴式相机获得的图像。这可包括将用户的手的图像渲染到 显示器中,尤其是在该用户正在移动他或她的手作为控制姿势的一部分时。如果虚 拟对象14被锚定到特定表面,则当用户从锚表面移开目光时,该虚拟对象将不显 现在显示器中。由于头戴式显示器呈现由头戴式设备生成的图像(包括从身佩式相 机获得的图像),因此该系统可以显示场景的各个部分,以使虚拟对象显现在背景 的前面。因此,在该实现中,如果虚拟图像在头戴式显示器上被呈现在用户的手前 面,则用户的手对于该用户将是不可见的。结果,该虚拟对象可显现为实体的且不 透明的。该实施例提供了虚拟或扩增现实体验,其包括将用户佩戴的相机获得的真 实图像与呈现在相同显示器上的虚拟对象相结合地显示。

在头戴式显示器为半透明(即,用户能透过该显示器看到背景场景)的实施 例中,头戴式设备10可显示所生成的虚拟对象,以使该虚拟对象显现为锚定到由 用户透过该显示器看到的第一锚表面16。以此方式,用户可以用部分透明的头戴 式显示器来观看场景,其中真实世界物体(像是书桌、桌子和墙壁)透过头戴式显 示器是部分可见的,该头戴式显示器还将虚拟对象放置在该可见场景内。可见虚拟 对象14可被锚定到或连接到真实世界物体16。该实施例提供了扩增现实体验,其 中显示器是穿透式的或视频穿透式的,以允许用户透过该显示器看到真实世界,且 虚拟对象显现为固定在真实位置中或真实表面上。

举例而言,虚拟对象14可以仿效平板屏幕电视并且可连接到或“锚定”到真 实世界物体或真实世界墙壁16,如图1中所解说的。随着用户移动他或她的头, 虚拟对象14通常会随着用户的视域而在显示器10上移动。然而,在该实施例中, 虚拟对象14显现为保持在锚表面16上,类似于真实世界的平板显示在用户转动他 或她的头的情况下会保持在表面上的样子。

在一实施例中,用户可按与用户如何选择了第一锚表面类似的方式来移动锚 表面16。用户可能发现对于某个任务而言,一不同的锚表面将会更好。头戴式设 备10可以接收指示该图像内的不同于第一锚表面16的一新的或第二锚表面16的 第二输入(姿势、音频、来自输入设备的等等)。第二锚表面16可以与位于该图 像中的第二不同表面相对应。此外,第一和第二锚表面可以不毗邻,并且当指定第 二/替换表面时,第一表面可以不在头戴式设备相机的视野中。例如,一个表面可 能是如图2中所示的桌面16,而另一个表面可以是如图1中所示的横向墙壁16或 天花板。例如,第一用户可以选择第一锚表面16供个人使用,并且随后为处于一 不同地理位置的第二用户选择第二锚表面16。在一实施例中,用户输入可以是语 音输入、使用有形输入设备(键盘或鼠标)提供的输入、所检测到的姿势,或者可 由各不同用户提供。头戴式设备10内或耦合至头戴式设备10的处理器可以计算参 数,包括与第二锚表面16相对应的、相对于头戴式或身佩式相机的距离和取向。 头戴式设备10内或耦合至头戴式设备10的处理器可以随后显示所生成的虚拟对象 14,以使得该虚拟对象对用户显现为被锚定到所选第二锚表面16。在另一个实施 例中,作为头戴式设备10的替代或补充,微微型投影仪可被用来将虚拟对象14 投影到所选锚表面16上。该微微型投影仪可以是分开的模块化设备,并且或者可 以被包括在头戴式设备10内。

图1解说了用户使用头戴式设备10。头戴式设备10可以使得用户能够将近旁 的表面(诸如墙壁12)指定为虚拟“平板屏幕”16。用户可使用输入命令来标识 近旁的表面16。当多个用户装备有连接到共用网络或数据库的头戴式设备10时, 那些用户中的一些或全部可以同时看到相同的虚拟对象14,这使得能够进行关于 该虚拟对象的协作和群讨论,就像它是真实世界物体一样。

驱动头戴式设备10上的显示器的处理器可以持续地更新所生成的虚拟对象 14的所显示图像,从而在用户转动他/她的头和相对于所选锚表面16移动时,虚拟 对象14显现为锚定到锚表面16。因此,当用户在房间中四处移动和走动时,虚拟 对象14可以显现为保持固定在物理表面16上。作为维持该印象的一部分,处理器 可以修改虚拟对象14的外观,从而它的形状、大小和取向与用户对该锚表面的视 角相匹配。调整虚拟对象的形状、大小和取向可以帮助提供身临其境的虚拟或扩增 现实体验。除非用户输入了预定义的特定输入以将虚拟对象14移至另一个锚表面, 否则虚拟对象14可以保持静止并且看似被附着到该锚表面。这对于在用户群当中 进行协作会是有益的,因为虚拟对象14可以是会话的协作焦点,而不论每个用户 的位置和视角如何。例如,第一用户可以阅读另一锚表面上的媒体或者观看由第二 用户给出的演示。这将给予第一用户该虚拟对象14是类似于平板屏幕的真实世界 或物理物体的观感,只不过第一用户可以在无需中断的情况下将锚表面16改变成 房间中的一不同表面或物体。

在非限定示例中,虚拟对象14可以是旨在用于协作的软件应用的显示输出。 举例而言,虚拟对象14可包括文本、媒体、电视频道、电影、文档文字处理应用、 电子邮件、视频、电话呼叫、社交网络张贴、RSS内容源等。此类对象可以呈现 在显示器上以显现为固定到锚表面或固定在锚表面上,类似于这些对象在常规平板 显示器上所会显现的那样,只不过任何表面均可用作显示器。附加地,锚定到所选 表面的虚拟对象的大小可由用户控制以使得所显示的对象能够被放大或缩小。在另 一个实施例中,虚拟对象14可以具有不同的外观,诸如被渲染在非平面和非矩形 表面上、或者渲染为具有球形或看似三维的形状。虚拟对象14在头戴式显示器上 的呈现允许用户观看该对象和与该对象交互,就好像它是物理环境的一部分一样。 在一实施例中,虚拟对象14可以对每个用户而言看起来不同。

在一个实施例中,虚拟对象14可以是不锚定到物理表面16的三维模型。在 该实施例中,虚拟对象14可以是显现为漂浮在空间中的三维模型。在该实施例中, 用户可以观看自由空间中的所显示的虚拟对象14,其中虚拟对象14被锚定到自由 空间中可相对于墙壁、地板、家具等而言的所选三维位置。在该实施例中,当虚拟 对象14被锚定到空间中的特定位置时,在用户移动他/她的头和围绕锚位置并由此 围绕虚拟对象移动时,该对象将不会显现为在移动。例如,虚拟对象14可以被呈 现在部分透明的显示器上,从而它显现为在自由空间中锚定在预定的3-D坐标处。 在该实施例中,显示器可以显示提示以使用户输入该系统应当将虚拟对象14显示 为自由漂浮在何处的地方或坐标。处理器可以经由所检测到的姿势(例如指向空间 中的点的手指)来识别输入命令或者可以识别音频命令以将虚拟对象14放置为自 由漂浮在自由空间中。处理器可以将虚拟对象14显示为锚定到所指示空间点,或 者可以将虚拟对象14连接到头戴式显示器的位置,以使得虚拟对象14具有在空间 中漂浮的幻象。当用户在自由空间中相对于虚拟对象14移动时,虚拟对象14的视 角、大小、和取向也可相应地改变。例如,虚拟对象14可以被锚定到位于毗邻于 墙壁的空白空间或者在外面漂浮于地面上方和窗户外。以此方式,用户可以通过在 房间中围绕自由漂浮的虚拟对象14走动来查看虚拟对象14的所有侧面。

在各种实施例中,将虚拟对象14锚定在空间中的所选锚表面或锚点上的输入 可以用数种不同方式来提供。举例而言,与头戴式设备10相关联的相机、或者操 作地连接到头戴式设备10的第二相机也可跟踪用户的运动。处理器可接收图像并 可向所跟踪到的运动应用检测算法以检测由用户作出的预定姿势。例如,用户可以 指向表面,系统可将此解读为对处理器的特定输入。

例如,用户可以用姿势指示旨在使房间中的特定真实世界表面成为锚表面。 当检测到预定姿势时,处理器可以执行与该预定姿势相对应的命令。例如,处理器 可以检测到用户正指向特定表面。处理器可以检测该表面并且确定该表面相对于用 户视线的角度,并且将虚拟对象14锚定在该特定表面上用户所指之处,且其取向 和视角与该表面的所确定角度一致。

例如,用户可指向桌面。处理器可以跟踪用户的移动并且可以向所跟踪到的 图像应用检测算法。当系统成像出用户的手臂伸出以食指进行指点并且剩余手指形 成拳头,则处理器可将此类图像识别为用户姿势并应用对应命令以将虚拟对象14 锚定在桌面上用户正指点之处。例如,如果用户的指尖接触表面以将其标识为锚表 面,则头戴式设备可以将虚拟对象14显示为锚定到该表面。

在另一个示例中,用户可能期望移动虚拟对象14以将其“放置”在一不同的 锚表面16上。为了完成此目的,用户可以提供或执行耦合到头戴式设备10的处理 器可识别的第二预定姿势。第二预定姿势可以与用来指定第一锚表面的姿势相同, 诸如将所捕捉到的图像内的表面指定为锚表面16的通用命令,或者可以是一不同 的姿势。可作出许多不同的姿势,并且在本公开的范围内。例如,所检测到的预定 姿势可以是“OK”手势、拳头、打开的手、用一个手指进行指点、用两个手指进 行指点、用三个或四个手指进行指点、向外伸出的手、手旋转、挥手、一个或多个 手指的移动、身体部位的移动(例如脚的移动)、或者其他任意的移动。

而且,对锚表面16的指定以及其他输入或命令可以用由话筒所接收到的输入 来口头地提供,该话筒在头戴式设备10上或与之耦合、或者耦合至处理器,该处 理器进而耦合到头戴式设备。头戴式设备内或与之耦合的处理器可以从话筒接收音 频信号,并且可使用语音识别过程来处理此类信号。处理器可以将所接收到的音频 信号与存储器中所存储的一个或多个命令的音频模式作比较以识别所说出的命令。 例如,处理器可以监视音频输入以发现几个预定的命令单词。以此方式,用户可以 与同事以及其他联网用户说话以诸如讨论虚拟对象,而不说命令关键字。处理器可 以向收到音频应用检测算法,以使得它仅仅响应于特定的预定义音频命令、或者跟 在预定义的注意命令(例如,“计算机”或“执行”等)后的命令。例如,用户可 以说“将图像锚定在书桌上”以使得处理器将虚拟对象锚定到头戴式设备相机的视 野内的书桌。头戴式设备10内或者耦合到头戴式设备10的处理器可以将这些说出 的单词识别为命令输入,并且实现对应的动作以将虚拟对象14锚定在书桌或锚表 面16“上”。

在另一个实施例中,处理器可被编程以检测命令输入,但随后在实现任何命 令之前等待确认。该确认可以有利地避免在关于虚拟对象14进行群协作期间因无 意的姿势或者因不经意的音频命令而不经意地移动该虚拟对象14。在该实施例中, 虚拟对象14将不会响应于命令被放置、移动或锚定到表面,除非接收到确认或确 认命令。例如,处理器可以处理来自相机的图像以标识姿势命令和/或处理从话筒 接收到的音频信号以标识说出的命令,诸如单个单词或句子。当识别出姿势或者所 说出的命令时,处理器可以提示用户确认该命令并等待确认输入,该确认输入可以 是按钮按压、说出的单词、物理姿势、或者其组合的形式。当处理器识别出合适的 确认或确认命令时,它可执行与第一识别出的姿势或可听命令相关联的命令。如果 未接收到确认命令,则处理器可以忽略所检测到的姿势或可听命令。

在另一实施例中,移动计算设备(诸如带相机的智能电话)可以为并未佩戴 头戴式显示器的用户起到“魔术镜头”的作用。在该实施例中,具有经由无线数据 链路连接到系统的计算设备的用户可以在该设备的显示器上观看虚拟对象。这允许 那些没有头戴式设备的用户观看虚拟对象和图像中的结构(诸如锚表面),其观看 方式类似于它在头戴式显示器上显现的方式。举例而言,第一用户可以在头戴式显 示器上观看连接到墙壁的虚拟对象14,该头戴式显示器将此图像数据传达给第二 用户的智能电话或PDA显示器,从而第二用户可观看到该虚拟对象14显现为锚定 在墙壁或其他表面上的样子。在另一实施例中,模块化微微型投影仪可被链接到移 动设备并被用来投影虚拟对象的图像。

在各种实施例中,头戴式设备10包括无线通信能力,其使得能够在两个或更 多个设备之间交换数据以使得两个或更多个用户能与文档、文件和虚拟对象交互以 及针对文档、文件和虚拟对象进行协作。以此方式,头戴式设备10能促成多个用 户在各虚拟对象上的协作,诸如提供使得用户能够与三维虚拟对象交互并从各种视 角观看这些三维虚拟对象的虚拟或扩增现实体验。为能实现这种协作体验,头戴式 设备10可向彼此传送三维虚拟对象模型和/或数据集以供在它们各自的显示器上进 行渲染。头戴式设备10还可从其他计算设备(诸如网络服务器)接收数据文件, 诸如坐标地图和三维虚拟对象模型和/或数据集。此外,由参与协作的头戴式设备 中的一个或多个所生成的图像数据可被传送给非参与方所使用的头戴式设备或其 他移动设备(诸如智能电话或平板计算机)并在其上显示,以使得其他人能够观看 虚拟或扩增现实体验中的协作。佩戴头戴式设备或使用另一移动设备(诸如智能电 话或平板计算机)来观看协作会话的其他人可以不仅仅看到虚拟对象以及用户与这 些虚拟对象的交互,而且还能具有有限的与由这些头戴式设备用户之一看到的虚拟 扩增进行交互的能力。该有限的交互可包括触摸该扩增以产生影响,定义物理表面 上的交互区域或锚点(有效地向共享体验添加新扩增),和经由姿势和/或音频输 入与共享的混合现实场景进行交互。虚拟体验中的任何此类改变可反映在由其他用 户佩戴的头戴式显示器中。

图2解说了两个用户使用第一和第二头戴式设备10a、10b来观看锚定到表面 (诸如书桌桌面16)的虚拟对象。在所解说的示例中,锚表面16对应于桌面表面 16,其位于由第一头戴式设备10a所显示的图像内。头戴式设备10a可生成虚拟对 象14a(其在该图解中示为虚拟屏幕),并且显示虚拟对象14a,就像它被连接到 桌面表面16一样。如果第一用户看向左边、看向右边或后面,则虚拟对象14a将 不会在头戴式设备10a的视野内游弋,而是代之以将保持显示在桌面表面16上锚 定于原位。举例而言,如果第一用户的目光从锚表面16移开,则虚拟对象14a将 不再显现在头戴式设备屏幕内。此外,虚拟对象14a可以按就像它在锚表面16为 平板显示器的情况下所将显现的那样的取向、形状和大小被呈现给第一用户。因此, 虚拟对象14a可以按从该用户的视角将该对象的形状投影到锚表面上所得到的形 状和大小来被显示。为完成此目的,头戴式设备10a内或耦合到头戴式设备10a的 处理器可计算形状参数,包括相对于头戴式或身佩式相机10a和距离传感器的距离 和取向,以在锚表面处或锚表面上生成虚拟对象图像。此类计算可实现众所周知的 矢量投影算法以得出呈现在头戴式显示器中的图像。通过对图像应用与正常体验一 致的矢量处理(例如,常规欧几里得几何投影)并在半透明显示器上呈现结果所得 的虚拟对象14b(该半透明显示器还使得用户能够看到越过该显示器外的物体), 其结果就能混淆用户的感官,使得虚拟对象的行为看起来就像真实物体那样。

为了协作目的,第二用户可佩戴第二头戴式设备10b以在相同物理空间内观 看相同虚拟对象。第二头戴式设备10b内或耦合到第二头戴式设备10b的处理器可 在用户选定的锚表面16上渲染该虚拟对象。第二头戴式设备10b可在与为第一头 戴式设备10a所指定的相同的锚表面或位置上显示虚拟对象14b。第二用户也可指 定不同的位置或锚表面用来渲染如通过第二头戴式设备10b所看到的虚拟对象 14b。为了使第二头戴式设备10b能从第二用户的视角正确地在锚表面上渲染虚拟 对象14b,从第一头戴式设备向第二头戴式设备传送的数据可包括形状或对象数 据。此数据可使得第二头戴式设备处理器能渲染该虚拟对象的与第二用户的视角相 对应的所显示图像。该虚拟对象数据可以是几何模型、坐标和填充数据、或可用在 第二头戴式设备10b内的处理器中所实现的三维对象渲染模块中的类似渲染数据 的形式。

在一些实现或境况中,第二头戴式设备10b可从第一头戴式设备10a接收示 出该虚拟对象锚定到锚表面16的图像数据。在此类情形中,第二头戴式设备10a 内或耦合到第二头戴式设备10a的处理器可经由无线数据链路接收由第一头戴式 设备10a生成的视频数据,并简单地将收到的视频数据作为输出视频图像来显示。 在此应用中,第二用户在第二头戴式显示器上观看到从第一用户的视角来看的场景 和锚定的虚拟对象14a。由此,在此实现中,第二用户可体验到第一用户的观看体 验,就像电影或电视视频那样。此第一用户视角在一些境况中可能是非常有用的, 诸如当第一用户正在为进行训练而向第二用户展示如何做某件事、或者第二用户正 在监督第一用户的活动时。在此境况中,在数据链路之上发送的数据可以是简单的 视频和音频流,并且第二头戴式设备可简单地将收到的图像投影到头戴式显示器上 并进一步进行虚拟对象的处理和渲染。如以下所描述,来自第一头戴式设备的视频 和图像数据还可(例如,经由网络、服务器或对等无线数据链路)被传送到其他计 算设备,诸如智能电话、平板计算机、膝上型计算机或大型视频显示器,以使其他 人能观看并分享第一用户的虚拟/扩增现实体验。

第二头戴式设备10b可在桌面表面16上显示虚拟对象14b。替换地,第二用 户可指定应在上面显示虚拟对象14的另一锚表面。当虚拟对象14a显示在第一锚 表面16上时,第二头戴式设备10b可修改该对象的大小和形状,以使其看起来适 合于第二用户的视角。例如,如果两个用户正在桌子或书桌的两侧观看相同对象, 则该对象对其中一个用户可能显现为颠倒的,就像它是真实物体一样。替换地,这 两个用户可以按相同方式观看到相同对象,从而双方都观看到该对象正面朝上。

例如,如果第二用户10b移到离桌面锚表面16越近,则虚拟对象14b可变得 越大。如果第二用户10b移到离桌面锚表面16越远,则虚拟对象14b可变得越小。 此外,如果第二用户10b相对于水平面旋转了显示器,则虚拟对象14b可类似地补 偿该旋转以显现为锚定于该桌面锚表面16。作为进一步的示例,用户可以按看起 来与对象14b交互的方式移动他/她的手臂和手以将其关闭或从显示器移走,诸如 扫动手臂就像要把虚拟对象拂到旁边去、围着虚拟对象合拢手指、或猛击虚拟对象 14b。作为进一步的示例,第二用户10b可执行试图拖拉或推动虚拟对象14b的姿 势,并且此拖拉或推动可被解读为输入命令。如以上所提及,可识别的姿势可被存 储在姿势字典中,姿势字典可存储用于识别姿势的运动数据或模式,这些姿势可包 括戳、轻拍、叩击、推、指引、弹拂、转向、旋转、抓和拉、两手的手掌打开以摇 摄图像、绘图(例如手指绘画)、用手指形成形状(例如“OK”手势)、以及挥 扫,所有这些姿势可以在所生成显示中的虚拟对象的视在位置上或紧邻该视在位置 地来完成。以此方式,用户可使用将适合于真实世界物体的姿势来与锚定到表面 16的虚拟对象14b交互,由此使得与虚拟对象的交互是直观的且易于学会。

在以下更详细地描述的实施例中,这些头戴式显示器可被投影仪所替代,由 此图像被投影到表面上。在此类实施例中,用户的操作和体验可与如上讨论的使用 头戴式显示器的操作和体验类似。而且,随着新的图像呈现技术被开发出来,此类 技术可与各种实施例一起实现以协同真实世界锚表面来渲染虚拟对象,并由用户从 其视角来观看。

图3解说了向两个佩戴头戴式设备10a、10b的用户呈现虚拟对象14a,以使 得尽管这两个用户彼此面对,但该虚拟对象对每个用户看起来均是正面向上的(即, 不是颠倒的)。虚拟对象的这种自取向允许这两个用户均能正确地观看对象数据(例 如,柱状图)。

如上文所提及,虚拟对象14a、14b的这种呈现可由利用头戴式或身佩式相机 来捕捉桌子16的图像的头戴式设备10a来完成。该图像可显示在头戴式显示器10a 中,或者可透过半透明显示器来观看该桌子。第一用户的虚拟对象14a可显示在头 戴式设备10a上。第一用户可使用第一头戴式设备10a来编制指示应为第二用户生 成第二虚拟对象14b的信号。第一用户还可提供指示捕捉到的图像中的锚表面16 的输入。头戴式设备10a内或耦合至头戴式设备10a的处理器可以计算参数,这些 参数包括与第一用户所选择的锚桌面表面16相对应的、相对于头戴式或身佩式相 机10a的距离和取向。头戴式设备10a显示所生成的虚拟对象14a,以使得该虚拟 对象14a被锚定到该锚表面16并包括该第一取向。第一虚拟对象14a随后可由该 显示器显示在第一头戴式显示器10a上,就像连接到第一锚表面16a那样。

在图3中,佩戴第二头戴式设备10b的第二用户坐在第一用户对面。第二头 戴式设备10b可接收输入以选择该桌面作为锚表面16,或可从第一头戴式设备10a 接收标识所选锚表面16的数据。使用此信息,第二头戴式设备10b就可生成该虚 拟对象14b的重取向成看起来正面朝上且具有对第二用户而言正确的视角的显示。 为了生成此显示,第二头戴式设备10b可接收与要被渲染的虚拟对象有关的数据, 诸如其内容以及与其大体形状和取向有关的数据。第二头戴式设备10b可使用由第 一用户所选择的锚表面(或由第二用户所选择的另一锚表面)来决定用于显示该虚 拟对象的位置、取向和视角。这可包括确定该对象的正确顶部以及该对象的投影角 度以匹配于锚表面,其结果得到所渲染对象的正确视角。由此,如图3中所解说的, 第二用户观看到锚定于桌面表面16的、但是从第二用户的视角来看正面向上的相 同虚拟对象14b。

在一替换实施例中,第一头戴式设备10a或另一与这两个头戴式设备处于通 信中的计算设备可为第二头戴式设备10b确定虚拟对象14b的正确取向和视角。在 此情形中,第一头戴式设备10a可接收足以使该设备能确定第二用户或第二头戴式 设备10b的取向的信息。例如,第二用户的图像可由第一头戴式设备上的相机捕捉, 并使用解剖学模型来处理以确定第二用户的位置和视角。第一头戴式设备10a可随 后按照基于所确定的用户取向为第二用户10b对虚拟对象14b进行正确取向的方式 向第二头戴式设备传送虚拟对象数据。

在各种实施例中,第二用户可向第二头戴式设备10b提供输入以控制或改变 虚拟对象14b的取向、大小以及形状(例如,视角)。例如,利用检测到的姿势输 入命令的第二用户可拖曳虚拟对象14b的角以使其更大或更小。作为另一示例,第 二用户可使虚拟对象10b最小化并打开新的应用或虚拟对象。

如图4中所解说的,观看相同虚拟对象的两个用户无需在相同房间中。例如, 身处第一位置(例如,英国剑桥)佩戴第一头戴式设备10a的第一用户可观看锚定 在第一锚表面16a(例如,墙壁)上的虚拟对象14a(例如,演示或图表)并且与 身处第二位置(例如,加州圣地亚哥)佩戴第二头戴式设备10b的第二用户关于该 虚拟对象进行协作,而第二用户可观看到锚定到一极不相同的锚表面16b(诸如桌 面)的该虚拟对象14b。头戴式设备10a可经由本领域中所知的任何计算机网络来 与第二头戴式设备10b通信,该计算机网络将设备10a和10b互连并允许用户通过 有线和无线通信链路来共享资源。

例如,第一头戴式设备10a可经由通信网络传送为第二头戴式设备10b正确 地对第二虚拟对象14b取向的信号、以及为第二用户10b生成经取向的第二虚拟对 象14b的信号。第二头戴式设备10b可从该通信网络接收该信号并可为第二用户 10b生成第二虚拟对象14b。

在另一实施例中,可由头戴式或身佩式相机随时间推移来捕捉第一和/或第二 用户的图像并使用其来确定虚拟对象的恰适取向。可向捕捉到的图像应用解剖学分 析以确定用户的当前姿态和取向,诸如相对于指定的锚表面的姿态和取向。例如, 可将这些图像与存储在存储器中的解剖学数据进行比较以检测这些图像内的身体 部位并确定用户的取向。第二头戴式设备10b的第二虚拟对象14b可基于在这些图 像中检测到的第一用户(即,以按该图像向第一用户所显现的方式向第二用户呈现 该图像)或第二用户(即,以按适合于第二用户的姿态的方式来呈现该图像)的身 体部位来正确地取向。例如,第二用户的图像可被捕捉、跟踪并与存储在存储器中 的解剖学数据进行比较,其中第二用户的头、肩、手臂、躯干、腿或任何其他身体 部位或其部分可被检测。第二头戴式设备10b可基于检测到的身体部位来对虚拟对 象进行取向。第二虚拟对象14b可被取向在第一取向上并被显示。

一段时间以后,第二用户可能移动了,并且基于此不同的取向以及该用户的 新位置,第一取向可能不合适了。例如,可以计算参数,包括与第二锚表面16b(其 具有位于该图像中的所识别出的物体)相对应的、相对于第二头戴式或身佩式相机 10b的距离和取向。可以确定图像大小和取向,其与所确定的第二虚拟对象14b在 此类移动之后的取向相对应。第二头戴式设备10b可随后显示所生成的第二虚拟对 象14b,从而第二虚拟对象14b显现为锚定于并连接到第二锚表面16b。例如,可 利用所检测到的身体部位来确定第二用户正看着哪里,并且可基于第二用户所看之 处来正确地对第二虚拟对象14b进行取向。

在另一实施例中,可以利用所检测到的身体部位来确定第二用户是正坐着还 是站着。基于此确定,可将第二虚拟对象14b生成为锚定到并取向于毗邻第二用户 的平面表面上。如果基于所检测到的身体部位确定了第二用户正站着,则可将第二 虚拟对象14b生成在毗邻第二用户的纵向表面上。

在图4的解说中,锚表面16a是位于由头戴式设备10a显示的图像内的墙壁。 对于第一用户,头戴式设备10a可生成虚拟对象14a并将虚拟对象14a显示为就像 固定在或连接到墙壁表面16a那样,并取向成使其对于第一用户而言是正面朝上 的。头戴式设备10a处理器可计算用于渲染该虚拟对象的参数,包括从头戴式设备 10a到被第一用户选为锚表面的墙壁16的距离和取向。头戴式设备10a可包括或 被耦合到移动CPU,该移动CPU被耦合到收发机,该收发机配置成与路由器通信 以经由网络(诸如因特网)将数据传达给第二头戴式设备10b。类似地,第二头戴 式设备10b也可包括收发机以与网络通信,从而经由网络(诸如因特网、内联网、 无线网络或任何其他合适的电信网络)来发送/接收数据。

第一和第二头戴式设备10a、10b中任一者均可发起协作会话,并经由网络(诸 如因特网)向另一方发送对此类会话的请求(诸如通过向与该另一头戴式设备相关 联的IP地址发送消息)。在另一实施例中,头戴式设备10a可经由服务器来与第 二头戴式设备10b通信,该服务器包括程序指令以执行服务来在这两个设备10a 和10b间共享资源。

作为示例,双方均装备有头戴式设备的第一和第二用户之间的协作会话可如 下进行。当一个用户将资产或虚拟对象添加或锚定到表面时,该用户的头戴式设备 可向另一用户的头戴式设备传送消息,该消息以相对于已显示在先前选定的锚表面 上的现有资产或虚拟对象的方式指示该新资产或对象的优选摆放。如果在原始锚表 面上没有足够空间给这两个对象,则该新资产或对象的此优选摆放可随后被系统自 动地或被用户通过用户输入(例如,所识别出的运动姿势)来忽略。同样地或替换 地,这两个用户之一或其两者可执行输入或姿势以手动地将该新资产或虚拟对象重 定位到其所偏好的位置或表面。

在另一实施例中,第一头戴式设备10a可向第二头戴式设备10b递送消息数 据,其指示虚拟对象14b的优选或建议摆放。例如,第一用户可指示虚拟对象14b 的优选摆放应发生在书桌16b上或墙壁上。例如,可从第一头戴式设备10a向第二 头戴式设备10b发送指示“优选墙壁表面”或“优选桌面表面”的消息。第二头戴 式设备10b可在显示器上生成第二虚拟对象14b该消息还可包括用于为第二用户正 确地对虚拟对象14进行取向的一个或多个程序指令。第二头戴式设备10b可接收 输入以选择该桌面作为锚表面16b,或可从第一头戴式设备10a接收锚表面16被 选为墙壁的数据。在后一替换方案的情形中,第二头戴式设备10b内或耦合到第二 头戴式设备10b的处理器可在由该设备上的相机获得的图像内检测可匹敌的墙壁。 还可向该处理器传达程序指令,以由用户来接受或拒绝由另一用户所建议的锚表 面。头戴式显示器10b可从第二用户接收所说出的音频信号形式的、接受或拒绝所 建议的锚表面的输入命令。第二头戴式设备10b可接收指示第二虚拟对象14b的优 选摆放的消息,并且第二用户可向第二头戴式设备10b提供确认或拒绝第二虚拟对 象14b的该优选摆放的输入。例如,第二用户可提供指示旋转并重取向第二虚拟对 象14b的愿望的输入。该处理器可基于该输入来为第二虚拟对象14确定距离和取 向,并可用期望的取向来生成第二虚拟对象14b。

第二头戴式设备10b可将虚拟对象14b显示在桌面表面16b上第二位置处。 第二用户可进一步提供输入以改变虚拟对象10b的取向、大小、以及形状来适应于 锚表面16b。虚拟对象14b与虚拟对象14a看起来一样,并且协作可得以在这些用 户之间进行。由一个用户在一个位置处所作的改变可在第一和第二位置两者处更新 并被示出,即,对在一个位置的虚拟对象14a的改变将被反映在显示在另一位置的 虚拟对象14b上。例如,第二用户可删除虚拟对象14b上的一柱状图,并且虚拟对 象10a上的相同柱状图可在第一位置同样被删除。

在又一实施例中,佩戴第三头戴式设备的第三用户可加入协作,并且将所显 示的虚拟对象锚定在由第三用户所选择的或由第一或第二用户任一者所建议的表 面上。同样,如以上所描述,由参与协作的这些头戴式设备中的一者或多者所生成 的图像数据可被传送到其他头戴式设备或其他计算设备(诸如由非参与者所使用的 智能电话或平板计算机)并在其上显示。此实施例使得其他人能观看虚拟或扩增现 实体验中的该协作。佩戴头戴式设备或使用另一移动设备(诸如智能电话或平板计 算机)来观看协作会话的其他人可以不仅仅看到虚拟对象以及用户与这些虚拟对象 的交互,而且还可具有有限的与由这些头戴式设备用户之一看到的虚拟扩增进行交 互的能力。该有限的交互可包括触摸该扩增以产生影响,定义物理表面上的交互区 域或锚点(有效地向共享体验添加新扩增),和经由姿势和/或音频输入与共享混 合现实场景进行交互。虚拟体验中的任何此类改变可反映在由其他用户佩戴的头戴 式显示器中。

在一实施例中,佩戴第二头戴式设备10b的第二用户可提供输入以从个人数 据空间(例如,云或移动设备)召唤一新的虚拟对象,并将该新的虚拟对象添加到 共享显示中,从而第一用户也在第一头戴式设备10a中看到该新的虚拟对象。在一 实施例中,第一头戴式设备10a可接收通知该用户有一第三虚拟对象在场并请求接 受并显示该第三虚拟对象的用户输入或命令的提示。该用户可选择新的物理表面来 将该新的虚拟对象锚定到该新的物理表面,或可接受由第二用户所选择的锚表面。

在一实施例中,头戴式设备10a内或耦合到头戴式设备10a的处理器可接收 指示虚拟对象14的待命位置的输入。该待命位置可以是可将虚拟对象14的初始状 态显示为未锚定或固定到真实世界表面的一位置。该待命位置可以是虚拟对象14 在该显示上“自由漂浮”而未连接到真实世界物体的位置。替换地,该待命位置可 以是位于该图像中的一不同锚表面16,例如,在天花板上、或在反复且为用户所 熟悉的位置上。该待命位置可以是对象可被“存储”直至用户采取将虚拟对象14 锚定到锚表面的进一步行动的位置或表面。头戴式设备10a内或耦合到头戴式设备 10a的处理器可计算参数,包括与该待命位置相对应的、相对于头戴式或身佩式相 机的距离和取向,并且该处理器可用对于该待命位置而言正确的视角来显示该虚拟 对象14。该待命位置可被显示为自由漂浮,并且可随着用户转动他/她的头以及在 房间里四处移动而显现为可移动的且未连接到图像中的表面。

在一实施例中,头戴式设备10a内或耦合到头戴式设备10a的处理器可用一 个或多个头戴式或身佩式相机(其可为全彩摄像机)来捕捉图像。距被成像场景内 的物体的距离可经由对经立体相机组装件获得的两幅(或更多幅)图像的三角法处 理来确定。替换地或补充地,头戴式设备可使用测量从该设备到图像中的物体和表 面的距离的距离传感器来获得空间数据(即,距图像中的物体的距离)。在一实施 例中,该距离传感器可以是红外光发射器(例如,激光器或二极管)以及红外传感 器。在此实施例中,头戴式设备可投影呈脉冲或结构化光图案形式的红外光,这些 脉冲或结构化光图案从该设备的相机的视野内的物体反射。反射的红外激光可在传 感器中被接收,并且可基于测得的在发射与收到光之间的时间或相移来计算空间数 据。在另一实施例中,距离传感器可以是超声发射器和接收器。在此实施例中,头 戴式设备可发射超声脉冲,这些超声脉冲从该设备的相机的视野内的物体反射。超 声接收器感测反射的超声,并基于测得的在声音发射与收到的反射超声之间的时间 来计算空间数据。在第三实施例中,可通过测量视频流中的后续图像中随着用户的 头移动而发生的角度改变并对该图像序列应用三角法分析来估计距物体的距离。通 过在头戴式设备中包括运动和/或相对位置传感器,就可将观看角度变化与相机位 置变化进行相关,从中可使用三角法算法来计算物体/表面距离和位置。这些距离 测量方法的任何组合可被组合以进一步细化由头戴式设备所获得的距离测量。

在一实施例中,头戴式设备10内或耦合到头戴式设备10的处理器可将空间 数据存储在存储器中,并可基于捕捉到的视频以及测得或计算出的空间数据来构建 在该设备邻域内的物体和表面的三维地图。可与在邻域内或经由网络连接的其他头 戴式设备共享与此三维地图,和/或可将其上传至服务器。共享此类三维地图数据 可协助其他头戴式设备10b(或更具体而言是这些其他头戴式设备内或耦合到这些 其他头戴式设备的处理器)在无需对房间进行成像和处理的情况下渲染锚定到指定 的锚表面的虚拟对象。此类三维地图数据的共享还可使得多个头戴式设备能协作地 创建这多个用户的邻域的整体地图,并通过避免需要扫描相同环境多次(即,该三 维地图仅需生成一次即可)来减少强加于任一个头戴式设备的工作负荷。在一进一 步的应用中,图像和空间数据(诸如在第一用户的邻域中的物体的三维地图)的共 享可使得其他用户即便在位于很远处时也能观看到与第一用户所观看的相同的图 像。例如,第二设备可利用该地图,其中与所捕捉到的空间数据相对应的数据可被 传送,从而佩戴第二头戴式设备的另一用户可以与第一用户相同的方式来显示虚拟 对象14。

如以上所解释的,与头戴式设备10a或10b相关联的显示器可以是部分透明 的或可以基本上遮蔽用户视野的全部或部分。在另一实施例中,头戴式设备10a 显示器可被定位在仅一只眼睛之上,从而其仅遮蔽用户视线的一部分,诸如呈单目 显示器的形式,以使得用户的一只眼睛能够无遮挡地观看房间。在另一实施例中, 头戴式设备10a或10b可向计算设备显示器输出虚拟对象14a或14b,从而由头戴 式或身佩式相机所获得的图像以及任何虚拟对象可一起在常规计算机显示器上被 观看。

如上文所提及,这些头戴式显示器可由将图像投影到表面上的投影仪、或由 可被开发出来的其他图像生成技术所替代。在此类实施例中,用户的操作和体验可 与如上讨论的使用头戴式显示器的操作和体验类似。

图5A解说可被包括在头戴式设备10的实施例中的组件。图5B解说头戴式 设备10如何可作为系统的一部分来操作,在该系统中,传感器阵列500可向移动 处理器507提供数据,移动处理器507执行本文中所描述的各种实施例的操作,并 向/从服务器564传达和接收数据。应当注意到,处理器507头戴式设备10可包括 不止一个处理器(或多核处理器),其中核心处理器可执行整体控制功能,而协处 理器(有时称为应用处理器)执行应用。核心处理器和应用处理器可配置在相同微 芯片封装中(诸如多核处理器),或配置在分别的芯片中。同样,处理器507可与 关联于其他功能的处理器(诸如关联于无线通信的处理器(即,调制解调器处理器)、 关联于导航的处理器(例如,GPS接收机内的处理器)、以及关联于图形处理的 处理器(例如,图形处理单元或称“GPU”))封装在相同微芯片封装中。

头戴式设备10可与通信系统或网络通信,该通信系统或网络可包括其他计算 设备,诸如可访问因特网的个人计算机和移动设备之类。此类个人计算机和移动设 备可包括耦合到处理器507的天线551、发射机/接收机或收发机552、以及模数转 换器553,以使得该处理器能经由无线通信网络发送和接收数据。例如,移动设备 (诸如蜂窝电话)可经由无线通信网络(例如,Wi-Fi或蜂窝电话数据通信网络) 来访问因特网。此类无线通信网络可包括耦合到网关或因特网访问服务器的多个基 站,而该网关或因特网访问服务器耦合到因特网。个人计算机可按任何常规方式耦 合到因特网,诸如由有线连接经由因特网网关(未示出)或由无线通信网络来耦合 到因特网。

参见图5A,头戴式设备10可包括耦合到控制系统处理器507的场景传感器 500和音频传感器505,其中控制系统处理器507可配置成具有数个软件模块510– 550。在一实施例中,处理器507或场景传感器500可对图像应用解剖特征识别算 法以检测一个或多个解剖特征。与该控制系统相关联的处理器507可审阅所检测到 的解剖特征以识别一个或多个姿势并将所识别出的姿势作为输入命令来处理。例 如,如以下更详细讨论的,用户可执行与一输入命令对应的运动姿势,诸如用手指 指着虚拟对象以关闭该虚拟对象。响应于识别出此示例姿势,处理器507可将该虚 拟对象从显示中移除。作为另一示例,用户可将一个手的食指与拇指相触以形成 “OK”手势,以确认呈现在显示器上的指令或选项。

可包括立体相机、取向传感器(例如,加速计和电子罗盘)以及距离传感器 的场景传感器500可向实现在处理器507内的场景管理器510提供场景有关数据 (例如,图像),其中场景管理器510可被配置成解读三维场景信息。在各种实施 例中,场景传感器500可包括立体相机(如以下所描述)以及距离传感器,其可包 括用于为红外相机进行场景照明的红外光发射器。例如,在图5A中所解说的实施 例中,场景传感器500可包括用于搜集立体图像的立体红绿蓝(RGB)相机503a、 以及配置成在红外光下对场景进行成像的红外相机503b,其中红外光可由结构化 红外光发射器503c提供。如以下所讨论的,结构化红外光发射器可配置成发射红 外光脉冲,这些红外光脉冲可由红外相机503b成像,其中收到像素的时间被记录 并用来通过使用渡越时间计算来确定距图像元素的距离。立体RGB相机503a、红 外相机503b以及红外发射器503c可合称为RGB-D(D代表距离)相机503。

场景管理器模块510可扫描由场景传感器500提供的距离测量和图像以产生 该图像内的各物体的三维重构,包括距立体相机的距离以及表面取向信息。在一实 施例中,场景传感器500(并且更具体而言是RGB-D相机503)可指向与用户和 头戴式设备10的视野对准的方向。场景传感器500可提供全身三维动作捕捉和姿 势识别。场景传感器500可以具有与红外相机503c(诸如单目CMOS传感器)相 组合的红外光发射器503c。场景传感器500可进一步包括捕捉三维视频数据的立 体相机503a。场景传感器500可在环境光、日光或完全黑暗的情况下工作并可包 括如本文中所描述的RGB-D相机。场景传感器500可包括近红外(NIR)脉冲照 明组件、以及具有快速闸选机构的图像传感器。可为每个像素收集脉冲信号,并且 其对应于反射该脉冲的位置,并可被用来计算距捕捉到的主体上的对应点的距离。

在另一实施例中,场景传感器500可使用其他距离测量技术(即,不同类型 的距离传感器)来捕捉图像内的物体的距离,例如可使用超声回波定位、雷达、对 立体景深图像的三角测量等等。如以上所讨论的,在一实施例中,场景传感器500 可包括测距相机、闪光LIDAR相机、渡越时间(ToF)相机、和/或RGB-D相机 503,其可使用距离闸选式ToF感测、RF调制式ToF感测、脉冲光ToF感测、以 及投影光立体感测中的至少一者来确定距物体的距离。在另一实施例中,场景传感 器500可使用立体相机503a来捕捉场景的立体图像,并基于该图像内所包含的捕 捉到的像素的辉度来确定距离。如以上所提及,为一致性,这些类型的距离测量传 感器和技术中的任一者或全部在本文中统称为“距离传感器”。可以有多个不同能 力和分辨率的场景传感器以辅助对物理环境进行地图绘制、以及对用户在该环境内 的位置进行准确跟踪。

头戴式设备10还可包括音频传感器505,诸如话筒或话筒阵列。音频传感器 505使头戴式设备10能记录音频,并实行声源定域和环境噪声抑制。音频传感器 505可捕捉音频并将这些音频信号转换成音频数字信号。与控制系统相关联的处理 器可审阅该音频数字数据并应用语音识别算法来将该数据转换成可搜索的文本数 据。该处理器还可审阅所生成的文本数据以寻找某些识别出的命令或关键字,并将 所识别出的命令或关键字用作输入命令来执行一个或多个任务。例如,用户可说出 诸如“锚定虚拟对象”之类的命令来将所显示的虚拟对象锚定到选定的表面上。例 如,用户可说出“关闭应用”来关闭显示在显示器上的应用。

头戴式设备10还可包括显示器540。显示器540可显示由场景传感器500内 的相机所获得的或由头戴式设备10内或耦合到头戴式设备10的处理器所生成的图 像。在一实施例中,显示器540可以是微型显示器。该显示器540可以是完全遮蔽 式显示器。在另一实施例中,显示器540可以是半透明显示器,其可在屏幕上显示 图像,而用户能透过该屏幕观看到周围房间。显示器540可被配置成单目或立体 (即,双目)配置。替换地,头戴式设备10可以是戴在头上、或作为头盔的一部 分的头盔搭载式显示器设备,其可在一只眼睛的前方具有小型显示器540光学器件 (单目)或在两只眼睛的前方均具有小型显示器540光学器件(即,双目或立体显 示器)。替换地,头戴式设备10还可包括两个显示单元540,它们是小型化的且 可以是阴极射线管(CRT)显示器、液晶显示器(LCD)、液晶覆硅(LCos)显 示器、有机发光二极管(OLED)显示器、基于干涉测量调制器(IMOD)元件(其 为简单的微机电系统(MEMS)器件)的Mirasol(向日葵)显示器、光导显示器 和波导显示器、以及已存在的和可能被开发出来的其他显示技术中的任何一者或多 者。在另一实施例中,显示器540可包括多个微型显示器540以提高总的整体分辨 率以及增大视野。

头戴式设备10还可包括音频输出设备550以输出音频,其可以是合起来示为 参考标号550的头戴式受话器和/或扬声器。头戴式设备10还可以包括一个或多个 处理器,其可向头戴式设备10提供控制功能以及生成图像,诸如虚拟对象14的图 像。例如,设备10可包括核心处理器、应用处理器、图形处理器以及导航处理器。 替换地,头戴式显示器10可耦合到单独的处理器,诸如智能电话或其他移动计算 设备中的处理器之类。视频/音频输出可由该处理器或由(经由有线或无线网络) 连接到头戴式设备10的移动CPU来处理。头戴式设备10还可包括场景管理器块 510、用户控制块515、表面管理器块520、音频管理器块525、以及信息访问块530, 它们可以是分开的电路模块或以软件模块的形式实现在该处理器内。头戴式设备 10可进一步包括本地存储器以及用于与其他设备或本地无线或有线网络通信以从 远程存储器555接收数字数据的无线或有线接口。使用系统中的远程存储器555 可通过减少头戴式设备10中的存储器芯片和电路板来使该设备能被制作得更为轻 质。

控制器的场景管理器块510可从场景传感器500接收数据并构造物理环境的 虚拟表示。例如,可以使用激光器来发射激光,该激光从房间中的物体反射并在相 机中被捕捉到,其中该光的往返行程时间被用来计算距该房间中的各个物体和表面 的距离。此类距离测量可被用来确定房间中的物体的位置、大小和形状,并用来生 成该场景的地图。一旦编制出地图,场景管理器块510就可将该地图链接到其他所 生成的地图以形成预定区域的更大的地图。在一实施例中,该场景和距离数据可被 传送给服务器或其他计算设备,该服务器或其他计算设备可基于接收自数个头戴式 设备(且随着时间推移当用户在该场景内四处移动所得到)的图像、距离以及地图 数据来生成合并的或整合的地图。经由无线数据链路来使此类整合的地图数据可供 头戴式设备处理器获得。其他地图可以是由当下的设备或由其他头戴式设备所扫描 的地图,或可从云服务接收。场景管理器510可基于来自场景传感器500的数据来 标识各表面并跟踪用户的当前位置。用户控制块515可搜集用户对该系统的控制输 入,例如音频命令、姿势、以及输入设备(例如,键盘、鼠标)。在一实施例中, 用户控制块515可包括姿势词典或被配置成访问姿势词典以解读由场景管理器510 所标识出的用户身体部位运动。如以上所讨论的,姿势字典可存储用于识别姿势的 运动数据或模式,这些姿势可包括戳、轻拍、叩击、推、指引、弹拂、转向、旋转、 抓和拉、两手的手掌打开以摇摄图像、绘图(例如手指绘画)、用手指形成形状(例 如“OK”手势)、以及挥扫,所有这些姿势可以在所生成显示中的虚拟对象的视 在位置上或紧邻该视在位置来完成。用户控制块515还可识别复合命令。这可包括 两个或更多个命令。例如,姿势与声音(例如,拍手)或者语音控制命令(例如, 检测到的结合语音命令或说出的单词所做的“OK”手势以确认一操作)。当用户 控制515被标识出时,控制器可向该设备10的另一子组件提供请求。

头戴式设备10还可包括表面管理器块520。表面管理器块520可基于捕捉到 的图像(如由场景管理器块510所管理)和来自距离传感器的测量来持续地跟踪场 景内各表面的位置。表面管理器块520还可持续地更新锚定到所捕捉到的图像内的 各表面上的虚拟对象的位置。表面管理器块520可负责有效的表面和窗口。音频管 理器块525可提供针对音频输入和音频输出的控制指令。音频管理器块525可构造 递送给头戴式受话器和扬声器550的音频流。

信息访问块530可提供控制指令以仲裁对数字信息的访问。数据可被存储在 头戴式设备10上的本地存储器存储介质上。数据也可被存储在可访问的数字设备 上的远程数据存储介质555上,或者数据可被存储在可由头戴式设备10访问的分 布式云存储存储器上。信息访问块530与数据存储555通信,数据存储555可以是 存储器、盘、远程存储器、云计算资源、或集成存储器555。

图6解说了用于基于用户输入在锚定表面上渲染虚拟对象的实施例方法600。 方法600可在具有用处理器可执行指令配置成执行方法600的操作的处理器的计算 设备中实现。在方法600中,处理器可在框610中着手从头戴式设备传感器接收与 头戴式设备的取向有关的数据。在框602中,处理器可从头戴式设备上或用户的肩 膀或身体上的立体相机接收数据。在框603中,处理器可计算收到的立体图像内的 各物体的距离和取向数据。在框604中,处理器可使用来自距离和取向传感器、以 及相机的数据来处理用于显示的内容。

在确定框605中,处理器可审阅用户输入或姿势命令以决定是否要在该图像 中锚定虚拟对象。例如,可从输入设备(诸如按键板或触摸屏输入)接收用户输入。 作为另一示例,可接收在图像序列中识别出的检测到的姿势的形式的用户输入,诸 如指示将虚拟对象锚定在位于该图像内的所指示表面上的愿望的姿势。用户输入的 第三示例可以是可由头戴式设备上的话筒接收的音频命令。用户输入可以是指示应 从第二用户的头戴式设备接收用于将虚拟对象锚定到特定位置的输入的命令。例 如,该输入可在协作会话期间从第二头戴式设备10b接收。

如果处理器确定其已接收到要将该虚拟对象锚定在特定位置(例如,锚表面 16)的输入(即,确定框605=“是”),则处理器可在框606中确定从该用户 的位置来看该虚拟对象相对于该锚表面的距离和取向。例如,头戴式设备10可确 定锚表面16包括轮廓以及距用户的某一距离。一般而言,虚拟对象14可以是三维 虚拟对象,诸如是三维数学模型(例如,球体、圆锥体、圆柱体等)、三维数据集 (例如,定义顶点、纬度、以及其他坐标和素材数据的数据表)、或两者的组合的 形式,处理器可用其来生成该对象的图像。为了使得处理器能够将虚拟对象14显 示成连接在锚表面16上,虚拟对象14可被调整到将该虚拟对象叠加在锚表面16 上的大小、视角、以及取向。例如,三维虚拟对象将需要被渲染为二维图像才能被 呈现在常规显示器上,或需要被渲染为两个稍有不同的二维图像才能被呈现在头戴 式设备的3D显示器上。

在框607,处理器可处理虚拟对象以将该虚拟对象放置在虚拟空间中并具有使 其看起来连接到锚定表面的视角、取向和大小。在框608,处理器可在头戴式设备 显示器上渲染该虚拟对象。

例如,该显示器可以是半透明显示器,其中图像的某些特征是透过该显示器 可见的。虚拟对象14可被叠加于或添加到显示器上的图像的特征上,从而使虚拟 对象14随用户移动而保持锚定到或固定到期望的锚定表面。替换地,虚拟对象14a 可以被锚定在自由空间中。例如,虚拟对象14a可位于窗户外,或者虚拟对象14a 可被悬挂在半空中或地面上方的一定距离处。

如果处理器确定其没有接收到要锚定虚拟对象的输入(即,确定框605= “否”)(这可指示该用户未准备好或不想要将该虚拟对象锚定到锚表面),则处 理器可将该虚拟对象渲染在待命位置上。替换地,用户可在框609中选择不渲染该 虚拟对象14。

在场景内(诸如在锚表面上)渲染虚拟对象的这些过程可被持续地执行,从 而即使在用户转动他/她的头以及四处移动时该虚拟对象仍显现为驻定的。如以上 所提及的,相对于周围环境来对头戴式设备进行取向、并确定距各个表面的距离以 及各个表面的相对取向的过程可藉由监视取向传感器(例如,加速计和陀螺仪)、 并随着该设备在空间中移动通过不断参照所扫描的三维(3D)环境的地形移位来 对其自己的位置和观看角度进行三角测量来持续地完成,由此执行同步定位和地图 绘制(SLAM)操作。

图7A解说了用于渲染带有锚定的虚拟对象的图像的实施例方法700。方法700 可在具有带有处理器可执行指令以执行方法700的操作的处理器的计算设备中实 现。在方法700中,虚拟对象14可以是随用户的位置在一区域(诸如房间)内到 处移动而呈锚定的。例如,用户可在房间中四处行走和移动,但是该虚拟对象在该 房间中的一表面上的所显示位置可保持固定。在方法700中,在框701,处理器可 通过接收用户位置数据来着手进行操作,该用户位置数据诸如是用户位置的坐标、 与用户在房间内的位置有关的信息(例如,距各个表面的距离)、以及与用户头部 的取向有关的信息。在框701接收到的位置数据可以是从各种各样的传感器数据计 算出来的,包括距离传感器(例如,红外发射器/接收器,配置成用快速闸选机构 来计算所发射的红外信号从用户的视角内的各表面反弹的往返行程时间)。替换地 或补充地,位置数据可由GPS接收机单元(其可返回地理坐标)、对来自处于已 知位置处的发射机(例如,蜂窝电话塔台)的RF信号的三角测量、接收自第二头 戴式设备的输入(例如,提供这两个用户的分隔距离和/或与这两个用户的相对位 置有关的信息)等来提供。位置数据还可基于场景图像和距离传感器数据来计算, 或从云计算布局中的服务器下载。替换地或补充地,用户可输入该用户的位置的坐 标,诸如通过键入物理地址和/或房间号、或者触摸或点击地图显示以指示该用户 在该地图上的位置。在框702中,处理器可计算收到的相机图像内的各物体的距离 和取向数据。在框703中,处理器可计算该用户相对于锚定的虚拟对象的位置。

图5A的场景传感器500可以具有近红外(NIR)脉冲照明组件。场景传感器 500还可具有带有快速闸选机构的图像传感器。还可在场景传感器500内实现其他 图像传感器,正如本文中所描述的。基于红外脉冲的已知速度、这些坐标、以及来 自照明器的红外脉冲波发射的定时连同传感器500的闸选,从期望距离范围以内反 射的信号就被捕捉到。在此实施例中,可为每个像素收集红外脉冲的抵达时间,并 将其用来计算从该传感器到该图像中的每个点的距离。对图像的此类处理可使用经 由计算机网络连接到场景传感器500的远程处理器来执行。方法700不限于实现在 头戴式显示器上,并且可与其他计算设备联用,诸如与头戴式显示器或身佩式传感 器处于通信中的移动通信设备(例如,智能电话)或固定的计算设备(例如,个人 计算机或服务器)。

在确定框704中,处理器可确定用户或锚表面的位置是否已改变。例如,用 户可将图像锚定在表面(诸如墙壁)上或锚定在自由空间中,并且该用户可能在与 另一用户协作期间从该墙壁走开,由此改变了位置。如果位置已改变了(即,确定 框704=“是”)(这指示了用户已从锚定的虚拟对象走开,或者锚表面已经移 动了),则处理器可在框705基于此新位置来确定并计算锚定的虚拟对象的改变。 在框706,处理器可在头戴式显示器上渲染带有此锚定的虚拟对象的该图像。如果 处理器确定该虚拟对象未曾移动(即,确定框704=“否”),则此锚定的虚拟 对象可被没有改变地渲染。处理器可在框706在头戴式显示器上针对此当前位置在 图像中渲染该虚拟对象。

图7B解说用于在各锚表面之间移动虚拟对象的实施例方法720。方法720可 在具有用处理器可执行指令配置成执行方法720的操作的处理器的计算设备中实 现。可提供将虚拟对象锚定在第一锚表面上的第一输入。此后,处理器可接收将该 虚拟对象锚定在一不同的第二锚表面上的第二输入。在方法720中,处理器可在框 707中通过捕捉图像来着手进行操作。在框708中,处理器可捕捉空间数据并识别 该图像内的各物体。在框709,处理器可确定该图像中的这些物体的距离参数。在 框710,处理器可接收指示该图像内的锚表面的输入。

例如,该处理器可从输入设备接收输入、或可检测姿势输入、或可接收语音 命令,以在该图像内锚定虚拟对象14。在框711,处理器可生成虚拟对象14,该 虚拟对象是诸如通过使用对象模型和/或对象图像数据集来显示的。在框712中, 处理器可计算包括对应于该锚表面的距离和取向之类的参数,并可将该虚拟对象的 图像调整为与那些参数相符以与观看者的视角一致。在框713,处理器可在头戴式 显示器上显示该虚拟对象,以使得该虚拟对象显现为连接到该锚表面。

用户可因偏好或与其他用户进行协作过程的需要而选择改变锚表面。各种实 施例使得每个用户能选择相同或不同的锚表面来在其上观看虚拟对象14。因此, 在确定框714中,处理器可监视用户输入(例如,按钮、识别出的运动姿势和/或 所说出的命令),并确定是否接收到为虚拟对象14指示了一不同的第二锚表面的 第二输入。如果没有接收到第二输入(即,确定框714=“否”),则处理器可 返回到框711以继续在该图像中生成连接到该第一锚表面的虚拟对象。

如果接收到第二输入(即,确定框714=“是”),则在框715中,处理器 可检测一个或多个指示新的锚表面的输入。当指示了新的锚表面时,处理器可计算 包括对应于在框715中所选择的新的锚表面的距离和取向,并且在框716中,处理 器可生成呈现在该头戴式显示器上的图像,以使得虚拟对象14显现为从第一锚表 面移到了此新的第二锚表面。在框717,处理器可修改虚拟对象的图像以对应于用 户的位置改变,并因此对应于用户视角的改变。例如,如果用户走近虚拟对象,则 图像大小可增大。如果用户从虚拟对象走开一定距离,则该虚拟对象的图像大小可 减小。框717中修改虚拟对象的图像以匹配于用户的视角变化、以及确定框714 中监视用户输入的这些过程可在整个协作会话期间继续在持续的过程中被执行。

图8A解说用于为在一区域(诸如举例而言,一房间)中的两个用户渲染带有 锚定的虚拟对象的图像的实施例方法800。在此实施例中,所显示的锚定的虚拟对 象14保持锚定到所选的锚表面。方法800可在具有用处理器可执行指令配置成执 行方法800的操作的处理器的计算设备中实现。

在方法800中,处理器可通过在框801中使用来自距离传感器的数据、相机 数据和计算出的距离数据处理图像来着手进行操作。在框802,处理器可计算参数 并可将虚拟对象固定到锚表面并将该虚拟对象固定到呈现在头戴式显示器上的图 像中。在框803中,处理器可渲染带有该虚拟对象的用于显示的图像。在框804 中,处理器可控制发射机/接收机或收发机向第二头戴式显示器传送图像和/或虚拟 对象数据。在框804中,第一头戴式设备可向第二头戴式设备传送定义该虚拟对象 的三维模型和/或三维数据集,该三维模型和/或三维数据集是以使第二设备能生成 相同虚拟对象的图像的格式。同样在框804中,处理器可向第二头戴式设备传送包 括位置坐标信息的地图。头戴式设备可向/从服务器上传和/或下载房间坐标地图, 或可直接向第二头戴式设备传送地图。在框805中,第二处理器可渲染该虚拟对象 的图像以供投影在第二头戴式显示器上。该图像可包括锚定到或固定到锚表面的虚 拟对象,该锚表面是由第一用户在框802中选择的。例如,第一用户可将该虚拟对 象锚定在桌面表面上。在框805中,处理器可渲染该图像。在所渲染的图像中,该 虚拟对象将显现在该桌面表面上,因为第一用户在框802中通过输入选择了该桌面 表面。

在各种实施例中,第二头戴式设备可显示锚定到如由第一头戴式设备的用户 所指定的相同锚表面、或锚定到由第二用户标识的一不同锚表面的该虚拟对象的图 像。在框806中,对于第二头戴式设备,第二处理器可确定第二用户正看着的位置 和取向(其与该头戴式设备的取向有关),以确定在所显示的图像内,锚定的虚拟 对象应被渲染在何处。例如,如果第二用户正看着由第一用户所指定的锚表面,则 第二头戴式设备可在该头戴式显示器中渲染该虚拟对象的图像。然而,如果第二用 户的目光从该锚表面移开,则第二头戴式设备将不渲染该虚拟对象的图像,因为该 锚表面将落在呈现在该头戴式显示器上的该用户的视野之外。

确定用户头部和头戴式设备的取向可通过由第二用户所佩戴的各相机捕捉图 像并捕捉来自第二用户的头戴式设备的取向传感器(例如,倾度计、陀螺仪和/或 加速计)的数据、并处理此信息以推断第二用户的观看角度和视角来完成。如以上 所讨论,该过程可被持续地贯彻,从而每个头戴式设备能随着它在空间中移动通过 不断地参照所扫描的三维(3D)环境的地形移位来对其自己的位置和观看角度作 三角测量,由此执行同步定位和地图绘制(SLAM)操作。同样,如果第二用户的 解剖结构的一部分在来自第二用户的头戴式或身佩式相机的图像中被捕捉到,则这 也可以包括向所捕捉到的图像应用检测算法以识别身体部位,并从中推断该身体部 位的视野位于何处。

在框807中,处理器可处理虚拟对象数据以生成可供在渲染该对象的图像时 使用的图像数据。在此操作中,处理器可从该第二用户的视角恰当地渲染该虚拟对 象,并且由此第二用户可舒适地读取内容并观看该虚拟对象。在框808中,处理器 可基于该锚表面相对于该用户的位置和取向在第二头戴式显示器中生成图像。

在确定框809中,处理器可确定第二用户是否想要确定一新的锚表面。此确 定可来源于接收到指示想要在该图像中锚定虚拟对象14的愿望的输入信号。例如, 第二用户可能希望将该图像锚定在与当前锚表面不同的一表面上。例如,该图像可 在与多个用户的协作过程期间被固定于墙壁,并且然后被移到桌面。

如上文所提及,第二头戴式设备的用户可选择改变锚表面,并由此将虚拟对 象的图像移到由第二用户所指定的另一表面。如果头戴式设备处理器接收到指示要 将虚拟对象锚定到新的表面的愿望的用户输入(即,确定框809=“是”)(这 指示该第二用户想要为虚拟对象14确定新的锚),则该处理器可在框810确定该 虚拟对象在第二预定表面上的新锚的距离和取向参数。在框811,处理器可将该虚 拟对象改变或修改到该新锚表面的参数。在框812中,处理器可基于距离和取向来 处理虚拟对象14。在框813中,第二处理器可在第二头戴式显示器上渲染该图像, 其中锚定的虚拟对象固定在该第二锚表面上。

如果处理器没有接收到指示想要将虚拟对象锚定在新的表面上的愿望的用户 输入(即,确定框809=“否”),则处理器可处理框807中的用于渲染的虚拟 对象使其在锚位置上没有变化,但却是针对第二用户的视角来渲染的。以类似方式, 第一或第二用户可添加另一虚拟对象并将该附加虚拟对象锚定在第三锚表面上。

图8B解说用于在第一用户的显示器上所输出的图像中从第一用户的视点来 看正确地对锚定的虚拟对象进行取向,并且在另一显示器上针对第二用户的视点来 正确地对锚定的虚拟对象进行取向的实施例方法815。方法815可在具有用处理器 可执行指令配置成执行该方法的操作的处理器的计算设备中实现。在方法815中, 在框820中,处理器可随着用户扫描房间而接收到图像数据,并且处理该图像数据 以标识/识别各表面,包括适合为虚拟对象用作锚的各表面。例如,处理器可从头 戴式或身佩式设备捕捉图像。此类头戴式或身佩式设备的处理器还可从其他类型的 传感器(诸如距离传感器)接收关于房间内的各物体的距离和取向的信息。在框 822中,处理器可选择虚拟对象以供在头戴式显示器上显示,诸如从生成虚拟对象 以供渲染的另一计算机来选择虚拟对象。在框824中,处理器可从用户接收指示要 在框824中将该虚拟对象锚定在其上的表面的输入。处理器可在框826对虚拟对象 进行取向以将其锚定到第一锚表面,并在框828中在第一头戴式显示器上生成该虚 拟对象的图像。处理器还可在框830中更新虚拟对象的位置和取向以补偿用户的运 动,诸如补偿或容适用户头部的运动。

在确定框832中,第一头戴式设备的处理器可确定由第一头戴式设备选择或 渲染的内容是否将被传送给第二设备。如果为否(即,确定框832=“否”), 则处理器可返回到框820以重复该过程,以便生成连续显示,其中即使用户移动或 转动他/她的头,该虚拟对象仍看起来保持锚定到相同表面。

如果处理器确定应将由第一头戴式设备生成的选定内容与第二头戴式设备共 享(即,确定框832=“是”),则在任选框834中第一头戴式设备的处理器可 从第二用户接收指示第二锚表面的第二输入。在任选框836中,处理器可任选地执 行计算以确定显示位置和取向,以将该虚拟对象锚定到所标识出的第二锚表面。在 任选框838中,第一或第二头戴式设备的处理器可确定第二用户的视觉取向,诸如 通过本文中所描述的基于传感器数据和所获得图像的方法来确定。如以上所提及 的,相对于周围环境来对头戴式设备进行取向、并确定距各个表面的距离以及各个 表面的相对取向的过程可藉由监视取向传感器(例如,加速计和陀螺仪)、并随着 该设备在空间中移动通过不断参照所扫描的三维(3D)环境的地形移位来对其自 己的位置和观看角度进行三角测量来持续地完成,由此执行同步定位和地图绘制 (SLAM)操作。

在进一步的实施例中,第一头戴式设备内的处理器可基于由其自己的立体相 机所获得的第二用户的图像并使用解剖模型来确定第二用户的取向。在任选框840 中,第一头戴式设备可将关于该虚拟对象的数据传送给第二头戴式设备,其中该虚 拟对象是处于基于框838中确定的第二用户的取向的取向上。第二头戴式设备可随 后如本文中所描述地在第二头戴式显示器上渲染该虚拟对象的图像。此确定用户取 向并生成显示的过程可按循环方式继续,从而在第一和第二用户移动并转动他们的 头部时,该图像持续显现为锚定到所选表面。

在各种实施例中,任一头戴式设备可执行使得能在对于第二用户而言正确的 视角中渲染该虚拟对象的计算。例如,第一头戴式设备的处理器可向第二头戴式设 备传送数据,该数据按照为第二用户正确地对第二虚拟对象取向的方式来提供虚拟 对象数据。由第一头戴式设备来对该虚拟对象取向的过程可基于从第二头戴式设备 向第一头戴式设备传送的所确定的第二用户的取向。换言之,第二头戴式设备可向 第一头戴式设备作出关于其位置和取向的通知,并且第一头戴式设备可使用此信息 来对虚拟对象数据进行取向。替换地,第一头戴式设备可基于第二用户的图像来确 定第二头戴式设备的取向,并使用此确定来对虚拟对象数据进行取向。例如,处理 器可通过随时间推移捕捉第二用户的图像并对这些图像应用解剖分析以检测这些 图像内的身体部位来为该虚拟对象确定正确的取向。使用此信息,第一头戴式设备 的处理器可将与虚拟对象有关的数据传送给第二头戴式设备,以使其处理器能渲染 该虚拟对象的位于第二锚表面的与第二用户的视角一致的图像。

处理器还可基于视野中检测到的身体部位和结构来对第二虚拟对象进行取 向。例如,可能在由第一头戴式设备捕捉到的图像中检测到第二用户的头部、颈部 和躯干,并且第一头戴式设备的处理器可能确定在第二用户近旁有一正被或已被第 二用户选为锚表面的横向墙壁或纵向桌子。作为另一实例,第一头戴式设备的处理 器可能在所获得的图像中识别出第二用户的头部、颈部和躯干,并且从这些身体部 位的位置确定虚拟对象应当如何被取向以使第二用户能阅读与该虚拟对象相关联 的文本。例如,第二用户的头部和躯干的图像可被分析以定义横向(例如,从肩到 肩)以及纵向(例如,从躯干到头部)坐标轴,这些坐标轴随后可被用来确定用于 渲染该虚拟对象的正确取向。补充地,可以确定虚拟对象图像的观看角度,诸如是 如呈现在头戴式显示器上的该虚拟对象的每个像素距第二用户的头部和躯干的距 离的形式。该处理可包括变化对象亮度使之与从第二用户的视角来看该虚拟对象上 的各个表面的观看角度一致。

在另一实施例中,处理器可随时间推移捕捉第二用户的图像,并可对这些图 像应用解剖分析以在这些图像内检测身体部位。例如,可能检测到第二用户的一双 眼睛(或头戴式设备)以及鼻子。处理器可利用该身体部位并确定第二用户正在看 着的位置,并基于第二用户正看着何处来对第二虚拟对象进行取向。在又一实施例 中,处理器可从捕捉到的图像确定第二用户是正坐着还是站着。如果是站着,则处 理器可将第二虚拟对象生成为锚定到毗邻于第二用户的平面表面。如果是坐着,则 处理器可将第二虚拟对象生成为看起来锚定到毗邻于第二用户的近旁表面。

如果处理器在框832中确定不从第一用户向第二用户递送内容(即,确定框 832=“否”),则处理器可在框838为第一用户显示虚拟对象并可在框840中针 对第一用户的运动来更新该虚拟对象。

在一实施例中,处理器可传达为第二用户正确地对第二虚拟对象取向的信号。 处理器还可传达为第二用户生成经取向的第二虚拟对象的信号。这些信号可被传达 给通信网络。该通信网络可接收该信号,并且可为在离第一用户一定距离处的第二 用户生成第二虚拟对象。例如,第一和第二用户可位于相同房间或不同城市。在又 一实施例中,第二用户可藉由检测到的姿势或音频命令来提供附加输入以移动或重 新取向该虚拟对象。处理器还可从第二用户接收指示是要确认还是拒绝第二虚拟对 象的优选摆放的输入。第二用户还可提供按需旋转和重取向该虚拟对象的输入。

除了使得能在佩戴头戴式设备的两个或更多个用户之间实现共享体验之外, 由参与协作的这些头戴式设备中的一者或多者所生成的图像数据还可被传送给由 非参与者使用的头戴式设备或其他移动设备(诸如智能电话或平板计算机)并在其 上显示,以使得其他人能观看虚拟或扩增现实体验中的协作。如以上所描述,佩戴 头戴式设备或使用另一移动设备(诸如智能电话或平板计算机)来观看协作会话的 其他人可以不仅仅看到虚拟对象以及用户与这些虚拟对象的交互,而且还能具有有 限的与由这些头戴式设备用户之一看到的虚拟扩增进行交互的能力。该有限的交互 可包括触摸该扩增以产生影响,定义物理表面上的交互区域或锚点(有效地向共享 体验添加新扩增),和经由姿势和/或音频输入与共享混合现实场景进行交互。虚 拟体验中的任何此类改变可反映在由其他用户佩戴的头戴式显示器中。

图9A解说了用于为在分隔很远的位置上的两个用户渲染一锚定的虚拟对象 的图像的实施例方法900。例如,一位用户可能位于加州圣地亚哥,并且第二用户 可能位于第二位置,诸如举例而言英国剑桥。然而,在这两个位置上,所显示的锚 定的虚拟对象14均保持锚定于每个位置上的固定到图像的预定区域的锚表面。在 一些实施例中,一位用户可为多位其他用户选择用于一虚拟对象的锚表面。图9A 中解说的方法900可在具有用处理器可执行指令配置成执行方法900的操作的处理 器的计算设备中实现。在方法900的框901中,处理器可通过使用来自距离传感器 的数据、相机数据和计算出的距离数据处理图像来着手进行操作。

以上参考图5A描述的场景传感器500可包括近红外(NIR)脉冲发射器503c 和红外相机503b,其具有能够确定反射的红外脉冲的渡越时间信息的快速闸选机 构。基于光速以及来自照明器503c的红外发射脉冲的定时以及红外相机503b的闸 选,就可基于收到脉冲的定时来确定距捕捉到的图像内的各物体的距离。可为图像 中的每个像素或各像素群收集脉冲信号,并将其用来确定从距离传感器到该场景中 的各物体的距离,该距离可被记录并存储在存储介质中。

在框902中,处理器可计算用于在该图像中显示锚定的虚拟对象的参数。该 虚拟对象可能旨在要在处理器接收到输入之后才被固定于预定表面,并且所计算出 的参数可与期望表面有关。在框903中,处理器可渲染带有该虚拟对象的用于显示 的图像。在框904中,处理器可控制发射机/接收机或收发机以向/从服务器上传和 /或下载房间坐标地图。此类坐标地图可以是任何形式的位置定义信息,其使得这 些头戴式设备能在适宜的坐标系中确定该房间内的各结构的位置。例如,为了此类 房间坐标地图的目的,可用笛卡尔坐标的形式来定义正方形房间,其中X和Y维 对应于地板的主轴,而Z坐标对应于纵向维(即,地板到天花板)。由于头戴式 设备内的相机和其他传感器(和/或身佩式相机)可定位到房间的主结构维(诸如 墙壁、地板和天花板),因此可容易地将房间坐标的取向对准到该房间的墙壁和地 板。以此方式,这些系统无需关心地理坐标(例如,来自GPS传感器)或罗盘坐 标。另一方面,当用户在户外或在缺乏便利的笛卡尔参考系的空间内时,可将笛卡 尔坐标对准到GPS和罗盘坐标。

在标识出了参考坐标系的情况下,就可通过使用来自用户的(例如,来自距 离传感器和/或对立体图像的处理)对到各种定义坐标的表面(例如,墙壁、地板 和天花板)以及到在头戴式显示器的视野中的各种物体和表面的距离测量,来将在 各用户的视野内的结构和表面标识或链接到该坐标系。然后可使用简单的几何坐标 变换算法来将物体和表面的用户相对坐标变换到通用房间坐标地图。由此,此处理 的结果可以是在通用参考系内为房间内的每个物体或表面生成坐标矢量(例如,3 个坐标距离)的数据集。头戴式设备可使用此坐标数据库来确定其自己在该房间内 的位置。在得知其自己在该房间的坐标数据库内的位置的情况下,处理器随即可使 用简单的笛卡尔坐标变换算法来计算从该头戴式设备到该房间内的所有物体和表 面的距离和方向。在用户身处室外的境况中,通用参考系可基于地理坐标,其可被 任意性地选择并联系到GPS系统测量或从GPS系统测量来确定。

在另一实施例中,可将房间坐标地图存储在头戴式设备可访问的本地存储器 中,诸如存储在耦合到该设备的处理器的存储器中,或存储在无线地耦合到该头戴 式设备的移动计算设备(例如,智能电话)中。在框916中,该虚拟对象可在显示 器上被渲染在第一锚定表面上,并且处理器可随着用户移动以及转动头戴式显示器 而继续将该虚拟对象渲染在该第一锚定表面上。在框917中,可在第一和第二头戴 式音频设备之间建立音频链路以用于通信和协作。

转到图9B,在框905中,可位于离第一用户有一定地理距离处的第二头戴式 设备中的处理器可确定第二用户的位置和观看取向。这可通过使用本文中所描述的 任何定位方法来完成,包括获得坐标位置数据、罗盘数据、以及加速计数据来确定 该头戴式设备的位置和观看角度。在一些情形中,第二头戴式设备可通过识别出现 在图像内的用户身体部位来确定其观看角度,并使用解剖模型来从中推断有可能的 视角。在另一实施例中,第二用户可提供指定要在其上渲染虚拟对象的表面、并指 示用户视角的输入。在框906中,处理器可处理该虚拟对象以从第二用户的视角来 恰当地渲染该虚拟对象以供显示。在框907中,处理器可基于第二用户的位置和取 向在第二头戴式显示器中生成图像。

在确定框908中,第二头戴式设备的处理器可确定第二用户是否想要在所显 示的图像中选择一新的锚表面来锚定该虚拟对象。例如,第二用户可能希望将该图 像锚定在所显示的图像中的在协作期间可能便利的表面(诸如物理桌面)上。在一 实施例中,该虚拟对象可被锚定在可显现在所渲染的图像内的虚拟物理表面(诸如 举例而言,虚拟桌子)上。

如果处理器确定第二用户想要改变用于该虚拟对象的锚表面(例如,经由输 入)(即,确定框908=“是”),处理器可在框909确定此新指定的锚表面的 距离和取向参数。在框910中,处理器可基于该锚表面(桌面)的参数来改变该虚 拟对象的渲染,并在框911中基于第二预定表面的锚表面的距离和取向来处理该虚 拟对象。在框912中,第二处理器可在第二头戴式设备的显示器中渲染该图像,其 中锚定的虚拟对象在该锚表面上。

在框913中,可将从佩戴第二头戴式显示器的用户接收的对该虚拟对象的更 新传送给第一头戴式显示器以用于渲染。以此方式,这两个头戴式显示器的用户可 在协作会话期间协作地与该虚拟对象进行交互。这些更新可在这两个头戴式设备之 间传送,以使得每个设备显示反映由任一方用户所作的所有改变的经更新虚拟图 像。例如,在文字处理应用中,该虚拟对象可按协作方式反映来自双方用户的改变。 在框914中,可在第二和第一头戴式设备之间建立音频链路。这些用户可利用该音 频链路以音频会议格式来与彼此以及其他用户讲话。此会议可发生于在两个不同的 地理位置上的显示器上观看该虚拟对象的同时。在一实施例中,头戴式设备可使用 视频和音频会议软件。

如果处理器确定第二用户不希望将虚拟对象锚定在新位置上(即,确定框908 =“否”),则处理器可在框915中渲染该虚拟对象。例如,第二用户可仅简单 地选择在该头戴式显示器上在原始锚表面上、或以自由漂浮布局来显示该虚拟对 象。例如,处理器可在框915中以“待命模式”来显示该虚拟对象。

图10解说用于发起第一头戴式设备和第二头戴式设备之间的对等发现的实施 例方法1000。方法1000可在具有用处理器可执行指令配置成执行方法1000的操 作的处理器的计算设备中实现。一旦两个头戴式设备通过对等通信链路被链接起 来,这两个头戴式设备就可共享资源并可在这些设备之间共享和交换数据。方法 1000不限于将头戴式设备链接在一起,并且还可应用于可与一个或多个头戴式设 备链接的其他计算设备。在一实施例中,头戴式设备10可以能作为具有CPU的移 动设备(例如,电话、平板计算机等)的配件,并且方法1000中的一部分操作可 由该移动设备的CPU来执行而头戴式设备可执行较少操作,其中该头戴式设备用 作“终端”并可经由无线接口接收来自该移动设备的输出。例如,处理可在第一移 动设备上执行,并且可将显示输出递送给头戴式显示器,由头戴式显示器生成锚定 的虚拟对象的可视图象。

在方法1000的框1002中,处理器可从与头戴式设备相关联的定位设备(诸 如全球定位单元(GPS)或任何其他基于空间的全球导航卫星系统(GNSS)接收 机)、或与该头戴式设备相关联的导航设备接收位置数据。例如,该定位设备可以 是从无线电网络基站来确定位置的设备。在另一实施例中,头戴式设备可从本地设 备(诸如云服务器)、或从无线通信网络基站接收本地位置数据。在进一步的实施 例中,用户可提供指示该头戴式设备正在进入新位置和/或开始新的协作会话的输 入(例如,语音命令或按钮按压)。在一进一步的实施例中,头戴式设备可接收来 自其他设备的对等网络通告,并且从新的通告确定该设备已进入了新位置。

在确定框1004,处理器可基于位置数据或其他指示来确定第一头戴式设备是 否已进入了新位置。若是如此(即,确定框1004=“是”),则该头戴式设备可 在框1006发起对等发现,以确定是否有其他计算设备或头戴式设备在附近并且能 经由无线数据连接来链接。框1006中发起对等发现的过程可继续直至从能被链接 的设备接收到响应(即,只要确定框1008=“否”,框1006就继续)。当能够 建立对等通信链路的设备被标识出(即,确定框1008=“是”)时,可在框1010 中协商对等通信链路,并且在框1012中在这两个设备之间建立双向通信。

在框1014中,头戴式设备可从该头戴式设备已与之建立了通信链路的计算设 备接收地图数据。在此操作中,头戴式设备可下载已存储在该另一计算设备(例如, 另一头戴式设备、另一计算设备或远处服务器等)上的任何地图数据,从而该头戴 式设备能立即在此新位置内对自己进行取向。例如,如果头戴式设备已与之建立了 通信链路的计算设备能访问网络或因特网,则可从远程服务器(例如,从“云”) 下载地图数据。头戴式设备还可扫描其自己的内部存储器以确定此新位置的地图数 据是否已存储在存储器中。如果地图数据已存储在存储器中,则作为框1014中的 操作的一部分,头戴式设备可与该头戴式设备已与之建立了通信链路的计算设备共 享该地图数据中的一些数据。同样,在交换地图数据之前,这些在通信的头戴式设 备可确定它们是否彼此靠近,并且仅在它们足够近地靠近在一起从而使得共享地图 数据将减少一方或双方设备处理器的处理负担的情况下才交换地图、距离和取向数 据。由此,如果头戴式设备和链接着的计算设备不在相同房间中,则共享将与另一 方设备不相关的位置、地图或取向数据可能是没有意义的。

在框1016中,处理器可接收来自头戴式或身佩式立体相机的数据、以及可由 距离传感器获得的距离测量。在框1018中,处理器可使用在框1014中接收的任何 地图数据协同相机图像以及任何距离测量来在该地图和场景内对该设备进行取向。 任选地,在框1018,处理器可为在这些图像中所见的、未显现在收到的地图数据 内的任何物品或结构生成或更新三维地图数据。如果没有从另一计算设备接收到地 图数据,并且该设备在存储器中没有该位置的地图,则处理器可在框1018生成新 地图。

在框1020中,头戴式设备处理器可使用来自各种传感器(包括距离传感器和 取向传感器)的数据来处理由相机获得的图像。此处理可使得该设备能在地图数据 内的坐标或位置内定位自己。此处理还可包括确定到锚表面的距离及锚表面的取向 以在渲染虚拟对象时使用。

在框1022中,头戴式设备处理器可与链接着的计算设备交换显示和虚拟对象 数据,以使得这些设备能生成可在协作中使用的显示。在框1024中,头戴式设备 可开始支持用户进行协作,诸如通过在锚服务上显示虚拟对象,检测并响应于用户 命令姿势,以及将改变和输入传达给其他耦合着的计算设备,如本文中关于各个实 施例所描述的。

图11解说用于将所识别出的姿势和检测到的音频作为输入命令来处理的实施 例方法1100。这些姿势和检测到的音频可在头戴式显示器上执行任务和指令。方 法1100可在具有用处理器可执行指令配置成执行方法1100的操作的处理器的计算 设备中实现。

在此实施例方法中,以一种形式(诸如所识别出的用户姿势)接收到的用户 输入命令可由另一种形式(诸如由话筒接收到的口头命令)的用户输入来确认。例 如,如果头戴式设备的处理器识别出第一命令(诸如通过处理图像数据来识别姿 势),则处理器可监视短时期里其他的用户输入以寻找是否有确认所识别出的第一 命令的第二命令。在此实施例中,处理器可能并不实现与第一识别出的用户输入对 应的动作或执行与第一识别出的用户输入对应的任务,除非该动作或任务得到第二 用户输入的确认。第二用户输入可以是由话筒接收的语音命令、或在由身佩式相机 搜集的图像内识别出的第二姿势。此实施例可以是很有用的,因为数个正常的用户 运动可能被误读为命令姿势;从而要求在姿势命令被执行之前由用户确认这些姿势 命令并防止非有意的命令被执行。等待确认性用户输入的过程可于在图像内识别出 由用户作出的姿势时、或者在处理器相信其已接收到口头命令时被调用。一般而言, 该双命令确认过程可避免头戴式设备无意地对杂散姿势或不经意地说出的命令采 取行动的境况。取而代之的是,头戴式设备将等待第二命令才采取行动。此双命令 过程还可基于所识别出的命令的类型来实现,诸如当与所识别出的命令相关联的动 作涉及可能非愿望或不可逆的操作(像是删除一条内容)时。

在方法1100的框1101中,处理器可通过接收与头戴式设备的取向有关的传 感器数据来着手进行操作。在框1102中,处理器可从相机接收与捕捉到的图像有 关的数据。在框1103中,处理器可计算图像内的各物体的距离和取向。在框1104 中,处理器可使用传感器数据、相机数据和距离传感器数据来处理该图像。在框 1105,处理器可在显示器上渲染该图像,其中虚拟对象被包含在该图像中。

在框1106中,相机数据可被处理以用于确定是否有任何解剖特征包含在该相 机的视野内。一般而言,可向捕捉到的相机图像数据应用解剖特征检测算法以确定 是否有任何特征被识别为是人体部位。例如,解剖识别算法可扫描从身佩式相机接 收到的图像以确定是否识别出解剖特征,诸如具有五指的手以及手臂。此识别解剖 特征的过程还可确定这些特征在捕捉到的图像内的取向,诸如用户的手臂的角度之 类。可在一时段上在图像中跟踪所识别出的解剖特征的位置和取向,并将其与用户 姿势的数据库或字典作比较以确定所跟踪到的解剖特征的运动对应于所识别出的 姿势。如果识别出了用户姿势,则处理器可响应于检测到的姿势来输出命令。例如, 该命令可以打开软件应用,或可向软件应用提供信号或输入。

在确定框1107中,处理器识别用户姿势可通过将所识别出的解剖特征的运动 与预定义解剖运动的数据库(诸如可在姿势字典中维护)作比较来完成。例如,可 在捕捉到的图像中识别出身体部位(诸如手),并在预定时间区间上跟踪其运动。 例如,如果处理器使用解剖模型识别出用户的手和手指位于身佩式相机的前面,其 中两个手指向外伸出并且三个手指朝着用户的手掌向下收起,则处理器可通过将用 户的手和手指的这一取向与姿势字典作比较来确定该用户正在表达要处理器采取 一行动的愿望。处理器可通过将图像模式和运动与存储在姿势字典中的运动数据或 模式作比较来识别身体部位的姿势布局。此类姿势字典可存储关于运动的姿势数 据,这些运动可包括戳、轻拍、叩击、推、指引、弹拂、转向、旋转、抓和拉、两 手的手掌打开以摇摄图像、绘图(例如手指绘画)、用手指形成形状(例如“OK” 手势)、以及挥扫,所有这些运动可以在所生成显示中的虚拟对象的视在位置上或 紧邻该视在位置来完成。如果头戴式显示器在相机图像数据中识别出匹配于姿势字 典内的条目的姿势(即,确定框1107=“是”),则处理器可在框1108中处理 与所识别出的姿势相对应的输入命令。在框1109中,该输入命令可由处理器来执 行。此输入还可以是传达给软件应用、或计算设备的任何信号或数据,或者是要提 供指示的信号。

同样,如以上所讨论的,基于识别出的姿势对命令的执行可以不被完成,直 至接收到第二确认用户输入。由此,在此类实施例中,处理器不是执行该命令,而 是可代之以在框1109中显示(或生成)要用户确认所识别出的姿势命令的提示(或 音调)。在确定框1110,处理器可确定在姿势命令的识别之后是否在短时期里从 话筒接收到任何音频(或其他用户输入)。如果在该时期内接收到音频,则处理器 可处理该音频以确定是否说出了确认所检测出的姿势的确认性命令。为此目的,接 收自话筒的音频输入可被数字化,并且将结果所得的数据与语音命令识别数据库作 比较以寻找与一个或多个输入命令对应的单词。当处理器确定音频输入匹配于与命 令确认相对应的语音命令模式(即,确定框1110=“是”)时,处理器可在框1111 中处理输入命令,其结果导致与该音频对应的行动。在框1112中,处理器可执行 所识别出的命令,并且在框1113中可在头戴式显示器上显示指示或所识别出的任 务。

例如,用户可通过指点来作出要将虚拟对象14锚定在物理表面上的姿势。一 旦识别出此姿势,处理器即可生成请求用户确认该命令的提示(诸如可听的音调或 呈现在头戴式显示器中的消息)。为此,用户可说出像是“OK(好)”、“确认”、 或“就这么做”之类的单词来确认由头戴式设备所识别出的姿势命令应被执行。由 此,当处理器检测到确认性或可听命令时,处理器可在头戴式显示器中呈现示出该 虚拟对象锚定在用户正指向的物理表面上的图像。

如果没有接收到被识别为对应于说出的音频命令的音频(即,确定框1110= “否”),则处理器可确定所检测到的姿势是无意的,并且处理器可忽略所识别出 的姿势和输入命令,并可继续处理相机数据以在框1107寻找解剖姿势。

返回到确定框1107,如果处理器没有在图像数据内识别出姿势(即,确定框 1107=“否”),则处理器可在框1106中继续处理相机数据以寻找解剖姿势持续 进一步的附加时间区间。处理器可在框1113中在头戴式显示器上显示指示未曾识 别出姿势的任务标识符或图标。替换地,一接收到姿势命令,处理器即可显示任务 标识符或图标,其可用作要用户发出确认性命令(诸如口头命令或“OK”姿势命 令)的提示。

在另一实施例中,可以使用不同的第一和第二命令。在另一实施例中,处理 器可被配置成首先检测音频命令,并在接收到的图像内寻找确认性姿势命令,这在 实效上调换了确认框1107和1110中执行的操作。在进一步的实施例中,可能需要 不止一种类型的确认性输入,诸如可听命令与按钮按压相组合,等等。

图12解说用于将识别出的姿势作为输入命令来处理以在头戴式设备上执行软 件任务的实施例方法1200。方法1200可在具有用处理器可执行指令配置成执行方 法1200的操作的处理器的计算设备中实现。

在方法1200中,处理器可在框1201中通过接收与头戴式设备10的取向有关 的传感器数据来着手进行操作。在框1202中,处理器可如上所描述地接收来自立 体相机的立体图像数据、以及来自头戴式设备10中所包括的任何距离传感器的数 据。由此,在框1202中,处理器可获得由头戴式设备搜集的关于图像以及距在(诸) 相机的视野内的表面的距离的所有信息。在框1203中,处理器可计算所捕捉到的 图像中的各物体的距离和取向数据。这些计算可使用众所周知的三角测量方法(当 在框1202中提供了立体图像时),使用直接测量(当使用了距离传感器来提供距 离数据时),以及使用从传感器获得的以及从立体图像计算出的距离信息的组合。 在框1204中,处理器可使用距离传感器数据、相机数据以及距离和取向数据来处 理该图像。在框1205,处理器可在头戴式显示器上渲染带有虚拟对象的该图像。 在框1206中,可由处理器跟踪相机数据。所捕捉到的图像可被处理,并且处理器 可确定在这些捕捉到的图像内是否包含有解剖特征。处理器可对捕捉到的图像应用 解剖特征检测算法来确定是否有任何特征或至少一个身体部位位于该数据内。处理 器可在一时间区间上跟踪该身体部位以确定是否识别出预定姿势。

在确定框1207中,处理器可确定是否在所捕捉到的图像中识别出任何姿势。 若是如此(即,确定框1207=“是”)(这指示处理器已在该图像中识别出姿势), 则处理器可在框1208中将所确定的姿势与存储在存储器中的输入命令基本匹配。 处理器可在框1209中执行与检测到的姿势相对应的输入命令。在框1210中,处理 器可执行与该输入命令相对应的任务。如果处理器得出没有识别出的姿势的判定 (即,确定框1207=“否”),则处理器可在框1211中继续跟踪所捕捉到的图 像,并对所捕捉到的图像应用检测算法以跟踪输入。

图13解说用于在立体景深图像中检测物体并基于此检测以及对所检测到的物 体的解读来提供有趣的视觉虚拟现实效果的实施例方法1300。方法1300可在头戴 式显示器上显示“据信必不可少的物体”,而方法1300可在头戴式显示器上将其 他“非必不可少的物体”渲染为透明的。方法1300可在具有用处理器可执行指令 配置成执行方法1300的操作的处理器的计算设备中实现。在方法1300中,处理器 可通过在框1301中接收与相机和头戴式设备的取向有关的传感器数据来着手进行 操作。在框1302中,处理器可捕捉图像并从相机接收数据。在框1303中,处理器 可计算图像内的各物体的距离和取向。在框1304中,处理器可使用距离传感器数 据、相机数据、取向、以及距离数据来处理该图像。

在框1305中,该过程可在显示器上渲染带有虚拟对象14的图像。在确定框 1306中,处理器可确定是否在这些图像内识别出任何物体。例如,可对所检测到 的图像和数据应用解剖检测算法以确定是否在这些图像中检测到身体部位。例如, 可对所捕捉到的图像应用解剖或骨骼检测算法来检测身体部位(诸如手臂或手), 其可被渲染为可见或渲染为透明的。如果处理器确定检测到其他物体(即,确定框 1306=“是”)(这指示检测到了物体),则处理器可确定是否要通过将虚拟对 象叠加在该物体上以使得该物体看似就像已从该图像中被略去那样来将该物体渲 染为透明的。

在各种实施例中,可用各种透明性特性来呈现各虚拟对象。在一些实施例中, 虚拟对象可被显示为出现在真实世界物体(手臂、手、手指、和脸)的轮廓之上。 在此类实施例中,可在形状上改变虚拟对象以与真实世界物体匹配或覆盖在真实世 界物体之上。以此方式,真实世界物体就在头戴式显示器上的图像输出中显现为“穿 透”的。在一实施例中,如果有不必要的物体在墙壁或桌子前面,则可生成仿效该 墙壁和/或桌子的虚拟对象并将该虚拟墙壁/桌子覆盖在此不必要的物体之上。如果 处理器确定没有检测到其他物体(即,确定框1306=“否”),则在框1310处 理器可继续工作并渲染带有该虚拟对象的该图像。

在确定框1307中,处理器可确定在这些图像内识别出的任何物体是否是必要 的。例如,据信“必要的物体”可被显示,而其他据信“不必要的物体”可被渲染 为透明的以从该图像中略去该物体。例如,据信必要的物体可以是图像中用户自己 的手,但另一据信不必要的物体可以是位于该虚拟对象之上的第二个人的手。不必 要的物体可以用轮廓形式来显示,而虚拟对象叠加在此不必要的物体之上。术语必 要和不必要可由用户利用下拉菜单或任何受支持的由用户指示偏好的姿势或方法 (诸如凝视检测、可被头戴式或身佩式相机识别的手指点姿势、等等)来任意性地 编程和选择。用户可将头戴式设备编程为将“其他用户的特征”显示为透明的并总 是显示出“我的特征”,或者反之。如果处理器确定这些物体是必要的(即,确定 框1307=“是”),则处理器可提供程序指令以在框1310渲染具有该必要物体 和该虚拟对象的该图像。例如,用户自己的手可被认为是必要的并且显示在图像中。 术语必要的和不必要的是任意性的参数,并且可由用户来确定。例如,用户在建立 操作规程时可指示必要的物体以及不必要的且应被渲染为透明的物体。例如,用户 可使用下拉菜单和输入设备来确定该用户的手是必要的,并且图像中其他用户的身 体部位不是必要的。例如,许多不同的用户可能出现在该图像中并且在锚定的虚拟 对象之上进行协作。该场景可能充斥着许多用户和许多虚拟对象。因此,其中一些 用户可被渲染为透明的,以便减轻拥挤以增强协作。

如果处理器确定这些物体是不必要的(即,确定框1307=“否”),则在框 1308处理器可渲染使该物体为透明的图像。在框1309中,处理器还可以按将不必 要的物体渲染为透明的或将虚拟对象显示在不必要的物体之上的方式来显示虚拟 对象。在另一实施例中,可仅在该物体遮挡了虚拟对象14时才将该物体渲染为部 分透明的,并可在该物体并不遮挡虚拟对象14时将其渲染为实体的。

图14解说用于在头戴式显示器上渲染图像的实施例方法1400,其将可能出现 在图像场景中的手、手臂和其他人类特征(例如,用户和另一个人的那些特征)考 虑在内。在此实施例中,头戴式设备处理器可捕捉要在其中要显示虚拟对象的场景 的图像,识别出现在所捕捉到的图像中的身体部位(诸如通过使用解剖模型来处理 该图像),并基于所识别出的身体部位来调整该虚拟对象的显示。对显示的调整可 涉及在所识别出的身体部位的前面、后面、或与之混在一起地渲染虚拟对象。例如, 处理器可在用户的特征(例如,手和手臂)遮蔽了虚拟对象之处将虚拟对象渲染为 部分透明的,并在用户的特征并不遮蔽虚拟对象之处将虚拟对象渲染为非透明的。 以此方式,用户可看见他/她的手在虚拟对象的图像附近,而该虚拟对象的其余部 分看起来就像真实的那样是实体的。替换地,处理器可渲染虚拟对象以使得该用户 自己的特征显现在虚拟对象的前面或上方(即,实体的),而另一个人的手和手臂 (以及其他身体部位)被渲染为透明的,从而虚拟对象的图像会使得它们不可见 (即,虚拟对象遮挡了用户对该另一人的手/手臂的视线),或使得该虚拟对象能 透过该另一人的手和手臂被观看。

例如,头戴式或身佩式相机可捕捉场景的图像,其包括该用户和另一个人的 手和手臂。该设备的处理器可对所捕捉到的图像数据应用解剖算法以识别在所捕捉 到的图像内的身体部位。例如,处理器可通过将图像形状与解剖模型作比较来在所 捕捉到的图像中检测用户的手和第二个人的手。

这两组手都可能遮挡虚拟对象。例如,可为该图像审阅五个手指和手的大小 数据。处理器可推断捕捉到的图像上取向为自顶向下的手是此第二个人的手,而捕 捉到的图像内取向为自底向上的其他手则是该用户的手。附加地,处理器可捕捉所 识别出的物体的距离数据以编制推断。例如,当处理器确定解剖特征(例如,手臂 和手)离该用户至少有预定距离(十二英尺)时,则处理器可从此信息推断出那些 特征属于另一个人。附加的感测到的参数也是可行的并且在本公开的范围之内。例 如,物体的高度、物体的取向、以及物体的大小全都可被利用。

在方法1400中,处理器可在框1401中通过接收与这些相机的取向有关的传 感器数据来着手进行操作。在框1402中,处理器可从这些相机接收数据。在框1403 中,处理器可计算图像内的各物体的距离和取向。在框1404中,处理器可使用距 离传感器数据、相机数据、图像的取向、以及距离数据来处理所捕捉到的图像。在 确定框1405中,处理器可确定在该图像内是否识别出与用户的特征(例如,用户 的手、手臂、腿、躯干等)相对应的物体。此确定可涉及通过识别捕捉到的图像内 的物体、将所识别出的物体与存储在存储器中的骨骼模型作比较、以及响应于将所 识别出的物体与该骨骼模型作比较来确定是否有任何识别出的物体匹配于该骨骼 模型的一部分来对该图像应用解剖分析。该骨骼模型可包括关于人类骨骼的关键关 节、骨、和肢的相对位置信息。

如果在图像中识别出人的特征(即,确定框1405=“是”),则在框1409, 处理器可渲染该图像,其中该虚拟对象和该用户的特征在该图像中。如果在图像内 没有检测到用户的特征(即,确定框1405=“否”),则处理器可在确定框1406 中确定该特征是否为第二个人的特征。

在确定框1406中,处理器可确定是否检测到第二个人的特征。此确定可涉及 响应于识别出出现在所捕捉到的图像中的身体部位而确定该身体部位属于第一个 人还是属于第二个人,确定虚拟对象的位置和所包围区域、以及确定所识别出的身 体部位是否与被该虚拟对象所包围的区域的至少一部分交叠。这些特征可被处理器 渲染成透明的。处理器可通过生成虚拟对象并将其叠加在所检测到的特征上来略去 该(诸)物体。例如,处理器可在显示器上将虚拟对象渲染在第二个人的手之上。 若是如此(即,确定框1406=“是”)(这指示第二个人的手在图像中被检测到 且其不是必要的),则处理器可在框1407中将虚拟对象渲染为在该图像中叠加在 第二个人的手之上。

如果处理器不能确定该物体是否为第二个人的手(即,确定框1406=“否”), 则处理器可在框1408中渲染带有该虚拟对象的该图像。处理器可确定该图像中对 应于期望物体的数个像素,并且随后将期望物体的轮廓保留为显示的,但用虚拟对 象14来替换该图像中的像素。轮廓大小可以变化,并且可包括物体图像长度的约 1个百分点。

图15解说头戴式设备10的显示输出的解说的高级俯视图。该显示输出示出 虚拟对象14。虚拟对象14被解说为输出数据的虚拟平板屏幕。在此实施例中,虚 拟屏幕输出具有数个柱状图的图形表。多个用户可在虚拟现实框架中在该虚拟对象 之上协作,其中虚拟对象14仅出现在该显示的输出中,但对观看者而言看起来是 有形的真实物体。

在所解说的示例中,处理器在立体景深图像内检测到用户的特征或手1502, 并且检测到另外两个人的特征或手1500和1501在虚拟对象14之上。如图15中所 解说的,处理器允许该用户的手作为该显示中的必不可少的元素而被显示。用户的 手将显现在虚拟对象14之上并将遮挡虚拟对象14。另外,其他两个人的特征可被 渲染为在虚拟对象14的各部分上仿佛是透明的,因为这些元素被认为不是必不可 少的,并且会分散或充斥头戴式设备10的用户的视线。虚拟对象14可由处理器显 示为叠加并覆在手1500和1501之上,由此手1500和1501并不遮蔽所生成的虚拟 对象14。

在所解说的示例中,第二用户的手1501被处理器渲染为“透明的”,并且如 由第二个人的手1501的轮廓所示地渲染在虚拟对象14之上。虚拟对象14正常情 况下应被遮蔽的部分可被直接渲染在第二个人的手1501上。在所解说的示例中, 第二用户的手1501看起来是透明的,只有手1501的轮廓被示出。另一用户的手 1502在所解说的示例中被渲染为“实体物体”,其中那些手1502被渲染在虚拟对 象14之上并遮蔽了虚拟对象14。在所解说的示例中,手1502看起来是实体的并 且底下的虚拟对象14可能不可见。在一实施例中,其他人的手可被检测到并与手 1500和1501的轮廓一起渲染。手1500和1501的其余部分被解说为被渲染在虚拟 对象14之下。

头戴式或身佩式相机可捕捉图像并对捕捉到的图像数据应用解剖模型来识别 身体部位。例如,这可以是在虚拟对象14之上的用户的手1502、以及第二个人的 手1500和第三个人的手1501。例如,可以审阅五个手指、手大小数据、手臂的一 部分、手的取向、手指的取向、距离数据以及取向数据。处理器可推断取向为从图 像的顶部向着图像的底部延伸的手是第二个人的手1500。处理器还可推断取向为 从图像的右侧离相机1501有一定距离的手是另一个人的手1501。处理器还可推断 取向成从图像的底部向上延伸的第三组手1502如果在一定距离范围以内并且在该 图像中相对于头戴式设备10的取向定位成与解剖模型一致则是该用户的手。附加 的感测到的参数也可被处理器用来识别身体部位。例如,当该用户的手或手臂已被 跟踪到时,处理器可推断所显示的图像中所有其他的手属于其他用户,并且因此该 处理器可在呈现在头戴式显示器中的图像中将那些其余的手渲染为轮廓或透明的。

图16解说跨高速数据链路与移动设备1605通信以利用处理资源的头戴式设 备1600的另一实施例。图16解说头戴式设备1600的数个子组件。头戴式设备1600 可作为移动CPU(电话、平板计算机等)的配件来工作,其中主处理在移动CPU 上执行。一般而言,可将头戴式设备1600制作得尽可能轻质以便舒适地佩戴在用 户的头周围。头戴式设备1600可利用移动设备1605的处理和数据存储资源,并且 VIRT控制系统1610可被实现在移动设备1605上运行着的软件应用内。移动设备 1605可通过在移动设备1605处执行处理来提供处理功能,增加存储器,以及节约 头戴式设备1600的电池寿命。

头戴式设备1600包括连接到处理器的场景传感器(RGB-D相机)1615。头戴 式设备1600还可包括音频传感器(话筒)1620和立体景深显示器1625。显示器 1625可以是半透明OLED视频显示器1625。头戴式设备1600还可包括纳入扬声 器的耳塞,或可替换地包括一对头戴式受话器1630。在另一实施例中,头戴式设 备1600可包括裸机设备1600以便使其轻质。设备1600可包括无线接口、场景传 感器1615、电池以及显示器1625。无线接口可向移动设备1605中的处理器传达数 据,该移动设备可被配置成运行VIRT控制系统1610以使得头戴式装置保持轻质 并且用户佩戴舒适。如以下参考图41更详细地描述的,移动设备1605包括处理器 和存储器,并且在一实施例中,处理器可配置成具有VIRT控制软件模块1610, 该模块可配置成与头戴式设备1600互操作。移动设备1605和头戴式设备1600可 使用高速数据链路1612来通信,该链路可以是有线的或无线的。例如,高速数据 链路1612可以是选自以下任何一项或多项的短程无线数据链路1612:高通的以及无线协议。

例如,可利用传感器1615、1620和1630来捕捉传感器数据并将其转换成数 字数据。可将该数字数据传达给无线设备,并且可将该数字数据沿链路传达给能在 移动设备1605上操作的控制系统1610。控制系统1610可处理感测到的数据并可 渲染显示数据。例如,控制系统1610可接收该区域的扫描图像和距离数据,并在 房间中的至少一个表面上生成虚拟对象。显示数据可沿该链路被传回,并且在头戴 式显示器1625上输出。

图17解说使用移动设备与头戴式设备之间的高速链路来使得能够将传感器数 据处理卸载到移动设备的实施例方法1700。方法1700可在具有用处理器可执行指 令配置成执行方法1700的操作的处理器的计算设备中实现。在框1701中,处理器 可接收与头戴式设备及其相机的取向有关的传感器数据。在框1702中,处理器可 从该设备的各相机接收图像数据。在确定框1704中,处理器可确定是否有无线地 与头戴式设备通信、并且能够协助进行处理和存储器存储的移动设备在场。若非如 此(即,确定框=“否”),则在框1710中,这些图像可由头戴式设备处理, 正如在其他实施例中所描述的。

如果有无线地与头戴式设备通信、并且能够协助进行处理和存储器存储的移 动设备在场(即确定框=“是”),则在框1705中该头戴式设备可向移动设备 发送传感器数据以供由移动设备处理器来处理。在框1706中,移动设备处理器可 基于收到的数据来计算图像内各物体的距离和取向数据。在框1707中,移动设备 处理器可使用接收自头戴式设备的传感器和相机数据来处理该图像数据。在框 1708中,移动设备处理器可使用接收自头戴式设备的传感器和图像数据来生成虚 拟对象的显示数据,并将所生成的显示数据传送给头戴式设备。在框1709中,头 戴式设备可使用接收自移动设备的显示数据在头戴式显示器上渲染图像。此过程可 通过返回到框1701来继续进行,尽管一旦头戴式设备确定了有移动设备在场(即, 确定框1704=“是”),对于当前会话就可以不重复进行确定。

图18解说用于向共享用户存储器传达数据以使得第二头戴式设备可访问共享 数据的方法1800。方法1800可减少用于渲染图像的处理时间或者可减少用于在正 确地取向的显示器上生成虚拟对象的处理时间。例如,在一些实施例中,处理器可 处理图像数据并且还可从存储介质接收图像数据或位置数据以更快地渲染虚拟对 象。方法1800可在具有用处理器可执行指令配置成执行方法1800的操作的处理器 的计算设备中实现。

在方法1800中,处理器可通过接收与这些相机的取向有关的传感器数据来着 手进行操作。在框1802中,可捕捉图像并且处理器可从各相机接收立体图像数据。 在框1803中,处理器可计算图像内的各物体的距离和取向。在框1804中,处理器 可处理来自各传感器的图像数据。在框1805中,可渲染带有虚拟对象的该图像。 在框1806中,可作出关于是否要将数据共享到远程存储介质以使得其他头戴式设 备可接收此共享数据并利用此共享数据的决定。例如,其他头戴式设备可获得位置 数据,或者可使用此共享数据来渲染该图像和虚拟对象。

如果处理器决定要将数据共享到远程存储介质(即,确定1806=“是”), 则在框1807可将数据传达到共享存储器。如果处理器决定不要将数据共享到远程 存储介质(即,确定框1812=“否”),则处理器可继续前行至框1801以继续 捕捉数据。第二头戴式设备10b可在框1808中从该存储介质访问数据并可在框 1809中接收该数据。在框1810中,可计算距离数据,并且在框1811可处理图像。 在确定框1812可得出要共享由第二头戴式设备10b聚集的数据的决定。例如,该 数据可以是扫描的传感器数据或其他要协作的数据。此数据可由处理器传送并存储 在存储介质处。如果处理器决定要共享由第二头戴式设备聚集的数据(即,确定框 1812=“是”),则在框1813中可将数据传达到共享存储器。如果处理器决定不 要共享第二头戴式设备所聚集的数据(即,确定框1812=“否”),则处理器可 继续前行至框1809以继续接收关于图像的数据。

图19解说用于在通信网络上共享数据并供多个设备使用的实施例方法1900。 头戴式设备10可与第二移动通信设备10b共享资源。方法1900可在具有用处理器 可执行指令配置成执行方法1900的操作的处理器的计算设备中实现。

在方法1900中,处理器可通过接收与各相机的取向有关的传感器数据来着手 进行操作。在框1902中,处理器可从相机接收立体图像数据。在框1903中,处理 器可计算图像内的各物体的距离和取向。处理器可转换图像数据以及位置和取向数 据。数据可用位置数据作标签以供第二头戴式设备使用。第二头戴式设备可接收该 距离、图像、以及作了标签的位置数据。第二头戴式设备可利用该数据以用最小限 度的处理来渲染图像,其中有该虚拟对象在该图像中。

在框1904中,处理器可对图像中的各物体作标签以将作了标签的信息存储在 几何三维模型中。该标签可包括可从GPS设备获得的地理位置数据。在一实施例 中,该位置数据可描述房间中的物体以及各物体相对于彼此的相对位置。在另一实 施例中,每个物体可被指派包括物体取向的GPS坐标。在一实施例中,该标签可 包括至少四个分开的位置坐标。在一进一步的实施例中,与虚拟对象相关联的数据 也可用位置数据作标签。在框1905中,处理器可使用传感器数据、相机数据、图 像的取向、以及距离数据来处理图像。在框1906中,处理器可将物理环境渲染在 模型中。该模型可由处理器上传并传送到存储介质,该存储介质可由其他头戴式设 备、或连接到其他头戴式设备的各单独的处理器访问。如本文中所提及的,通过利 用外部处理器和存储介质(例如,智能电话、个人计算机、或经由本地无线网络可 访问的服务器),头戴式设备可被配置成轻质的。第二头戴式设备可确定其位置并 可向存储介质形成访问与当前位置有关的扫描数据的请求。该存储介质可接收该请 求。该存储介质可基于该位置将数据传达给头戴式设备。

在确定框1907中,处理器可决定是否要共享该数据。若是如此(即,确定框 1907=“是”),则处理器可共享该数据并将该数据传达给与第二用户相关联的 移动设备(框1908),或传达给存储介质(其中计算设备可向该存储介质请求数 据)。例如,该存储介质可包括另一计算设备、服务器、或网络分布式计算设备。 如果处理器决定不要共享该数据(即,确定框1907=“否”),则处理器可继续 前行到框1901以继续从各传感器接收与相机的取向有关的数据并在框1902中捕捉 图像。在框1908中,第二头戴式设备可访问该共享数据。在框1909中处理器可利 用该共享数据来显示虚拟对象,同时减少用于渲染该虚拟对象的处理量。

图20解说使用服务器来在至少两个头戴式设备之间共享位置坐标数据和扫描 数据以渲染虚拟对象的实施例方法2000。例如,处理器可在通信网络上共享数据 以供多个设备使用,从而这些设备可通过获得共享数据来处理图像数据、位置数据、 取向数据、距离数据,以及更迅速地在图像中渲染虚拟对象,或可在软件应用之间 共享其他对于协作目的而言有用的数据。例如,一位用户或许能够访问存储在存储 器中的另一用户的文件。方法2000使得处理器能够与其他设备协作和共享资源。 方法2000可在具有用处理器可执行指令配置成执行方法2000的操作的处理器的计 算设备中实现。在框2001中,处理器可通过执行与第一头戴式设备相关联的应用 来着手进行操作。

在框2002中,处理器可打开与该头戴式设备相关联的输入/输出信道。处理器 可在框2003用第二头戴式设备来执行应用,并在框2004中打开该信道以在该信道 上通信。在框2005中处理器可在共享服务器上执行应用。在框2007中,处理器可 使用RF信道来创建至服务器以及这两个头戴式设备的连接。在框2008中处理器 可使用第一和第二头戴式设备以及服务器来协作。在框2009中,处理器可共享音 频数据。在框2010中,处理器可在服务器处共享数据文件并同步文档。在框2011 中,处理器可在各移动设备处检测音频姿势以发现新命令。

同样,如以上所描述的,将由其中一个或多个头戴式设备所生成的图像和音 频数据与服务器共享可使得其他人能通过佩戴从该服务器接收图像和音频数据的 头戴式设备来看到和听到与参与者相同的事物来观察虚拟或扩增现实体验中的协 作。通过使得能在观察者的头戴式设备之间以及在服务器与参与者头戴式设备之间 进行双向通信,佩戴头戴式设备的观察者还能具有与在头戴式显示器中看见的虚拟 对象进行交互的能力。观察者与虚拟对象的交互可包括触摸该扩增以产生影响,定 义物理表面上的交互区域或锚点(有效地向共享体验添加新扩增),和经由姿势和 /或音频输入与共享混合现实场景进行交互。可使得虚拟体验中由观察者作出的任 何此类改变都反映在由参与者和其他观察者佩戴的头戴式显示器中。

图21解说使用服务器来经由可标识目录在至少两个设备之间共享数据的实施 例方法2100。该目录可标识在预定区域中的其他有能力的设备和头戴式设备。一 旦一头戴式设备进入一区域,该头戴式设备就可注册并可在目录上存储地址信息, 该目录可与其他头戴式设备共享。在替换实施例中或在这些实施例的可能实现中, 可由附连的处理器单元(诸如智能电话)来执行扫描功能。使用由分开的设备对区 域进行的扫描在使用轻质的头戴式设备时可能尤为合适。以此方式,头戴式设备可 从集中位置迅速确定是否有其他头戴式设备可用以进行协作以及共享扫描资源。方 法2100可在具有用处理器可执行指令配置成执行方法2100的操作的处理器的计算 设备中实现。该目录可以是提供关于可用设备的信息的计算机可读数据。这促成了 在通信网络上共享数据以供多个设备使用。例如,该目录可包括关于建筑物中的各 扫描区域的信息,其中有地理标签与该目录相关联,由此知道自己位置的设备10 可查看该目录以获得用于渲染虚拟对象14的扫描数据。例如,该数据可包括关于 虚拟对象14的数据,可包括关于该区域中的一个或多个表面的数据、取向数据、 物体位置数据、或任何其他有用的或处理器密集型数据,这些数据能被迅速获得。

实施例方法2100使得能够协作并共享资源,以使得由头戴式设备自身执行的 处理量最小化。在方法2100中,处理器可通过在框2101中从可能正在运行应用的 第一头戴式设备接收要进行协作的输入请求来着手进行操作。在框2102中,处理 器可发起对附近设备的对等搜索以进行协作。在确定框2103中,处理器可决定是 否要与所发现的设备协作。若是如此(即,确定框2103=“是”),则处理器可 创建这些设备之间的连接。处理器可使用双向通信链路来进行协作。在框2104中, 可在第一和第二头戴式设备10和10b之间形成通信链路。

处理器可访问服务器中的目录。在框2105中,利用该目录的处理器可通过扫 描该目录来确定是否有其他用户可用于进行协作。在确定框2106中,处理器可决 定是否要选择新用户。处理器可基于输入或基于决策规则引擎来决定是否要选择可 基于一个或多个预定义的关系规则进行协作的新用户。如果处理器决定要选择新用 户(即,确定框2106=“是”),则处理器可行进至确定框2107以确定是否要 创建至该新用户的连接以用于进行协作。在确定框2107中,处理器可决定是否要 与该新用户协作。如果处理器决定要与该新用户协作(即,确定框2107=“是”), 则在框2108中处理器可创建到各相关设备的连接,并可使用第一和第二头戴式设 备来进行协作。

如果处理器决定不要与该新用户进行协作(即,确定框2106=“否”),则 处理器将向用户输出预期没有更多用户的消息,并且在框2019中与现有参与者着 手进行协作。如果处理器决定不要选择新用户(即,确定框2107=“否”),则 处理器将假定该协作被拒绝。处理器可输出预期没有更多用户的消息,并在框2109 中与现有参与者着手进行协作。

图22示出第一头戴式设备2205和第二头戴式设备2210位于两个不同地理位 置的高级解说。图22解说第一和第二头戴式设备2205、2210的数个组件,并且还 解说可提供头戴式设备2205、2210之间的数据交换功能的VIRT服务组件2265。 第一和第二头戴式设备2205和2210可共享包括扫描区域的三维地图在内的数字资 产,以减少进入新位置的新头戴式设备处的处理。此共享可延长电池寿命,并可协 助以迅速的方式来渲染图像。在另一实施例中,一个用户的扫描三维地图可补充第 二用户的地图。在另一实施例中,一个用户的地图可替换第二用户的地图。在一进 一步的实施例中,一个用户的地图可被参考并用来检查另一用户的扫描数据。例如, 此参考可发生在预定时间范围内。

在该时间范围期满时或在处理约束繁重的情况下,第二用户可利用第一用户 的地图。在另一实施例中,第一头戴式设备2205和第二头戴式设备2210可位于两 个相对于彼此而言遥远的地理位置处,并且可能不会扫描相似区域。因此,尽管将 在头戴式设备2205和2210之间共享数字资产和虚拟对象,但是可能没有必要共享 地图数据,因为此类信息对于协作而言将是无关的。取而代之的是,在头戴式设备 2205和2210被要求扫描一区域时,三维地图的共享对于位于近旁或在相同建筑物 中的用户可能是最有用的。

第一用户操作第一头戴式显示设备2205,该设备可具有显示器2215、扬声器 2220、图像场景传感器2225以及音频传感器2230。第一头戴式设备2205还可包 括无线或有线接口2260以及包括数个控制组件的控制器。在另一实施例中,头戴 式设备可包括显示器2215、无线接口2260、电池(未示出)、扬声器2220、以及 话筒/音频传感器2230。各组件包括场景管理器块2235、用户控制块2240、表面管 理器块2245、音频管理器块2250、以及信息访问块2255。

第二用户还操作第二头戴式设备2210,其包括类似组件。第二设备2210可具 有显示器2215a、扬声器2220a、图像场景传感器2225a以及音频传感器2230a。第 二设备2210还可包括无线或有线接口2240a和控制器。控制器包括数个控制组件, 包括场景管理器2235a、用户控制块2240a、表面管理器块2245a、音频管理器块 2250a、以及信息访问块2255a。

设备2205和2210各自与控制提供器2265通信,控制提供器2265可为设备 2205和2210每一者提供服务功能性。控制提供器2265可辅助这两个设备2205和 2210,并可代表这些设备来提供服务,从而设备2205和2210保持轻质并且未必需 要在本地执行计算密集型处理。就像任何两个连接着因特网的设备一样,控制提供 器2265可能不得不实现防火墙2285和2285a来保护这些设备防止黑客攻击以及恶 意软件(例如,防火墙可由本地软件、因特网服务供应商和/或企业服务供应商提 供)。防火墙2285和2285a限制对控制提供器2265的访问。在另一实施例中,防 火墙2285和2285a是任选的并且是缺失的。

控制提供器2265可包括目录2280,该目录包含与许多设备有关的数据,这些 数据包括对于设备2205和2210的标识和路由信息。控制提供器2265还可包括场 景存储块2270。场景存储块2270处理与扫描图像的表面和轮廓信息有关的数据。 此表面和轮廓数据可包括距离、形状以及取向数据。场景存储块2270可准许第一 用户对第一区域进行地图绘制,并存储该数据以惠及第二用户的头戴式设备以更迅 速地渲染场景或验证扫描的数据参数。控制提供器2265促成共享数字资产。控制 提供器2265可提供无线接口2260与2260a之间的数据链路,该数据链路可被最优 化。控制提供器2265还可促成由不同网络拓扑、防火墙和IP寻址架构来实现的连 通性。

每个设备2205和2210可将位置数据内嵌到所收集的与地图绘制和扫描的图 像以及扫描的表面有关的数据中。例如,第一头戴式设备2205可扫描一房间,包 括该房间中的各物体。此扫描可导致对各物体的位置数据、各物体的轮廓数据、从 物体到头戴式设备的距离数据、以及头戴式设备和各物体的取向数据的聚集和收 集。此扫描可得到数据,该数据可被传达给路由器2275。与此数据一起地,第一 头戴式设备2205处理器可将位置数据嵌入在所扫描的数据中。该位置数据可以是 经度、纬度、以及海拔形式的坐标。第一通信设备2205指定本地物理环境中的每 个表面。处理器可以能够标识哪个共享数据可被摆放在每个表面上从而使得另一设 备可迅速地能够定位到并利用该数据。

第一头戴式设备2205可将数据写到基于云的服务2265。此类服务2265可为 头戴式设备提供计算、软件、数据访问、以及存储服务。头戴式设备不要求最终用 户知晓服务2265的物理位置和配置。基于云的服务2265上可能存储有查找目录 2280。服务2265驻留在服务器上。服务2265资源可经由能在头戴式设备上执行的 web应用/web服务在因特网上在细粒度的自助的基础上被动态地置备给头戴式设 备。服务2265可位于场外第三方供应商上。目录2280协助第一设备2205并促成 远程用户2205、2210之间经由路由器2275的连通性。以此方式,第二头戴式设备 2210可确定头戴式设备2210处于特定位置并可将此位置传达给路由器2275。服务 2265可涉及动态可伸缩资源的置备。头戴式设备可加载有基于web的工具或应用, 其可由用户通过web浏览器来访问和使用,就好像该程序是本地安装在他们自己 的头戴式设备上那样。服务2265可经由因特网来递送应用,这些应用是从web浏 览器来访问的,而软件和数据存储在远程位置处的服务器上。服务2265可通过共 享数据中心来传送,并且对头戴式设备而言看起来像是单个访问点。响应于此,来 自场景存储2270的从第一头戴式设备2205生成的数据可被传送给场景管理器和表 面管理器块2235a和2245a,以避免要用额外的计算处理来渲染图像。第二头戴式 设备2210可验证由场景传感器块2225a所生成的数据,或可利用从场景存储块 2270传送而来的数据在显示器2215a上渲染图像,以避免要用额外的计算处理来 渲染图像。

图23解说第一头戴式设备2205的高级图示。第一头戴式设备2205可位于第 二头戴式设备2210近处。头戴式设备2205和2210可经由一个或多个快速无线数 据链路来交换数据。第一头戴式显示设备2205可具有显示器2215、扬声器2220、 图像场景传感器2225以及音频传感器2230。第一头戴式设备2205还可包括至用 户数据存储2301的有线接口连接,在用户数据存储2301处,数据可被写入以供访 问。第一设备2205还可包括至共享数据存储2302的有线或无线连接,该共享数据 存储2302可以是第二移动通信设备可访问的存储器。第一设备2205还可具有控制 器,该控制器包括数个控制组件,包括场景管理器2235、用户控制块2240、表面 管理器块2245、音频管理器块2250、以及信息访问块2255。

第二用户还操作第二头戴式设备2210,其包括与第一头戴式设备2205类似的 组件。第二设备2210可具有显示器2215a、扬声器2220a、图像场景传感器2225a 以及音频传感器2230a。第二设备2210还可包括无线或有线接口。第二设备2210 可向/从用户数据存储存储器2303读取/写入数据。第二设备2210还可从/向可由第 一设备2205访问的共享数据存储存储器2302读取和写入数据。第二设备2210还 可具有包括数个控制组件或模块的控制器。第二设备2210可包括场景管理器块 2235a、用户控制块2240a、表面管理器块2245a、音频管理器块2250a、以及信息 访问块2255a。

鉴于此,各用户可共享已被指定的扫描表面数据集合。各用户可与作为虚拟 对象摆放在这些表面上的虚拟资产进行交互。第一和第二设备2205和2210可在本 地快速无线数据载体(例如,短程通信标准、以及)上通信。如果有更多用户在场,则设备2205、2210可进一步经由对 等连接或广播、单播、或多播来通信。

图24解说使用服务器来用位置信息对数据作标签并经由目录在至少两个头戴 式设备之间共享作了标签的数据的实施例方法2400。方法2400可在具有用处理器 可执行指令配置成执行方法2400的操作的处理器的计算设备中实现。该目录可提 供关于扫描的三维地图的信息。例如,头戴式设备可发射红外光并经由快速闸选机 构来计算该红外光的渡越时间,并可存储这些计算以确定某些物体距该头戴式设备 10的距离。另外,头戴式设备10可扫描一区域以确定各物体的取向、确定各表面、 以及各物体的结构信息及高度、宽度、长度和距离信息。

在方法2400的框2401中,处理器可通过从头戴式设备接收数据来着手进行 操作。在框2402中,处理器可接收图像数据。在框2403中,处理器可计算距离和 取向。在框2404中,处理器可处理该内容以供显示。在框2405中,处理器可渲染 该图像,其中有虚拟对象包含在所显示的图像内。在确定框2406中,处理器可决 定是否要用位置信息来对该图像作标签,从而使得另一头戴式设备可利用该图像数 据。

第二设备可包括第二处理器,该第二处理器可计算图像数据并可利用第一设 备扫描能力作为资源来验证所扫描的参数以作为参考。在另一实施例中,第二设备 可导入扫描的数据。使用此导入的数据,第二设备可渲染所显示的图像,其中有虚 拟对象锚定在所显示的图像中的至少一个表面上。这可发生在第二头戴式设备10b 进入一位置时。第二头戴式设备10b可确定其在一区域(例如,房间)中的位置, 并且然后传达该位置数据以藉此形成对第一头戴式设备10的扫描数据的请求。

如果处理器决定要用位置信息来对图像作标签(即,确定框2406=“是”), 则在框2407中处理器可用位置信息来为该目录对扫描的数据作标签,并将该数据 存储在服务器上,从而另一头戴式设备10b可访问此扫描的数据。在替换方案中, 在框2407中不是将数据存储在服务器上,而是可将数据存储在共享存储器中,诸 如存储在经由共享网络可访问的存储器中。如果处理器决定不要用位置信息对图像 作标签(即,确定框2406=“否”),则在框2408中处理器可确定没有其他设 备可用于利用该共享数据并且将继续扫描该区域来为当下的用户渲染该虚拟对象。

图25A解说具有三个移动设备2501、2502和2503以及服务器2504的系统 2500的实施例。设备2501–2503以及服务器2054交换扫描的数据以及地图信息。 该地图可包括房间的扫描参数。该地图可包括图像中各表面(诸如平板屏幕显示器 2530和桌子2532)的标识,包括图像中各物体的形状和大小。该地图还可包括从 该设备来看各物体所位于的距离和角度、或是在链接到房间的参考系内的坐标位 置、或是任意坐标。例如,该地图可以用从原点出发沿三条垂直坐标轴(诸如沿定 义该房间的特定一角的三条轴(例如,长度、宽度、高度))的米数的形式来标识 各物体的位置。该地图可包括与这些物体被捕捉时该设备的三维位置和场所有关的 标题。地图数据可从该设备扫描图像数据的每个位置被上传到服务器2504,并且 该服务器可使用来自所有头戴式设备以及来自所有位置的距离测量和图像来构建 基于链接到该房间的参考系的地图。为此,服务器2504可对所有收到的位置数据 执行坐标变换,以将距离测量从以头戴式设备为中心的球面坐标(即,从该头戴式 设备出发到每一物体的距离和角度)变换到任意直线坐标系,诸如相对于房间长度、 宽度和高度坐标来定位各物体。用于完成此类坐标变换的数学和算法是本领域众所 周知的。

系统2500的此实施例不限于头戴式设备而是可进一步应用于不同的计算设 备。替换地,头戴式设备10可以是移动CPU(电话、平板计算机等)的配件,其 中主处理在移动CPU上执行,而数据是由移动电话和头戴式设备(未示出)并在 其间交换的。图25A解说可如何使用集中式数据库服务器2504来进行协作以迅速 扫描以及渲染图像。例如,设备2501、2502和2503可包括用于发射和感测光或超 声以经由渡越时间计算来测量距房间中各物体和表面的距离的设备。在另一实施例 中,RGB-D相机可捕捉图像数据。设备2501、2502和2503可利用扫描的数据来 生成虚拟对象并将该虚拟对象锚定在该图像的至少一个表面上,并将该虚拟对象与 所捕捉到的图像一起渲染以提供虚拟或扩增现实体验。

第一设备2501可创建局部地图并将该地图上传到服务器2504。该局部地图可 包括与针对位置52.23.0.14的图像中的第一和第二物体有关的数据。该地图可包括 标识该位置的标题。该地图还可包括关于所扫描的图像的大量数据,包括距设备 2501的距离、物体长度、物体宽度以及物体高度、各物体的取向、以及各物体离 墙壁、天花板、门道的距离等。每个物体的个体坐标和位置数据也可被记录并存储 在地图中。

第二设备2502可经由坐标(52.23.0.14)将其位置报告给服务器2504,该坐标对 应于预定位置,该预定位置可能已被第一设备2501扫描过。第二设备2502可将该 位置数据上传到服务器2504。服务器2504可接收该位置数据。第二设备2502可 接收有局部地图可用的消息。第二设备2502可下载由第一设备2501形成的局部地 图。基本同时地,第二设备2502可能正在扫描该房间的一不同部分。例如,第二 设备2502可扫描该房间中毗邻第一桌子的部分。第二设备2502可利用所扫描的数 据并将所扫描的数据与下载的地图融合以渲染带有虚拟对象的所显示图像。第二设 备2502还可将经更新的地图上传到服务器2504。

第三设备2503还可以用请求的形式来提供其位置数据52.23.0.14。服务器2504 可接收该位置数据52.23.0.14以及坐标,并且选择恰当的数据集并将该扫描数据的 数据集以地图的形式传送给第三设备2503。第三设备2503可下载包括第一设备 2501所扫描的数据以及第二设备2502所扫描的数据(其可补充第一设备2501所 扫描的数据)的地图数据。在另一实施例中,该数据可能并不是用来补充的,而是 第二设备2502可扫描以确定第一数据集是否准确并可验证该数据集。在另一实施 例中,如果该数据不准确,则第二设备2502可替换第一设备2501所扫描的数据。

第三设备2503可利用该地图以渲染带有虚拟对象的所显示图像。如图所示, 第三设备2503可利用经更新的地图来迅速确定该图像中各物体(包括平板屏幕电 视2530和桌子2532)的位置。第三设备2503可进一步捕捉图像数据,并可扫描 该房间的新区域,并且还可将与对地图的更新相对应的数据上传到服务器2504。 以此方式,设备2501、2502和2503中的每一者并不需要在本地处理整个图像,而 是可获得服务以更迅速地渲染虚拟对象和所显示的图像。

设备2501、2502和2503中的每一者以及服务器2504可被彼此优化以迅速接 收地图并将所扫描的数据与地图组成部分拼凑在一起以迅速地渲染该场景。例如, 如果设备2501在新位置上,并且没有扫描的图像被记录过,则设备2501可扫描整 个区域。例如,设备2501可替换地确定扫描数据是旧的并且是在一段时间前被记 录的。设备2501可确定扫描数据是陈旧的,并且决定扫描整个区域。

替换地,设备2501可将扫描数据的新旧程度与阈值作比较并可作出是否要扫 描整个区域的决定。例如,设备2501可计算扫描整个房间所要的时间,并且如果 扫描整个房间所要的时间高于预定限度,则可基于处理要求来接受或拒绝陈旧的地 图。替换地,设备2501可监视其他设备2502、2503的位置并形成要接收基于所监 视位置的扫描图像的请求。例如,设备2501可确定设备2502、2503正处在位于远 处的一不同的远区域中,并且对地图的请求很有可能渲染出不相关的数据(没有用) 并且编制请求是不必要的。在又一实施例中,如果有若干设备2501、2502和2503 在场,则每个设备可扫描该房间中的不同区域以用更迅速的方式来扫描房间。

图25B解说用于云存储以及检索用来在头戴式显示器上生成虚拟对象的数据 的实施例方法2506。方法2506可在具有用处理器可执行指令配置成执行方法2506 的操作的处理器的计算设备中实现。生成虚拟对象可能要求对房间中的各表面进行 密集的扫描以确定各物体的距离、各物体的形状、以及各物体的取向以便将虚拟图 像锚定到该房间中的一个或多个表面。一些头戴式设备可将它们的位置下载到云并 立即接收到准确数据以协助在一表面上渲染虚拟对象,以避免在本地处理该数据并 验证扫描数据。在方法2506中,处理器可在框2508中通过用头戴式或身佩式相机 捕捉用户的图像来着手进行操作。在框2510中,处理器可提供程序指令以用传感 器阵列扫描一房间的区域来捕捉空间数据。这可通过用红外光发射设备进行扫描并 测量从各表面反射的红外光的渡越时间来完成。

此数据还可被提供给处理器,该处理器可生成该房间的三维地图。在框2512 中处理器可识别所捕捉到的图像中的各物体,并可确定所捕捉到的图像中的各物体 的距离参数,并且还可确定图像内所包含的各表面的取向。在框2514中处理器可 生成虚拟对象。在一实施例中,虚拟对象14可仿效发射内容的协作式平面屏幕三 维对象14。该虚拟对象14可被锚定到图像中的表面16并且用户可在房间中四处 移动,但该虚拟对象显示参数改变以使得该虚拟对象保持锚定到期望的锚表面。处 理器可在框2516中计算包括距离和取向的参数以显示虚拟对象并可在框2518中对 计算出的参数作标签并将计算出的参数上传到云服务器。处理器可用位置标签(其 可为地理标签)来对计算出的参数作标签。在另一实施例中,该地理标签可包括纬 度坐标、经度坐标、海拔坐标、方位坐标、距离坐标、以及准确性数据。地理坐标 给所上传的各种参数添加地理标识元数据。地理标签可帮助用户在已扫描区域的三 维地图中找到各种各样的因位置而异的信息。

在确定框2520中,处理器可确定第二头戴式设备是否已进入了要为其接收补 充共享数据以便为特定位置更快地生成虚拟对象的位置。例如,第二头戴式设备可 在相同房间中,并且可向第一头戴式设备发射信号,或可向云服务器发射信号,云 服务器确定第二设备已进入了特定位置。处理图像对于一些设备而言可能是繁重 的。同样,扫描房间也可能是耗时的。因此,第二头戴式设备可对第一头戴式设备 已经完成的工作加以利用,并接收与房间中的各物体及各表面有关的计算出的参数 来为第二用户更快地生成虚拟对象。

如果处理器确定其已进入了新房间(即,确定框2520=“是”),则在框2522, 第二头戴式设备可传送其来自导航设备的位置数据并可从服务器下载作了标签的 计算出的参数。在框2524中,第二头戴式设备的处理器可使用所访问到的并且加 了标签的计算出的参数来生成虚拟对象。如果处理器确定其没有改变位置(即,确 定框2520=“否”),则处理器在有另一第三头戴式设备已扫描过该区域并且生 成了锚定的虚拟对象的情况下可执行操作以验证这些计算出的参数是正确的。在框 2526中,第一头戴式设备可传送其来自导航设备的位置并可从服务器下载计算出 的参数。在框2528中,处理器可用从服务器下载的计算出的参数来验证计算出的 参数。

在另一实施例中,三维地图可以不是由包括各物体的距离和取向的计算出的 参数来形成,而是代之以由特定区域来形成并被上传到云服务器。标签或位置数据 可以用标题的形式嵌入在三维地图消息中,并且该三维地图可被传送并存储在云服 务器中以供第二头戴式设备访问。例如,当第二头戴式设备进入一区域时,第二头 戴式设备可上传其位置坐标,并可下载房间或预定区域的三维地图。第二头戴式设 备可识别该图像内的各物体并可利用三维地图来确定该图像内的各物体的距离参 数。这可以用对在第二头戴式计算设备处捕捉到的空间数据和图像的最低限度的处 理来进行。在另一实施例中,元数据可被存储到云服务器。该元数据可包括所捕捉 到的各物体的距离和取向,其可由不同的头戴式设备来访问。该元数据还可包括与 房间中的各物体的位置有关的室内位置数据、以及能被处理器用来确定该数据是否 陈旧的指示。

图26解说用于显示叠加在检测到的身体部位之上的虚拟对象的实施例方法 2600,此检测到的身体部位是通过对所跟踪的图像应用解剖模型并将解剖模型与所 跟踪的图像作比较来在所跟踪的图像中检测到的。方法2600可在具有用处理器可 执行指令配置成执行方法2600的操作的处理器的计算设备中实现。在方法2600 的框2601中,处理器可通过从头戴式设备接收数据来着手进行操作,该头戴式设 备包括提供关于该设备的取向的数据的传感器(例如,加速计、陀螺仪、电子罗盘、 等等)。在框2602中,处理器可接收图像数据。在框2603中,处理器可计算距离 和取向并在框2604中利用距离传感器数据、相机数据、取向数据和距离数据来处 理内容以供显示。在框2605中处理器可渲染带有虚拟对象的该图像。

在确定框2606处,可得出关于是否要在头戴式显示器的所显示图像内所包含 的检测到的身体部位的表面之上叠加虚拟对象的决定。如果处理器决定要在检测到 的身体部位的表面之上叠加虚拟对象(即,确定框2606=“是”),则在框2607 中处理器可在身体部位之上叠加虚拟对象。如果处理器决定不要在检测到的身体部 位的表面之上叠加虚拟对象(即,确定框2606=“否”),则处理器在框2608 中将不把该对象叠加在该身体部位上,并且可允许该身体部位遮蔽该虚拟对象或可 将该虚拟对象渲染在该显示的一不同位置上。例如,该虚拟对象可根据处理器所接 收的由用户所作的输入来被叠加。

图27解说了其中可通过跟踪图像并对所跟踪的图像应用解剖模型来检测该图 像中所包含的身体部位来将用户的手遮蔽在虚拟对象之上的实施例方法2700。在 方法2700的框2701中,处理器可通过从头戴式设备接收数据来着手进行操作,该 头戴式设备包括提供关于取向的数据的传感器。在框2702中,处理器可跟踪图像。 在框2703中,处理器可对跟踪到的图像应用解剖模型。在框2704中,处理器可标 识用户的手,并在框2706中渲染图像。例如,处理器可将在跟踪到的图像中自底 向上出现的手指、手和手臂标识为用户的手。而与此同时,可应用解剖或骨骼跟踪 算法来检测第二身体部位。该第二身体部位也可包括手指、手和手臂。处理器可推 断在图像中从顶部出现并且向下延伸的第二身体部位可能是另一个用户的身体部 位。另外,处理器可推断基于在图像中的大小和取向来看离用户太远(有预定距离) 的手臂和手可能是确定为另一用户的身体部位。

在确定框2706中,可得出关于是否要将用户的手遮蔽在虚拟对象之上的决定。 如果处理器决定要在虚拟对象之上渲染用户的手(即,确定框2706=“是”), 则在框2707中,处理器可以用使用户的手选择性地遮蔽在虚拟对象之上的方式来 渲染虚拟对象。例如,该用户的手可将虚拟对象从观看者遮挡掉。在框2708中, 可由处理器更新图像。如果处理器决定不要在虚拟对象之上渲染用户的手(即,确 定框2706=“否”),则在框2709中,处理器将把虚拟对象显示成叠加在用户 的身体部位之上,以使得该身体部位看起来是透明的。例如,用户可将他的手拂过 虚拟对象。然而,该虚拟对象可被显示在身体部位之上并且叠加在手的表面之上, 以使得该虚拟对象的内容保持可见,尽管事实上用户的手应遮挡住该虚拟对象。在 框2709中,一旦检测到命令并通过检测到的姿势或输入命令来从用户得到确认, 则此输入导致检测到的命令的任务和行动被执行,并且虚拟对象内容可被更新。

图28A解说其中第二个人的手可被渲染为透明或不在虚拟对象之上的实施例 方法2800。方法2800可在具有用处理器可执行指令配置成执行方法2800的操作 的处理器的计算设备中实现。在方法2800中,在框2801中,处理器可通过从头戴 式设备接收数据来着手进行操作,该头戴式设备包括提供关于取向的数据的传感 器。在框2802中,处理器可跟踪捕捉到的图像。在框2803中,处理器可对跟踪到 的图像应用解剖模型。例如,解剖模型可以是骨骼跟踪算法,其将跟踪到的物体与 骨骼模型作比较以确定是否有任何身体部位包含在该图像内。如果一物体没有被处 理器检测为是身体部位,则处理器可忽略该物体。

在框2804中,处理器可标识用户的手以及第二个人的手。处理器可在框2805 中在图像中所包含的锚表面上(例如,在桌面或在墙壁上)渲染图像。在确定框 2806中,处理器可确定是否要将虚拟对象叠加在身体部位上。如果处理器确定要 将虚拟对象叠加在身体部位上(即,确定框2806=“是”),则在框2807中, 处理器可将第二个人的手渲染为透明的或不在虚拟对象之上,或者当该身体部位遮 挡该虚拟对象时,该虚拟对象可被显示在该身体部位的顶表面之上以使得该身体部 位显现为透明的。在另一实施例中,在虚拟对象叠加在身体部位表面之上的情况下, 身体部位的轮廓可仍保持可见。在框2808中,虚拟对象的所显示图像可由处理器 更新以将内容变化和身体部位移动考虑在内。如果处理器决定不要将虚拟对象叠加 在身体部位之上(即,确定框2806=“否”),则处理器将在框2809中显示该 虚拟对象并为用户的移动对虚拟对象进行更新。

图28B解说其中处理器可推断哪些手是用户的手以及哪些手是其他用户的手 并且处理器可在其他用户的手遮蔽虚拟对象时将其他用户的手渲染为透明的或不 显现的实施例方法2810。方法2810可在具有用处理器可执行指令配置成执行方法 2810的操作的处理器的计算设备中实现。在方法2810中,在框2811中,处理器 可通过从头戴式设备接收数据来着手进行操作,该数据包括捕捉到的图像数据。在 框2812中,处理器可用传感器阵列来捕捉空间数据。在框2813中,处理器可识别 图像中的各物体并确定该图像中各物体的距离参数。在框2814中,处理器可处理 图像以跟踪物体,并且处理器可对所跟踪的图像应用经由骨骼模型实现的解剖分 析。在相机搭载在用户身上时或在另一用户在传感器的视野中只是局部可见的场 合,这可包括对局部解剖的标识。例如,解剖模型可以是骨骼跟踪算法,其将跟踪 到的物体与骨骼模型作比较以确定是否有任何身体部位包含在该图像内。如果一物 体没有被处理器检测为是身体部位,则处理器可忽略该物体。例如,处理器可对图 像应用解剖分析以确定是否有身体部位在该图像内。处理器可参考存储器内存储着 的解剖或骨骼模型,并将其与视频图像中跟踪到的物体作比较。存储着的骨骼模型 可包括解剖数据,例如人类骨骼中的关键关节、骨和肢的相对位置、以及其他数据。 处理器可将图像中所跟踪到的物体与存储着的骨骼模型作比较以确定是否有身体 部位在图像中。

例如,处理器可通过检测在第一取向上的手臂以及从手延伸出的数个手指、 或以从图像的底部向上逐步展现的手臂、手腕和手指来检测用户的手臂。处理器可 通过检测在第二不同取向上的第二手臂以及从第二只手延伸出的第二数个手指、或 以从图像的顶部向下逐步展现的手臂、手腕和手指来检测第二个人的手臂。在另一 实施例中,处理器可通过审阅所跟踪的图像中的取向、物体大小、离用户的距离, 或通过对图像内的身体部位的数目进行计数来在用户与另一人的身体部位之间加 以区分。

在框2815中,处理器可渲染图像,其中在该图像中有锚定的虚拟对象。在确 定框2816中,处理器可确定检测到的身体部位是属于用户还是属于另一个人。处 理器可将虚拟对象叠加在另一个用户的身体部位之上。在所显示的图像中,只有用 户的手遮蔽虚拟对象,而其他的手、手臂和身体部位将不会遮蔽该虚拟对象,而是 将显现为透明的。

用户可看到虚拟对象是叠加在其他用户的身体部位之上的,从而其他用户的 身体部位被渲染为透明的。处理器可确定图像中与其他个人的身体部位有关的区 域,并可仅在其他个人的身体部位遮蔽锚定的虚拟对象时才将虚拟对象显示在该图 像之上。如果处理器确定检测到的身体部位属于用户(即,确定框2816=“是”), 则在框2818中,处理器可在框2817中在用户的身体部位遮蔽该图像时将用户的身 体部位渲染为实体的。如果处理器确定检测到的身体部位属于另一个人(即,确定 框2816=“否”),则在框2819中当所检测到的身体部位遮蔽虚拟对象时处理 器将把虚拟对象或其部分显示为叠加在该身体部位之上。

例如,处理器可确定图像中定义为在其他个人的身体部位之上的区域(以像 素计)的区域。处理器可在该区域之上形成叠加的虚拟对象而不将该虚拟对象渲染 在身体部位的周界之上。当该身体部位位于锚定的虚拟对象之上时,第二个人的该 身体部位的轮廓可仍被示出并渲染。因此,在锚定的虚拟对象之上,此轮廓可以是 可见的,而其余部分则可被渲染为透明的。在框2819中,处理器可针对用户移动 来更新虚拟对象以将内容变化和身体部位移动考虑在内。例如,处理器可在一表面 上将锚定的虚拟对象显示为矩形的虚拟显示。如以上所描述,处理器可分析捕捉到 的图像以检测用户姿势。可由第二个人和该用户与锚定的虚拟对象发生仿佛虚拟的 现实交互。在另一实施例中,处理器可能检测到第三个人的身体部位。处理器可在 该第三个人的身体部位位于锚定的虚拟对象之上时在该第三个人的该身体部位之 上显示叠加的虚拟对象。在第三个人的身体部位被确定为位于离开锚定的虚拟对象 之处且并不遮蔽虚拟对象时,处理器也可不在第三个人的身体部位之上显示叠加的 虚拟对象,并允许该身体部位被显示。

图29解说其中可从服务器向多个设备传送数据以提供服务并减轻头戴式设备 处的处理的实施例方法2900。方法2900可实现在像是以上参考图25A所描述的那 样的系统内,该系统可包括用处理器可执行指令配置成执行方法2900的操作的服 务器以及一个或多个头戴式设备。在方法2900中,服务器2504可在框2901中从 头戴式设备接收图像和位置数据,该头戴式设备包括提供关于谱数据和图像的数据 的传感器。在框2902中,处理器可将数据上传到服务器,其中该数据带有与该数 据被扫描时的位置有关的位置信息。服务器可将扫描数据输出至数个不同的头戴式 设备。在框2903中,处理器可将数据输出至第二头戴式显示器以作为参考。

在框2904中,处理器可将数据输出至第三头戴式设备以补充第三头戴式设备 扫描的数据并验证所捕捉到的扫描数据。在框2905中,服务器可将数据输出至第 四头戴式设备以增强该设备上存在的数据,并且在框2906中,服务器可上传数据 以节约电池电量及处理。基本同时地,上述每个头戴式设备可进行它们自己对该区 域的扫描以确定关于该区域中的各物体的信息。例如,头戴式设备可扫描该区域以 确定图像中的各物体的形状和维度,并且可扫描该区域以确定图像中各物体的取向 以及图像中各表面的相对位置,这可以有助于锚定虚拟对象以便实现身临其境的虚 拟或扩增现实体验。在确定框2907中,处理器可确定是否要从各设备向服务器上 传经更新的扫描位置数据以供存储在该服务器上。如果处理器确定要将扫描位置数 据上传到服务器(即,确定框2907=“是”),则处理器可上传经更新的数据, 并且将各头戴式设备扫描的数据与存储在服务器上的数据融合并组合。如果处理器 决定不要将扫描位置数据上传到服务器(即,确定框2907=“否”),则处理器 可在框2908中显示该虚拟对象并针对用户移动对虚拟对象进行更新。

在另一替换性实施例中,图29的处理器可起到“魔术镜头”的作用。以此方 式,显示在房间中的物理表面上的虚拟对象可在常规智能电话或计算设备上被观 看。此类智能电话可向服务器输出数据并可进一步链接到服务器。没有头戴式设备 而是使用移动通信设备的用户可使用该移动通信设备或智能电话来与佩戴头戴式 设备的用户进行协作。例如,用户可通过看智能电话显示器来观看锚定在物理表面 上的虚拟对象的输出,并可经由无线音频链路来与利用头戴式显示器的用户通信。

智能电话可经由无线RF链路(诸如蜂窝数据链路(例如,3G、4G、LTE、 UTMS等))被可操作地连接到服务器。智能电话可在该智能电话的显示器上输出 图像。该图像可完全对应于另一用户的头戴式显示器输出。观看智能电话上的显示 的用户可观看到在各物理表面上示出的扩增和虚拟对象。在智能电话的显示器上, 此显示可以两维或三维来发生。该智能电话还可以能操作用于与使用移动通信设备 和无线接口从服务器接收信号的头戴式设备10进行协作。替换地,智能电话可使 用短程通信协议来直接从头戴式设备10接收RF数据信号。以此方式,用户可拿 起智能电话并观看头戴式显示器的用户的虚拟或扩增现实体验以进行协作。在此实 施例中,智能电话可操纵图像以通过使用与本文中所描述的类似的方法来针对该智 能电话自身相对于近旁表面的位置和取向来进行校正。

图30解说其中用户可使用两个头戴式设备来进行协作的实施例方法3000。这 两个头戴式设备可正在运行来自两个不同的软件供应商的不同的不兼容的软件应 用。一般而言,使用第一文字处理器的第一用户不能以协作式方式与同时使用第二 不同的不兼容文字处理器的另一用户一起工作。在方法3000中,处理器可调和并 转译数据以使得使用第一软件应用的第一用户与使用第二软件应用的第二用户能 彼此协作并输入实时可见的数据。

方法3000不限于头戴式设备,而是可实现在其他类型的计算设备中。在方法 3000中,处理器可通过在框3001中打开第一应用并在框3002中打开第二应用来 着手进行操作。在确定框3003中,处理器可决定是否要与其他设备协作。如果处 理器决定要与其他设备协作(即,确定框3003=“是”),则在框3004中,处 理器可协作并提供这些设备之间的双向通信。如果处理器决定不要与其他设备协作 (即,确定框3003=“否”),则处理器将在框3010中显示虚拟对象并针对用 户移动对虚拟对象进行更新。

在框3005中,处理器将渲染虚拟屏幕作为虚拟对象。该虚拟屏幕可提供软件 应用的显示输出。该虚拟屏幕针对由至少两个不同用户输入的改变而进行更新。在 框3006中,处理器将应用针对两个不同的软件应用的冲突解决程序。该冲突解决 可提供这两个不兼容的软件程序的输入和输出向普适格式的转译,该普适格式可被 加载到第三普适软件程序,该第三普适软件程序以该普适格式来调和改变,并将经 调和的数据转译回到第一和第二不兼容格式。第三软件程序可提供普适格式回到第 一和第二软件程序的转译以便渲染这些改变,并且这些改变可由各用户在原始的本 机程序中观看。

例如,可从第一软件程序收集与第一用户的输入有关的数据,并将其传达给 普适格式,并传达给第三软件程序。接着,可从第二软件程序收集与第二用户的输 入有关的数据,并将其传达给普适格式,并传达给第三软件程序。

第三软件程序可调和这些改变并可将这些改变存储在存储器中。现在,每个 用户将想要实时观看彼此对文档所作的改变。第三软件程序可将这些改变转译成第 一和第二软件程序各自所理解的格式。第三软件程序可将经转译的改变输出回到第 一和第二软件程序以使得每个用户均可以按其本机程序的格式化来观看到整体的 改变。在框3007中,处理器还可标识这些改变的作者。在框3008中,处理器将更 新文档地图并在框3009中将渲染文档图像作为虚拟对象,并且在框3005中处理器 可更新虚拟屏幕。

图31示出三个不同用户操作示为参考标号3100、3101和3102的计算设备的 高级框图。每个人可正在使用一不同的软件应用。来自每个软件程序的数据可被存 储在服务器3103上。例如,各第一本地改变可在相关的软件程序中作出,正如常 规所知的那样。还可作出各第二远程改变并将其写到共享存储介质3106。例如, 各第二远程数据改变可被传达给库3104。库3104可将来自每个应用的源于各远程 改变的输入数据和输出数据转换成能由普适软件程序来输入和读取的普适格式。该 普适格式可存储在库3104上,并且可被写到存储介质3106上的共享文档格式。

存储在存储介质3106上的共享文档格式可将各改变聚集到单个普适程序中。 该单个普适程序还可将由每个用户渲染的改变以可因相关软件应用而异且为其所 理解的格式转译并在单个数据流中输出回到每个软件应用,以使得每个用户3100、 3101和3102能观看由其他用户作出的改变。

例如,共享文档格式3106可包括冲突解决功能性,其可提供各软件程序的输 入和输出向普适格式的转译,该普适格式可被加载到第三独立软件程序3106。在 那里,来自所有用户的改变被输入并存储。数个不同软件文字处理程序的转译可被 存储在服务器3103上。处理器可提供具有所有改变的普适格式回到第一、第二和 第三软件程序3100、3101和3102的转译以便在其中渲染和图解这些改变。

图32解说其中用户可使用两个计算机系统来进行协作的实施例方法3200。这 些用户可利用来自两个不同的软件供应商的不同的不兼容软件程序来彼此协作。方 法3200可调和数据的输入和输出,由此任何以及所有改变均能由利用多个不同的 不兼容计算机软件应用的用户来观看。

在方法3200中,处理器可通过在框3201中打开第一应用并在框3202中打开 第二应用来着手进行操作。在确定框3203中,可得出关于是否要从各设备向服务 器进行协作的决定。如果处理器决定要与服务器协作(即,确定框3203=“是”), 则处理器输出用于进行协作的程序指令并提供这些设备之间的双向通信(框 3204)。例如,在每个不兼容软件应用上的改变可在本地被渲染并且还被传送到远 程位置,在那里这些改变可被聚集并输入到第三软件程序中。如果处理器决定不要 与服务器协作(即,确定框3203=“否”),则处理器将不在各设备之间建立双 向通信,并且在框3210中渲染屏幕并更新以非协作式方式作出的改变。

在框3205中,处理器将渲染屏幕并针对改变更新该屏幕。例如,在每个软件 应用上的改变可被传送到该远程位置,在那里这些改变被聚集并输入到第三兼容软 件程序中。在框3206中,处理器将应用针对两个不同的软件应用的冲突解决程序。 这些改变随后被转译成本机格式,并且随后以本机格式被传送给每个用户以用于在 各自的应用上显示。在框3207中,处理器将标识这些改变的作者。在框3208中, 处理器将更新文档图像并渲染文档图像。在框3209中,处理器将更新文档图像。

图33解说其中可使用检测到的姿势来处理和确认音频命令的实施例方法 3300。方法3300可在具有用处理器可执行指令配置成执行方法3300的操作的处理 器的计算设备中实现。在方法3300中,处理器可在框3301中通过从传感器接收扫 描数据来着手进行操作,这些传感器提供关于头戴式设备的取向的数据。在框3302 中,处理器可从相机接收关于图像的图像数据。在框3303中,处理器可计算图像 内的各物体的距离和取向。在框3304中,处理器可使用来自各传感器的数据、相 机数据和距离数据来处理该图像,并且在框3305中,处理器可渲染带有虚拟对象 的该图像。另外,在框3305中,处理器可跟踪用户的运动以确定是否有要被执行 的姿势输入命令。在框3306中,处理器可接收音频信号。

在确定框3307中,处理器可确定是否识别出由用户说出的音频命令。例如, 用户可能想要将虚拟对象的大小放大到渲染在显示器上的更大的虚拟对象,并可说 出单词“放大虚拟对象”。例如,用户可替换地希望将虚拟对象的形状从矩形改变 为一不同形状,并可说出单词“将虚拟对象改变为椭圆形”。其他类似命令也是可 预见的并且是可行的,且落在本公开的范围之内。如果处理器识别出由用户说出的 音频命令(即,确定框3307=“是”),则在框3308中,处理器可跟踪视频数 据达预定时期以寻找姿势。可利用姿势命令来确认第一音频命令。例如,用户可正 在说话并且可能只是在向第二用户所说的句子中不经意地提及了“放大”和“虚拟 对象”,这可能被话筒接收到并传达给处理器。此后,不是盲目地执行该命令,而 是可等待检测到的姿势形式的确认。例如,用户可指向一方向或者用户可用拇指和 食指作圈并且其余手指向外伸出来给出“OK”手势。此第二命令将确认该第一命 令。在确定框3309中,处理器可确定是否识别出确认音频命令的姿势。如果处理 器识别出一姿势是确认该音频命令的(即,确认框3309=“是”),则处理器可 在框3310中执行该任务。

如果处理器没有识别出由用户说出的音频命令(即,确定框3307=“否”), 则处理器可继续接收音频。如果处理器没有识别出有一姿势是确认音频命令的(即, 确定框3309=“否”),则处理器可继续接收和分析音频数据。例如,如果用户 可能正在说话并且可能只是在向第二用户说出的句子里不经意地提到了“放大”和 “虚拟对象”。然而,如果没有检测到有检测到的姿势(指点、OK手势、向外伸 出的手)形式的确认,则处理器将不会执行第一命令并且可只是简单地继续监视音 频以寻找更多的新命令。许多姿势可提供确认并且不限于本文中所公开的任何内 容。而且,可由处理器接受并处理口头命令(例如,经由语音识别)和通过用户按 钮按压(例如,在键盘上)输入的命令。例如,可接受口头命令以确认或表达与姿 势命令相同的信息,藉此使头戴式设备和系统能更准确地解读用户的意图。

图34解说其中姿势命令可被处理并使用检测到的音频命令来确认的实施例方 法3400,这可以是与以上所公开的不同的操作次序。方法3400可在具有用处理器 可执行指令配置成执行方法3400的操作的处理器的计算设备中实现。在方法3400 中,在框3401中,处理器可通过从头戴式设备接收数据来着手进行操作,该头戴 式设备包括提供关于取向的数据的传感器。在框3402中,处理器可从相机接收关 于图像的数据。

在框3403中,处理器可计算图像内的各物体的距离和取向。在框3404中, 处理器可使用来自取向传感器的数据、相机数据、以及距离数据来处理图像。在框 3405中,处理器可渲染带有虚拟对象的该图像并且在框3406中处理器可控制相机 以跟踪用户的运动。

在确定框3407中,可得出关于是否识别出姿势命令的决定,例如通过识别包 括以下一个或多个选定姿势:指点、拍手、打响指、通过将拇指与手指连起来作出 “OK手势”。这可使用可应用于所跟踪的视频数据的解剖模型来执行。如果检测 到姿势(即,确定框3407=“是”),则处理器可在框3408中跟踪音频数据一 时段以寻找命令来确认所检测到的姿势命令。

在确定框3409中,可得出关于是否识别出音频命令作为对姿势命令的确认的 决定。如果接收到确认(即,确定框3409=“是”),则处理器可在框3410中 执行该任务。

如果没有识别出姿势(即,确定框3407=“否”)(这可在姿势是不经意被 检测到时发生),则处理器可继续跟踪捕捉到的视频图像以寻找新的姿势命令。而 且,如果没有识别出音频确认(即,确认框3409=“否”),则处理器可继续接 收视频并跟踪该视频,并忽略该姿势命令,因为没有检测到确认。而且,如以上所 提及的,口头命令和由用户按钮按压输入的命令可单独地或与姿势命令协同地被处 理器接受并处理,以使得头戴式设备和系统能更准确地解读用户的意图。

图35解说其中可处理和识别姿势命令的实施例方法3500。响应于姿势命令, 处理器可在虚拟对象上渲染“虚拟输入设备”,以使得用户可利用该虚拟输入设备 来操纵该虚拟对象。该虚拟输入设备可以是所生成的可通过跟踪用户的运动来控制 的虚拟对象。例如,该虚拟对象可以是虚拟指针、或图标或任何其他被用户选择的 可控虚拟对象。

方法3500可在具有用处理器可执行指令配置成执行方法3500的操作的处理 器的计算设备中实现。例如,该输入设备可以是虚拟现实指针对象。该指针可在从 姿势/跟踪相机和连接到锚表面的虚拟对象测量到的视线上自动生成。在方法3500 中,在框3501中,处理器可通过从头戴式设备接收数据来着手进行操作,该头戴 式设备包括提供关于取向的数据的传感器。在框3502中,处理器可从相机接收关 于立体图像的捕捉到的图像数据。

在框3503中,处理器可计算图像内的各物体的距离和取向。在框3504中, 处理器可使用来自取向传感器的数据、相机数据、以及距离数据来处理图像。在框 3505中,处理器可渲染带有虚拟对象的该图像并且在框3506中处理器可控制相机 以跟踪用户的运动。

在确定框3507中,处理器可确定是否识别出姿势命令,诸如通过对所跟踪的 图像应用解剖识别算法。处理器可在该图像内识别出一个或多个选定姿势,包括指 点、拍手、打响指、通过将拇指与手指连起来作出“OK手势”等。如果处理器识 别出姿势(即,确定框3507=“是”),则在框3508中处理器可得到要执行虚 拟指针任务的指示。

该指针可以是“输入设备相关虚拟对象”(鼠标图标、激光笔虚拟对象、箭 头输入设备),其以三维显示在显示器上并且摆放在虚拟对象上且可允许用户将文 本设为高亮、选择、作出输入命令并向头戴式设备的处理器提供输入。在确定框 3508,可得出关于是否要执行指针任务的决定。如果处理器决定要执行指针任务 (即,确定框3508=“是”),则在框3509中处理器可执行该任务并且可从多 个不同的虚拟输入设备中选择指针类型。在框3510上,可计算从头戴式或身佩式 相机到用户的手指以及到虚拟对象的矢量。该矢量可被用来在框3511中在虚拟对 象上渲染指针。在框3512中,虚拟对象和虚拟输入设备的显示可被更新。

如果处理器没有识别出姿势(即,确定框3507=“否”),则处理器可继续 处理视频图像以识别预定姿势。而且,如果处理器决定不要执行指针任务(即,确 定框3508=“否”),则处理器可继续跟踪视频并忽略姿势命令,因为没有任务 将被执行。

图36解说其中可识别和处理姿势命令并且可在虚拟对象上渲染三维虚拟现实 类型的输入设备以提供输入命令的实施例方法3600。另外,处理器可识别个人的 特征,在这些特征/身体部位遮蔽虚拟对象时这些特征可被渲染为透明的。方法3600 可在具有用处理器可执行指令配置成执行方法3600的操作的处理器的计算设备中 实现。例如,输入设备可以是虚拟现实指针对象,其仅显示在头戴式显示器上。该 对象可被显示在显示器上,并且可在视线上或在可从姿势/跟踪相机至连接在锚表 面上的虚拟对象来测量的矢量上生成。例如,可形成从相机/或用户的手指到显示 器上的虚拟对象的矢量。该虚拟指针对象可被摆放并显示为连接到该矢量。用户可 藉由一个或多个检测到的姿势、音频命令、藉由输入设备、或藉由另一输入命令来 控制虚拟指针对象。在方法3600中,在框3601中处理器可通过从相机接收关于立 体图像的数据来着手进行操作。

在框3602中,处理器可计算图像内的各物体的距离和取向。在框3603中, 处理器可使用来自取向传感器的数据、相机数据、以及距离数据来处理该图像。在 框3604中,处理器可渲染带有虚拟对象的该图像。在框3605中,处理器可提供控 制相机的指令以通过对所跟踪到的图像应用解剖算法以检测身体部位来跟踪用户 的运动,并可在预定的时间区间上跟踪该身体部位。

在确定框3606处,处理器可决定是否识别出姿势命令,这可发生在当在姿势 字典中的一个或多个姿势与跟踪到的图像内的形状和运动之间有匹配之时,处理器 可将检测到的姿势与输入命令相关以执行软件应用、或采取某个预定义的行动。如 果处理器识别出姿势命令(即,确定框3606=“是”),则在框3607中处理器 可执行指针任务。

该指针可以是显示在头戴式显示器上的虚拟输入设备(鼠标图标、激光笔虚 拟对象)。可将该虚拟输入设备与虚拟对象相关联,这可允许用户将文本设为高亮, 选择超链接,编制输入命令,以及形成相对于虚拟对象的输入。例如,虚拟输入设 备可以是显示在头戴式显示器上的三维虚拟现实箭头。在此类实施例中,该箭头可 在该显示器上响应于用户姿势在自由空间中可移动。例如,响应于用于将手移向左 边,该系统可在头戴式显示器上渲染该箭头移向左边的图像。作为另一示例,用户 可输入命令并且该箭头可解说该命令得到执行。例如,用户可在该箭头毗邻于虚拟 对象上的文本时说出单词“选择”,并且该箭头可指示该文本被选中。

在确定框3607中,处理器可决定是否要执行指针任务以及是否要从数个预定 义的替换物(例如,箭头、指针设备、或各种虚拟图标)中选择虚拟输入设备对象。 若是如此(即,确定框3607=“是”),则在框3608中处理器可执行该任务并 且可从存储在存储器中的一批不同指针类型中选择虚拟输入设备。在框3609中, 可计算从相机到用户的手以及到虚拟对象的矢量。该虚拟输入设备可被渲染并直接 摆放在演算出的矢量上,并且可以通过跟踪用户的手的运动而在显示器上可移动, 以提供虚拟或扩增现实体验。在框3610中,可使用该虚拟现实输入设备/指针来移 动、选择、放大或高亮显示该显示器上的虚拟对象的一部分。

在框3611中,任选地,用户的特征可能与虚拟对象发生接触并且可能遮蔽了 虚拟对象。例如,用户的手可能掠过虚拟对象之上并且可能从用户的视点来看遮蔽 或遮挡了虚拟对象被观看,这可能是不可取的。处理器可将虚拟对象叠加在用户的 身体部位上,以使得该虚拟对象可保持对用户可见,即使该用户的身体部位应当正 遮挡着显示器上的该虚拟对象。以此方式,身体部位可被渲染为仿佛透明的,而仅 是该身体部位的轮廓被示出。在框3612中,矢量可被用来在虚拟对象上渲染指针。 在框3613中,该虚拟输入设备可被更新。在框3614中,该虚拟输入设备可随该虚 拟对象一起被显示。

如果没有识别出姿势命令(即,确认框3606=“否”),处理器可继续跟踪 视频以确定处理器是否识别出姿势。而且,如果处理器决定不要执行或使用指针 (即,确定框3607=“否”),则处理器可继续跟踪视频并将不生成和显示虚拟 输入设备。

图37解说包括在头戴式显示器3704上可见的虚拟对象现实输入设备或虚拟 指针3706的系统3700的高级解说、以及虚拟对象14的高级图示。头戴式显示器 3704可包括处理器以及含天线(未示出)的无线通信设备。如以上参考图5A所讨 论的,头戴式设备3704可包括核心处理器,其可包括用于执行应用的协处理器, 有时称为应用处理器。

头戴式设备3704还可包括与重要设备能力相关联的多个对等处理器,这些能 力包括通信(例如,无线调制解调器处理器)、导航(例如,GPS接收机处理器)、 以及图形(例如,图形处理器单元(GPU))。头戴式设备3704还可包括蜂窝收 发机或调制解调器(未示出),其在许多情形中包括主要任务是管理无线通信的一 个或多个处理器。头戴式设备3704还可包括用于在其他类型的无线通信网络上通 信的其他无线收发机,诸如可以是单独的收发机芯片的Wi-Fi调制解调器(未示 出),在此情形中其还可包括单独的可编程处理器。具有嵌入式可编程处理器的其 他无线收发机(未示出)可被包括以连接到其他类型的无线通信链路,诸如近场通 信(NFC)链路、链路、以及基于其他无线协议的链路。

除了通信处理器以外,头戴式设备3704还可包括GPS接收机(未示出),其 可具有专用处理器。而且,图形处理器可被包括以提供高分辨率图形。头戴式设备 3704还可包括与有线通信相关联的处理器,诸如USB端口。如以上参考图5A所 描述的,头戴式显示器3701可包括RGB-D相机系统,其本身可将RGB相机3704a 与红外相机3704b以及结构化红外光红外发射器3704c相组合。

处理器测量可从头戴式或身佩式相机3701至用户的手指3705以及从手指 3705至虚拟对象14捕捉的矢量。使用该矢量,输入设备虚拟对象3706可被生成 并可被摆放在该矢量上。该虚拟输入设备3706可被生成,且该虚拟输入设备3706 的取向可被计算。该虚拟输入设备3706可被生成为连接到锚表面3703,该锚表面 可以是虚拟对象14所连接之处。在此实施例中,虚拟对象14可被渲染以显示为非 常大的大小,例如,如显示在头戴式显示器上的建筑物的大小。使用虚拟输入设备 3706的用户可选择虚拟对象或随其虚拟对象14显示的内容的文本或部分。

图38解说第一和第二头戴式设备系统3800和3800a的高级图示,其解说第 二头戴式设备如何可提供可供第一头戴式设备实现的定点坐标和姿势控制。主头戴 式设备系统3800可包括第一头戴式或身佩式相机阵列3801以及能以基于对等的布 局来操作的第一处理器3804。第一处理器3804可以能作为宿主处理器来操作并且 第二处理器3805可作为副系统来操作。第二头戴式设备系统3800a可充当从主系 统3800接收所生成的图像以供显示的系统。第二头戴式设备系统3800a可包括头 戴式或身佩式相机阵列3802和第二处理器3805。还可设有显示器系统3803供用 户观看三维图像。头戴式或身佩式相机阵列3801可将图像和距离数据提供给第一 处理器3804,第一处理器生成图像数据并将其提供给显示器系统3803。主处理器 3804可将该图像提供给第二处理器3805,并且第二头戴式设备可向主处理器3804 提供点坐标和姿势控制。图像和距离数据被提供给处理器3804和3805,藉此主处 理器生成虚拟对象并在显示器系统3803上显示该图像,并且还将该图像传达给第 二处理器3805以供显示。第二处理器3805可检测用户姿势作为用户输入,诸如指 向用作锚表面的位置,或移动对象及控制命令,并将这些点和姿势控制提供给第一 处理器,在那里这些输入可得到处理。

图39解说在云配置中操作的系统3900,其中点和姿势控制和图像数据信息可 被存储在云服务器3906上并由其(例如,在多播中)中继到其他各方。此系统使 得能够将虚拟对象和显示数据无线地传达给正在进行协作的头戴式显示器系统 3900a和3900b。系统3900还使得其他计算设备(包括其他头戴式设备)能监视在 正在进行协作的头戴式显示器系统3900a和3900b之间发生的数据交换。以此方式, 此协作可被更广泛的观众所观看。

系统3900可包括能在中央服务器3906上操作的中央处理器。第一头戴式设 备3900a可包括头戴式或身佩式相机3902和第一处理器3903。第二头戴式设备 3900b可包括头戴式或身佩式相机3904和第二处理器3905。还可设有显示器系统 3901。可从服务器3906向显示器系统3901提供图像。还可将图像提供给第一处理 器3903。第一处理器3903向服务器3906传送数据,包括姿势、点坐标、距离数 据、图像数据、取向数据、以及感测到的参数。还可将图像提供给第二处理器3905。 第二处理器3905也可向服务器3906提供数据,包括姿势、点坐标、距离数据、图 像数据、取向数据、以及感测到的参数。能在中央服务器3906上操作的中央处理 器可向头戴式设备提供服务以减轻第一和第二处理器3903和3905上用于渲染虚拟 指针对象和虚拟对象的计算处理。

例如,第一用户系统3900a可用红外光扫描一区域,并可测量反射的红外光 到闸选机构的渡越时间。可利用此方式来确定预定区域中各物体的形状,并且还可 利用此方式来确定各物体的距离参数。第一用户系统3900a可向服务器3906无线 地传达距离参数。云服务器3906可利用扫描数据来生成包括虚拟对象的图像。可 在图像中生成虚拟对象并将其与预定区域的扫描数据一起无线地传达给显示器系 统3901和第二头戴式设备3900b。

回到图37,可由头戴式设备跟踪的姿势的一示例是指示或选择虚拟对象的指 点姿势。例如,用户可用手指3705指向虚拟对象14,并且头戴式显示器的相机系 统可确定从头戴式或身佩式相机3708到用户的手指3705以及从手指3705到虚拟 对象14的矢量。使用此矢量,处理器可生成输入设备虚拟对象。

例如,可以确定虚拟对象14的取向以用于在头戴式显示器上显示。虚拟输入 设备对象14可被连接到锚表面3704并可连接到虚拟对象14以使得用户可控制虚 拟输入设备对象14。在渲染在头戴式显示器上的图像内,虚拟对象14可被锚定在 锚表面3703上。在此实施例中,虚拟对象14可被渲染以供显示,并且使用虚拟对 象输入设备,用户可选择虚拟对象14的文本或部分,这些文本或部分是用利用姿 势跟踪相机3708所跟踪的视频以及捕捉到的姿势来识别的。在此实施例中,虚拟 输入设备对象14可被显示为在用户周围的、或用户能围绕其行走的可移动三维对 象。虚拟对象14可在所显示的图像中被渲染为非常大的虚拟对象,诸如是建筑物 的大小。用户可利用虚拟输入设备在所显示的图像中的非常大的虚拟对象14上指 定空间中的位置。

图40A–40B解说另一实施例,其中图1中示出的头戴式显示器设备10可用 微微型投影仪4005来替换或补充,该微微型投影仪4005可被无线地连接到移动智 能电话4010并可在一表面上生成投影图像,其中可以利用用户的姿势来提供输入 命令。在此实施例中,用户不佩戴任何头戴式装置,并且仅可在横向或纵向表面上 观看投影图像。可将手持式投影仪4005(亦称为口袋投影仪4005、移动投影仪或 微微型投影仪)与手持式设备4010联用以输出如图40A和40B中所示的虚拟对象 14a。手持式投影仪4005可包括小型化的硬件和软件,其能将数字图像14a投影到 任何近旁的观看表面16上,诸如图1中所示的墙壁16或是图40B中所示的桌面 16a。

微微型投影仪4005可包括电池4015、电子主板4005、二极管激光器、激光 器或其他光源4030、组合器光学元件4035、以及扫描镜4040。手持式投影仪4005 中的组件的各种配置均是可能的并且在本公开的范围之内。处理器4020可被耦合 到主板4020。处理器4020可控制激光器二极管4030以及投影仪在由处理器4020 利用镜和光学器件4040和4035来控制的地方输出图像。

转到图40A,微微型投影仪4005可包括投影仪元件4006、输入传感器4007、 连接器4008、以及用于连接到移动设备4010或其他计算设备的无线接口4009。输 入感测微微型投影仪可以用模块化方式连接到相同类型的其他单元。该投影仪可为 用户之间的实时本地数字协作而创建渲染为虚拟对象14a和14b的多个位置知悉式 共享投影显示。微微型投影仪4005可捕捉第一用户的图像并对捕捉到的图像应用 解剖算法。处理器可检测第一用户并将第一虚拟对象14a投影在对第一用户而言处 于便利位置的桌面表面16上。使用对等或其他RF无线通信链路、或使用捕捉到 的图像数据的微微型投影仪4005可检测到第二用户已加入该协作。微微型投影仪 4005可基于捕捉到的图像数据来输出为第二用户正确取向的第二虚拟对象14b。

每个投影仪4005可经由高速无线数据链路(例如,4G、Wi-Fi或)连 接至移动计算设备4010(或其他计算设备)和/或经由对等通信协议来链接。每个 投影仪4005还可经由有线数据链路来链接到移动计算设备4010(或其他计算设 备)。移动计算设备4010可为微微型投影仪4005充当处理单元和数据存储设备, 并可生成投影图像并将该图像传达给微微型投影仪4005。微微型投影仪4005可替 换地物理连接到其他微微型投影仪,诸如经由每个投影仪4005的外壳上策略地定 位的连接器4008来连接。例如,两个微微型投影仪4005可经由各自的连接器4008 来连接。当两个微微型投影仪4005彼此连接时,这些连接器4008可为每个微微型 投影仪4005提供参考数据点。微微型投影仪4005可在表面16a上显示投影图像, 该表面16a可距参考数据点有预定距离。

每个投影仪4005的外壳上的连接4008既可提供物理支持又可包括用于各投 影仪4005之间的高速数据链路的电路,以桥接每个投影仪的无线地连接的移动计 算设备4010之间的通信。该连接器4008和电路可支持USB、、或本领 域中所知的任何其他高速连接器4008。

另外,这些连接可向软件提供关于每个投影仪相对于经由图40A中所示的连 接器4008连接的其他投影仪的物理取向的参考数据点。这些连接器4008可用来提 供接口软件和跨各投影仪4005转移数字资产的能力。投影仪4005可输出虚拟对象 14a作为在表面上的投影。投影仪4005还可使用捕捉到的图像数据来感测图像中 的各物体以用于跟踪以及用于姿势识别。投影图像14a可以是虚拟触摸屏14a并且 还可包括虚拟对象上的虚拟输入设备。与投影图像相关联的姿势可被检测,并且处 理器可基于检测到的姿势来编制输入命令。此姿势识别功能性可提供用户可能正在 控制虚拟输入设备的仿真表观。

图40B解说微微型投影仪4005渲染第一虚拟对象14a和第二虚拟对象14b。 在一实施例中,单个微微型投影仪4005可为每个用户投影至少两个不同的图像。 在另一实施例中,可将微微型投影仪4005与第二微微型投影仪配对,此配对完成 了这两个投影仪之间的电子连接。这两个不同的微微型投影仪4005可与移动计算 设备4010或其他可用计算设备无线地连接,并且各自可输出两个不同的图像,每 个用户一个图像。链接到移动计算设备4010的投影仪4005可使用每个移动计算设 备4010的处理器来渲染虚拟对象14a和14b。移动计算设备4010的处理器、以及 图像传感器可检测与每个用户相关联的参数来渲染虚拟对象14a和14b,并为每个 用户确定虚拟对象14a和14b的正确取向。

输入传感器4007可将图像转换成电子信号。该电子信号可驱动光源以沿不同 光学路径具有不同颜色和强度。在组合器光学器件4035中,这些不同的光路可被 组合成展示数种颜色的一条路径。各个镜4040逐像素地反射图像并投影图像。手 持式投影仪4005可投影清楚的图像,而无论观看表面16的物理特性如何。例如, 虚拟对象14a的投影图像可以是“虚拟对象输入设备”,诸如对于文字处理应用而 言是键盘。可检测对应于在虚拟对象14a–14c上的输入设备位置的用户姿势并将 其识别为一个或多个输入命令。

在所解说的实施例中,图像可在图40B中所示的表面16a上投影虚拟对象14a, 并且用户可将虚拟对象14a锚定在物理表面16a上。随着用户移动,基于传感器 4007的输出,虚拟对象14a可在形状、取向和大小上发生改变以保持锚定于物理 表面16a。例如,用户可被传感器4007检测为相对于投影仪4005正在向后或向前、 或者向左或向右移动。输入传感器4007可传达由用户作出的位置改变,并且处理 器4020可控制投影图像变得更大或更小,或将投影图像移到与用户的新位置相关 联的舒适的观看位置。例如,可将投影图像从横向表面移到纵向表面以跟随用户。

移动计算设备4010(诸如智能电话)可被配置成支持投影仪4005的姿势用户 界面功能性,该投影仪将计算机生成的图像(诸如演示幻灯片、文本文档或照片) 投影到投影表面16上。耦合到移动计算设备4010的相机(图像传感器)4007(图 40A)可被定位成使其视野涵盖所显示图像的至少一部分。在另一实施例中,用户 还可使用激光笔来将激光斑点投放到所显示的图像上,该激光斑点可由相机4007 检测。

相机4007可获得激光斑点以及至少一部分所显示图像的数字图像,并将该相 机图像提供给移动计算设备4010的处理器4020,其中该激光斑点的位置在该图像 内。移动计算设备4010处理器4020可被配置成具有软件指令来分析由相机4007 生成的图像(在本文中称为“收到相机图像”)以识别正被投影到投影表面16上 的显示内容的至少一部分,并确定激光斑点相对于该内容的位置。由于激光笔以特 定波长发射很亮的光束,因此激光斑点能基于强度和/或色彩元素容易地被处理器 4020识别并与投影图像区别开来。相机4007可被进一步配置成跟踪激光斑点的移 动并将该移动与预定义的激光姿势相关。当激光姿势被识别出来时,处理器4020 可执行对应的功能。

图40C是投影仪基于一个或多个检测到的用户来输出多个不同的投影图像的 高级图示。图40C解说使用移动通信设备处理器4010(图40A)从跟踪到的已加 入协作的更多用户的图像来检测姿势的投影仪4005。响应于检测到新用户,处理 器可以用模块化方式渲染正确地取向到第三用户的第三虚拟对象14c。类似地,如 果又一用户加入并被检测到,则处理器可以用模块化方式渲染第四虚拟对象(未示 出),其中至少两个投影图像可渲染相同内容和图像。进一步,第三或第四用户可 使用移动计算设备4010来改变投影图像14a、14b和14c的显示。例如,用户可关 闭第三对象14c并打开具有不同内容的新对象。

使用投影仪4005,就可通过提供高度可迁移的大型输入和显示环境来增强移 动用户体验。可通过使用各移动设备4010来以自组织(ad hoc)方式为多个用户 建立数字协作式环境。各投影仪4005上的物理连接器4008可提供各投影仪之间的 相对位置知悉。此位置数据可以高准确度来提供。这允许用户能使用多个投影虚拟 对象14a–14c来容易地创建协作式数据演示及操纵。

图40D解说用于基于检测到的物体/姿势来以便利方式为用户投影图像的实施 例方法4045。方法4045可在具有用处理器可执行指令配置成执行方法4045的操 作的处理器的计算设备中实现。在方法4045中,处理器可在框4046和4047中捕 捉用户的图像并可用传感器阵列捕捉空间数据。在框4048中,处理器可识别图像 中的各物体并确定距该图像中各物体的距离。在框4049中,处理器可跟踪该图像 中的各物体并可应用解剖分析来确定该图像内是否有身体部位。

例如,处理器可对捕捉到的图像应用解剖分析来确定捕捉到的图像是否包括 头和肩、躯干、和手臂等、或是将指示用户或指示用户正在看着的方向的任何其他 身体部位。如果检测到了身体部位,则处理器可确定所检测到的身体部位随时间推 移是否符合存储在存储器中(例如,存储在姿势字典中)的姿势,并可在识别出姿 势的情况下应用命令。在一实施例中,微微型投影仪可在特定位置投影图像以使得 用户能便利地看到投影图像并与投影图像交互。例如,如果确定了头和肩在图像中, 则微微型投影仪可将图像投影在便利地靠近该用户的墙壁上或桌面上。

在一进一步的实施例中,用户可在单手或双手或手腕上应用或佩戴上手套、 戒指、手镯、以及其他被着色成或具备能被距离传感器和相机中的一者或其两者识 别的反射性特征的物品,以协助区别用户的手和手指并识别运动姿势。例如,用户 可佩戴在每个手指上显现不同颜色的手套,并且头戴式设备可被配置成基于场景图 像的像素内每个手指颜色各自的红-绿-蓝强度值来识别每个手指颜色。

在框4050和4051中,处理器分别从第一和第二微微型投影仪接收第一和第 二信号以在这些微微型投影仪与处理器之间进行链接和传达数据。例如,微微型投 影仪可与移动通信设备链接以使得与移动通信设备存储器相关联的存储器的数据 内容可被访问和显示或共享。在确定框4052中,处理器决定是否要基于检测到的 身体部位来从微微型投影仪投影图像。若是如此(即,确定框4052=“是”), 则处理器可在框4053在对用户而言便利的表面处利用投影图像来显示内容。在框 4054中,处理器可经由微微型投影仪之间的无线数据链路在用户之间共享数据。 例如,图像文件、文字处理文件、电子邮件或任何其他数据可作为投影图像来被共 享或显示。如果处理器决定不要基于检测到的身体部位来投影图像(即,确定框 4052=“否”),则处理器可在框4055和4056中显示要投影图像的提示并以便 利的方式投影该图像。例如,微微型投影仪可暂缓投影这些投影,直至接收到输入 并且用户可手动地检测投影图像。投影图像可包括虚拟对象,并且头戴式设备可被 配置成识别与投影的虚拟对象图像交互或相关的用户手势作为用户输入。在此类实 施例中,处理器可应用与识别出的手势相对应的命令,该手势是在利用投影的虚拟 输入设备时作出的。

例如,可显示能够用跟踪到的用户的手的运动来移动的虚拟鼠标或虚拟指针。 另外,使用检测到的姿势,处理器可将投影图像正确地取向在纵向或横向表面上。 以此方式,可基于检测到的身体部位将投影图像投影成正面朝上。例如,可以用背 对背配置将第一微微型投影仪连接到第二投影仪,并且这些投影仪可投影至少两个 不同的投影图像,其中这些投影图像相对于彼此分隔至少一百八十度。在又一实施 例中,处理器可定义参考点并基于该参考点来确定第一和第二投影仪各自的取向。 处理器可基于参考点以及第一和第二投影仪的取向来为各用户对投影图像进行取 向。

在又一实施例中,处理器可检测第三用户并且基于检测到的身体部位来至少 投影第三投影图像。而且,处理器可从与第三用户相关联的第三计算设备接收数据 以用于协作。在另一实施例中,可设置第四微微型投影仪以及至少第四不同的投影 图像。

各种实施例可包括从耦合到计算设备的第一和第二微微型投影仪投影图像的 方法,这些方法通过如下动作实现:捕捉在该第一和第二投影仪附近的场景的图像, 用传感器阵列捕捉在该第一和第二投影仪附近的空间数据,分析捕捉到的场景图像 以识别身体部位,以及从该第一和第二投影仪中的每一者以基于所识别出的身体部 位决定的形状和取向来投影图像。在一实施例中,该第一和第二投影仪可以是微微 型投影仪。在一进一步的实施例中,从该第一和第二投影仪中的每一者以基于所识 别出的身体部位决定的形状和取向来投影图像可包括在这些投影仪附近的用户前 面的表面上投影图像。

在一进一步的实施例中,该方法可包括将所投影的图像取向在对于在这些投 影仪附近的用户而言恰适的纵向或横向表面上。在一进一步的实施例中,该方法可 包括跟踪所识别出的身体部位的运动,对所跟踪到的运动应用检测算法以检测预定 姿势,应用与所检测到的预定姿势相对应的命令,以及响应于所应用的命令来修改 所投影的图像。在一进一步的实施例中,分析捕捉到的图像以识别身体部位可包括 向这些图像应用解剖分析以确定在所捕捉到的图像内的物体是否匹配于解剖模型 的一部分。

在一进一步的实施例中,所投影的图像可以是虚拟输入设备的图像,并且应 用与所检测到的预定姿势相对应的命令可包括应用与用户输入设备的命令相符的 命令。在一进一步的实施例中,应用与所检测到的预定姿势相对应的命令可包括应 用与移动虚拟对象相对应的命令,并且响应于所应用的命令来修改所投影的图像可 包括响应于检测到该预定姿势将该虚拟对象显示为从第一位置移到第二位置。在一 进一步的实施例中,该方法可包括经由在每个投影仪外部的连接器以背对背配置将 第一投影仪连接到第二投影仪,其中从该第一和第二投影仪中的每一者以基于所识 别出的身体部位决定的形状和取向来投影图像可包括在大致相反的方向上投影至 少两个图像。

在一进一步的实施例中,该方法可包括经由在投影仪外部的连接器将第一投 影仪连接到第三投影仪,并经由在投影仪外部的连接器将第三投影仪连接到第二投 影仪,其中从该第一和第二投影仪中的每一者以基于所识别出的身体部位决定的形 状和取向来投影图像可包括投影至少三个所投影的图像,以使得它们分隔大致九十 度。

在一进一步的实施例中,该方法可包括经由在投影仪外部的连接器将第一投 影仪连接到第三投影仪和第四投影仪,并经由在投影仪外部的连接器将第三和第四 投影仪连接到第二投影仪,其中从该第一和第二投影仪中的每一者以基于所识别出 的身体部位决定的形状和取向来投影图像可包括投影四个图像,以使得它们分隔大 致九十度。

在一进一步的实施例中,该方法可包括定义该场景中的参考点,基于所定义 的参考点来确定该第一和第二投影仪中每一者的取向,以及基于所定义的参考点以 及该第一和第二投影仪的取向来对所投影的图像进行取向。在一进一步的实施例 中,定义该场景中的参考点可包括由连接点来将该第一投影仪连接到该第二投影 仪,并将该连接点定义为该参考点。

各种实施例可包括在扩增现实系统中渲染虚拟图像的方法,这些方法是通过 如下动作来实现的:用身佩式相机捕捉图像,用身佩式传感器阵列捕捉空间数据, 识别所捕捉到的图像内的物体,接收指示所捕捉到的图像中对应于位于该图像中的 第一表面的第一锚表面的第一用户输入,计算包括与第一锚表面相对应的相对于该 身佩式相机的距离和取向等的参数,显示虚拟对象以使得该虚拟对象显现为锚定于 所选的第一锚表面,接收指示捕捉到的图像内与第一锚表面不同的第二锚表面的第 二输入,其中该第二锚表面对应于位于该图像中的第二表面并且第一和第二表面是 不同的,计算包括与第二锚表面相对应的相对于该身佩式相机的距离和取向等的参 数,以及显示该虚拟对象以使得该虚拟对象对用户而言显现为被锚定到所选的第二 锚表面并且是从第一锚表面移过来的。

在一实施例中,该方法可包括随着用户转动他/她的头并关于所选第一或第二 锚表面移动而持续更新所生成的虚拟对象的显示以使得该虚拟对象显现为锚定于 所选第一或第二锚表面。在一进一步的实施例中,显示虚拟对象可包括显示虚拟头 戴式显示器。该方法可进一步包括将视频图像输出为就像在头戴式显示器上显现为 锚定于所选的第一或第二锚表面那样。在一进一步的实施例中,显示所生成的虚拟 对象以使得该虚拟对象对用户而言显现为锚定于所选的第二锚表面并且是从第一 锚表面移过来的可包括:将该虚拟对象生成为仿效平面屏幕显示器的矩形形状的虚 拟对象,并将所生成的虚拟对象显示在半透明显示器上,其中该虚拟对象叠加在透 过该半透明显示器可见的真实世界表面上。

在一进一步的实施例中,第一或第二锚表面可包括房间中的墙壁,并且其中 随着用户在该房间中四处移动该虚拟对象保持锚定在该房间中的该墙壁上。在一进 一步的实施例中,显示所生成的虚拟对象以使得该虚拟对象显现为锚定于所选的第 一或第二锚表面可包括:生成虚拟对象以使其显现为接触第一或第二锚表面并且使 得第一和第二锚表面显现为是对所锚定的虚拟对象的刚性支撑点。在一进一步的实 施例中,显示所生成的虚拟对象以使得该虚拟对象显现为锚定到所选锚表面可包 括:生成虚拟对象以使其显现为与第一或第二锚表面间隔开但悬浮在相对于第一或 第二锚表面间隔开的固定位置中。

在一进一步的实施例中,该方法可包括通过捕捉到的空间数据、所生成的虚 拟对象和该图像将数据传送到第二头戴式显示器。在一进一步的实施例中,该方法 可包括利用话筒从用户接收音频,对接收到的音频应用检测算法以检测预定音频信 号,并在检测到预定音频信号时实现预定义的用户输入。在一进一步的实施例中, 对接收到的音频应用检测算法以检测预定音频信号可包括对接收到的音频应用检 测算法以检测由用户说出的与预定义用户输入相对应的预定音频信号。在一进一步 的实施例中,与检测到的预定音频信号相对应的预定义用户输入是以下之一:第一 输入、第二输入、或对第一和第二输入之一的确认。

在一进一步的实施例中,该方法可包括用与头戴式显示器搭载和布置在一起 的身佩式相机来捕捉图像,并在头戴式显示器上显示虚拟对象。在一进一步的实施 例中,身佩式相机和头戴式显示器包括身佩式设备。该方法还可进一步包括在该身 佩式设备与第二身佩式设备之间建立无线数据链路,经由该无线数据链路从第二身 佩式设备接收音频数据,以及使用接收到的音频数据来向用户输出音频。在一进一 步的实施例中,该方法可包括经由该无线数据链路来接收视频数据,以及使用接收 到的视频数据在头戴式显示器上输出从第二身佩式设备接收到的视频图像,其中该 视频显示了锚定的虚拟对象。

在一进一步的实施例中,经由该无线数据链路接收视频数据可包括接收以下 一项或多项:虚拟对象的三维模型数据、锚表面的三维数据、锚定点的三维数据、 三维深度数据、以及三维距离数据。在一进一步的实施例中,该方法可包括接收指 示虚拟对象的待命位置的第三输入,其中该待命位置不同于第一和第二锚表面,计 算包括与该待命位置相对应的相对于该身佩式相机的距离和取向等的参数,以及在 该待命位置显示该虚拟对象。在一进一步的实施例中,该待命位置被显示为自由漂 浮在显示器上,其中随着用户转动他/她的头并移动,该虚拟对象在该显示器上显 现为可移动的且未连接到该图像中的各表面。

在一进一步的实施例中,用身佩式相机捕捉图像可包括由全彩摄像机来捕捉 视频数据,并且用身佩式传感器阵列来捕捉空间数据可包括利用距离传感器来捕捉 空间数据以确定距该图像中各物体的距离。在一进一步的实施例中,用身佩式传感 器阵列来捕捉空间数据可包括使用红外激光器和红外传感器来捕捉该图像中各物 体的距离信息。在一进一步的实施例中,该方法可包括基于捕捉到的视频数据和计 算出的空间数据来构建三维地图。在一进一步的实施例中,该方法可包括利用身佩 式相机来跟踪用户的运动,对跟踪到的用户运动应用检测算法以检测预定姿势,以 及在检测到预定姿势时执行与该预定姿势对应的命令。

在一进一步的实施例中,所检测到的预定姿势是从下组中选择的,包括“OK” 手势、拳头、打开的手、用一个手指指点、用两个手指指点、用三个或四个手指指 点、向外伸出的手、手旋转、挥手、一个或多个手指的移动、身体部位或脚的移动、 或其任何组合。在一进一步的实施例中,预定姿势是从姿势字典中检索的。在一进 一步的实施例中,姿势字典定义以下一项或多项:用于目标选择或来回切换的戳姿 势、轻拍姿势、或叩击姿势,用于引导屏幕对象越过屏幕的推姿势,用于向屏幕对 象赋予动量的弹拂姿势,用于旋转屏幕对象的转向姿势,用于缩放操作的抓姿势或 拉姿势,用于摇摄操作的双手移动姿势,用于调整屏幕对象大小的将双手分开姿势, 以及用于在媒体中水平滚动或穿梭的挥扫姿势。

在一进一步的实施例中,接收指示捕捉到的图像中的第一锚表面的第一输入 可包括:检测由用户作出的与将捕捉到的图像内的一表面指定为锚表面的命令相对 应的第一预定姿势、并应用该命令,并且接收要在图像中锚定虚拟对象的第二输入 可包括:检测由用户作出的与将锚表面移到捕捉到的图像中的另一表面的命令相对 应的第二预定姿势、并应用该命令。在一进一步的实施例中,第一和第二检测到的 预定姿势中的任一者可包括用户指向捕捉到的图像中的一表面。在一进一步的实施 例中,该方法可包括在接收到第一输入之后继续跟踪用户的运动,对跟踪到的运动 应用检测算法以检测与确认该第一输入的用户输入对应的第三预定姿势,并响应于 第三预定姿势将虚拟对象锚定在所选锚表面上。

各种实施例可包括用于存储空间数据以供在扩增现实系统中使用的方法,这 些方法通过如下动作来实现:基于从第一身佩式传感器设备搜集的图像和空间数据 来生成关于场景中各表面和物体的位置的数据,基于所生成的数据生成该场景的三 维地图,向该场景的三维地图添加地理标识元数据,将该地理标识元数据和三维地 图存储在存储器中,以及将该地理标识元数据和三维地图的至少一部分传送给第二 身佩式传感器设备。在一实施例中,基于从第一身佩式传感器设备搜集的图像和空 间数据生成关于场景中各表面和物体的位置的数据可包括:用身佩式相机捕捉该场 景的场景图像,用身佩式传感器阵列捕捉该场景内各物体的空间数据,识别捕捉到 的场景图像内的各物体,以及确定从第一身佩式传感器设备到该场景图像内识别出 的各物体的距离,并且向该场景的三维地图添加地理标识元数据可包括:将所确定 的距离与该场景图像内识别出的各物体相关联。

在一实施例中,该方法可包括确定第二身佩式传感器设备的位置,其中将地 理标识元数据和三维地图的至少一部分传送给第二身佩式传感器设备可包括传送 该地理标识元数据和三维地图中与第二身佩式传感器设备的位置有关的一部分。在 一进一步的实施例中,该方法可包括在第二身佩式传感器设备中接收该地理标识元 数据和三维地图的所传送部分,并至少部分地基于该地理标识元数据和三维地图的 所接收部分在第二身佩式传感器设备上的显示器上生成虚拟图像。

在一进一步的实施例中,该方法可包括确定第二身佩式传感器设备的位置, 基于从第二身佩式传感器设备搜集的图像和空间数据来生成关于该场景中各表面 和物体的位置的数据,以及基于由第二身佩式传感器设备生成的数据来细化该地理 标识元数据和三维地图。在一进一步的实施例中,向该场景的三维地图添加地理标 识元数据可包括用地理标签来对该三维地图作标签。在一进一步的实施例中,基于 从第一身佩式传感器设备搜集的图像和空间数据生成关于场景中各表面和物体的 位置的数据、基于所生成的数据生成该场景的三维地图、以及向该场景的三维地图 添加地理标识元数据是在第一身佩式传感器设备内的处理器中完成的。

在一进一步的实施例中,该方法可包括将由第一身佩式传感器设备搜集的图 像和空间数据中继给与第一身佩式传感器设备处于通信中的处理器,其中基于从第 一身佩式传感器设备搜集的图像和空间数据生成关于场景中各表面和物体的位置 的数据、基于所生成的数据生成该场景的三维地图、以及向该场景的三维地图添加 地理标识元数据是在与第一身佩式传感器设备处于通信中的该处理器中完成的。在 一进一步的实施例中,该方法可包括经由网络将由第一身佩式传感器设备搜集的图 像和空间数据传送给服务器,其中基于从第一身佩式传感器设备搜集的图像和空间 数据生成关于场景中各表面和物体的位置的数据、基于所生成的数据生成该场景的 三维地图、以及向该场景的三维地图添加地理标识元数据是在该服务器中基于从第 一身佩式传感器设备接收到的图像和空间数据来完成的。

在一进一步的实施例中,该方法可包括确定第二身佩式传感器设备的位置, 并且从第二身佩式传感器设备向该服务器传送对该地理标识元数据和三维地图的 一部分的请求,该请求包括所确定的第二身佩式传感器设备的位置,其中将该地理 标识元数据和三维地图的至少一部分传送给第二身佩式传感器设备可包括:从该服 务器向第二身佩式传感器设备传送该地理标识元数据和三维地图中与第二身佩式 传感器设备的位置有关的一部分。在一进一步的实施例中,生成该场景的三维地图 可包括开发该场景内各三维表面的数学表示,并且将地理标识元数据写到该数学表 示中。在一进一步的实施例中,将该地理标识元数据和三维地图存储到存储器可包 括将该数学表示存储在可由第一和第二身佩式传感器设备访问的服务器上。

在一进一步的实施例中,基于从第一身佩式传感器设备搜集的图像和空间数 据生成关于场景中各表面和物体的位置的数据可包括:确定第一身佩式传感器设备 的位置,用身佩式相机捕捉该场景的场景图像,用身佩式传感器阵列捕捉该场景内 各物体的空间数据,识别捕捉到的场景图像内的各物体,以及确定在该场景图像内 识别出的各物体的位置;并且向该场景的三维地图添加地理标识元数据可包括将所 确定的位置与在该场景图像内识别出的各物体相关联。在一进一步的实施例中,确 定在图像内识别出的各物体的位置可包括确定各物体相对于所确定的第一身佩式 传感器设备的位置而言的位置。在一进一步的实施例中,确定在图像内识别出的各 物体的位置可包括确定各物体在确定第一身佩式传感器设备的位置时使用的坐标 系内的位置。

各个实施例可包括通过捕捉要在其中显示虚拟对象的场景的图像、识别出现 在捕捉到的图像中的身体部位、以及基于所识别出的身体部位调整虚拟对象的显示 来在扩增现实系统中渲染图像的方法。在一实施例中,调整虚拟对象的显示可包括 标识该虚拟对象与识别出的身体部位交叠的部分,以及抑制所标识出的部分以使得 所识别出的身体部位显现为遮蔽该虚拟对象的所标识出的部分。在一进一步的实施 例中,调整虚拟对象的显示可包括标识该虚拟对象与识别出的身体部位交叠的部 分,以及将虚拟对象叠加在此识别出的身体部位上以使得该虚拟对象的所标识出的 部分显现为遮蔽所识别出的身体部位。

在一进一步的实施例中,调整所显示的虚拟对象可包括调整该虚拟对象与所 识别出的身体部位交叠的所显示部分,以使得该虚拟对象是透过所识别出的身体部 位可见的并使得所识别出的身体部位显现为半透明的。在一进一步的实施例中,该 方法可包括在身佩式半透明显示器上显示该虚拟对象,该身佩式半透明显示器配置 成使得佩戴该身佩式半透明显示器的个人能透过该显示器观看场景。在一进一步的 实施例中,捕捉要在其中显示虚拟对象的场景的图像可包括用第一个人所佩戴的身 佩式相机来捕捉图像。该方法可进一步包括用第一个人所佩戴的身佩式传感器阵列 来捕捉空间数据,识别所捕捉到的图像内的各物体,以及确定距所捕捉到的图像内 各识别出的物体的距离。在一进一步的实施例中,该方法可包括在头戴式显示器上 显示虚拟对象和捕捉到的图像,以使得该场景对于佩戴身佩式半透明显示器的个人 是可见的。

在一进一步的实施例中,识别出现在所捕捉到的图像中的身体部位可包括对 所捕捉到的图像应用解剖分析。在一进一步的实施例中,对图像应用解剖分析可包 括识别所捕捉到的图像内的各物体,将所识别出的物体与存储在存储器中的骨骼模 型作比较,所存储着的骨骼模型包括关于人类骨骼的关键关节、骨和肢的相对位置 信息,以及响应于将所识别出的物体与骨骼模型作比较来确定是否有任何识别出的 物体匹配于骨骼模型的一部分。在一进一步的实施例中,该方法可包括响应于识别 出出现在所捕捉到的图像中的身体部位而确定该身体部位是属于第一个人还是属 于第二个人,确定虚拟对象的位置和所包围区域、以及确定所识别出的身体部位是 否与被该虚拟对象所包围的区域的至少一部分交叠。

在一进一步的实施例中,确定身体部位是属于第一个人还是第二个人可包括 基于所识别出的身体部位的取向来确定该身体部位是属于第一个人还是第二个人。 在一进一步的实施例中,确定身体部位是属于第一个人还是第二个人可包括基于所 识别出的身体部位距身佩式相机的距离来确定该身体部位是属于第一个人还是第 二个人。在一进一步的实施例中,确定身体部位是属于第一个人还是第二个人可包 括基于确定在所捕捉到的图像中的身体部位的数目来确定该身体部位是属于第一 个人还是第二个人。

在一进一步的实施例中,调整虚拟对象的显示可包括当确定该身体部位属于 第二个人时将该虚拟对象显示为叠加在所识别出的第二个人的身体部位之上,并且 当确定该身体部位属于第一个人时显示该虚拟对象以使得该虚拟对象看起来位于 所识别出的身体部位之下。在一进一步的实施例中,显示虚拟对象以使得该虚拟对 象显现为位于所识别出的身体部位之下可包括不渲染该虚拟对象的与所识别出的 身体部位交叠的部分。在一进一步的实施例中,该方法可包括显示所识别出的第二 个人的身体部位与被虚拟对象包围的显示区域交叠的部分的轮廓,以使得在显示器 中该轮廓在虚拟对象之上可见。

各种实施例可包括由各自包括身佩式相机和头戴式显示器的第一和第二身佩 式设备在扩增现实系统中渲染图像的方法。该方法可包括用第一身佩式设备的身佩 式相机捕捉场景的第一场景图像,在第一身佩式设备的头戴式显示器上显示虚拟对 象的第一图像,该第一图像将该虚拟对象显示为以适合于第一身佩式设备的用户的 第一取向来锚定于捕捉到的第一场景图像内的第一锚表面,并在第二身佩式设备的 头戴式显示器上显示该虚拟对象的第二图像,该第二图像将该虚拟对象显示为以适 合于第二身佩式设备的用户的第二取向来锚定于第二锚表面。

在一进一步的实施例中,该方法可包括从第一身佩式设备向第二身佩式设备 发送该虚拟对象,在第二身佩式设备中接收该虚拟对象,用第二身佩式设备的身佩 式相机捕捉该场景的第二场景图像,以及分析捕捉到的第二场景图像以标识第二场 景图像内在接近于第二身佩式设备的用户正看着的方向的方向上的合适锚表面,其 中在第二身佩式设备的头戴式显示器上显示第二图像可包括显示第二图像以使得 该虚拟对象被锚定于所标识出的合适锚表面。在一实施例中,该方法可包括从第一 身佩式设备向第二身佩式设备传送指示虚拟对象的取向的信号,其中显示第二图像 可包括显示第二图像以使得该虚拟对象是部分地基于从第一身佩式设备接收的该 信号来取向的。

在一进一步的实施例中,该方法可包括从第一身佩式设备向第二身佩式设备 传送指示虚拟对象的优选取向的信号,向第二身佩式设备的用户通告所指示的优选 取向,以及从第二身佩式设备的用户接收接受或拒绝所指示的优选取向的输入,其 中在第二身佩式设备的头戴式显示器上显示虚拟对象的第二图像可包括:显示第二 图像以使得当收到的输入接受所指示的优选取向时该虚拟对象是部分地基于所指 示的优选取向来取向的并且使得当收到的输入拒绝所指示的优选取向时该虚拟对 象以不同于所指示的优选取向的方式来取向。

在一进一步的实施例中,第一锚表面和第二锚表面是相同表面。在一进一步 的实施例中,该方法可包括从第一身佩式设备向第二身佩式设备传送虚拟对象,其 中在第二身佩式设备的头戴式显示器上显示虚拟对象的第二图像可包括将第二图 像显示为以第二取向锚定于第一锚表面。在一进一步的实施例中,第一和第二身佩 式设备位于不同位置上,该方法可进一步包括经由网络将该虚拟对象传送至第一和 第二身佩式设备中的每一者。

在一进一步的实施例中,该方法可包括用第二身佩式设备的身佩式相机捕捉 第二场景图像,并且在第二身佩式设备上接收指示捕捉到的第二场景图像中的第二 锚表面的输入,所指示的第二锚表面不同于第一锚表面,其中在第二身佩式设备的 头戴式显示器上显示第二图像可包括以适合于所指示的第二锚表面以及第二身佩 式设备的用户的配置来将虚拟对象显示为锚定于所指示的第二锚表面。在一进一步 的实施例中,该方法可包括从第二身佩式设备向第一身佩式设备传送第二虚拟对 象,并且在第一身佩式设备的头戴式显示器上显示第三图像,该第三图像将第二虚 拟对象显示为锚定于第一锚表面。

进一步的实施例可包括配置成执行与以上讨论的各种实施例方法和/或操作相 对应的各种操作的系统、服务器、和/或计算设备。更进一步的实施例可包括非瞬 态处理器可读存储介质,其上存储有处理器可执行指令,用于使处理器执行与以上 讨论的各种实施例方法和/或操作相对应的操作。

图41是适于与其中任何实施例联用的接收器设备的系统框图。典型的接收器 设备4100可包括耦合到内部存储器4102、显示器4103并耦合到扬声器4154的处 理器4101。另外,接收器设备4100可包括可连接到无线数据链路的用于发送和接 收电磁辐射的天线4104、和/或耦合到处理器4101的蜂窝电话收发机4105、以及 耦合到处理器4101的移动多媒体广播接收机4106。接收器设备4100典型情况下 还包括用于接收用户输入的菜单选择按钮或摇杆开关4108。

各种实施例可实现在各种市售的服务器设备中的任何设备上,诸如图42中所 解说的服务器4200。此类服务器4200典型地可包括耦合至易失性存储器4202和 大容量非易失性存储器(诸如盘驱动器4203)的处理器4201。服务器4200还可包 括耦合至处理器4201的软盘驱动器、压缩碟(CD)或DVD碟驱动器4206。服务 器4200还可包括耦合到处理器4201以用于与网络4205(诸如耦合到其他广播系 统计算机和服务器的局域网络)建立数据连接的网络接入端口4204。

处理器3903、3905、4101、4201可以是能由软件指令(应用)配置以执行包 括上述各种实施例的功能在内的各种功能的任何可编程微处理器、微型计算机或一 个或多个多处理器芯片。在一些设备中,可提供多个处理器3903、3905、4101, 诸如一个处理器专用于无线通信功能并且一个处理器专用于运行其他应用。通常, 在软件应用被访问并被加载到处理器4101、4201中之前,这些软件应用可被存储 在内部存储器4102、4202、4203中。处理器4101、4201可包括足以存储应用软件 指令的内部存储器。在许多设备中,内部存储器可以是易失性或非易失性存储器(诸 如闪存.),或这两者的混合。为本描述之故,对存储器的一般性引述是指可由处 理器3903、3905、4101、4201访问的存储器,包括插入该设备的内部存储器或可 移动存储器、以及在处理器3903、3905、4101、4201本身内部的存储器。

上述方法描述和过程流程图仅作为解说性示例提供,且并非旨在要求或暗示 各种实施例的步骤必须按所给出的次序来执行。如本领域技术人员将领会的,前述 实施例中的步骤次序可按任何次序来执行。诸如“其后”、“然后”、“接着”等 的措辞并非旨在限定步骤的次序;这些措辞仅是简单地用以指引读者遍历方法的描 述。进一步地,对单数形式的权利要求元素的任何引述,例如使用冠词“一”、“某” 或“该”的引述不应解释为将该元素限定为单数。

结合本文中所公开的实施例来描述的各种解说性逻辑框、模块、电路、和算 法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软 件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能 性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和 施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所 描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。

用以实现结合本文中公开的实施例描述的各种解说性逻辑、逻辑框、模块、 以及电路的硬件可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、 现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分 立的硬件组件、或其设计成执行本文中描述的功能的任何组合来实现或执行。通用 处理器可以是微处理器,但在替换方案中,处理器可以是任何常规的处理器、控制 器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与 微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任 何其他此类配置。替代地,一些步骤或方法可由专用于给定功能的电路系统来执行。

在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任 何组合中实现。如果在软件中实现,则这些功能可作为一条或多条指令或代码存储 在非瞬态计算机可读介质上。本文中公开的方法或算法的步骤可实施在可驻留在非 瞬态计算机可读介质上的被执行的处理器可执行软件模块中。非瞬态计算机可读介 质包括可被计算机访问的任何存储介质。作为示例而非限定,此类非瞬态计算机可 读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储 或其它磁存储设备、或者可用以携带或者存储指令或数据结构形式的期望程序代码 且可由计算机访问的任何其它介质。如本文所用的盘(disk)和碟(disc)包括压 缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk) 常常磁性地再现数据,而碟(disc)用激光来光学地再现数据。以上的组合也应被 包括在非瞬态计算机可读介质的范围内。另外,方法或算法的操作可作为一条代码 和/或指令或者代码和/或指令的任何组合或集合而驻留在可被纳入计算机程序产 品中的非瞬态机器可读介质和/或非瞬态计算机可读介质上。

提供所公开的实施例的先前描述是为了使本领域任何技术人员皆能制作或使 用本发明。对这些实施例的各种修改对于本领域技术人员将是显而易见的,并且本 文中定义的普适原理可被应用于其他实施例而不会脱离本发明的精神或范围。由 此,本发明并非旨在限定于本文中示出的实施例,而是应被授予与所附权利要求和 本文中公开的原理和新颖性特征一致的最广义的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号