虚拟内容到现实内容中的融合的制作方法

文档序号:6436465阅读:259来源:国知局
专利名称:虚拟内容到现实内容中的融合的制作方法
技术领域
本发明涉及虚拟内容到现实内容中的融合。
背景技术
扩展现实是一种允许将虚拟图像与现实世界物理环境相混合的技术。例如,扩展现实系统可以用于将恐龙的图像插入到用户房间的视图中,使得该用户看见恐龙在房间中走动。扩展现实要解决的更困难的问题之一是将虚拟物体覆盖在现实物体之上的能力。 例如,所期望的可能是遮蔽现实物体并且使其看上去是别的东西。可替代地,所期望的可能是将看上去是场景的一部分的新图像添加到该场景中,从而要求该新图像挡住该场景中的现实物体的全部或一部分的视图。用虚拟图像遮蔽现实物体可能是复杂的。

发明内容
在此所述的技术提供了一种系统,其用于将虚拟内容融合到现实内容中,使得虚拟物体的图像可以挡住现实物体的视图的全部或一部分。使用一个或多个传感器来扫描环境以及构建所扫描的环境的模型。使用该模型,该系统将虚拟图像添加到用户对环境的视图中的参考现实世界物体的位置处。例如,该系统可以被配置为创建房间的模型并且添加假想的巨石的虚拟图像以替换房间中的现实咖啡桌。用户佩戴具有显示元件的头戴式显示设备(或其他合适的装置)。该显示元件允许用户通过显示元件查看房间,由此允许通过该显示元件实际直接地查看房间。该显示元件还提供将虚拟图像投影到用户的视野内使得虚拟图像看上去处于该房间内这一能力。该系统自动地跟踪用户所查看之处,使得该系统可以确定将巨石的虚拟图像例如插入到用户的视野中的何处。一旦系统得知要将虚拟图像投影到何处,则该图像就使用显示元件被投影。在一些实施例中,可以使用与该显示元件对齐的滤光器来选择性地阻挡到达显示元件的光。这允许该系统使虚拟图像将被投影到的地方暗化,从而使得更易于看见虚拟图像并且更难以看见虚拟图像之后的现实世界物体。在上面的示例中,滤光器将用于使咖啡桌难以被看见,使得当巨石被投影到咖啡桌之上时,观众很好地看见巨石,但是不能很好地看见(或者完全不能看见)咖啡桌。—个实施例包括创建空间的体积模型;将该模型分割成物体;标识出所述物体中的包括第一物体的一个或多个物体;以及在显示器上自动地将虚拟图像显示在第一物体之上,该显示器允许通过该显示器实际直接地查看该空间的至少一部分。一个示例性实施方式中包括头戴式显示设备、以及与该头戴式显示设备通信的处理单元。该头戴式显示设备包括显示器,其允许通过该显示器对第一物体的实际直接视图;不透明度滤光器,其与该显示器对齐使得穿过该不透明度滤光器的光也穿过该显示器; 惯性传感器,其感测该头戴式显示设备的取向信息;第一通信接口 ;以及一个或多个控制电路,其与该显示器、该不透明度滤光器、该惯性传感器、以及第一通信接口进行通信。处理单元包括第二通信接口,其与第一通信接口通信;以及一个或多个控制电路,其通过第一通信接口和第二通信接口与头戴式显示设备通信以自动地在该显示器上显示虚拟图像。提供本发明内容以便以简化形式介绍在以下具体实施方式
中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中提及的任何或所有缺点的实现。


图1是描绘了用于将虚拟内容融合到现实内容中的系统的一个实施例的示例性组件的框图。图2是头戴式显示单元的一个实施例的一部分的顶视图。图2A-2E提供了示出不透明度滤光器的操作的示例性图像。图3是头戴式显示单元的组件的一个实施例的框图。图4是与头戴式显示单元相关联的处理单元的组件的一个实施例的框图。图5是与头戴式显示单元相关联的中枢计算系统的组件的一个实施例的框图。图6是描绘可用于实现在此所述的中枢计算系统的计算系统的一个实施例的框图。图7是描绘了可以将虚拟内容与现实内容相融合的多用户系统的框图。图8是描述用于将虚拟内容与现实内容相融合的过程的一个实施例的流程图。图8A是描述用于将虚拟内容与现实内容相融合的过程的一个实施例的流程图。图9是描述用于创建空间的模型的过程的一个实施例的流程图。图10是描述用于将模型分割成物体的过程的一个实施例的流程图。图11是描述用于标识出物体的过程的一个实施例的流程图。图IlA是描述用于响应于移动物体来更新模型的过程的一个实施例的流程图。图12是描述用于将虚拟物体投影到现实物体之上的过程的一个实施例的流程图。图12A是描述用于基于光源和阴影来调整显示何物的过程的一个实施例的流程图。图13是描述用于由中枢来跟踪用户和/或头戴式显示单元的位置和取向的过程的一个实施例的流程图。图14是描述用于跟踪眼睛位置的过程的一个实施例的流程图。图15是描述用于确定用户视角的过程的一个实施例的流程图。
具体实施例方式在此描述了一种可以将虚拟物体与现实物体相融合的系统。在一个实施例中,该系统包括头戴式显示设备、以及与该头戴式显示设备通信的处理单元。头戴式显示设备包括显示器,该显示器允许通过该显示器对现实世界物体的实际直接视图。该系统可以将虚拟图像投影到显示器上,其中所述虚拟图像可以由佩戴头戴式显示设备的人来查看,同时该人还通过该显示器来查看现实世界物体。使用各种传感器来检测位置和取向以便确定将虚拟图像投影到何处。使用所述传感器中的一个或多个来扫描相邻环境以及构建所扫描的环境的模型。 在一个实施例中,环境的扫描还可以包括确定光源的位置、表面的反射率,这将使得该系统能够添加合适的阴影和现实表面上的反射。也就是说,该系统将映射表面的照明和反射率以用于反射和阴影。该模型被分割成物体,并且现实世界物体相对于该模型被标识出。使用该模型,虚拟图像被添加到该模型的视图的参考作为该模型的一部分的现实世界物体的位置处。该系统自动地跟踪用户正注视何处,使得该系统可以弄清用户通过安装在头部显示设备的显示器的视野。可以使用包括深度传感器、图像传感器、惯性传感器、眼睛位置传感器等在内的各种传感器来跟踪用户。一旦该系统知道了用户的视野,则该系统就可以弄清虚拟图像应当由头戴式显示设备的显示器投影到何处。然后,该图像通过如下方式被渲染对该虚拟图像进行大小确定和定向;以及将经大小确定/定向的图像渲染在头戴式显示设备的显示器上。在一些实施例中,虚拟图像可以被改变以考虑到遮挡。在此所述的系统的一些实施方式包括与头戴式显示设备的显示器对齐的滤光器以选择性地阻挡到达显示器的光。这允许该系统使虚拟图像将被投影到的区域变得更暗,从而使得更易于看见虚拟图像并且更难以看见虚拟图像之后的现实世界物体。图1是描绘了用于将虚拟内容融合到现实内容中的系统10的一个实施例的示例性组件的框图。系统10包括通过线6与处理单元4通信的头戴式显示设备2。在其他实施例中,头戴式显示设备2经由无线通信来与处理单元4进行通信。在一个实施例中为眼镜形状的头戴式显示设备2被佩戴在用户的头上,使得用户可以通过显示器进行查看,并且从而具有该用户前方的空间的实际直接视图。使用术语“实际和直接视图”来指直接用人眼查看现实世界物体的能力,而不是查看对物体的所创建的图像表示。例如,在房间中通过眼镜进行查看将允许用户具有房间的实际直接视图,而在电视上查看房间的视频不是房间的实际直接视图。下面提供头戴式显示设备2的更多细节。在一个实施例中,处理单元4被佩戴在用户的手腕上,并且包括许多用于操作头戴式显示设备2的计算能力。处理单元4可以与一个或多个中枢计算系统12无线地(例如WiFi、蓝牙、红外、或其他无线通信手段)通信。中枢计算系统12可以是计算机、游戏系统或控制台等等。根据一示例性实施例, 中枢计算系统12可以包括硬件组件和/或软件组件,使得中枢计算系统12可以用于执行诸如游戏应用、非游戏应用等等之类的应用。在一个实施例中,中枢计算系统12可以包括诸如标准化处理器、专用处理器、微处理器等等之类的处理器,这些处理器可以执行存储在处理器可读存储设备上的指令以用于执行在此所述的过程。中枢计算系统12还包括一个或多个捕捉设备,比如捕捉设备20A和20B。在其他实施例中,可以使用多于或少于两个的捕捉设备。在一个示例性实施方式中,捕捉设备20A 和20B指向不同方向,使得它们可以捕捉房间的不同部分。可能有利的是,两个捕捉设备的视野稍微地重叠,使得中枢计算系统12可以理解捕捉设备的视野如何彼此相关。通过这种方式,可以使用多个捕捉设备来查看整个房间(或其他空间)。可替代地,如果捕捉设备可以在操作期间平移,使得整个相关空间随时间被捕捉设备查看,则可以使用一个捕捉设备。
捕捉设备20A和20B例如可以是相机,该相机在视觉上监视一个或多个用户和周围空间,使得可以捕捉、分析并跟踪该一个或多个用户所执行的姿势和/或运动以及周围空间的结构,以在应用中执行一个或多个控制或动作和/或使化身或屏上人物动画化。中枢计算环境12可以连接到诸如电视机、监视器、高清电视机(HDTV)等可提供游戏或应用程序视觉的视听设备16。例如,中枢计算系统12可包括诸如图形卡等视频适配器和/或诸如声卡等音频适配器,这些适配器可提供与游戏应用、非游戏应用等相关联的视听信号。视听设备16可从中枢计算系统12接收视听信号,并且然后可以输出与视听信号相关联的游戏或应用视觉和/或音频。根据一个实施例,视听设备16可经由例如,S-视频电缆、同轴电缆、HDMI电缆、DVI电缆、VGA电缆、分量视频电缆、RCA电缆等连接至中枢计算系统12。在一个示例中,视听设备16包括内置扬声器。在其他实施例中,视听设备16、单独的立体声系统或中枢计算设备12连接到外部扬声器22。中枢计算设备10可以与捕捉设备20A和20B —起用于识别、分析和/或跟踪人类 (以及其他类型的)目标。例如,可使用捕捉设备20A和20B来跟踪佩戴头戴式显示设备2 的用户,使得可以捕捉用户的姿势和/或运动来使化身或屏幕上人物动画化,和/或可将用户的姿势和/或移动解释为可用于影响中枢计算系统12所执行的应用的控制。图2描绘了头戴式显示设备2的顶视图,其包括镜架的包含镜腿102和鼻中104 的那部分。仅仅描绘了头戴式显示设备2的右侧。在鼻中104中置入了话筒110以用于记录声音以及将音频数据传送给处理单元4,这将在下面予以描述。在头戴式显示设备2的前方是朝向可捕捉视频和静止图像的视频相机113的房间。这些图像被传送给处理单元4,这将在下面予以描述。头戴式显示设备2的镜架的一部分将围绕显示器(其包括一个或多个透镜)。为了示出头戴式显示设备2的组件,未描绘围绕显示器的镜架部分。该显示器包括光导光学元件112、不透明度滤光器114、透视透镜116和透视透镜118。在一个实施例中,不透明度滤光器114处于透视透镜116之后并与其对齐,光导光学元件112处于不透明度滤光器114 之后并与其对齐,并且透视透镜118处于光导光学元件112之后并与其对齐。在该示例中, 透视透镜116和118是眼镜中使用的标准透镜,并且可根据任何处方(包括不根据处方) 来制作。在一个实施例中,透视透镜116和118可以被可变处方透镜替换。在一些实施例中,头戴式显示设备2将仅仅包括一个透视透镜或者不包括透视透镜。在另一替代方案中, 处方透镜可以进入光导光学元件112内。不透明度滤光器114滤除自然光(要么以每像素为基础、要么均勻地)以增强虚拟图像的对比度。光导光学元件112将人造光引导至眼睛。 下面提供不透明度滤光器114和光导光学元件112的更多细节。在镜腿102处或镜腿102内安装有图像源,该图像源(在一个实施例中)包括用于对虚拟图像进行投影的微显示器120、以及用于将图像从微显示器120引导到光导光学元件112中的透镜。在一个实施例中,透镜122是准直透镜。控制电路136提供支承头戴式显示设备2的其他组件的各种电子装置。下面参考图3提供控制电路136的更多细节。处于镜腿102内部或安装在镜腿102处的有耳机130、 惯性传感器132、以及温度传感器138。在一个实施例中,惯性传感器132包括三轴磁力计 132A、三轴陀螺仪132B、以及三轴加速度计132C(参见图幻。惯性传感器用于感测头戴式显示设备2的位置、取向、以及突然加速。
微显示器120通过透镜122来投影图像。存在着可用于实现微显示器120的不同的图像生成技术。例如,微显示器120可以使用透射投影技术来实现,其中光源由光学活性材料来调制,用白光从背后照亮。这些技术通常是使用具有强大背光和高光能量密度的LCD 类型的显示器来实现的。微显示器120还可使用反射技术来实现,其中外部光被光学活性材料反射并调制。根据该技术,由白光源或RGB源点亮的照明是向前的。数字光处理(DLP)、 硅上液晶(LCOS)、以及来自Qualcomm有限公司的Mirasol 显示技术都是高效的反射技术的示例,因为大多数能量从已调制结构反射离开并且可用在本文描述的系统中。附加地,微显示器120可以使用发射技术来实现,其中光由该显示器生成。例如,来自Microvision有限公司的PicoP 显示引擎使用微型镜面舵来将激光信号发射到充当透射元件的小型屏幕上或直接照射到眼睛(例如激光)。光导光学元件112将来自微显示器120的光传送到佩戴头戴式显示设备2的用户的眼睛140。光导光学元件112还允许如箭头142所示那样将光从头戴式显示设备2的前方通过光导光学元件112透射到用户的眼睛,从而除接收来自微显示器120的虚拟图像之外还允许用户具有头戴式显示设备2的前方的空间的实际直接视图。因此,光导光学元件 112的壁是透视的。光导光学元件112包括第一反射面124(例如,镜面或其他表面)。来自微显示器120的光穿过透镜122并入射在反射面IM上。反射面124反射来自微显示器 120的入射光,使得光通过内反射而被捕获在包括光导光学元件112的平面衬底内。在离开衬底的表面的若干反射之后,所捕获的光波到达选择性反射面126的阵列。注意,五个表面中只有一个被标记为126以防止附图太过拥挤。反射面1 将从衬底出射并入射在这些反射面上的光波耦合到用户的眼睛140。由于不同光线将以不同角度传播并弹离衬底的内部,因此这些不同的光线将以不同角度击中各个反射面126。因此,不同光线将被所述反射面中的不同反射面从衬底中反射出。关于哪些光线被哪个表面126从衬底反射出的选择是通过选择表面126的合适角度来设计的。光导光学元件的更多细节可以在于2008年11月 20日公开的美国专利申请公开号2008/(^85140、序列号12/214,366的“Substrate-Guided Optical DeviCeS(衬底导向的光学设备)”中找到,该申请的全部内容通过引用结合于此。 在一个实施例中,每只眼睛将具有其自己的光导光学元件112。当头戴式显示设备具有两个光导光学元件时,每只眼睛都可以具有其自己的微显示器120,该微显示器120可以在两只眼睛中显示相同图像或者在两只眼睛中显示不同图像。在另一实施例中,可以存在将光反射到两只眼睛中的一个光导光学元件。与光导光学元件112对齐的不透明度滤光器114要么均勻地、要么以每像素为基础来选择性地阻挡自然光,以免其穿过光导光学元件112。在一实施例中,不透明度滤光器可以是透视IXD面板、电致变色膜(electrochromic film)或能够充当不透明度滤光器的类似设备。通过从常规IXD中除去衬底、背光和漫射器的各层,可以获得这样的透视IXD面板。IXD面板可包括一个或更多个透光IXD芯片,所述透光IXD芯片允许光穿过液晶。例如,在LCD投影仪中使用了这样的芯片。不透明度滤光器114可以包括致密的像素网格,其中每个像素的透光率能够在最小和最大透光率之间被个别化地控制。尽管0-100%的透光率范围是理想的,然而更有限的范围也是可以接受的。作为示例,具有不超过两个偏振滤光器的单色LCD面板足以提供每像素约50%到90%的不透明度范围,最高为该IXD的分辨率。在50%的最小值处,透镜将具有稍微带色彩的外观,这是可以容忍的。100%的透光率表示完美地无色透镜。可以从 0-100%定义“阿尔法(alpha)”尺度,其中0%不允许光穿过,并且100%允许所有光穿过。 可以由下面描述的不透明度滤光器控制电路2M为每个像素设置阿尔法的值。在用代理为现实世界物体进行ζ-缓冲(z-buffering)之后,可以使用来自渲染流水线的阿尔法值的掩码(mask)。当系统为扩展现实显示而渲染场景时,该系统注意到哪些现实世界物体处于哪些虚拟物体之前。如果虚拟物体处于现实世界物体之前,则不透明度对于该虚拟物体的覆盖区域而言应当是开启的。如果虚拟物体(虚拟地)处于现实世界物体之后,则不透明度以及该像素的任何色彩都应当是关闭的,使得对于现实灯光的该相应区域(其大小为一个像素或更多)而言,用户将会仅仅看到现实世界物体。覆盖将是以逐像素为基础的,所以该系统可以处理虚拟物体的一部分处于现实世界物体之前、该虚拟物体的一部分处于现实世界物体之后、以及该虚拟物体的一部分与现实世界物体相重合的情况。对这种用途而言,最期望的是能够以低的成本、电力和重量从0%达到100%不透明度的显示器。此外,不透明度滤光器可以比如用彩色LCD或用诸如有机LED等其他显示器来以彩色进行渲染,以提供宽视野。于2010年9月21日提交的美国专利申请号 12/887, 426 "Opacity Filter For See-Through Mounted Display (用于透射安装显示器的不透明度滤光器)”中提供了不透明度滤光器的更多细节,该专利申请的全部内容通过应用结合于此。诸如IXD之类的不透明度滤光器通常还未与在此所述的透视透镜一起使用,因为在与眼睛的该近距离下,其可能失焦。然而,在一些情况下,这个结果可能是所期望的。通过使用相加色(additive color)的普通HMD显示器(其被设计为是聚焦的),用户看到具有清晰彩色图形的虚拟图像。该LCD面板被放置在该显示器“之后”,使得模糊的黑色边界围绕任何虚拟内容,使其根据需要而不透明。该系统扭转了自然模糊化的缺陷以方便地获得了抗混叠和带宽减少的特征。这些是使用较低分辨率且失焦图像的自然结果。存在对数字采样图像的有效平滑化。任何数字图像都经历混叠,其中在光的波长附近,采样的离散性导致与自然模拟和连续信号相比的误差。平滑化意味着在视觉上更靠近理想的模拟信号。 尽管在低分辨率丢失的信息没有被恢复,但是得到的误差的明显程度更低。在一个实施例中,显示器和不透明度滤光器被同时渲染,并且被校准到用户在空间中的精确位置以补偿角度偏移问题。眼睛跟踪可用于计算视野的末端处的正确的图像偏移。在一些实施例中,在不透明度滤光器中可以使用不透明度的量在时间和空间上的淡化。 类似地,在虚拟图像中可以使用在时间和空间上的淡化。在一个方案中,不透明度滤光器的不透明度的量在时间上的淡化对应于虚拟图像在时间上的淡化。在另一方案中,不透明度滤光器的不透明度的量在空间上的淡化对应于虚拟图像中在空间上的淡化。在一个示例性方案中,从所标识出的用户眼睛的位置的视角出发,为不透明度滤光器的处于虚拟图像之后的像素提供增加的不透明度。通过这种方式,处于虚拟图像之后的像素被暗化,使得来自现实世界场景的相应部分的光被阻挡而无法到达用户的眼睛。这允许虚拟图像是逼真的并且表示全范围的色彩和强度。此外,因为可以以更低的强度提供虚拟图像,所以减少了扩展现实发射器的功耗。在没有不透明度滤光器的情况下,将需要以与现实世界场景的相应部分相比更亮的足够高的强度来提供虚拟图像,以使虚拟图像不同并且不是透明的。在暗化不透明度滤光器的像素时,一般而言,沿着虚拟图像的闭合周界的
10像素与周界内的像素一起被暗化。所期望的可能是提供一些重叠,使得恰好处于周界之外并且围绕周界的一些像素也被暗化(以相同的暗度级或者比周界内的像素暗度低)。恰好处于周界之外的这些像素可以提供从周界内的暗度到周界之外的完全量的不透明度的淡化(例如不透明度的逐渐过渡)。为了提供不透明度滤光器的操作的示例,图2A描绘了森林的现实世界场景的示例,该森林是通过头戴式显示设备2进行查看的人眼可见的。图2B描绘了虚拟图像,该虚拟图像在该情况下是海豚。图2C描绘了基于图2B的虚拟图像的形状对不透明度滤光器进行的示例性配置。不透明度滤光器在应当渲染海豚之处提供了不透明度增加的暗化区域。 增加的不透明度一般是指像素的暗化,这可以包括允许更少的光穿过。可以在单色方案中使用到不同灰度级(或黑色)的暗化,或者在彩色方案中使用到不同色彩级的暗化。图2D 描绘了用户所看到的示例性图像,并且该图像是如下动作的结果将海豚的虚拟图像投影到用户的视界中;以及使用不透明度滤光器来为与海豚的虚拟图像的位置相对应的像素去除光。如可以看见的那样,背景不是透过海豚可被看见的。为了比较的目的,图2E示出了在不使用不透明度滤光器的情况下将虚拟图像插入到现实图像中。如可以看见的那样,现实背景可以透过海豚的虚拟图像被看见。头戴式显示设备2还包括用于跟踪用户的眼睛位置的系统。如下面将会解释的那样,该系统将跟踪用户的位置和取向,使得该系统可以确定用户的视野。然而,人类将不会察觉处于其之前的所有事物。相反,用户的眼睛将对准环境的子集。因此,在一个实施例中, 该系统将包括用于跟踪用户的眼睛位置的技术以便细化对用户视野的测量。例如,头戴式显示设备2包括眼睛跟踪部件134 (参见图2),该眼睛跟踪部件134将包括眼睛跟踪照明设备134A和眼睛跟踪相机134B(参见图3)。在一个实施例中,眼睛跟踪照明源134A包括一个或多个红外(IR)发射器,这些红外发射器向眼睛发射顶光。眼睛跟踪相机134B包括一个或多个感测所反射的顶光的相机。通过检测角膜的反射的已知的成像技术,可以标识出瞳孔的位置。例如,参见2008年7月22日颁发给Kranz等人的、名称为“Head mounted eye tracking and display system(头戴式眼睛跟踪和显示系统)”的美国专利7,401,920,该专利通过引用结合于此。这样的技术可以定位眼睛的中心相对于跟踪相机的位置。一般而言,眼睛跟踪涉及获得眼睛的图像以及使用计算机视觉技术来确定瞳孔在眼眶内的位置。 在一个实施例中,跟踪一只眼睛的位置就足够了,因为眼睛通常一致地移动。然而,单独地跟踪每只眼睛是可能的。在一个实施例中,该系统将使用以矩形布置的4个顶LED和4个顶光电检测器, 使得在头戴式显示设备2的透镜的每个角处存在一个顶LED和顶光电检测器。来自LED 的光从眼睛反射离开。由在4个顶光电检测器中的每个处所检测到的红外光的量来确定瞳孔位置。也就是说,眼睛中眼白相对于眼黑的量将确定对于该特定光电检测器而言从眼睛反射离开的光量。因此,光电检测器将具有对眼睛中的眼白或眼黑的量的度量。从4个采样中,该系统可以确定眼睛的方向。另一替代方案是如下面所讨论的那样使用4个红外LED,但是在头戴式显示设备2 的透镜的侧边处仅仅使用一个红外(XD。该CXD将使用小镜和/或透镜(鱼眼),使得CXD 可以从镜框对高达75%的可见眼睛进行成像。然后,该C⑶将感测图像并且使用计算机视觉来找出该图像,就像下面所讨论的那样。因此,尽管图2示出了具有一个顶发射器的一个部件,但是图2的结构可以被调整为具有4个顶发射机和/或4个顶传感器。也可以使用多于或少于4个的顶发射机和/多于或少于4个的顶传感器。用于跟踪眼睛方向的另一实施例基于电荷跟踪。该方案基于如下观察视网膜携带可测量的正电荷并且角膜具有负电荷。传感器通过用户的耳朵来安装(靠近耳机130) 以检测眼睛在周围运动时的电势并且有效地实时读出眼睛正在进行的动作。也可以使用其他用于跟踪眼睛的实施例。图2仅仅示出了头戴式显示设备2的一半。完整的头戴式显示设备将包括另一组透视透镜、另一不透明度滤光器、另一光导光学元件、另一微显示器136、另一透镜122、朝向房间的相机、眼睛跟踪部件、微显示器、耳机以及温度传感器。图3是描绘了头戴式显示设备2的各个组件的框图。图4是描述处理单元4的各个组件的框图。图3中描绘了头戴式显示设备2的组件,该头戴式显示设备2用于通过将虚拟图像与用户对现实世界的视图相融合来向用户提供该虚拟图像。附加地,图3的头戴式显示设备组件包括跟踪各种状况的多个传感器。头戴式显示设备2将从处理单元4接收关于虚拟图像的指令,并且将传感器信息提供回给处理单元4。图3中描绘了处理单元4的组件,该处理单元4将从头戴式显示设备2、并且还从中枢计算设备12 (参见图1)接收传感信息。基于该信息,处理单元4将确定在何处以及在何时向用户提供虚拟图像并相应地将指令发送给图3的头戴式显示设备。注意,图3的组件中的一些(例如朝向背面的相机113、眼睛跟踪相机134B、微显示器120、不透明度滤光器114、眼睛跟踪照明134A、耳机130和温度传感器138)是以阴影示出的,以指示这些的设备中的每个都存在两个,其中一个用于头戴式显示设备2的左侧, 并且一个用于头戴式显示设备2的右侧。图3示出与电源管理电路202通信的控制电路 200。控制电路200包括处理器210、与存储器214(例如D-RAM)进行通信的存储器控制器 212、相机接口 216、相机缓冲区218、显示器驱动器220、显示格式化器222、定时生成器226、 显示输出接口 228、以及显示输入接口 230。在一个实施例中,控制电路200的所有组件通过专用线路或一个或多个总线彼此通信。在另一实施例中,控制电路200的每个组件都与处理器210通信。相机接口 216提供到两个朝向房间的相机113的接口,并且将从朝向房间的相机所接收到的图像存储在相机缓冲区218中。显示器驱动器220将驱动微显示器 120。显式格式化器222向控制不透明度滤光器114的不透明度控制电路2M提供关于微显示器120上所显示的虚拟图像的信息。定时生成器2 被用于向该系统提供定时数据。 显示输出接口 2 是用于将图像从朝向房间的相机113提供给处理单元4的缓冲区。显示输入230是用于接收诸如要在微显示器120上显示的虚拟图像之类的图像的缓冲区。显示输出2 和显示输入230与作为到处理单元4的接口的带接口 232进行通信。电源管理电路202包括电压调节器234、眼睛跟踪照明驱动器236、音频DAC和放大器238、话筒前置放大器音频ADC对0、温度传感器接口 M2、以及时钟生成器对4。电压调节器234通过带接口 232从处理单元4接收电能,并将该电能提供给头戴式显示设备2 的其他组件。眼睛跟踪照明驱动器236如上面所述的那样为眼睛跟踪照明134A提供顶光源。音频DAC和放大器238从耳机130接收音频信息。话筒前置放大器和音频ADC 240提供话筒100的接口。温度传感器接口 242是用于温度传感器138的接口。电源管理单元 202还向三轴磁力计132A、三轴陀螺仪132B以及三轴加速度计132C提供电能并从其接收
12回数据。图4是描述处理单元4的各个组件的框图。图4示出与电源管理电路306通信的控制电路304。控制电路304包括中央处理单元(CPU) 320 ;图形处理单元(GPU) 322 ; 高速缓存324 ;RAM 326 ;与存储器330 (例如D-RAM)进行通信的存储器控制器328 ;与闪存 334(或其他类型的非易失性存储)进行通信的闪存控制器332 ;通过带接口 302和带接口 232与头戴式显示设备2进行通信的显示输出缓冲区336 ;经由带接口 302和带接口 232与头戴式显示设备2进行通信的显示输入缓冲区338 ;与用于连接到话筒的外部话筒连接器 342进行通信的话筒接口 ;340,用于连接到无线通信设备346的PCI express接口 ;以及USB 端口 348。在一个实施例中,无线通信设备346可以包括启用Wi-Fi的通信设备、蓝牙通信设备、红外通信设备等。USB端口可以用于将处理单元4对接到中枢计算设备12,以便将数据或软件加载到处理单元4上以及对处理单元4进行充电。在一个实施例中,CPU 320和 GPU 322是用于确定在何处、何时以及如何向用户的视野内插入虚拟图像的主负荷设备。下面提供更多的细节。电源管理电路306包括时钟生成器360、模数转换器362、电池充电器364、电压调节器366、头戴式显示器电源376、以及与温度传感器374进行通信的温度传感器接口 372(其位于处理单元4的腕带(wrist band)上)。模数转换器362连接到充电插孔370 以用于接收AC电能并为该系统产生DC电能。电压调节器366与用于向该系统提供电能的电池368进行通信。电池充电器364被用来在从充电插孔370接收到电能时对电池368进行充电(通过电压调节器366)。HMD电源376向头戴式显示设备2提供电能。上述系统将被配置为将虚拟图像插入到用户的视野中,使得该虚拟图像替换现实世界物体的视图。可替代地,虚拟图像可以在不替换现实世界物体的图像的情况下被插入。 在各个实施例中,虚拟图像将基于被替换的物体或者该图像将被插入的环境而被调整为与合适的取向、大小和形状相匹配。另外,虚拟图像可以被调整为包括反射率和阴影。在一个实施例中,头戴式显示设备12、处理单元4以及中枢计算设备12 —起工作,因为每个设备都包括用于获得用于确定在何处、何时以及如何插入虚拟图像的数据的传感器的子集。在一个实施例中,确定在何处、如何以及何时插入虚拟图像的计算是由中枢计算设备12执行的。在另一实施例中,这些计算由处理单元4来执行。在另一实施例中,这些计算中的一些由中枢计算设备12来执行,而其他计算由处理单元4来执行。在其他实施例中,这些计算可以由头戴式显示设备2来执行。在一个示例性实施例中,中枢计算设备12将创建用户所处的环境的模型,并且跟踪在该环境中的多个移动物体。另外,中枢计算设备12通过跟踪头戴式显示设备2的位置和取向来跟踪头戴式显示设备2的视野。该模型和跟踪信息被从中枢计算设备12提供给处理单元4。由头戴式显示设备2所获得的传感器信息被传送给处理单元4。然后,处理单元4使用其从头戴式显示设备2接收的其他传感器信息来细化用户的视野并且向头戴式显示设备2提供关于如何、在何处以及何时插入虚拟图像的指令。图5示出了具有捕捉设备的中枢计算系统12的示例性实施例。在一个实施例中, 捕捉设备20A和20B是相同结构,因此,图5仅仅示出了捕捉设备20A。根据一示例性实施例,捕捉设备20A可被配置为通过可包括例如飞行时间、结构化光、立体图像等在内的任何合适的技术来捕捉包括深度图像的带有深度信息的视频,该深度图像可包括深度值。根据一个实施例,捕捉设备20A可将深度信息组织成“Z层”、或者可与从深度相机沿其视线延伸的Z轴垂直的层。如图5所示,捕捉设备20A可以包括相机组件423。根据一示例性实施例,相机组件423可以是或者可以包括可捕捉场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维O-D)像素区域,其中2D像素区域中的每个像素都可以表示深度值,比如所捕捉的场景中的物体与相机相距的例如以厘米、毫米等为单位的距离。相机组件23可以包括可用于捕捉场景的深度图像的红外(IR)光组件425、三维 (3D)相机426、以及RGB (视觉图像)相机428。例如,在飞行时间分析中,捕捉设备20A的顶光组件425可以将红外光发射到场景上,并且然后可以使用传感器(在一些实施例中包括未示出的传感器)、例如使用3D相机4 和/或RGB相机4 来检测从场景中的一个或多个目标和物体的表面后向散射的光。在一些实施例中,可以使用脉冲红外光,使得可以测量出射光脉冲和相应的入射光脉冲之间的时间并将其用于确定从捕捉设备20A到场景中的目标或物体上的特定位置的物理距离。附加地,在其他示例性实施例中,可将出射光波的相位与入射光波的相位进行比较来确定相移。然后可以使用该相移来确定从捕捉设备到目标或物体上的特定位置的物理距离。根据另一示例性实施例,可使用飞行时间分析,以通过经由包括例如快门式光脉冲成像之类的各种技术分析反射光束随时间的强度来间接地确定从捕捉设备20A到目标或物体上的特定位置的物理距离。在另一示例性实施例中,捕捉设备20A可使用结构化光来捕捉深度信息。在这样的分析中,图案化光(即,被显示为诸如网格图案、条纹图案、或不同图案之类的已知图案的光)可经由例如顶光组件似4被投影到场景上。在落到场景中的一个或多个目标或物体的表面上时,作为响应,图案可变形。图案的这种变形可由例如3D相机似6和/或RGB 相机4 (和/或其他传感器)来捕捉,然后可被分析以确定从捕捉设备到目标或物体上的特定位置的物理距离。在一些实施方式中,顶光组件425与相机425和似6分开,使得可以使用三角测量来确定与相机425和似6相距的距离。在一些实施方式中,捕捉设备20A将包括感测顶光的专用顶传感器或具有顶滤光器的传感器。根据另一实施例,捕捉设备20A可以包括两个或更多个在物理上分开的相机,这些相机可以从不同的角度观察场景以获得视觉立体数据,这些视觉立体数据可以被分辨以生成深度信息。也可使用其他类型的深度图像传感器来创建深度图像。 捕捉设备20A还可以包括话筒430,所述话筒430包括可以接收声音并将其转换成电信号的换能器或传感器。话筒430可用于接收也可由中枢计算系统12来提供的音频信号。在一示例实施例中,捕捉设备20A还可包括可与图像相机组件423进行通信的处理器432。处理器432可包括可执行指令的标准处理器、专用处理器、微处理器等,这些指令例如包括用于接收深度图像、生成合适的数据格式(例如,帧)以及将数据传送给计算系统 12的指令。捕捉设备20A还可包括存储器434,该存储器434可存储由处理器432执行的指令、由3D相机和/或RGB相机所捕捉的图像或图像帧、或任何其他合适的信息、图像等等。 根据一示例性实施例,存储器434可包括随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、闪存、硬盘或任何其他合适的存储组件。如图5所示,在一个实施例中,存储器434可以是与图像捕捉组件423和处理器432进行通信的单独组件。根据另一实施例,存储器组件 434可被集成到处理器432和/或图像捕捉组件422中。捕捉设备20A和20B通过通信链路436与中枢计算系统12通信。通信链路436可以是包括例如USB连接、火线连接、以太网电缆连接等的有线连接和/或诸如无线802. lib、 802. llg、802. Ila或802. Iln连接等的无线连接。根据一个实施例,中枢计算系统12可以通过通信链路436向捕捉设备20A提供可用于确定例如何时捕捉场景的时钟。附加地,捕捉设备20A通过通信链路436将由例如3D相机4 和/或RGB相机4 捕捉的深度信息和视觉(例如RGB)图像提供给中枢计算系统12。在一个实施例中,深度图像和视觉图像以每秒30帧的速率来传送,但是可以使用其他帧速率。中枢计算系统12然后可以创建模型并使用模型、深度信息、以及所捕捉的图像来例如控制诸如游戏或文字处理程序等的应用和/ 或使化身或屏上人物动画化。中枢计算系统12包括深度图像处理和骨架跟踪模块450,该模块使用深度图像来跟踪可被捕捉设备20A的深度相机功能检测到的一个或多个人。深度图像处理和骨架跟踪模块450向应用453提供跟踪信息,该应用可以是视频游戏、生产性应用、通信应用或其他软件应用等。音频数据和视觉图像数据也被提供给应用452和深度图像处理和骨架跟踪模块450。应用452将跟踪信息、音频数据和视觉图像数据提供给识别器引擎454。在另一实施例中,识别器引擎4M直接从深度图像处理和骨架跟踪模块450接收跟踪信息,并直接从捕捉设备20A和20B接收音频数据和视觉图像数据。识别器引擎妨4与过滤器460、462、464、……、466的集合相关联,每个过滤器都包括关于可被捕捉设备20A或20B检测到的任何人或物体执行的姿势、动作或状况的信息。 例如,来自捕捉设备20A的数据可由过滤器460、462、464、……、466来处理,以便标识出一个用户或一组用户已经何时执行了一个或多个姿势或其他动作。这些姿势可与应用452的各种控制、物体或状况相关联。因此,中枢计算系统12可以将识别器引擎4M和过滤器一起用于解释和跟踪物体(包括人)的移动。捕捉设备20A和20B向中枢计算系统12提供RGB图像(或其他格式或色彩空间的视觉图像)和深度图像。深度图像可以是多个观测到的像素,其中每个观测到的像素具有观测到的深度值。例如,深度图像可包括所捕捉的场景的二维OD)像素区域,其中2D 像素区域中的每个像素都可具有深度值,比如所捕捉的场景中的物体与捕捉设备相距的距离。中枢计算系统12将使用RGB图像和深度图像来跟踪用户或物体的移动。例如,系统将使用深度图像来跟踪人的骨架。可以使用许多方法以通过使用深度图像来跟踪人的骨架。使用深度图像来跟踪骨架的一个合适的示例在2009年10月21日提交的美国专利申请 12/603, 437 "Pose Tracking Pipeline (姿态跟踪流水线)”(以下称为,437申请)中提供,该申请的全部内容通过引用结合于此。‘437申请的过程包括采集深度图像;对数据进行降采样;移除和/或平滑化高方差噪声数据;标识并移除背景;以及将前景像素中的每个分配给身体的不同部位。基于这些步骤,系统将使一模型拟合到该数据并创建骨架。该骨架将包括一组关节和这些关节之间的连接。也可使用用于跟踪的其他方法。合适的跟踪技术也在以下4个美国专利申请中公开,所有这些申请的全部内容都通过引用结合于此2009 年 5 月四日提交的美国专利申请 12/475,308 "Device for Identifying and TrackingMultiple Humans Over Time (用于随时间标识并跟踪多个人的设备)”;2010年1月㈨日提交的美国专利申请12/696,282 “Visual Based Identity Tracking(基于视觉的身份跟踪)” ;2009年12月18日提交的美国专利申请12/641,788 "Motion Detection Using Depth Images (使用深度图像的运动检测)”;以及2009年10月7日提交的美国专利申请 12/575,388 "Human Tracking System(人类跟踪系统),,。识别器引擎妨4包括多个过滤器460、462、464、……、466来确定姿势或动作。过滤器包括定义姿势、动作或状况以及该姿势、动作或状况的参数或元数据的信息。例如,包括一只手从身体背后经过身体前方的运动的投掷可被实现为包括表示用户的一只手从身体背后经过身体前方的运动的信息的姿势,因为该运动将由深度相机来捕捉。然后可为该姿势设定参数。当姿势是投掷时,参数可以是该手必须达到的阈值速度、该手必须行进的距离(绝对的,或相对于用户的整体大小)、以及识别器引擎对发生了该姿势的置信度评级。 用于姿势的这些参数可以随时间在各应用之间、在单个应用的各上下文之间、或在一个应用的一个上下文内变化。过滤器可以是模块化的或是可互换的。在一个实施例中,过滤器具有多个输入 (这些输入中的每一个具有一类型)以及多个输出(这些输出中的每一个具有一类型)。第一过滤器可用具有与第一过滤器相同数量和类型的输入和输出的第二过滤器来替换而不更改识别器引擎架构的任何其他方面。例如,可能具有要驱动的第一过滤器,该第一过滤器将骨架数据作为输入,并输出与该过滤器相关联的姿势正在发生的置信度和转向角。在希望用第二驱动过滤器来替换该第一驱动过滤器的情况下(这可能是因为第二驱动过滤器更高效且需要更少的处理资源),可以通过简单地用第二过滤器替换第一过滤器来这样做, 只要第二过滤器具有同样的输入和输出——骨架数据类型的一个输入、以及置信度类型和角度类型的两个输出。过滤器不需要具有参数。例如,返回用户的高度的“用户高度”过滤器可能不允许可被调节的任何参数。可替代的“用户高度”过滤器可具有可调节参数,比如在确定用户的高度时是否考虑用户的鞋、发型、头饰以及体态。对过滤器的输入可包括诸如关于用户的关节位置的关节数据、在关节处相交的骨所形成的角度、来自场景的RGB色彩数据、以及用户的某一方面的变化速率等内容。来自过滤器的输出可包括诸如正作出给定姿势的置信度、作出姿势运动的速度、以及作出姿势运动的时间等内容。识别器引擎妨4可以具有向过滤器提供功能的基本识别器引擎。在一实施例中,识别器引擎4M所实现的功能包括跟踪所识别的姿势和其他输入的随时间输入 (input-over-time)存档;隐马尔可夫模型实施方式(其中所建模的系统被假定为马尔可夫过程一该过程是其中当前状态封装了用于确定将来状态所需的任何过去状态信息,因此不必为此目的而维护任何其他过去状态信息的过程一该过程具有未知参数,并且隐藏参数是从可观察数据来确定的);以及求解姿势识别的特定实例所需的其他功能。过滤器460、462、464、……、466在识别器引擎妨4之上加载并实现,并且可利用识别器引擎妨4提供给所有过滤器460、462、464、……、466的服务。在一个实施例中,识别器引擎妨4接收数据来确定该数据是否满足任何过滤器460、462、464、……、466的要求。由于这些所提供的诸如解析输入之类的服务是由识别器引擎4M—次性提供而非由每
16个过滤器460、462、464、……、466提供的,因此这样的服务在一段时间内只需被处理一次而不是在该时间段对每个过滤器处理一次,因此减少了确定姿势所需的处理。应用452可使用识别器引擎妨4所提供的过滤器460、462、464、……、466,或者它可提供其自己的、插入到识别器引擎妨4中的过滤器。在一实施例中,所有过滤器具有启用该插入特性的通用接口。此外,所有过滤器可利用参数,因此可使用以下单个姿势工具来诊断并调节整个过滤器系统。关于识别器引擎454的更多信息可在2009年4月13日提交的美国专利申请 12/422,661 “Gesture Recognizer System Architecture (姿势识别器系统架构)”中找到,该申请通过整体引用合并于此。关于识别姿势的更多信息可在2009年2月23日提交的美国专利申请12/391,150 "Standard Gestures (标准姿势)”;以及2009年5月四日提交的美国专利申请12/474,655 "Gesture Tool (姿势工具)”中找到,这两个申请的全部内容都通过引用结合于此。图6示出了可用于实现中枢计算系统12的计算系统的示例性实施例。如图6所示,多媒体控制台500具有含有一级高速缓存501、二级高速缓存504和闪存ROM(只读存储器)506的中央处理单元(CPU)502。一级高速缓存502和二级高速缓存504临时存储数据并因此减少存储器访问周期数,由此改进处理速度和吞吐量。CPU 501可以被配备为具有一个以上的核,并且由此具有附加的1级和2级高速缓存502和504。闪存ROM 506可存储在多媒体控制台500通电时在引导进程初始化阶段加载的可执行代码。图形处理单元(GPU) 508和视频编码器/视频编解码器(编码器/解码器)514形成用于高速、高分辨率图形处理的视频处理流水线。经由总线从图形处理单元508向视频编码器/视频编解码器514运送数据。视频处理流水线向A/V(音频/视频)端口 540输出数据,用于传输至电视或其他显示器。存储器控制器510连接到GPU 508以方便处理器访问各种类型的存储器512,诸如但不局限于RAM(随机存取存储器)。多媒体控制台500包括优选地在模块518上实现的1/0控制器520、系统管理控制器522、音频处理单元523、网络接口 524、第一 USB主控制器526、第二 USB控制器528以及前面板1/0子部件530。USB控制器526和528用作外围控制器542 (1) -542 (2)、无线适配器讨8、和外置存储器设备例如闪存、外置⑶/DVD ROM驱动器、可移动介质等)的主机。网络接口 5 和/或无线适配器548提供对网络(例如,因特网、家庭网络等)的访问并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同的有线或无线适配器组件中任何一种。提供系统存储器543来存储在引导过程期间加载的应用数据。提供介质驱动器 544,且其可包括DVD/⑶驱动器、蓝光驱动器、硬盘驱动器、或其他可移动介质驱动器等。介质驱动器144可位于多媒体控制台500的内部或外部。应用数据可经由媒体驱动器544访问,以由多媒体控制台500执行、回放等。介质驱动器544经由诸如串行ATA总线或其他高速连接(例如IEEE 1394)等总线连接到1/0控制器520。系统管理控制器522提供涉及确保多媒体控制台500的可用性的各种服务功能。 音频处理单元523和音频编解码器532形成具有高保真度和立体声处理的对应的音频处理流水线。音频数据经由通信链路在音频处理单元523与音频编解码器532之间传输。音频处理流水线将数据输出到A/V端口 MO以供外部音频用户或具有音频能力的设备再现。
前面板I/O子部件530支持暴露在多媒体控制台100的外表面上的电源按钮550 和弹出按钮552以及任何LED(发光二极管)或其他指示器的功能。系统供电模块536向多媒体控制台100的组件供电。风扇538冷却多媒体控制台500内的电路。CPU 501、GPU 508、存储器控制器510、和多媒体控制台500内的各个其他组件经由一条或多条总线互连,包括串行和并行总线、存储器总线、外围总线、和使用各种总线架构中任一种的处理器或局部总线。作为示例,这些架构可以包括外围部件互连(PCI)总线、 PCI-Express 总线等。当多媒体控制台500通电时,应用数据可从系统存储器543加载到存储器512和/ 或高速缓存502、504中并在CPU 501上执行。应用可呈现在导航到多媒体控制台500上可用的不同媒体类型时提供一致的用户体验的图形用户界面。在操作中,媒体驱动器M4中包含的应用和/或其他媒体可从媒体驱动器544启动或播放,以向多媒体控制台500提供附加功能。多媒体控制台500可通过将该系统简单地连接到电视机或其他显示器而作为独立系统来操作。在该独立模式中,多媒体控制台500允许一个或多个用户与该系统交互、看电影、或听音乐。然而,随着通过网络接口 5M或无线适配器548可用的宽带连接的集成, 多媒体控制台500还可作为较大网络社区中的参与者来操作。附加地,多媒体控制台500 可以通过无线适配器548与处理单元4通信。当多媒体控制台500通电时,可以保留设定量的硬件资源以供多媒体控制台操作系统作系统使用。这些资源可包括存储器的保留量、CPU和GPU周期的保留量、网络带宽等等。因为这些资源是在系统引导时保留的,所以所保留的资源对应用的角度而言是不存在的。具体而言,存储器保留优选地足够大,以包含启动内核、并发系统应用和驱动程序。CPU 保留优选地为恒定,使得若所保留的CPU用量不被系统应用使用,则空闲线程将消耗任何未使用的周期。对于GPU保留,通过使用GPU中断来显示由系统应用程序生成的轻量消息(例如, 弹出窗口),以调度代码来将弹出窗口呈现为覆盖图。覆盖图所需的存储器量取决于覆盖区域大小,并且覆盖图优选地与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情况下,优选使用独立于应用分辨率的分辨率。定标器可用于设置该分辨率,从而无需改变频率并引起TV重新同步。在多媒体控制台500引导且系统资源被保留之后,执行并发系统应用来提供系统功能。系统功能被封装在上述所保留的系统资源中执行的一组系统应用中。操作系统内核标识是系统应用线程而非游戏应用线程的线程。系统应用优选地被调度为在预定时间并以预定时间间隔在CPU 501上运行,以便为应用提供一致的系统资源视图。进行调度是为了把由在控制台上运行的游戏应用所引起的高速缓存中断最小化。当并发系统应用需要音频时,则由于时间敏感性而将音频处理异步地调度给游戏应用。多媒体控制台应用管理器(如下所述)在系统应用活动时控制游戏应用的音频水平 (例如,静音、衰减)。任选的输入设备(例如,控制器讨2(1)和^2( )由游戏应用和系统应用共享。 输入设备不是所保留的资源,但却在系统应用和游戏应用之间切换以使其各自具有设备的焦点。应用管理器优选地控制输入流的切换,而无需知晓游戏应用的知识,并且驱动程序维护有关焦点切换的状态信息。捕捉设备20A和20B可以通过USB控制器5 或其他接口来为控制台500定义附加的输入设备。在其他实施例中,中枢计算系统12可以使用其他硬件架构来实现。没有一种硬件架构是必需的。图1示出了与一个中枢处理设备12 (称为中枢)通信的一个头戴式显示设备2和处理单元4(统称为移动显示设备)。在另一实施例中,多个移动显示设备可以与单个中枢通信。每个移动显示设备都将如上述那样使用无线通信与中枢通信。在这样的实施例中所构思的是,有益于所有移动显示设备的信息中的许多都将被计算和存储在中枢处并且传送给每个移动显示设备。例如,中枢将生成环境的模型并且将该模型提供给与该中枢通信的所有移动显示设备。附加地,中枢可以跟踪移动显示设备以及房间中的移动物体的位置和取向,并且然后将该信息传输给每个移动显示设备。在另一实施例中,系统可以包括多个中枢,其中每个中枢都包括一个或多个移动显示设备。这些中枢可以直接地或者通过因特网(或者其他网络)彼此通信。例如,图7 示出了中枢560、562和564。中枢560直接与中枢562通信。中枢560通过因特网与中枢 564通信。中枢560与移动显示设备570、572. ..574通信。中枢562与移动显示设备578、 580. . . 582通信。中枢564与移动显示设备584、586. . . 588通信。每个移动显示设备都如上面所讨论的那样通过无线通信与其相应的中枢通信。如果这些中枢处于共同的环境中,则每个中枢都可以提供该环境的模型的一部分,或者一个中枢可以为其他中枢创建该模型。 每个中枢都将跟踪移动物体的子集并且将该信息与其他中枢共享,所述其他中枢进而将与合适的移动显示设备共享该信息。用于移动显示设备的传感器信息将被提供给其相应的中枢,并且然后与其他中枢共享以用于最终与其他移动显示设备共享。因此,在中枢间共享的信息可以包括骨架跟踪、关于模型的信息、各种应用状态、以及其他跟踪。在中枢及其相应的移动显示设备之间传递的信息包括移动物体的跟踪信息、世界模型的状态和物理更新、 几何和纹理信息、视频和音频、以及用于执行在此所述的操作的其他信息。图8是描述了用于将虚拟内容融合到现实内容中的过程的一个实施例的流程图, 其中该过程由上面所讨论的组件来执行。在步骤602,配置该系统。例如,该系统的操作员或用户将指示特定的现实世界物体应当被虚拟物体替换。在一替代方案中,应用(例如图 5的应用45 可以将该系统配置为指示特定的现实世界物体应当被虚拟物体替换。在其他实施例中,配置该系统将指示特定的虚拟图像(其表示虚拟物体)应当被插入到环境中的指定位置处,而不必替换现实世界物体。考虑如下示例用虚拟物体来填充空房间以将该空房间转变为虚拟现实。在另一示例中,在中枢计算系统12上运行的应用将指示特定的虚拟图像(其表示虚拟物体)应当作为视频游戏或其他进程的一部分被插入到该环境中。在步骤604,该系统将创建头戴式显示设备2所处的空间的体积模型。例如在一个实施例中,中枢计算设备12将使用来自一个或多个深度相机的深度图像来创建头戴式显示设备2所处的环境的三维模型。在一个实施例中,模型的创建包括映射表面的照明和反射率以用于反射和阴影。在步骤606,将该模型分割成一个或多个物体。例如,如果中枢计算设备12创建房间的三维模型,则该房间很可能在里面具有多个物体。可以处于房间中的物体的示例包括人、椅子、桌子、沙发椅等等。步骤606包括确定彼此不同的物体。在步骤608,该系统将标识出这些物体。例如,中枢计算设备12可以标识出特定物体是桌子并且另一物体是椅子。在步骤610,该系统将把虚拟物体投影到真实物体之上。也就是说,该
19系统在用户通过头戴式显示设备2进行查看的同时在用户的视野内的第一物体之上显示虚拟图像。因此,该虚拟图像将在显示设备上替换现实世界物体,这允许通过该显示器实际直接地查看该空间的至少一部分。被替换的物体可以是静止物体或者移动物体。附加地, 该系统可以替换整个物体或者仅仅替换物体的一部分。例如,该系统可以在步骤602被配置为仅仅用一条不同的裤子替换人的裤子。因此,步骤610将是无论房间中的人是运动还是静止的,都把一条新裤子的虚拟图像投影到在该人之上。在步骤612,头戴式显示设备2 的用户将基于在头戴式显示设备2中所显示的虚拟物体来与运行在中枢计算设备12 (或另一计算设备)上的应用交互。下面将更详细地描述步骤604-610中的每个。图8A提供了图8的过程的实施方式的一个示例。在步骤602A(其对应于步骤 602),通过指定要被虚拟物体替换的现实世界物体来配置该系统。在步骤604A(其对应于步骤604),中枢计算设备12将创建中枢计算设备12所处的房间的三维模型。在步骤 606A(其对应于步骤606),将该三维模型分割成一组物体。在步骤608A,中枢计算设备12 将标识出来自606A分割步骤的物体中的每个物体。步骤608A包括标识出要被替换的物体以及房间中的其他物体。在步骤610A(其对应于步骤610),头戴式显示设备2用与虚拟物体相对应的虚拟图像来覆盖用户对现实世界物体的视图。例如,可以用巨石替换房间中的咖啡桌。在步骤612A(其对应于步骤61 ,用户将使用中枢计算设备12和虚拟物体来玩视频游戏。例如,用户可以玩涉及该巨石的视频游戏。图9是描述了用户创建空间的模型的过程的一个实施例的流程图。例如,图9的过程是图8的步骤604的一个示例性实施方式。在步骤640,中枢计算系统12接收头戴式显示设备所处的空间的多个视角的一个或多个深度图像。例如,中枢计算设备12可以从多个深度相机获得深度图像,或者通过使相机指向不同方向或者使用具有如下透镜的相机来从同一相机获得多个深度图像该透镜允许将要构建模型的空间的全视图。在步骤642,基于共同的坐标系来组合来自各个深度图像的深度数据。例如,如果该系统从多个相机接收深度图像,则该系统将两个图像相关以具有共同的坐标系(例如使图像排齐)。在步骤644, 使用深度数据来创建空间的体积描述。图10是描述了将空间的模型分割成物体的过程的一个实施例的流程图。例如,图 10的过程是图8的步骤606的一个示例性实施方式。在图10的步骤680,该系统将如上面所讨论的那样从一个或多个深度相机接收一个或多个深度图像。可替代地,该系统可以访问其已经接收到的一个或多个深度图像。在步骤682,该系统将如上述那样从相机接收一个或多个视觉图像。可替代地,该系统可以访问已经接收到的一个或多个视觉图像。在步骤684,中枢计算系统将基于深度图像和/或视觉图像检测一个或多个人。例如,该系统将识别一个或多个骨架。在步骤686,中枢计算设备将基于深度图像和/或视觉图像检测该模型内的边缘。在步骤688,中枢计算设备将使用所检测到的边缘来标识出彼此不同的物体。 例如,假定这些边缘是物体之间的边界。在步骤690,将更新使用图9的过程所创建的模型以示出该模型的哪些部分与不同的物体相关联。图11是描述用于标识出物体的过程的一个实施例的流程图。例如,图11的过程是图8的步骤608的一个示例性实施方式。在步骤710,中枢计算设备12将所标识出的人与用户身份进行匹配。例如,该系统可以具有用户简档,所述用户简档具有可以与所检测到的物体的图像相匹配的视觉图像。可替代地,用户简档可以描述可基于深度图像或视觉图
20像来匹配的人的特征。在另一实施例中,用户可以登陆到系统中并且中枢计算设备12可以使用登陆过程来标识出特定用户并且在此处所述的交互的整个过程中跟踪该用户。在步骤 712,中枢计算设备12将访问形状数据库。在步骤714,中枢计算设备将模型中的多个物体与数据库中的形状进行匹配。在步骤716,将突出不匹配的那些形状并且将其显示给用户 (例如使用监视器16)。在步骤718,中枢计算设备12将接收标识出所突出形状中的每个 (或其子集)的用户输入。例如,用户可以使用键盘、鼠标、语音输入、或者其他类型的输入来指示每个未标识出的形状是什么。在步骤720,基于步骤718中的用户输入来更新形状数据库。在步骤722,通过添加每个物体的元数据来进一步更新在步骤604被创建并且在步骤606被更新的环境模型。该元数据标识出该物体。例如,该元数据可以指示特定物体处于小桌、某人、绿色真皮沙发椅等等的周围。图IlA是描述了用于响应于移动物体(例如移动的人或其他类型的物体)而更新通过图9的过程所创建的模型的过程的一个实施例的流程图。在步骤728,该系统确定物体在移动。例如,系统将持续地接收深度图像。如果深度图像随时间改变,则物体在移动。如果未检测到移动物体,则该系统将继续接收深度图像并且继续寻找移动物体。如果存在移动物体,则在步骤730,该系统将标识出正在移动的物体。可以使用帧差异或各种任何跟踪技术来识别移动物体,并且将所识别的物体与在图8的步骤608所标识出的物体之一相关。一些物体将在移动使改变形状。例如,人类可能在其行走或奔跑时改变形状。在步骤732,标识出并存储移动物体的新形状。在步骤734,基于移动物体的新的位置和形状来更新之前创建的环境模型。图IlA的过程可以由中枢计算设备12的处理单元4来执行。图12是描述用于将虚拟物体投影(或以其他方式显示)到现实物体之上的过程的一个实施例的流程图。例如,图12的过程是图8的步骤610的一个示例性实施方式。在一个实施例中,图12的过程由处理单元4来执行。在图12的步骤750中,该系统访问环境的模型。在步骤752,该系统确定用户相对于该环境模型的视角(point fo view)。也就是说,该系统确定用户正在查看该环境或空间的哪个部分。在一个实施例中,步骤752是使用中枢计算设备12、处理单元4和头戴式显示设备2的协作工作。在一个示例性实施方式中,中枢计算机设备12将跟踪用户和头戴式显示设备以便提供对头戴式显示设备2的位置和取向的初步确定。头戴式显示设备2上的传感器将用于细化所确定的取向。例如,上述惯性传感器34可以用于细化头戴式显示设备2的取向。此外,可以使用上述眼睛跟踪过程来标识出最初确定的视野的与特定用户所查看之处相对应的子集。下面将参照图13、14和 15来描述更多细节。在一个实施例中,该系统将尝试将多个虚拟图像添加到场景中。在其他实施例中, 该系统可以仅仅尝试将一个虚拟图像插入到该场景中。针对虚拟图像,该系统具有将该虚拟图像插入到何处的目标。在一个实施例中,该目标可以是现实世界物体,使得该虚拟图像将替换现实物体的视图。在其他环境中,虚拟图像的目标可以是相对于现实世界物体而言的。在步骤754,该系统在ζ缓冲区中从头戴式显示设备2的用户的视角来渲染之前所创建的三维环境模型,而不将任何色彩信息渲染到相应色彩缓冲区中。这有效地让所渲染的环境图像是全黑的,但是不存储环境中的物体的ζ (深度)数据。步骤7M导致为每个像素(或者为像素的子集)存储深度数据。在步骤756,将虚拟内容(例如与虚拟物体相对应的虚拟图像)渲染到同一 ζ缓冲区中,并且将虚拟内容的色彩信息写入到相应的色彩缓冲区中。这有效地允许在考虑到现实世界物体或者遮挡虚拟物体的全部或一部分的其他虚拟物体的情况下将虚拟图像绘制在微显示器120上。在步骤758,把被绘制到移动物体之上的虚拟物体模糊化为恰好足以提供运动的外观。在步骤760,该系统标识出微显示器120的显示虚拟图像的像素。在步骤762,为微显示器120的像素确定阿尔法值。在传统的色度键控系统中,阿尔法值以逐像素为基础指示将阿尔法值的多少用于标识出图像为多么不透明在一些应用中,阿尔法值可以是二进制的(例如开和关)。在其他应用中,阿尔法值可以是具有范围的数。在一个示例中,在步骤760中所标识出的每个像素都将具有第一阿尔法值,并且所有其他像素都具有第二阿尔法值。在步骤764,基于阿尔法值来确定不透明度滤光器的像素。在一个示例中,不透明度滤光器与微显示器120具有相同的分辨率,并且因此不透明度滤光器可以使用阿尔法值来控制。在另一实施例中,不透明度滤光器与微显示器120具有不同的分辨率,并且因此用于暗化或不暗化不透明度滤光器的数据将通过使用用于在分辨率之间转换的各种任何数学算法而从阿尔法值中导出。还可以使用用于基于阿尔法值(或其他数据)为不透明度滤光器导出控制数据的其他手段。在步骤766,将ζ缓冲区和色彩缓冲区中的图像、以及阿尔法值和不透明度滤光器的控制数据调整为考虑到光源(虚拟或现实)和阴影(虚拟或现实)。下面参照图12A提供步骤766的更多细节。在步骤768,将基于ζ缓冲区和色彩缓冲区的复合图像发送给微显示器120。也就是说,将要显示在合适像素处显示的虚拟图像发送给微显示器120,其中考虑到视角和遮挡。在步骤770,将不透明度滤光器的控制数据从处理单元4传送给头戴式显示设备2以控制不透明度滤光器114。注意,图12的过程可以每秒多次执行(例如刷新率)。图12的过程允许在显示器上自动地将虚拟图像显示在静止或移动物体上(或相对于静止或移动物体而言),该显示器允许通过该显示器对空间的至少一部分的实际直接查看。图12A是描述了用于考虑到光源和阴影的过程的一个实施例的流程图,该过程是图12的步骤766的示例性实施方式。在步骤780,处理单元4标识出需要考虑到的一个或多个光源。例如,当绘制虚拟图像时,可能需要考虑到现实光源。如果该系统将虚拟光源添加到用户的视图,则可以在头戴式显示设备2中考虑到该虚拟光源的效果。在步骤782,标识出被光源照明的模型的部分(包括虚拟图像)。在步骤784,将描绘该照明的图像添加到上述色彩缓冲区。在步骤786,处理单元4标识出需要被头戴式显示设备2添加的一个或多个阴影区域。例如,如果虚拟图像被添加到阴影的区域中,则在绘制虚拟图像时需要通过在步骤788 调整色彩缓冲区来考虑到该阴影。如果虚拟阴影将被添加到不存在虚拟图像之处,则不透明度滤光器114的与该虚拟阴影的位置相对应的像素在步骤790被暗化。图15是描述了用于确定用户视角的过程的一个实施例的流程图,该过程是图12 的步骤752的示例性实施方式。图15的过程依靠来自中枢计算设备12的信息和上述眼睛跟踪技术。图13是描述了由中枢计算系统执行以提供用在图15的过程中的跟踪信息的过程的一个实施例的流程图。图14是描述了用于跟踪眼睛的过程的一个实施例的流程图,其中该过程的结果供图15的过程来使用。在图13的步骤810,中枢计算设备将跟踪用户的位置。例如,中枢计算设备12将使用一个或多个深度图像和一个或多个视觉图像来跟踪用户(例如使用骨架跟踪)。可以在步骤812使用一个或多个深度图像和一个或多个视觉图像来确定头戴式显示设备2的位置和头戴式显示设备2的取向。在步骤814,将用户和头戴式显示设备2的位置和取向从中枢计算设备12传送给处理单元4。在步骤816,在处理单元4处接收该位置和取向信息。图14是描述用于使用上述技术来跟踪眼睛的一个实施例的流程图。在步骤860, 照明眼睛。例如,可以使用红外光从眼睛跟踪照明134A来照明眼睛。在步骤862,使用一个或多个眼睛跟踪相机134B来检测来自眼睛的反射。在步骤864,将该反射数据从头戴式显示设备2发送给处理单元4。在步骤866,处理单元4将如上述那样基于反射数据来确定眼睛的位置。图15是描述了用于确定视角的过程(例如图12的步骤750)的一个实施例的流程图。在步骤902,处理单元4将访问从中枢接收到的最新的位置和取向信息。图13的过程可以如从步骤814到步骤810的箭头所描绘的那样连续地执行,因此,处理单元4将周期性地从中枢计算设备12接收经更新的位置和取向信息。然而,处理单元4将需要与其从中枢计算设备12接收经更新的信息相比更频繁地绘制虚拟图像。因此,处理单元4将需要依靠本地感测的信息(其例如来自头戴式设备幻以在来自中枢计算设备12的采样之间提供取向的更新。在步骤904,处理单元4将从三轴陀螺仪132B访问数据。在步骤906,处理单元4将从三轴加速度计132C访问数据。在步骤908,处理单元4将从三轴磁力计132A访问数据。在步骤910,处理单元4将用来自该陀螺仪、加速度计和磁力计的数据来细化(或以其他方式更新)来自中枢计算设备12的位置和取向数据。在步骤912,处理单元4将基于头戴式显示设备的位置和取向来确定潜在的视角。在步骤914,处理单元4将访问最新的眼睛位置信息。在步骤916,处理单元4将基于眼睛位置作为潜在视角的子集来确定模型的用户所观看的位置。例如,用户可以朝向墙壁,并且因此头戴式显示器的视野可以包括沿着墙壁的任何地方。然而,如果用户的眼睛指向右边,则步骤916将作出的结论是,用户的视野仅仅是墙壁的右边部分。在步骤915结束时,处理单元4已经确定了用户通过头戴式显示器2的视角。然后,如上面参照图12所描述的那样,处理单元4可以在该视野内标识出要插入虚拟图像以及使用不透明度滤光器来阻挡光的位置。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。本发明的范围由所附的权利要求进行定义。
权利要求
1.一种用于将虚拟内容融合到现实内容中的方法,包括 创建空间的体积模型(604);将该模型分割成物体(606);标识出所述物体中的包括第一物体的一个或多个物体(608);以及在显示器上自动地将虚拟图像显示在第一物体之上(610),该显示器允许通过该显示器实际直接地查看该空间的至少一部分。
2.如权利要求1所述的方法,其特征在于,创建体积模型包括 接收多个视角的深度图像;以及使用来自所述深度图像的数据来创建和存储该空间的三维描述。
3.如权利要求1或2所述的方法,其特征在于,将该模型分割成物体包括 访问一个或多个深度图像;访问一个或多个视觉图像;使用所述一个或多个深度图像和所述一个或多个视觉图像来检测一个或多个人; 基于所述一个或多个深度图像和所述一个或多个视觉图像来检测边缘; 基于所述边缘来检测物体;以及更新该模型以存储关于所述物体和人的检测的信息。
4.如权利要求3所述的方法,其特征在于,标识出所述物体中的一个或多个包括 将至少一个所检测到的物体与用户身份进行匹配;访问形状的数据结构;将一个或多个所检测到的物体与该数据结构中的形状进行匹配;以及更新该模型以反映所述至少一个所检测到的物体与用户身份的匹配、以及所述一个或多个所检测到的物体与该数据结构中的形状的匹配。
5.如权利要求4所述的方法,其特征在于,标识出所述物体中的一个或多个包括 向用户视觉地显示不匹配的物体并且请求该用户标识出所述不匹配的物体; 接收所述不匹配的物体的新标识;更新该数据结构以反映该新标识;以及更新该模型以存储关于所述不匹配的物体的新标识的信息。
6.如权利要求1-5任一项所述的方法,其特征在于,自动地将虚拟图像显示在第一物体之上还包括标识出光源;基于该光源调整该虚拟图像; 标识出阴影区域;以及使现实物体的对应于该阴影区域的视图暗化。
7.如权利要求1-6中任一项所述的方法,其特征在于在显示器上将虚拟图像显示在第一物体之上包括确定该显示器的用户的视角;以及确定该显示器的用户的视野包括使用一个或多个深度图像自动地确定该显示器的位置和取向;使用惯性传感器来自动地细化所确定的显示器的取向;以及自动地确定该显示器的用户的眼睛的位置以标识出该空间的以所确定的位置和取向被查看的子集。
8.如权利要求1-7中任一项所述的方法,其特征在于,在显示器上将虚拟图像显示在第一物体之上还包括自动地确定第一物体正在移动; 自动地跟踪第一物体的移动; 自动地确定第一物体的形状的改变;以及响应于第一物体的移动使该虚拟图像模糊化。
9.如权利要求1-8中任一项所述的方法,其特征在于,在显示器上将虚拟图像显示在第一物体之上还包括标识出该显示器的可能示出第一物体的部分;以及选择性地阻挡光,使其不能穿过该显示器的可能示出第一物体的该部分,该虚拟图像被投影到该显示器的可能示出第一物体的该部分上。
10.如权利要求1-9中任一项所述的方法,其特征在于显示虚拟图像包括将该虚拟图像投影在该显示器上,而不将该空间的该部分投影到该显不器上。
11.一种用于将虚拟内容融合到现实内容中的装置,包括 头戴式显示设备2,该头戴式显示设备包括显示器(120,122,124,112),该显示器(120,122,124,112)允许通过该显示器对第一物体的实际直接视图;不透明度滤光器(116),该不透明度滤光器(116)与该显示器对齐,使得穿过该不透明度滤光器的光也穿过该显示器;惯性传感器(132A,132B, 132C),该惯性传感器(132A,132B, 132C)感测该头戴式显示设备的取向信息;第一通信接口(23 ;以及一个或多个控制电路O00,202),所述一个或多个控制电路(200,20 与该显示器、该不透明度滤光器、该惯性传感器以及该第一通信接口通信;以及处理单元(4),该处理单元包括第二通信接口,该第二通信接口与第一通信接口通信;以及一个或多个控制电路,所述一个或多个控制电路通过第一通信接口和第二通信接口与该头戴式显示设备通信以自动地在该显示器上将虚拟图像显示在第一物体之上。
12.如权利要求11所述的装置,其特征在于,该显示器包括 图像投影仪;光导光学元件,该光导光学元件与该不透明度滤光器对齐,使得穿过该不透明度滤光器的光也穿过该光导光学元件,在第一末端处进入该光导光学元件的附加的光将沿着该头戴式显示设备的处于用户的眼睛之前的表面离开该光导光学元件;以及透镜,该透镜与该图像投影仪对齐以将光从该图像投影仪引导到该光导光学元件中。
13.如权利要求11或12所述的装置,其特征在于,该头戴式显示设备还包括 照明源,该照明源用于将光投影到该头戴式显示设备的用户的眼睛上;以及传感器,该传感器感测从用户的眼睛反射回的光,该传感器与头戴式显示器的一个或多个控制电路通信,使得该装置可以确定该用户的眼睛的方向。
14.如权利要求11、12或13所述的装置,其特征在于第二通信接口与中枢计算设备无线地通信以接收空间的标识出一个或多个物体的三维模型;以及该处理单元的一个或多个控制电路确定该头戴式显示设备的用户的视野;确定第一物体是否处于该视野内;确定第一物体在该显示器中的位置;基于第一物体在该显示器中的大小和取向来调整该虚拟图像的大小和取向;以及向该显示器发送信号以致使该显示器将经调整的虚拟图像显示在该显示器上以替换第一物体的视图。
15.如权利要求11、12、13或14所述的装置,其特征在于该处理单元的一个或多个控制电路标识出该显示器的可能示出第一物体的部分;以及向该不透明度滤光器发送信号以选择性地阻挡光,使得光不能穿过该显示器的可能示出第一物体的部分,该虚拟图像被投影到该显示器的可能示出第一物体的部分上。
全文摘要
本发明涉及虚拟内容到现实内容中的融合。描述了一种包括头戴式显示设备和连接到该头戴式显示设备的处理单元的系统,该系统用于将虚拟内容融合到现实内容中。在一个实施例中,该处理单元与中枢计算设备通信。该系统创建空间的体积模型;将该模型分割成物体;标识出所述物体中的包括第一物体的一个或多个物体;以及在(头戴式显示器的)显示器上将虚拟图像显示在第一物体之上,该显示器允许通过该显示器实际直接地查看该空间的至少一部分。
文档编号G06K9/00GK102419631SQ20111032858
公开日2012年4月18日 申请日期2011年10月17日 优先权日2010年10月15日
发明者A·A-A·基普曼, A·J·富勒, A·巴-泽埃夫, B·小克罗科, C·迈尔斯, J·N·马戈利斯, J·弗莱克斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1