CN105264478A - 全息锚定和动态定位 - Google Patents

全息锚定和动态定位 Download PDF

Info

Publication number
CN105264478A
CN105264478A CN201480029678.0A CN201480029678A CN105264478A CN 105264478 A CN105264478 A CN 105264478A CN 201480029678 A CN201480029678 A CN 201480029678A CN 105264478 A CN105264478 A CN 105264478A
Authority
CN
China
Prior art keywords
user
virtual objects
virtual
computing system
head
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480029678.0A
Other languages
English (en)
Other versions
CN105264478B (zh
Inventor
B·E·基恩
B·J·苏格登
R·L·小克罗可
D·德普福德
T·G·萨尔特
L·K·梅赛
A·A-A·基普曼
P·T·金内布鲁
N·F·卡姆达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105264478A publication Critical patent/CN105264478A/zh
Application granted granted Critical
Publication of CN105264478B publication Critical patent/CN105264478B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser

Abstract

公开了一种用于按最优且最舒适的方式将虚拟对象显示在混合现实环境中以供用户与虚拟对象进行交互的系统和方法。当用户移动通过混合现实环境时,虚拟对象可保持世界锁定,使得用户可以四处移动并从不同的视角来探索虚拟对象。当用户在混合现实环境中不动时,虚拟对象可旋转以面向用户,使得用户可以容易地查看并与虚拟对象交互。

Description

全息锚定和动态定位
背景
混合现实是一种允许将虚拟图像与真实世界物理环境相混合的技术。用户可佩戴透视、头戴式、混合现实显示设备来观看用户的视野中所显示的现实对象和虚拟对象的混合图像。用户可例如通过执行手、头、或语音姿势来进一步与虚拟对象进行交互,以移动对象、更改它们的外观或简单地查看它们。当用户在物理环境内四处移动时,用户相对于虚拟对象的位置变化。这提供了用户相对于虚拟对象的透视的感觉,但这通常使得难以从斜角查看虚拟对象或与虚拟对象交互。
概述
本技术的各实施例涉及用于当用户在混合现实环境中四处移动时锚定虚拟对象(也称为全息图)的位置以及当用户不动时以最优且最舒适的方式重新定位虚拟对象以供用户查看和/或与虚拟对象交互的系统和方法。一种用于创建混合现实环境的系统一般包括耦合至一个或多个处理单元的头戴式透视显示设备。与头戴式显示单元协作的处理单元能够确定用户何时在移动或静止、以及用户相对于环境中的虚拟对象的位置,包括头部位置。
使用这一信息,混合现实系统能够在用户在环境中四处移动时锚定虚拟对象在环境中的位置。这允许用户在虚拟对象周围移动,从不同的视角查看它们,并获得对虚拟对象相对于用户的定向和间距的完全了解。在用户站住时,例如达预定时段,则该系统能够重新定位虚拟对象以面向用户和/或移至对查看和/或交互而言最优的用户定义的位置。虚拟对象可以采取任何形式,如动画或非动画对象。虚拟对象的子集是虚拟显示板,它可包括文本、图形、照片或视频的虚拟显示。
在一示例中,本技术涉及一种用于向一个或多个用户呈现混合现实体验的系统,该系统包括:针对所述一个或多个用户的一个或多个显示设备,每一显示设备包括用于向该显示设备的用户显示虚拟对象的显示单元;以及耦合到所述一个或多个显示设备的计算系统,所述计算系统生成用于显示在所述一个或多个显示设备上的虚拟对象,当所述一个或多个用户中的一用户正在移动时所述计算系统在第一位置处将所述虚拟对象显示给所述用户,且当所述用户不动时所述计算系统在旋转以面向所述用户的第二位置处将所述虚拟对象显示给所述用户。
在另一示例中,本技术涉及一种用于向用户呈现混合现实体验的系统,该系统包括:针对所述用户的显示设备,所述显示设备包括用于感测与所述显示设备的位置相关的数据的第一组传感器和用于将虚拟对象显示给所述显示设备的所述用户的显示单元;以及操作耦合到所述显示设备的计算系统,所述计算系统包括用于感测与所述用户的位置相关的数据的第二组传感器,并且所述计算系统生成所述虚拟对象以显示在所述显示设备上,在所述用户将他们的移动从运动中改变为不动达预定时段时,所述计算系统将所述虚拟对象显示为旋转以面向所述用户。
在又一示例中,本技术涉及一种用于向一个或多个用户呈现混合现实体验的方法,该方法包括:(a)在确定用户相对于虚拟对象移动时,在所述用户的视野中的第一位置处将所述虚拟对象显示给所述用户;以及
(b)当确定所述用户不动达预定时段时,将所述虚拟对象旋转到第二位置以面向所述用户。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在被用来帮助确定所要求保护的主题的范围。
附图简述
图1是用于向一个或多个用户呈现混和现实环境的系统的一个实施例的示例性组件的图示。
图2是头戴式显示单元的一个实施例的立体图。
图3是头戴式显示单元的一个实施例的一部分的侧视图。
图4是头戴式显示单元的组件的一个实施例的框图。
图5是与头戴式显示单元相关联的处理单元的组件的一个实施例的框图。
图6是结合头戴式显示单元使用的中枢计算系统的组件的一个实施例的框图。
图7是可用于实现在此所述的中枢计算系统的计算系统的一个实施例的框图。
图8是包括用户在混合现实环境内四处移动的混合现实环境的示例的图示。
图9是包括用户在混合现实环境内站住不动的混合现实环境的示例的图示。
图10是示出了本系统的中枢计算系统、一个或多个处理单元和一个或多个头戴式显示单元的操作和协作的流程图。
图11-14A是图10的流程图中所示的各步骤的示例的更详细的流程图。
详细描述
现在将参考图1-14A描述本技术的各实施例,它一般涉及混合现实环境,其中一个或多个虚拟对象的位置可在用户在混合现实环境中四处移动时保持静止,但在用户静止时变化以允许对该一个或多个虚拟对象的最优查看和/或与其交互。用于实现混合现实环境的系统可包括与中枢计算系统通信的移动显示设备。移动显示设备可包括耦合到头戴式显示设备(或其他合适的装置)的移动处理单元。
头戴式显示设备可包括显示元件。该显示元件在一定程度上透明,以使得用户可透过该显示元件看到该用户的视野(FOV)内的现实世界对象。该显示元件还提供将虚拟图像投影到该用户的FOV以使得所述虚拟图像也可出现在现实世界对象旁边的能力。该系统自动地跟踪用户所看之处,以使得该系统可以确定将该虚拟图像插入到该用户的FOV中的何处。一旦该系统知晓要将该虚拟对象投影至何处,就使用该显示元件投影该图像。
在实施例中,中枢计算系统和一个或多个处理单元可以协作以构建包括房间或其他环境中的所有用户、现实世界对象和虚拟三维对象的x、y、z笛卡尔位置的环境模型。由环境中的用户佩戴的每个头戴式显示设备的位置可以被校准到该环境的模型并且彼此校准。这允许该系统确定每个用户的视线以及该环境的FOV。从而,可向每个用户显示虚拟图像,但是该系统确定从每个用户的视角的该虚拟图像的显示,从而针对视差以及来自或被该环境中的其他对象的任何闭塞来调整该虚拟图像。该环境的模型(在本文中被称为场景图)以及对用户的FOV以及该环境中的对象的跟踪可由协力或独立工作的中枢和移动处理单元来生成。
用户可以选择与出现在用户的FOV内的虚拟对象中的一者或多者进行交互。如本文所使用的,术语“交互”涵盖用户与虚拟对象的身体交互和口头交互两者。身体交互包括用户使用他或她的手指、手、头和/或其他身体部位执行由混合现实系统识别为用户请求该系统执行预定义动作的预定义姿势。这样的预定义姿势可包括但不限于指点、抓握、以及推动虚拟对象。
用户还可以用他或她的眼睛来与虚拟对象进行身体交互。在一些情况下,眼睛注视数据标识用户正集中于FOV中的何处,并且因而可以标识用户正在看一特定虚拟对象。持续的眼睛注视或者眨眼或眨眼序列因而可以是用户藉由选择一个或多个虚拟对象的身体交互。
如本文所使用的,用户简单地看向虚拟对象(诸如查看虚拟显示板上的内容)是用户与虚拟对象的身体交互的另一示例。
用户可替换地或附加地使用口头姿势来与虚拟对象交互,所述口头姿势诸如例如被该混合现实系统识别为对该系统执行预定义动作的用户请求的所讲的单词或短语。口头姿势可连同身体姿势一起使用以与混合现实环境中的一个或多个虚拟对象交互。
当用户在混合现实环境内四处移动时,虚拟对象可保持是世界锁定的。即,它们可在混合现实环境中保持锚定并静止,使得用户可以在世界锁定的虚拟对象周围移动并从不同的视角和距离来查看它们。根据本技术,在用户停止移动或几乎停止移动时,例如达预定时段,虚拟对象的位置可切换到对用户而言是身体锁定的。即,虚拟对象的位置被更改以面向用户,或移至相对于用户身体的某一其他预定义位置。如本文所使用的,术语“位置”涵盖相对于三轴坐标系的平移位置和绕该坐标系的轴的旋转定向(俯仰、滚转和/或偏航)。
下文描述了优化虚拟对象(如向用户呈现内容的虚拟显示板)的位置的各实施例。该内容可以是可被显示在虚拟板上的任何内容,包括例如静态内容(如文本、图片和照片)或动态内容(如视频)。然而,将理解,本技术不限于虚拟显示板的定位,且可将虚拟现实环境内提供的任何虚拟对象进行重新定位和/或调整大小。
图1解说了用于通过将虚拟内容21与用户的FOV内的现实内容23相融合来提供混合现实体验的系统10。图1示出了佩戴头戴式显示设备2的单个用户18,但将理解,一个以上优化可以存在于混合现实环境中并从他们自己的角度查看同一虚拟对象。如在图2和3中看到的,头戴式显示设备2可包括集成处理单元4。在其他实施例中,处理单元4可以与头戴式显示设备2分开,且可经由有线或无线通信来与头戴式显示设备2通信。在一个实施例中为眼镜形状的头戴式显示设备2被佩戴在用户的头上,使得用户可以透过显示器进行查看,并且从而具有该用户前方的空间的实际直接视图。使用术语“实际直接视图”来指直接用人眼查看现实世界对象的能力,而不是查看对象的所创建的图像表示。例如,通过眼镜看房间将允许用户得到该房间的实际直接视图,而在电视机上查看房间的视频不是该房间的实际直接视图。下面提供头戴式显示设备2的更多细节。
处理单元4可包括用于操作头戴式显示设备2的计算能力中的许多能力。在各实施例中,处理单元4与一个或多个中枢计算系统12无线地(例如,WiFi、蓝牙、红外、或其他无线通信手段)通信。如此后解释的,中枢计算系统12可以在处理单元4的远程提供,使得中枢计算系统12和处理单元4经由诸如LAN或WAN等无线网络来通信。在进一步实施例中,中枢计算系统12可被省略以只使用头戴式显示设备2和处理单元4提供完全移动的混合现实体验。
中枢计算系统12可以是计算机、游戏系统或控制台等等。根据一示例实施例,中枢计算系统12可以包括硬件组件和/或软件组件,使得中枢计算系统12可以用于执行诸如游戏应用、非游戏应用等等之类的应用。在一个实施例中,中枢计算系统12可以包括诸如标准化处理器、专用处理器、微处理器等等之类的处理器,这些处理器可以执行存储在处理器可读存储设备上的指令以用于执行在此所述的过程。
中枢计算系统12还包括捕捉设备20,该捕捉设备20用于从其FOV内的场景的部分中捕捉图像数据。如本文所使用的,场景是用户在其中移动的环境,这一环境在捕捉设备20的FOV内和/或每一头戴式显示设备2的FOV内被捕捉。图1示出了单个捕捉设备20,但是在另外的实施例中可以存在多个捕捉设备,这些捕捉设备彼此协作以从所述多个捕捉设备20的复合FOV内的场景中集体地捕捉图像数据。捕捉设备20可包括一个或多个相机,该相机在视觉上监视一个或多个用户18和周围空间,使得可以捕捉、分析并跟踪该用户所执行的姿势和/或移动以及周围空间的结构,以在应用中执行一个或多个控制或动作和/或使化身或屏上人物动画化。
中枢计算系统12可以连接到诸如电视机、监视器、高清电视机(HDTV)等可提供游戏或应用视觉的视听设备16。例如,中枢计算系统12可包括诸如图形卡等视频适配器和/或诸如声卡等音频适配器,这些适配器可提供与游戏应用、非游戏应用等相关联的视听信号。视听设备16可从中枢计算系统12接收视听信号,并且然后可以输出与视听信号相关联的游戏或应用视觉和/或音频。根据一个实施例,视听设备16可经由例如S-视频电缆、同轴电缆、HDMI电缆、DVI电缆、VGA电缆、分量视频电缆、RCA电缆等连接至中枢计算系统12。在一个示例中,视听设备16包括内置扬声器。在其他实施例中,视听设备16和中枢计算设备12可以连接到外部扬声器22。
中枢计算系统12与头戴式显示设备2和处理单元4一起可以提供混合现实体验,其中一个或多个虚拟图像(如图1中的虚拟图像21)可与场景中的现实世界对象混合在一起。图1示出了作为出现在用户的FOV内的现实世界对象的植物23或用户的手23的示例。
图2和3示出了头戴式显示设备2的立体图和侧视图。图3示出了头戴式显示设备2的右侧,其包括具有镜腿102和鼻梁104的一部分。在鼻梁104中置入了话筒110以用于记录声音以及将音频数据传送给处理单元4,这将在下面予以描述。在头戴式显示设备2的前方是朝向房间的视频相机112,该视频相机112可以捕捉视频和静止图像。那些图像被传送至处理单元4,如下所述。
头戴式显示设备2的镜架的一部分将围绕显示器(其包括一个或多个透镜)。为了示出头戴式显示设备2的组件,未描绘围绕显示器的镜架部分。该显示器包括光导光学元件115、不透明滤光器114、透视透镜116和透视透镜118。在一个实施例中,不透明滤光器114处于透视透镜116之后并与其对齐,光导光学元件115处于不透明滤光器114之后并与其对齐,并且透视透镜118处于光导光学元件115之后并与其对齐。透视透镜116和118是眼镜中使用的标准透镜,并且可根据任何处方(包括无处方)来制作。在一个实施例中,透视透镜116和118可由可变处方透镜取代。在一些实施例中,头戴式显示设备2将仅仅包括一个透明透镜或者不包括透明透镜。在另一替代方案中,处方透镜可以进入光导光学元件115内。不透明滤光器114滤除自然光(要么以每像素为基础,要么均匀地)以增强虚拟图像的对比度。光导光学元件115将人造光导向眼睛。下面提供不透光滤光器114和光导光学元件115的更多细节。
在镜腿102处或镜腿102内安装有图像源,该图像源(在一个实施例中)包括用于对虚拟图像进行投影的微显示器120、以及用于将图像从微显示器120引导到光导光学元件115中的透镜122。在一个实施例中,透镜122是准直透镜。
控制电路136提供支持头戴式显示设备2的其他组件的各种电子装置。控制电路136的更多细节在下文参照图4提供。处于镜腿102内部或安装在镜腿102处的是耳机130、惯性测量单元132、以及温度传感器138。在图4中所示的一个实施例中,惯性测量单元132(或IMU132)包括惯性传感器,诸如三轴磁力计132A、三轴陀螺仪132B以及三轴加速度计132C。惯性测量单元132感测头戴式显示设备2的位置、定向和突然加速度(俯仰、滚转和偏航)。除了磁力计132A、陀螺仪132B和加速度计132C之外或者取代磁力计132A、陀螺仪132B和加速度计132C,IMU132还可包括其他惯性传感器。
微显示器120通过透镜122来投影图像。存在着可用于实现微显示器120的不同的图像生成技术。例如,微显示器120可以使用透射投影技术来实现,其中光源由光学活性材料来调制,用白光从背后照亮。这些技术通常是使用具有强大背光和高光能量密度的LCD类型的显示器来实现的。微显示器120还可使用反射技术来实现,其中外部光被光学活性材料反射并调制。取决于该技术,照明是由白光源或RGB源来向前点亮的。数字光处理(DLP)、硅上液晶(LCOS)、以及来自Qualcomm有限公司的显示技术都是高效的反射技术的示例(因为大多数能量从已调制结构反射离开)并且可被用在本系统中。附加地,微显示器120可以使用发射技术来实现,其中光由该显示器生成。例如,来自Microvision有限公司的PicoPTM显示引擎使用微型镜面舵来将激光信号发射到担当透射元件的小型屏幕上或直接将光束(例如,激光)发射到眼睛。
光导光学元件115将来自微显示器120的光传送到佩戴头戴式显示设备2的用户的眼睛140。光导光学元件115还允许如箭头142所示那样将光从头戴式显示设备2的前方通过光导光学元件115传送到用户的眼睛140,从而除接收来自微显示器120的虚拟图像之外还允许用户具有头戴式显示设备2的前方的空间的实际直接视图。从而,光导光学元件115的壁是透视的。光导光学元件115包括第一反射面124(例如镜面或其他表面)。来自微显示器120的光穿过透镜122并入射在反射面124上。反射面124反射来自微显示器120的入射光,使得光通过内反射而在包括光导光学元件115的平面基底内被捕获。在衬底的表面上进行若干反射之后,所捕获的光波到达选择性反射表面126的阵列。注意,五个表面中只有一个表面被标记为126以防止附图太过拥挤。反射面126将从衬底出射并入射在这些反射面上的光波耦合到用户的眼睛140。
由于不同光线将以不同角度传播并弹离衬底的内部,因此这些不同的光线将以不同角度击中各个反射面126。因此,不同光线将被所述反射面中的不同反射面从衬底中反射出。关于哪些光线将被哪个表面126从衬底反射出的选择是通过选择表面126的合适角度来设计的。在一个实施例中,每只眼睛将具有其自己的光导光学元件115。当头戴式显示设备2具有两个光导光学元件时,每只眼睛都可以具有其自己的微显示器120,该微显示器120可以在两只眼睛中显示相同图像或者在两只眼睛中显示不同图像。在另一实施例中,可以存在将光反射到两只眼睛中的一个光导光学元件。
与光导光学元件115对齐的不透明滤光器114要么均匀地、要么以每像素为基础来选择性地阻挡自然光,以免其穿过光导光学元件115。然而,一般而言,不透明滤光器114的一实施例可以是透视LCD面板、电致变色膜(electrochromicfilm)或能够充当不透明滤光器的类似设备。不透明滤光器114可以包括致密的像素网格,其中每个像素的透光率能够在最小和最大透光率之间被单独地控制。尽管0-100%的透光率范围是理想的,然而更受限的范围也是可接受的,诸如例如每像素约50%到90%,上至LCD的分辨率。
在用代理为现实世界对象进行z-缓冲(z-buffering)之后,可以使用来自渲染流水线的阿尔法值的掩码(mask)。当系统为增强现实显示而呈现场景时,该系统记录哪些现实世界对象处于哪些虚拟对象之前,如同下面解释的。如果虚拟对象处于现实世界对象之前,则不透明度对于该虚拟对象的覆盖区域而言可以是开启的。如果虚拟对象(虚拟地)处于现实世界对象之后,则不透明度以及该像素的任何颜色都可被关闭,使得对于现实光的该相应区域(其大小为一个像素或更多)而言,用户将会看到现实世界对象。覆盖将是以逐像素为基础的,所以该系统可以处置虚拟对象的一部分处于现实世界对象之前、该虚拟对象的一部分处于现实世界对象之后、以及该虚拟对象的一部分与现实世界对象相重合的情况。对这种用途而言,最期望的是能够以低的成本、功率和重量来从0%开始直至100%不透明度的显示器。此外,不透明滤光器可以比如用彩色LCD或用诸如有机LED等其他显示器来以彩色进行呈现,以提供宽FOV。
头戴式显示设备2还包括用于跟踪用户的眼睛位置的系统。如下面将会解释的那样,该系统将跟踪用户的位置和定向,使得该系统可以确定用户的FOV。然而,人类将不会感知到他们前方的一切。而是,用户的眼睛将被导向该环境的一子集。因此,在一个实施例中,该系统将包括用于跟踪用户的眼睛的位置以便细化对该用户的FOV的测量的技术。例如,头戴式显示设备2包括眼睛跟踪组件134(图3),该眼睛跟踪组件134具有眼睛跟踪照明设备134A和眼睛跟踪相机134B(图4)。在一个实施例中,眼睛跟踪照明设备134A包括一个或多个红外(IR)发射器,这些红外发射器向眼睛发射IR光。眼睛跟踪相机134B包括一个或多个感测所反射的IR光的相机。通过检测角膜的反射的已知成像技术,可以标识出瞳孔的位置。此类技术可以定位眼睛的中心相对于跟踪相机的位置。一般而言,眼睛跟踪涉及获得眼睛的图像并使用计算机视觉技术来确定瞳孔在眼眶内的位置。在一个实施例中,跟踪一只眼睛的位置就足够了,因为双眼通常一致地移动。然而,单独地跟踪每只眼睛是可能的。
在一个实施例中,该系统将使用以矩形布置的4个IRLED和4个IR光电检测器,使得在头戴式显示设备2的透镜的每个角处存在一个IRLED和IR光电检测器。来自LED的光从眼睛反射掉。由在4个IR光电检测器中的每个处所检测到的红外光的量来确定瞳孔方向。也就是说,眼睛中眼白相对于眼黑的量将确定对于该特定光电检测器而言从眼睛反射离开的光量。因此,光电检测器将具有对眼睛中的眼白或眼黑的量的度量。从这4个采样中,该系统可以确定眼睛的方向。
另一替代方案是如下面所讨论的那样使用4个红外LED,但是在头戴式显示设备2的透镜的侧边上使用一个红外CCD。CCD将使用小镜子和/或透镜(鱼眼),以使得CCD可对来自眼镜框的可见眼睛的多达75%成像。然后,该CCD将感测图像并且使用计算机视觉来找出该图像,就像下面所讨论的那样。因此,尽管图3示出了具有一个IR发射机的一个部件,但是图3的结构可以被调整为具有4个IR发射机和/或4个IR传感器。也可以使用多于或少于4个的IR发射机和/或多于或少于4个的IR传感器。
用于跟踪眼睛的方向的另一实施例基于电荷跟踪。此概念基于以下观察:视网膜携带可测量的正电荷而角膜具有负电荷。传感器通过用户的耳朵来安装(靠近耳机130)以检测眼睛在转动时的电势并且有效地实时读出眼睛正在进行的动作。也可以使用其他用于跟踪眼睛的实施例。
图3仅仅示出了头戴式显示设备2的一半。完整的头戴式显示设备将包括另一组透视透镜、另一不透明滤光器、另一光导光学元件、另一微显示器120、另一透镜122、面向房间的相机、眼睛跟踪组件、微显示器、耳机、和温度传感器。
图4是描绘了头戴式显示设备2的各个组件的框图。图5是描述处理单元4的各个组件的框图。在图4中描绘了头戴式显示设备2的组件,该头戴式显示设备2被用于通过将一个或多个虚拟图像与用户对现实世界的视图的无缝融合来向用户提供混合现实体验。另外,图4的头戴式显示设备组件包括跟踪各种状况的许多传感器。头戴式显示设备2将从处理单元4接收关于虚拟图像的指令,并且将传感器信息提供回给处理单元4。图4中描绘了处理单元4的组件,该处理单元4将从头戴式显示设备2接收传感信息,并且将与中枢计算设备12(参见图1)交换信息和数据。基于该信息和数据的交换,处理单元4将确定在何处以及在何时向用户提供虚拟图像并相应地将指令发送给图4的头戴式显示设备。
图4的组件中的一些(例如朝向房间的相机112、眼睛跟踪相机134B、微显示器120、不透明滤光器114、眼睛跟踪照明134A、耳机130和温度传感器138)是以阴影示出的,以指示这些的设备中的每个都存在两个,其中一个用于头戴式显示设备2的左侧,并且一个用于头戴式显示设备2的右侧。图4示出与电源管理电路202通信的控制电路200。控制电路200包括处理器210、与存储器214(例如D-RAM)进行通信的存储器控制器212、相机接口216、相机缓冲器218、显示驱动器220、显示格式化器222、定时发生器226、显示输出接口228、以及显示输入接口230。
在一个实施例中,控制电路200的所有组件都通过专用线路或一个或多个总线彼此进行通信。在另一实施例中,控制电路200的每个组件都与处理器210通信。相机接口216提供到两个朝向房间的相机112的接口,并且将从朝向房间的相机所接收到的图像存储在相机缓冲器218中。显示驱动器220将驱动微显示器120。显示格式化器222向控制不透明滤光器114的不透明度控制电路224提供关于微显示器120上所显示的虚拟图像的信息。定时发生器226被用于向该系统提供定时数据。显示输出接口228是用于将图像从朝向房间的相机112提供给处理单元4的缓冲器。显示输入接口230是用于接收诸如要在微显示器120上显示的虚拟图像之类的图像的缓冲器。显示输出(Displayout)接口228和显示输入(displayin)接口230与作为到处理单元4的接口的带接口232通信。
电源管理电路202包括电压调节器234、眼睛跟踪照明驱动器236、音频DAC和放大器238、话筒前置放大器和音频ADC240、温度传感器接口242、以及时钟发生器244。电压调节器234通过带接口232从处理单元4接收电能,并将该电能提供给头戴式显示设备2的其他组件。每个眼睛跟踪照明驱动器236都如上面所述的那样为眼睛跟踪照明134A提供IR光源。音频DAC和放大器238向耳机130输出音频信息。话筒前置放大器和音频ADC240提供用于话筒110的接口。温度传感器接口242是用于温度传感器138的接口。电源管理电路202还向三轴磁力计132A、三轴陀螺仪132B以及三轴加速度计132C提供电能并从其接收回数据。
图5是描述处理单元4的各个组件的框图。图5示出与电源管理电路306通信的控制电路304。控制电路304包括:中央处理单元(CPU)320;图形处理单元(GPU)322;高速缓存324;RAM326、与存储器330(例如D-RAM)进行通信的存储器控制器328、与闪存334(或其他类型的非易失性存储)进行通信的闪存控制器332、通过带接口302和带接口232与头戴式显示设备2进行通信的显示输出缓冲器336、通过带接口302和带接口232与头戴式显示设备2进行通信的显示输入缓冲器338、与用于连接到话筒的外部话筒连接器342进行通信的话筒接口340、用于连接到无线通信设备346的PCIexpress接口;以及USB端口348。在一个实施例中,无线通信设备346可包括启用Wi-Fi的通信设备、蓝牙通信设备、红外通信设备等。USB端口可以用于将处理单元4对接到中枢计算系统12,以便将数据或软件加载到处理单元4上以及对处理单元4进行充电。在一个实施例中,CPU320和GPU322是用于确定在何处、何时以及如何向用户的视野内插入虚拟三维对象的主负荷设备。以下提供更多详情。
电源管理电路306包括时钟发生器360、模数转换器362、电池充电器364、电压调节器366、头戴式显示器电源376、以及与温度传感器374进行通信的温度传感器接口372(其可能位于处理单元4的腕带上)。模数转换器362被用于监视电池电压、温度传感器并控制电池充电功能。电压调节器366与用于向该系统提供电能的电池368进行通信。电池充电器364被用来在从充电插孔370接收到电能时对电池368进行充电(通过电压调节器366)。HMD电源376向头戴式显示设备2提供电力。
图6示出了具有捕捉设备20的中枢计算系统12的示例性实施例。根据一示例实施例,捕捉设备20可被配置为通过可包括例如飞行时间、结构化光、立体图像等在内的任何合适的技术来捕捉包括深度图像的带有深度信息的视频,该深度图像可包括深度值。根据一个实施例,捕捉设备20可将深度信息组织为“Z层”或者可与从深度相机沿其视线延伸的Z轴垂直的层。
如图6所示,捕捉设备20可以包括相机组件423。根据一示例性实施例,相机组件423可以是或者可以包括可捕捉场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维(2-D)像素区域,其中2-D像素区域中的每个像素都可以表示深度值,比如所捕捉的场景中的对象与相机相距的例如以厘米、毫米等为单位的距离。
相机组件423可以包括可用于捕捉场景的深度图像的红外(IR)光组件425、三维(3D)相机426、以及RGB(视觉图像)相机428。例如,在飞行时间分析中,捕捉设备20的IR光组件425可以将红外光发射到场景上,并且然后可以使用传感器(在一些实施例中包括未示出的传感器)、例如使用3-D相机426和/或RGB相机428来检测从场景中的一个或多个目标和对象的表面后向散射的光。在一些实施例中,可以使用脉冲红外光,以使得可以测量出射光脉冲与相应入射光脉冲之间的时间,并且将其用于确定从捕捉设备20到场景中的目标或对象上的特定位置的物理距离。另外,在其他示例实施例中,可以将出射光波的相位与入射光波的相位相比较来确定相移。然后可以使用该相移来确定从捕捉设备到目标或对象上的特定位置的物理距离。
根据另一示例性实施例,飞行时间分析可被用来通过经由包括例如快门式光脉冲成像在内的各种技术分析反射光束随时间的强度来间接地确定从捕捉设备20到目标或对象上的特定位置的物理距离。
在另一示例实施例中,捕捉设备20可使用结构化光来捕捉深度信息。在这样的分析中,图案化光(即,被显示为诸如网格图案、条纹图案、或不同图案之类的已知图案的光)可经由例如IR光组件425被投影到场景上。在落到场景中的一个或多个目标或对象的表面上以后,作为响应,图案可以变为变形的。图案的这种变形可由例如3-D相机426和/或RGB相机428(和/或其他传感器)来捕捉,然后可被分析以确定从捕捉设备到目标或对象上的特定位置的物理距离。在一些实施方式中,IR光组件425从相机426和428移位,使得可以使用三角测量来确定与相机426和428相距的距离。在一些实现中,捕捉设备20将包括感测IR光的专用IR传感器或具有IR滤波器的传感器。
根据另一实施例,一个或多个捕捉设备20可包括两个或更多物理上分开的相机,这些相机可从不同角度查看场景以获得视觉立体数据,该视觉立体数据可被解析以生成深度信息。也可使用其它类型的深度图像传感器来创建深度图像。
捕捉设备20还可以包括话筒430,所述话筒430包括可以接收声音并将其转换成电信号的换能器或传感器。话筒430可被用来接收也可被提供给中枢计算系统12的音频信号。
在一示例实施例中,捕捉设备20还可包括可与图像相机组件423进行通信的处理器432。处理器432可包括可执行指令的标准处理器、专用处理器、微处理器等,这些指令例如包括用于接收深度图像、生成合适的数据格式(例如,帧)以及将数据传送给中枢计算系统12的指令。
捕捉设备20还可包括存储器434,该存储器434可存储由处理器432执行的指令、由3-D相机和/或RGB相机所捕捉的图像或图像帧、或任何其他合适的信息、图像等等。根据一示例性实施例,存储器434可包括随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、闪存、硬盘或任何其他合适的存储组件。如图6所示,在一个实施例中,存储器434可以是与图像相机组件423和处理器432通信的单独组件。根据另一实施例,存储器434可被集成到处理器432和/或图像捕捉组件423中。
捕捉设备20通过通信链路436与中枢计算系统12通信。通信链路436可以是包括例如USB连接、火线连接、以太网电缆连接等有线连接和/或诸如无线802.11b、802.11g、802.11a或802.11n连接等的无线连接。根据一个实施例,中枢计算系统12可经由通信链路436向捕捉设备20提供可用于确定何时捕捉例如场景的时钟。附加地,捕捉设备20经由通信链路436将由例如3-D相机426和/或RGB相机428捕捉的深度信息和视觉(例如RGB)图像提供给中枢计算系统12。在一个实施例中,深度图像和视觉图像以每秒30帧的速率来传送,但是可以使用其他帧速率。中枢计算系统12然后可以创建模型并使用模型、深度信息、以及所捕捉的图像来例如控制诸如游戏或文字处理程序等的应用和/或使化身或屏上人物动画化。
中枢计算系统12可包括骨架跟踪模块450。模块450使用来自捕捉设备20、以及可能来自一个或多个头戴式显示设备2上的相机的每帧中所获得的深度图像来随着每个用户在场景内四处移动而开发捕捉设备20的FOV内的用户18(或其他人)的表示模型。此表示模型可以是下面描述的骨架模型。中枢计算系统12可进一步包括场景映射模块452。场景映射模块452使用从捕捉设备20、以及可能从一个或多个头戴式显示设备2上的相机所获得的深度图像数据以及可能还有RGB图像数据来开发用户18所在的场景的映射或模型。场景图可进一步包括从骨架跟踪模块450获得的用户的位置。中枢计算系统还可以包括姿势识别引擎454以用于接收场景中的一个或多个用户的骨架模型数据并确定:该用户是否正在执行预定义的姿势或影响运行在中枢计算系统12上的应用的应用控制移动。
捕捉设备20向中枢计算系统12提供RGB图像(或其他格式或色彩空间的视觉图像)和深度图像。深度图像可以是多个观测到的像素,其中每个观测到的像素具有观测到的深度值。例如,深度图像可包括所捕捉的场景的二维(2-D)像素区域,其中该2-D像素区域中的每个像素都可具有深度值,诸如所捕捉的场景中的对象与捕捉设备相距的距离。中枢计算系统12将使用RGB图像和深度图像来开发用户的骨架模型并跟踪用户或其他对象的移动。可以使用许多方法以通过使用深度图像来对人的骨架进行建模和跟踪。
一种这样的方法包括:获得深度图像;对数据进行降采样;移除和/或平滑化高方差噪声数据;标识并移除背景;以及将前景像素中的每个分配给身体的不同部位。基于这些步骤,系统将模型拟合至该数据并创建骨架。该骨架将包括一组关节和这些关节之间的连接。也可使用用于用户建模和跟踪的其他方法。
上述中枢计算系统12与头戴式显示设备2和处理单元4一起能够将虚拟三维对象插入到一个或多个用户的FOV中,使得该虚拟三维对象扩展和/或替换现实世界的视图。在一个实施例中,头戴式显示设备2、处理单元4以及中枢计算系统一起工作,因为这些设备中的每一者包括被用来获得用以确定何处、何时以及如何插入虚拟三维对象的数据的传感器子集。在一个实施例中,确定何处、何时以及如何插入虚拟三维对象的计算由彼此合作地工作的中枢计算系统12和处理单元4执行。然而,在又一些实施例中,所有计算可由单独工作的中枢计算系统12或单独工作的处理单元4执行。在其他实施例中,计算中的至少一些可由头戴式显示设备2执行。
在一个示例性实施例中,中枢计算设备12和处理单元4一起工作以创建所述一个或多个用户所在的场景映射或模型并且跟踪该环境中移动的对象。此外,中枢计算系统12和处理单元4通过跟踪头戴式显示设备2的位置和定向来跟踪用户18所佩戴的头戴式显示设备2的FOV。头戴式显示设备2所获得的传感器信息被传送给处理单元4。在一个实施例中,该信息被传送给中枢计算系统12,该中枢计算系统12更新场景模型并且将其传送回处理单元。处理单元4随后使用其从头戴式显示设备2接收的附加传感器信息来细化用户的FOV并且向头戴式显示设备2提供关于在何处、何时以及如何插入虚拟三维对象的指令。基于来自捕捉设备20和头戴式显示设备2中的相机的传感器信息,可在如同下面所解释的闭环反馈系统中在中枢计算系统12和处理单元4之间周期性地更新场景模型和跟踪信息。
图7示出了可用于实现中枢计算系统12的计算系统的示例性实施例。如图7所示,多媒体控制台500具有含有一级高速缓存502、二级高速缓存504和闪速ROM(只读存储器)506的中央处理单元(CPU)501。一级高速缓存502和二级高速缓存504临时存储数据,并且因此减少存储器访问周期的数量,由此改进处理速度和吞吐量。CPU501可以被配备为具有一个以上的核,并且由此具有附加的一级和二级高速缓存502和504。闪速ROM506可存储在多媒体控制台500通电时在引导过程初始化阶段加载的可执行代码。
图形处理单元(GPU)508和视频编码器/视频编解码器(编码器/解码器)514形成用于高速和高分辨率图形处理的视频处理流水线。经由总线从图形处理单元508向视频编码器/视频编解码器514运送数据。视频处理流水线向A/V(音频/视频)端口540输出数据,用于传输至电视或其他显示器。存储器控制器510连接到GPU508以方便处理器访问各种类型的存储器512,诸如但不局限于RAM(随机存取存储器)。
多媒体控制台500包括优选地在模块518上实现的I/O控制器520、系统管理控制器522、音频处理单元523、网络接口524、第一USB主控制器526、第二USB控制器528以及前面板I/O子部件530。USB控制器526和528用作外围控制器542(1)-542(2)、无线适配器548、以及外置存储器设备546(例如,闪存、外置CD/DVDROM驱动器、可移动介质等)的主机。网络接口524和/或无线适配器548提供对网络(例如,因特网、家庭网络等)的访问,并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同的有线或无线适配器组件中的任何一种。
提供系统存储器543来存储在引导过程期间加载的应用数据。提供媒体驱动器544且其可包括DVD/CD驱动器、蓝光驱动器、硬盘驱动器、或其它可移动媒体驱动器等。媒体驱动器544可内置或外置于多媒体控制台500。应用数据可经由媒体驱动器544访问,以供多媒体控制台500执行、回放等。媒体驱动器544经由诸如串行ATA总线或其他高速连接(例如IEEE1394)等总线连接到I/O控制器520。
系统管理控制器522提供与确保多媒体控制台500的可用性相关的各种服务功能。音频处理单元523和音频编解码器532形成具有高保真度和立体声处理的相应音频处理流水线。音频数据经由通信链路在音频处理单元523与音频编解码器532之间传输。音频处理流水线将数据输出到A/V端口540,以供外置音频用户或具有音频能力的设备再现。
前面板I/O子部件530支持暴露在多媒体控制台500的外表面上的电源按钮550和弹出按钮552、以及任何LED(发光二极管)或其他指示器的功能。系统供电模块536向多媒体控制台500的组件供电。风扇538冷却多媒体控制台500内的电路。
多媒体控制台501内的CPU500、GPU508、存储器控制器510、以及各种其他组件经由一条或多条总线互连,该总线包括串行和并行总线、存储器总线、外围总线、以及使用各种总线体系结构中的任一种的处理器或局部总线。作为示例,这些架构可以包括外围部件互连(PCI)总线、PCI-Express总线等。
当多媒体控制台500通电时,应用数据可从系统存储器543加载到存储器512和/或高速缓存502、504中并在CPU501上执行。应用可在导航到多媒体控制台500上可用的不同媒体类型时呈现提供一致用户体验的图形用户界面。在操作中,媒体驱动器544中所包含的应用和/或其他媒体可从媒体驱动器544启动或播放,以将附加功能提供给多媒体控制台500。
多媒体控制台500可通过简单地将该系统连接到电视机或其他显示器而作为独立系统来操作。在该独立模式中,多媒体控制台500允许一个或多个用户与该系统交互、看电影、或听音乐。然而,在通过网络接口524或无线适配器548可用的宽带连接集成的情况下,多媒体控制台500还可作为更大网络社区中的参与者来操作。另外,多媒体控制台500可以通过无线适配器548与处理单元4通信。
任选的输入设备(例如,控制器542(1)和542(2))由游戏应用和系统应用共享。输入设备不是保留资源,而是在系统应用和游戏应用之间切换以使其各自将具有设备的焦点。应用管理器较佳地控制输入流的切换,而无需知晓游戏应用的知识,并且驱动程序维护有关焦点切换的状态信息。捕捉设备20可经由USB控制器526或其他接口来定义控制台500的附加输入设备。在其他实施例中,中枢计算系统12可以使用其他硬件体系结构来实现。没有一个硬件体系结构是必需的。
图1中所示的头戴式显示设备2和处理单元4(有时统称为移动显示设备)与一个中枢计算系统12(亦称中枢12)通信。在又一些实施例中,可以存在一个或两个或更多移动显示设备与中枢12通信。移动显示设备中的每一者可如上述那样使用无线通信与中枢通信。在这样的实施例中所构思的是,有用于移动显示设备的信息中的许多都将在中枢处被计算和存储并且传送给每个移动显示设备。例如,中枢将生成环境的模型并且将该模型提供给与该中枢通信的所有移动显示设备。附加地,中枢可以跟踪移动显示设备以及房间中的移动对象的位置和定向,并且然后将该信息传输给每个移动显示设备。
在另一实施例中,系统可以包括多个中枢12,其中每个中枢都包括一个或多个移动显示设备。中枢可彼此直接通信或经由因特网(或其他网络)通信。
此外,在另外的实施例中,中枢12可以完全省略。这样的实施例的一个优点是,本系统的混合现实体验变为完全移动的,并且可以用在室内和室外背景(settings)二者中。在这样的实施例中,下面的描述中由中枢12执行的所有功能都可以可替代地由处理单元4之一、合作地工作的一些处理单元4、或者合作地工作的所有处理单元4来执行。在这样的实施例中,相应的移动显示设备580执行系统10的所有功能,包括:生成和更新状态数据、场景映射、每个用户对场景映射的视图、所有纹理和渲染信息、视频和音频数据以及为了执行在此所述的操作的其他信息。下文参考图9的流程图描述的实施例包括中枢12。然而,在每一这样的实施例中,处理单元4中的一者或多者可另选地执行中枢12的所有所描述的功能。
使用上述组件,虚拟对象可经由头戴式显示设备2被显示给用户18。一些虚拟对象可能旨在在场景中保持静止。这些虚拟对象在本文中被称为“静态虚拟对象”。其他虚拟对象旨在在场景中移动或者是可移动的。这些虚拟对象被称为“动态虚拟对象”。
动态虚拟对象的示例是虚拟显示板460,其中的一些在图8和9中被标号。虚拟显示板460是显示给用户的可在其上向用户呈现内容的虚拟屏。(以上描述的)不透明滤光器114被用来遮盖现实世界对象和虚拟显示板460后面(从用户的视点来看)的光,使得虚拟显示板460看起来是用于查看内容的虚拟屏。
显示在板460上的内容可以是各种各样的内容,包括静态内容(如文本和图形)或动态内容(如视频)。板460可进一步担当计算机监视器,使得内容可以是电子邮件、网页、游戏或监视器上呈现的任何其他内容。中枢12上运行的软件应用可以生成板460以及确定要在板460上显示的内容。在各实施例中,板460的位置和大小以及显示在板460上的内容的类型可以是用户通过姿势等可配置的。
如图8所示,场景可包括多个虚拟对象,每一虚拟对象面向随机的方向,如图8中的箭头所示。尽管图8中所示的虚拟对象是虚拟显示板460,但在又一些实施例中,虚拟对象可以是任何其他动态或静态虚拟对象。当用户在场景内移动时,虚拟对象可以保持是世界锁定的。即,虚拟对象可以在混合现实环境中保持静止。用户因而可以在虚拟对象的侧面和背面四处移动并从不同的角度查看它们。
然而,一旦用户站住或几乎静止达预定时段,场景内的动态虚拟对象可改变成身体锁定到用户18上。即,动态虚拟对象可以绕x、y和/或z轴旋转以面向用户的身体,如图9中的箭头所示。以此方式,用户可更好地查看虚拟对象的正面,且在虚拟对象是虚拟显示板的情况下可更好地查看内容。在各实施例中,本系统可在旋转虚拟对象以面向用户之前寻找用户不动(这包括用户静止或几乎静止,如下文所解释的)达1到5秒,但在又一些实施例中,预定时段可小于1秒和大于5秒。
虚拟对象可缓慢旋转且稳定地朝向用户。作为许多示例之一,虚拟对象可以绕一个或多个轴每秒旋转20°到40°,但在又一些示例中,旋转速率可以更慢或更快。在各实施例中,虚拟对象可以按恒定的角速度朝用户旋转,或虚拟对象可在它们的旋转期间加速/减速,例如在它们几乎面向用户时减缓。
一旦用户再次开始移动,虚拟对象可保持在自用户静止的时间以来它们的位置上,或虚拟对象可返回在用户停止移动之前的它们的位置,例如图8所示的位置。
在又一实施例中,一旦用户再次开始移动,虚拟对象中的一者或多者就可以旋转以在用户处于运动中时继续身体锁定到用户上。例如,在用户静止时,用户可以选择虚拟对象中的一者或多者,诸如例如指点、注视或相对于该一个或多个虚拟对象来执行某一其他身体姿势。一旦被选择,虚拟对象就可保持面向用户,甚至在用户再次开始移动后。在这样的实施例中,作为旋转的补充或替换,一个或多个所选虚拟对象可平移以与用户一起移动并在用户移动时保持距用户的固定距离。
在这样的实施例中,进一步构想了一个或多个所选虚拟对象可头部锁定到用户。即,在用户转动他或她的头部时,所选虚拟对象保持在相对于用户的头部的固定角度和距离上。将理解,用户可按各种其他方式来操纵所选虚拟对象,诸如例如将所选虚拟对象移至混合现实环境内的所需位置、调整虚拟对象的大小或隐藏虚拟对象。用户可以执行一些身体姿势来解除选择并释放所选虚拟对象。
图9是中枢计算系统12、处理单元4和头戴式显示设备2在离散时间段(比如为了生成、渲染和向每个用户显示单帧图像数据所花费的时间)期间的操作和交互性的高级流程图。在各实施例中,数据可以以60Hz的速率刷新,但是在另外的实施例中可以以更高或更低的频度刷新。
一般而言,该系统生成具有环境和该环境中的诸如用户、现实对象和虚拟对象之类的对象的x、y、z坐标的场景映射。如上所述,诸如板460等虚拟对象可以由在中枢计算系统12上运行的应用或由用户18虚拟地置于环境中。该系统还跟踪每个用户的FOV。尽管所有用户可以或许在观看该场景的相同方面,然而他们正在从不同视角来观看所述方面。因此,该系统生成每个人对场景的FOV以针对不同虚拟或现实世界对象的视差和遮挡进行调整,而这些视差和遮挡对于每个用户而言又可能是不同的。
对于给定的图像数据帧,用户的视图可以包括一个或多个现实和/或虚拟对象。当用户转动他或她的头部时(例如从左向右或上下转头),该用户的FOV中的现实世界对象的相对位置固有地在该用户的FOV内移动。例如,图1中的植物23可首先出现在用户的FOV的右侧。但是如果随后用户向右转动他或她的头部,则植物23可最终停在用户的FOV的左侧。
然而,随着用户移动其头部向用户显示虚拟对象是更困难的问题。在用户查看其FOV内的静态虚拟对象的示例中,如果用户向左移动其头以向左移动FOV,则静态虚拟对象的显示需要向右偏移该用户FOV的偏移量,使得实际效果是该静态虚拟对象在FOV内保持静止。用于正确地显示静态和动态虚拟对象的系统在下文参考图10-14的流程图来解释。
可以在步骤600配置用于将混合现实呈现给一个或多个用户18的系统。例如,用户18或系统的操作者可以指定要呈现的虚拟对象、它们是静态还是动态虚拟对象、以及如何、何时和何处呈现它们。在一替换实施例中,在中枢12和/或处理单元4上运行的应用可将系统配置成要呈现的静态和/或动态虚拟对象。
在一个示例中,应用可以选择一个或多个静态和/或动态虚拟对象以呈现在场景内的默认位置。作为替换或补充,用户可以选择一个或多个预定义静态和/或动态虚拟对象来包括在场景中。无论是被应用还是用户选择,用户此后可以具有改变动态虚拟对象中的一者或多者的默认位置的选项。例如,用户可以选择虚拟显示板460以定位在他的FOV的中心或几乎中心。或者,用户可以将虚拟显示板460发送到墙上。这些选项可以例如由用他或她的手执行抓握和移动姿势的用户来实现,但在又一些实施例中,这可以用其他方式来实现。
在步骤604和630,中枢12和处理单元4从场景中收集数据。对于中枢12,这可以是由捕捉设备20的深度相机426、RGB相机428和话筒430感测到的图像和音频数据。对于处理单元4,这可以是由头戴式显示设备2在步骤656感测到的图像数据,且具体而言,是由相机112、眼睛跟踪部件134和IMU132感测到的图像数据。在步骤656,由头戴式显示设备2收集的数据被发送给处理单元4。处理单元4处理这一数据,以及在步骤630将它发送给中枢12。
在步骤608,中枢12执行各种设置操作,这些设置操作允许中枢12协调其捕捉设备20和一个或多个处理单元4的图像数据。具体而言,即使捕捉设备20相对于场景的位置是已知的(情况可能不一定如此),头戴式显示设备2上的相机也在场景中四处移动。因此,在各实施例中,成像相机中的每一者的位置和时间捕捉需要被校准到该场景、校准到彼此、以及校准到中枢12。现在参考附图11的流程图描述步骤608的进一步细节。
步骤608的操作包括:在步骤670确定系统10中的各个成像设备的时钟偏差。具体而言,为了协调来自该系统中的各相机的每一个的图像数据,确认被协调的图像数据是来自同一时间。一般而言,来自捕捉设备20的图像数据和从一个或多个处理单元4传入的图像数据被从中枢12中的单个主时钟打时间戳。对于给定帧针对所有此类数据使用所述时间戳,以及针对所述相机中的每一个的已知分辨率,中枢12可确定该系统中的所述成像相机中的每一个的时间偏移。据此,中枢12可以确定从每一相机接收到的图像自己的差异以及对这些图像的调整。
中枢12可以从相机接收的帧之一中选择参考时间戳。然后,中枢12可以向从所有其他相机接收的图像数据加上时间或从该图像数据减去时间以与参考时间戳同步。能够理解,可以针对校准过程使用各种其他操作来确定时间偏差和/或对不同的相机一起进行同步。时间偏移的确定可以在初始接收到来自所有相机的图像数据后执行一次。或者,它可以周期性地执行,诸如例如每一帧或某一数量的帧。
步骤608还包括在场景的x、y、z笛卡尔空间中校准所有相机相对于彼此的位置的操作。一旦知晓此信息,中枢12和/或一个或多个处理单元4就能够形成场景图或模型,标识该场景的几何形状和该场景中的对象(包括用户)的几何形状和位置。在将所有相机的图像数据彼此校准时,可使用深度和/或RGB数据。
系统10中的成像相机每个都可以具有一些透镜失真,这些透镜失真需要校正以便校准来自不同相机的图像。一旦来自该系统中的各相机的所有图像数据在步骤604和630中被接收,则在步骤674中可调整该图像数据以计入各相机的透镜失真。给定相机(深度或RGB)的失真可以是由相机制造商提供的已知属性。如果不是,则还公知有用于计算相机的失真的算法,例如包括对已知尺寸的对象进行成像,所述尺寸是例如在相机FOV内的不同位置处的方格盘图案之类。该图像中的各点的相机视图坐标的偏差将是相机透镜失真的结果。一旦得知透镜失真的程度,就可以通过已知逆矩阵变换来校正失真,该逆矩阵变换产生给定相机的点云中的点的均匀相机视图映射。
接着,中枢12可以在步骤678将由每个相机捕捉的经失真校正的图像数据点从相机视图翻译成正交3-D世界视图。此正交3-D世界视图是由捕捉设备20和头戴式显示设备相机所捕捉的所有图像数据在正交x,y,z笛卡尔坐标系中的点云地图。用于将相机视图转化成正交3-D世界视图的矩阵变换等式是已知的。
系统10中的每个相机都可以在步骤678构造正交3-D世界视图。来自给定相机的数据点的x,y,z世界坐标仍旧是从步骤678的结论处该相机的视角的,而尚未与来自系统10中的其他相机的数据点的x,y,z世界坐标相关。下一步骤是将不同相机的各个正交3-D世界视图转化成系统10的所有相机共享的单个总体3-D世界视图。
为实现这一点,中枢12的实施例可以接着在步骤682在相应相机的世界视图的点云中寻找关键点不连续性或线索,并且然后在步骤684标识出在不同相机的不同点云中相同的线索。一旦中枢12能够确定两个不同相机的两个世界视图包括相同的线索,则在步骤688中中枢12能够确定这两个相机相对于彼此以及所述线索的位置、定向和焦距。在各实施例中,并非系统10中的所有相机将共享相同的公共线索。然而,只要第一和第二相机具有共享的线索,并且这些相机至少之一与第三相机具有共享的视图,则中枢12就能够确定第一、第二和第三相机相对于彼此的位置、定向和焦距、以及单个总体3-D世界视图。对于该系统中的附加相机而言也是如此。
存在各种用于从图像点云中标识出线索的已知算法。另一用于利用图像数据检测线索的方法是比例不变特征变换(SIFT)算法。另一线索检测器方法是最大稳定极值区域(MSER)算法。
在步骤684,标识出在来自两个或更多相机的点云之间共享的线索。在概念上,当在第一相机的笛卡尔坐标系中存在第一相机与一组线索之间的第一组矢量,并且在第二相机的笛卡尔坐标系中存在第二相机与同一组线索之间的第二组矢量时,两个系统可以相对于彼此被解析成包括这两个相机的单个笛卡尔坐标系。存在用于寻找来自两个或更多相机的点云之间的共享线索的多种已知技术。
当来自两个不同相机的点云共享足够大数目的匹配线索时,可以例如通过随机采样一致性(RANSAC)或各种其他估计技术来估计将两个点云一起相关的矩阵。随后可移除对所还原的基础矩阵而言是异类的匹配。在找到点云对之间的假定的、几何上一致的匹配的集合之后,可将所述匹配组织成针对各个点云的轨迹的集合,其中轨迹是点云之间相互匹配的线索的集合。该集合中的第一轨迹可包含每个公共线索在第一点云中的投影。该集合中的第二轨迹可包含每个公共线索在第二点云中的投影。来自不同相机的点云随后可被解析成单一正交3-D现实世界视图中的单一点云。
相对于该单个点云和单个正交3-D现实世界视图来校准所有相机的位置和定向。为了一起解析各个点云,分析针对两个点云的轨迹的集合中的线索的投影。根据这些投影,中枢12可确定第一相机相对于线索的视角,并且还可确定第二相机相对于线索的视角。藉此,中枢12可以将点云解析成对单个点云和包括所述线索和来自两个点云的其他数据点的单个正交3-D现实世界视图的估计。
对任何其他相机重复该过程,直到该单个正交3-D现实世界视图包括了所有相机。一旦完成这一步,中枢12可确定各相机相对于该单一正交3-D现实世界视图和相对于彼此的相对位置和定向。中枢12可进一步确定每个相机相对于该单一正交3-D现实世界视图的焦距。
再次参考图10,一旦在步骤608校准了该系统,则可以在步骤610开发场景图,该场景图标识出该场景的几何形状以及该场景内的对象的几何形状和位置。在各实施例中,在给定帧中生成的场景图可包括所有用户、现实世界对象和虚拟对象在该场景中的x、y和z位置。所有这一信息可在图像数据收集步骤604、630和656期间获得,并且在步骤608中被一起校准。
至少捕捉设备20包括深度相机以用于确定场景的深度(直到可能以墙壁等等为界限的程度)以及场景内的对象的深度位置。如下文所解释的,场景图被用来将虚拟对象定位在场景内,以及显示带有正确遮挡的虚拟三维对象(虚拟三维对象可被现实世界对象或另一虚拟三维对象遮挡,或虚拟三维对象可遮挡现实世界对象或另一虚拟三维对象)。
系统10可包括多个深度图像相机以获得来自场景的所有深度图像,或包括单个深度图像相机,诸如例如捕捉设备20的深度图像相机426可能足以捕捉来自场景的所有深度图像。一用于确定未知环境内的场景映射的类似方法被称为同时定位和映射(SLAM)。
在步骤612,该系统将检测和跟踪诸如在房间中移动的人之类的移动对象,并且基于移动对象的位置更新场景映射。这包括使用场景内的用户的骨架模型,如上所述。
在步骤614中,中枢确定头戴式显示设备2的x、y和z位置、定向以及FOV。现在参考附图12的流程图描述步骤614的进一步细节。下文参考单个用户描述图12的步骤。然而,图12的步骤可针对场景内的每一用户来实现。
在步骤700,在中枢处分析场景的经校准的图像数据以确定用户头位置、以及从用户的脸直视的脸部单位向量二者。头部位置在骨架模型中标识。脸单位向量可通过根据骨架模型定义用户用户脸部的平面并取得垂直于该平面的向量来确定。这一平面可通过确定用户眼睛、鼻子、嘴、耳朵、或其他脸部特征的位置来标识。脸部单位向量可被用来定义用户的头部定向,且在该示例中可被认为是用户的FOV的中心。作为补充或替换,脸部单位向量可根据从头戴式显示设备2上的相机112返回的相机图像数据来标识。具体而言,基于头戴式显示设备2上的相机112所看到的,相关联的处理单元4和/或中枢12能够确定表示用户的头部定向的脸部单位向量。
在步骤704,用户的头的位置和定向还可以或者可以可替代地通过如下方式来确定:分析来自较早时间的用户头的位置和定向(要么在帧中为较早、要么来自在先帧);以及然后使用来自IMU132的惯性信息来更新用户的头的位置和定向。来自IMU132的信息可以提供用户头的精确运动学数据,但是IMU通常不提供关于用户头的绝对位置信息。亦称“地面真值”的该绝对位置信息可以从获得自捕捉设备20、主体用户的头戴式显示设备2上的相机和/或其他用户的头戴式显示设备2的图像数据来提供。
在各实施例中,用户的头的位置和定向可以通过合作地行动的步骤700和704来确定。在又一些实施例中,步骤700和704中的一者或另一者可被用来确定用户头部的头部位置和定向。
可能发生的是,用户未向前看。因此,除了标识出用户头位置和取向以外,中枢还可以考虑用户的眼睛在其头上的位置。这一信息可由上述眼睛跟踪部件134提供。眼睛跟踪部件能够标识出用户的眼睛的位置,该位置可以被表示成眼睛单位向量,该眼睛单位向量示出了与用户眼睛中心所在以及向前看的位置之间的向左、向右、向上和/或向下的偏离(即脸部单位向量)。脸部单位向量可以被调整为定义用户正在查看何处的眼睛单位向量。
在步骤710,接着可以确定用户的FOV。头戴式显示设备2的用户的视图范围可以基于假想用户的向上、向下、向左和向右的周向视场(peripheralvision)来预定义。为了确保针对给定用户计算得到的FOV包括特定用户可能够在FOV的范围内看到的对象,或这一假设用户可不当作具有最大可能周向视场的人。在各实施例中,一些预定额外FOV可被添加到这一点以确保为给定用户捕捉足够数据。
然后,可以通过取得视图范围并且将其中心定在通过眼睛单位向量的任何偏离进行了调整的脸部单位向量周围来计算用户在给定时刻的FOV。除了定义用户在给定时刻正在看什么之外,用户的FOV的这一确定还有用于确定用户不能看到什么。如下文解释的,到特定用户可看到的那些区域的虚拟对象的有限处理提高了处理速度并降低了等待时间。
在上述实施例中,中枢12计算该场景中的一个或多个用户的FOV。在又一些实施例中,用户的处理单元4可在这一任务中共享。例如,一旦用户头部位置和眼睛定向被估计,这一信息就可被发送给可基于与头部位置(来自IMU132)和眼睛位置(来自眼睛跟踪部件134)有关的更新近数据来更新位置、定向等的处理单元。
现在参考图10,在中枢12上运行的应用或用户18中的一者或多者可能已将静态和/或动态虚拟对象置于场景中。当用户在混合现实环境内四处移动时,这些虚拟对象可面向各个方向中的任何方向上,但一旦用户停止移动达预定时段,则围绕用户的一个或多个虚拟对象可旋转朝向用户。在步骤618,中枢可以使用场景图以及用户是正在移动还是站住不动的确定来调整当前时间所有这些静态和动态虚拟对象的x、y和z位置(包括定向)。可替代地,该信息可以在步骤618由处理单元4中的一个或多个来生成并且发送给中枢12。
现在参考附图13的流程图描述步骤618的进一步细节。在步骤714,中枢12确定用户是否不动达预定时段。具体而言,中枢12本身或结合头戴式显示器2中的传感器能够确定身体移动的变化。一旦初始确定用户不动,则计数器可开始,它逐帧递增,直至确定用户已不动达预定时段。当计数器正在递增时,如果用户开始移动,则时间计数器可复位到零,且不再次开始,直至在将来帧中确定用户不动。
尽管“不动”可以是用户站住或坐下完全静止,但本文所使用的术语“不动”可包括某种程度的运动。例如,用户可以在至少他/她的脚站住不动但脚之上的一个或多个身体部位(膝、臀以上、头部,等等)移动的情况下是不动的。本文所使用的“不动”可意指用户坐下但用户的腿、上半身或头部移动的情况。本文所使用的“不动”可意指用户正在移动但在用户停下之后没有在绕用户为中心的小直径(例如,3英尺)之外。在该示例中,用户可以例如在该直径内转身(例如,以查看他/她身后的虚拟对象)并且仍然被认为“不动”。
术语“不动”还可以指用户在预定义时段内移动得小于预定量。作为许多示例之一,在用户在5秒时段内在任何方向上移动得小于3英尺的情况下,他可被认为不动。如上所述,这仅作为示例,且在又一些示例中,移动量和检测到这一移动量的时段两者都可变化。在将用户的头部称为不动时,这可包括用户的头部静止或在预定时段期间具有有限移动。在一个示例中,在用户的头部在5秒时段内绕任何轴枢转少于45°的情况下,用户的头部可被认为不动。同样,这只是示例且可以变化。在用户的移动至少符合以上标识的移动中的任一者的情况下,头戴式显示设备2可以确定用户“不动”。
如果在执行步骤714时用户移动通过场景,或者没有不动达预定时段,则中枢可以执行维持虚拟对象作为世界锁定对象的步骤716。如上所述,在各实施例中,预定时段可以在1和5秒之间,但在又一些实施例中,这一时段可以更长或更短。
如果在步骤714确定用户不动达预定时段,则在步骤720,中枢可以检查一个或多个虚拟对象是静态还是动态的。如果确定一个或多个虚拟对象是静态的,则在步骤716,这些对象保持世界锁定。在动态虚拟对象是上述虚拟显示板的情况下,这些对象具有清晰的面向前方的表面,即显示内容的表面。然而,如上所述,可存在不同于虚拟显示板的动态虚拟对象。这些其他动态虚拟对象可具有所定义的正面,它朝用户旋转,如下文所解释的。在步骤716,在动态虚拟对象不具有所定义的正面的情况下,这些虚拟对象还可保持世界锁定。
另一方面,如果一个或多个虚拟对象被确定为是动态的且具有所定义的正面,则它们可旋转以面向用户,如下文参考步骤722-736解释的。在步骤722-736朝用户旋转的动态虚拟对象可以是场景中的所有动态虚拟对象,或者只是处于用户的预定半径内的那些动态虚拟对象。
在步骤722,可以确定具有正面的每一动态虚拟对象与用户之间的位置向量。在步骤726,每一动态虚拟对象的正面可以按预定角速度朝其位置向量绕x、y和/或z轴旋转。这一旋转将每次通过图10中所示的步骤的循环来继续,直至对象与其位置向量在x、y以及z上对齐或直至确定用户正在移动(即,并非如本文所使用的术语“不动”)。注意,给定本文构想的虚拟对象朝用户旋转的角速度,旋转量对于每一给定帧而言很小。
在步骤728,中枢计算虚拟对象在三维空间中的新位置和外观。在步骤732,中枢可以检查经更新的虚拟对象是否占据与场景中的另一虚拟对象或现实世界对象相同的空间。具体而言,现实世界对象的位置可被标识在三维空间中,且经更新的虚拟对象的位置也可在三维空间中是已知的。如果在步骤732存在任何重叠,则中枢12可以根据应用中定义的默认规则或度量来在步骤736调整虚拟对象的位置。如果没有重叠,则中枢可接着执行图10中的步骤626。
使用图13的步骤,动态虚拟对象可以在用户移动通过虚拟现实环境时如图8所示保持世界锁定,并随后一旦用户保持不动达预定时段则可朝用户旋转,如图9所示。一旦用户开始再次移动,则经旋转的虚拟对象可留在它们的经旋转的位置,或者它们可以旋转回它们在朝用户旋转之前的位置。
如上所述,用户可以选择一个或多个虚拟对象,例如在虚拟对象旋转朝向用户时。一个或多个动态虚拟对象的选择可以由若干姿势中的任一者来指示,诸如例如用户指向当前或先前帧中的一个或多个动态虚拟对象。作为替换或补充,中枢12可以确定用户的注视固定在当前或先前帧中的一个或多个虚拟对象上。所选择的虚拟对象可以例如保持经旋转的且在距用户固定距离处,甚至在用户开始再次在场景内四处移动之后。一旦被选择,该一个或多个动态虚拟对象可保持被选择,直至用户执行指示解除一个或多个动态虚拟对象的选择的另一姿势。解除选择姿势可以例如是身体手姿势或用户不再看一个或多个动态虚拟对象达预定时段。
用户还可抓握一个或多个动态虚拟对象并将它们从它们的默认位置移动到FOV中的新位置。这些新位置可被设置为新默认位置,或各位置可在用户解除选择动态虚拟对象之后返回先前默认位置。
一旦如图13所描述地设置了静态和动态虚拟对象的位置,中枢12就可在步骤626(图10)将所确定的信息传送给一个或多个处理单元4。在步骤626中传送的信息包括将场景图传输给所有用户的处理单元4。所传送的信息可进一步包括将每一头戴式显示设备2的所确定的FOV传输给相应头戴式显示设备2的处理单元4。所传送的信息可进一步包括传输静态和动态虚拟对象特性,包括所确定的位置、定向、形状以及外观。
上面仅以示例的方式描述了处理步骤600至626。要理解,这些步骤中的一个或多个在其他实施例中可被省略,所述步骤可以按不同次序来执行,或者可以添加附加步骤。处理步骤604到618可能在计算上是昂贵的但强大的中枢12可在60赫兹帧中执行这些步骤若干次。在又一些实施例中,作为替换或补充,步骤604到618中的一者或多者可由一个或多个处理单元4中的一者或多者来执行。此外,尽管图10示出了各个参数的确定、以及然后所有这些参数在步骤626一次传送,但是能够理解,所确定的参数可以一被确定就被异步地发送给处理单元4。
现在将参考步骤630至656解释处理单元4和头戴式显示设备2的操作。以下描述关于单个处理单元4和头戴式显示设备2。然而,以下描述可适用于该系统中的每一处理单元4和显示设备2。
如上所述,在初始步骤656,头戴式显示设备2生成图像和IMU数据,所述图像和IMU数据在步骤630通过处理单元4被发送给中枢12。尽管中枢12正在处理图像数据,处理单元4也在处理图像数据,以及执行准备渲染图像的各步骤。
在步骤634,处理单元4可精选渲染操作以使得仅有有可能在该头戴式显示设备2的最终FOV内出现的那些虚拟对象被渲染。其他虚拟对象的位置仍可被跟踪,但是它们不被渲染。还可设想,在其他实施例中,步骤634可以被完全跳过且整个图像被渲染。
处理单元4接下来可执行渲染设置步骤638,在该步骤使用在步骤626中接收到的场景图和FOV来执行设置渲染操作。一旦接收到虚拟对象数据,则处理单元就可以对要在该FOV中渲染的虚拟对象执行步骤638中的渲染设置操作。步骤638中的设置渲染操作包括与要在最终FOV中显示的虚拟对象相关联的共同渲染任务。这些渲染任务可包括例如阴影图生成、光照和动画。在各实施例中,渲染设置步骤638可进一步包括可能的绘制信息的编译,诸如要在预测的最终FOV中显示的虚拟对象的顶点缓冲、纹理和状态。
再次参考图10,使用在步骤626从中枢12接收到的信息,处理单元4可接着在步骤644确定用户FOV中的遮挡和阴影。具体而言,该场景图具有所有对象(包括移动和非移动对象和虚拟对象)在该场景中的x、y和z位置。已知用户的位置以及他们对该FOV中的对象的视线的情况下,处理单元4随后可确定虚拟对象是否全部或部分遮挡该用户对现实世界对象的视图。此外,处理单元4可确定现实世界对象是否部分或全部遮挡该用户对虚拟对象的视图。遮挡是因用户而异的。虚拟对象可能在第一用户的视图中阻挡或被阻挡,但是在第二用户的视图中不阻挡或被阻挡。因此,遮挡确定可以在每个用户的处理单元4中执行。然而,能够理解,遮挡确定可以附加地或可替代地由中枢12来执行。
在本技术的上下文中,处理单元4在步骤644检查重新定位的动态虚拟对象(如平板460)是否遮挡另一对象或被另一对象遮挡。如上所述且如下所解释的,不透明滤光器114允许平板460被显示,同时阻挡来自出现在平板460后面(从用户的视角来看)的虚拟或现实世界对象的光。平板460可被出现得比平板460更靠近用户的对象遮挡。在这种情况下,用户可什么也不做(并留下平板460被遮挡),或用户可以将平板460重新定位在遮挡对象前方。在这种情况下,可使得平板460更小以维持平板460对用户的相同全景。
在步骤646中,处理单元4的GPU322可以接下来渲染要显示给该用户的图像。渲染操作的各部分可能已经在渲染设置步骤638中被执行并且被周期性地更新。现在参照图14和14A的流程图描述渲染步骤646的进一步细节。图14和14A是参考渲染虚拟显示板460的示例来描述的,但以下步骤适用于渲染所有静态和动态虚拟对象。
在图14的步骤790中,处理单元4访问环境的模型。在步骤792,处理单元4确定用户相对于该环境模型的视点。即,该系统确定用户正在查看的环境或空间的什么部分。在一个实施例中,步骤792是使用上述中枢计算设备12、处理单元4以及头戴式显示设备2的协作努力。
在一个实施例中,处理单元4将尝试将一个或多个虚拟显示板460添加到场景中。在步骤794,该系统在z缓冲器中从头戴式显示设备2的用户的视点来渲染以前所创建的三维环境模型,而不将任何色彩信息渲染到相应色彩缓冲器中。这有效地令所呈现的该环境的图像保留为全黑的,但是存储该环境中的各对象的z(深度)数据。步骤794使得为每个像素(或者为像素的子集)存储深度值。
在步骤798,虚拟内容(例如,与虚拟显示板460相对应的虚拟图像)被渲染到相同的z缓冲器,且虚拟内容的色彩信息被写入对应的色彩缓冲器。这有效地允许在考虑到现实世界对象或者其他虚拟对象遮挡虚拟显示板460的全部或一部分的情况下将虚拟显示板绘制在头戴微显示器120上。
在步骤802,该系统标识显示虚拟显示板的微显示器120的像素。在步骤806,为微显示器120的各像素确定阿尔法值。在传统的色度键控系统中,阿尔法值以逐像素为基础用于标识出图像如何不透明。在一些应用中,阿尔法值可以是二进制的(例如,开或关)。在其他应用中,阿尔法值可以是具有范围的数字。在一个示例中,在步骤802中标识的每一像素将具有第一阿尔法值且所有其他像素将具有第二阿尔法值。
在步骤810,基于阿尔法值来确定不透明滤光器114的像素。在一个示例中,不透明滤光器114与微显示器120具有相同的分辨率,并且因此不透明滤光器可以使用阿尔法值来控制。在另一实施例中,不透明滤光器与微显示器120具有不同的分辨率,并且因此用于暗化或不暗化不透明滤光器的数据将通过使用任何用于在分辨率之间转换的各种数学算法而从阿尔法值中导出。还可使用用于基于阿尔法值(或其他数据)导出不透明滤光器的控制数据的其他手段。
在步骤812,调整将z缓冲器和色彩缓冲器中的图像、以及阿尔法值和不透明滤光器的控制数据以将光源(虚拟或现实)和阴影(虚拟或现实)纳入考虑。下面参照图14A提供步骤812的更多细节。图14的过程允许在显示器上自动地将虚拟向设备460显示在静止或移动对象上(或相对于静止或移动对象而言),该显示器允许通过该显示器对空间的至少一部分的实际直接查看。
图14A是描述了用于考虑到光源和阴影的过程的一个实施例的流程图,该过程是图14的步骤812的示例性实施方式。在步骤820,处理单元4标识出需要考虑的一个或多个光源。例如,当绘制虚拟图像时,可能需要考虑现实光源。如果该系统将虚拟光源添加到用户的视图,则也可以在头戴式显示设备2中考虑该虚拟光源的效果。在步骤822,标识出被光源照明的模型的部分(包括虚拟对象)。在步骤824,将描绘该照明的图像添加到上述色彩缓冲器。
在步骤828,处理单元4标识出需要被头戴式显示设备2添加的一个或多个阴影区域。例如,如果虚拟对象被添加到阴影中的某区域,则在绘制虚拟对象时需要通过在步骤830调整色彩缓冲器来考虑到该阴影。如果虚拟阴影将被添加到不存在虚拟对象之处,则不透明滤光器114的与该虚拟阴影的位置相对应的像素在步骤834被暗化。
返回图10,在步骤650,处理单元检查:是否到了该将所渲染的图像发送给头戴式显示设备2的时间、或者是否还有时间使用来自中枢12和/或头戴式显示设备2的更加新近的位置反馈数据来进一步细化该图像。在使用60赫兹帧刷新率的系统中,单帧大约为16毫秒。
具体而言,将基于z缓冲器和色彩缓冲器(其在上面参照图14和14A予以了描述)的复合图像发送给微显示器120。即,该一个或多个虚拟显示板460的图像被发送至微显示器120以在适当的像素处显示,同时计入视角和遮挡。在此时,用于不透明滤光器的控制数据也被从处理单元4传送至头戴式显示设备2以控制不透明滤光器114。该头戴式显示器随后将在步骤658中向该用户显示该图像。
另一方面,当在步骤650还没到发送要显示的图像数据帧的时间时,处理单元可以为了更多经更新数据而循环回以进一步细化最终FOV的预测以及FOV中的对象的最终位置的预测。具体而言,如果在步骤650仍然有时间,则处理单元4可返回步骤608以从中枢12获得更新近的传感器数据,并且可返回步骤656以从头戴式显示设备2获得更新近的传感器数据。
上面仅以示例的方式描述了处理步骤630至652。要理解,这些步骤中的一个或多个在其他实施例中可被省略,所述步骤可以按不同次序来执行,或者可以添加附加步骤。
此外,图10中的处理单元步骤的流程图示出了来自中枢12和头戴式显示设备2的所有数据都在单个步骤634循环地提供给处理单元4。然而,将理解,处理单元4可以在不同时刻异步地从中枢12和头戴式显示设备2的不同传感器接收数据更新。头戴式显示设备2提供来自相机112的图像数据和来自IMU132的惯性数据。来自这些传感器的数据的采样可按不同的速率发生且可在不同的时刻被发送给处理单元4。类似地,来自中枢12的经处理的数据可在一时刻且使用与来自相机112和IMU132两者的数据不同的周期性来发送给处理单元4。一般而言,处理单元4可在一帧期间异步地多次接收来自中枢12和头戴式显示设备2的经更新的数据。在处理单元循环通过其各步骤时,在外插FOV的最终预测和对象位置时,它使用它接收到的最新近数据。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。本发明的范围由所附的权利要求进行定义。

Claims (10)

1.一种用于向一个或多个用户呈现混合现实体验的系统,所述系统包括:
针对所述一个或多个用户的一个或多个显示设备,每一显示设备包括用于向该显示设备的用户显示虚拟对象的显示单元;以及
耦合到所述一个或多个显示设备的计算系统,所述计算系统生成用于显示在所述一个或多个显示设备上的虚拟对象,当所述一个或多个用户中的一用户正在移动时所述计算系统在第一位置处将所述虚拟对象显示给所述用户,且当所述用户不动时所述计算系统在旋转以面向所述用户的第二位置处将所述虚拟对象显示给所述用户。
2.如权利要求1所述的系统,其特征在于,所述计算系统包括中枢计算系统和一个或多个处理单元中的至少一者。
3.如权利要求1所述的系统,其特征在于,在所述用户被限于在小直径内移动达预定时段时,所述用户是不动的且计算系统在所述第二位置处显示所述虚拟对象。
4.如权利要求1所述的系统,其特征在于,所述虚拟对象是虚拟显示板。
5.如权利要求1所述的系统,其特征在于,所述计算系统允许用户选择虚拟对象并使用一姿势将所述虚拟对象移至三维空间中的新位置。
6.一种用于向用户呈现混合现实体验的系统,所述系统包括:
针对所述用户的显示设备,所述显示设备包括用于感测与所述显示设备的位置相关的数据的第一组传感器和用于将虚拟对象显示给所述显示设备的所述用户的显示单元;以及
操作耦合到所述显示设备的计算系统,所述计算系统包括用于感测与所述用户的位置相关的数据的第二组传感器,并且所述计算系统生成所述虚拟对象以显示在所述显示设备上,在所述用户将他们的移动从运动中改变为不动达预定时段时,所述计算系统将所述虚拟对象向所述用户显示为旋转以面向所述用户。
7.如权利要求6所述的系统,其特征在于,所述虚拟对象是动态虚拟对象,所述计算系统显示作为静态虚拟对象的第二虚拟对象,在所述用户将他们的移动从运动中改变为不动达预定时段时,所述计算系统将所述静态虚拟对象显示给所述用户作为保持世界锁定的且不旋转来面向所述用户。
8.如权利要求6所述的系统,其特征在于,所述计算机系统向所述用户显示多个虚拟对象,在所述用户将他们的移动从运动中改变为不动达预定时段时,所述多个虚拟对象全部被显示为朝所述用户旋转。
9.如权利要求6所述的系统,其特征在于,所述计算系统在虚拟显示板上显示静态和动态图像之一中的至少一者。
10.一种用于向一个或多个用户呈现混合现实体验的方法,所述方法包括:
(a)在用户相对于虚拟对象移动时,在所述用户的视野中的第一位置处将所述虚拟对象显示给所述用户;以及
(b)当所述用户保持不动达预定时段时,将所述虚拟对象旋转到第二位置以面向所述用户。
CN201480029678.0A 2013-05-23 2014-05-22 全息锚定和动态定位 Active CN105264478B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/901,342 US9230368B2 (en) 2013-05-23 2013-05-23 Hologram anchoring and dynamic positioning
US13/901,342 2013-05-23
PCT/US2014/039050 WO2014190106A1 (en) 2013-05-23 2014-05-22 Hologram anchoring and dynamic positioning

Publications (2)

Publication Number Publication Date
CN105264478A true CN105264478A (zh) 2016-01-20
CN105264478B CN105264478B (zh) 2019-06-11

Family

ID=50977124

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480029678.0A Active CN105264478B (zh) 2013-05-23 2014-05-22 全息锚定和动态定位

Country Status (5)

Country Link
US (1) US9230368B2 (zh)
EP (1) EP3000020B1 (zh)
KR (1) KR102281026B1 (zh)
CN (1) CN105264478B (zh)
WO (1) WO2014190106A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445111A (zh) * 2016-08-30 2017-02-22 上海乐相科技有限公司 一种虚拟现实设备空间信息的锁定方法及装置
CN106599893A (zh) * 2016-12-22 2017-04-26 深圳大学 基于增强现实的物体偏离识别图后的处理方法及装置
CN106774821A (zh) * 2016-11-08 2017-05-31 广州视源电子科技股份有限公司 基于虚拟现实技术的显示方法和系统
CN106886287A (zh) * 2017-03-23 2017-06-23 广州三星通信技术研究有限公司 用于在虚拟现实设备中共享画面的方法和装置
CN107787472A (zh) * 2015-08-04 2018-03-09 谷歌有限责任公司 用于虚拟现实中的凝视交互的悬停行为
CN109952550A (zh) * 2016-06-16 2019-06-28 弗伊德有限责任公司 组合的虚拟和物理环境中的重定向移动
CN110389653A (zh) * 2018-04-16 2019-10-29 宏达国际电子股份有限公司 用于追踪和渲染虚拟对象的追踪系统及用于其的操作方法
CN110495190A (zh) * 2017-04-10 2019-11-22 雅马哈株式会社 语音提供设备、语音提供方法和程序
CN111417987A (zh) * 2017-07-28 2020-07-14 北奥拜勃工作室有限公司 用于实时复杂角色动画和交互性的系统和方法
CN113842227A (zh) * 2021-09-03 2021-12-28 上海涞秋医疗科技有限责任公司 医疗辅助三维模型定位匹配方法、系统、设备及介质
CN117032450A (zh) * 2020-09-25 2023-11-10 苹果公司 用于操纵环境中的对象的方法

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100138700A (ko) * 2009-06-25 2010-12-31 삼성전자주식회사 가상 세계 처리 장치 및 방법
US10499118B2 (en) * 2012-04-24 2019-12-03 Skreens Entertainment Technologies, Inc. Virtual and augmented reality system and headset display
US11284137B2 (en) 2012-04-24 2022-03-22 Skreens Entertainment Technologies, Inc. Video processing systems and methods for display, selection and navigation of a combination of heterogeneous sources
WO2014008185A1 (en) 2012-07-02 2014-01-09 Sony Computer Entertainment Inc. Methods and systems for interaction with an expanded information space
JP6313432B2 (ja) * 2013-06-09 2018-04-18 株式会社ソニー・インタラクティブエンタテインメント 頭部装着ディスプレイ
US10175483B2 (en) * 2013-06-18 2019-01-08 Microsoft Technology Licensing, Llc Hybrid world/body locked HUD on an HMD
US9508195B2 (en) * 2014-09-03 2016-11-29 Microsoft Technology Licensing, Llc Management of content in a 3D holographic environment
US9459698B2 (en) * 2014-12-10 2016-10-04 TCL Research America Inc. Gesture based power management system and method
US10156721B2 (en) * 2015-03-09 2018-12-18 Microsoft Technology Licensing, Llc User-based context sensitive hologram reaction
CN104783801A (zh) * 2015-04-14 2015-07-22 精迪测量技术(上海)有限公司 人体高速扫描仪及三维建模方法
US9736440B2 (en) * 2015-05-26 2017-08-15 Chunghwa Picture Tubes, Ltd. Holographic projection device capable of forming a holographic image without misalignment
JP6571767B2 (ja) * 2015-06-05 2019-09-04 マクセル株式会社 映像表示装置および制御方法
CN104915564B (zh) * 2015-06-16 2017-03-22 深圳市腾讯计算机系统有限公司 实现虚拟角色转弯的方法和装置
EP3118723A1 (en) * 2015-07-13 2017-01-18 Thomson Licensing Method and apparatus for providing haptic feedback and interactivity based on user haptic space (hapspace)
US9952656B2 (en) 2015-08-21 2018-04-24 Microsoft Technology Licensing, Llc Portable holographic user interface for an interactive 3D environment
US20170092002A1 (en) * 2015-09-30 2017-03-30 Daqri, Llc User interface for augmented reality system
DE102016005579B4 (de) * 2016-05-06 2022-05-19 Audi Ag Verfahren zum Betreiben eines Anzeigesystems und Anzeigesystem
US11468111B2 (en) 2016-06-01 2022-10-11 Microsoft Technology Licensing, Llc Online perspective search for 3D components
DE102016006855A1 (de) * 2016-06-04 2017-12-07 Audi Ag Verfahren zum Betreiben eines Anzeigesystems und Anzeigesystem
US10338392B2 (en) 2016-06-13 2019-07-02 Microsoft Technology Licensing, Llc Identification of augmented reality image display position
US10037626B2 (en) 2016-06-30 2018-07-31 Microsoft Technology Licensing, Llc Interaction with virtual objects based on determined restrictions
US10489978B2 (en) * 2016-07-26 2019-11-26 Rouslan Lyubomirov DIMITROV System and method for displaying computer-based content in a virtual or augmented environment
US10044925B2 (en) 2016-08-18 2018-08-07 Microsoft Technology Licensing, Llc Techniques for setting focus in mixed reality applications
US20180082477A1 (en) * 2016-09-22 2018-03-22 Navitaire Llc Systems and Methods for Improved Data Integration in Virtual Reality Architectures
EP3299323B1 (en) 2016-09-23 2020-04-01 Otis Elevator Company Secondary car operating panel for elevator cars
CN106569337B (zh) * 2016-10-21 2019-11-08 北京小鸟看看科技有限公司 一种虚拟现实系统及其定位方法
US10311543B2 (en) 2016-10-27 2019-06-04 Microsoft Technology Licensing, Llc Virtual object movement
US10499997B2 (en) 2017-01-03 2019-12-10 Mako Surgical Corp. Systems and methods for surgical navigation
US10212428B2 (en) * 2017-01-11 2019-02-19 Microsoft Technology Licensing, Llc Reprojecting holographic video to enhance streaming bandwidth/quality
US10726602B2 (en) 2017-02-03 2020-07-28 Sony Corporation Apparatus and method to generate realistic three-dimensional (3D) model animation
US10282909B2 (en) 2017-03-23 2019-05-07 Htc Corporation Virtual reality system, operating method for mobile device, and non-transitory computer readable storage medium
US10719870B2 (en) 2017-06-27 2020-07-21 Microsoft Technology Licensing, Llc Mixed reality world integration of holographic buttons in a mixed reality device
US10304239B2 (en) 2017-07-20 2019-05-28 Qualcomm Incorporated Extended reality virtual assistant
US10671237B2 (en) * 2017-10-16 2020-06-02 Microsoft Technology Licensing, Llc Human-machine interface for presenting a user interface on a virtual curved visual surface
US11087527B2 (en) * 2017-12-01 2021-08-10 Koninklijke Kpn N.V. Selecting an omnidirectional image for display
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
US10643398B2 (en) 2018-07-23 2020-05-05 Microsoft Technology Licensing, Llc Depth ray layer for reduced visual noise
US10375009B1 (en) * 2018-10-11 2019-08-06 Richard Fishman Augmented reality based social network with time limited posting
US11047691B2 (en) * 2018-10-31 2021-06-29 Dell Products, L.P. Simultaneous localization and mapping (SLAM) compensation for gesture recognition in virtual, augmented, and mixed reality (xR) applications
US10885715B2 (en) * 2019-01-14 2021-01-05 Microsoft Technology Licensing, Llc Interactive carry
US10852906B2 (en) 2019-02-15 2020-12-01 Microsoft Technology Licensing, Llc System and method for identifying locations for virtual items within a physical environment
WO2020170253A1 (en) * 2019-02-24 2020-08-27 Reality Plus Ltd. Changing the opacity of augmented reality glasses in response to external light sources
US11159766B2 (en) 2019-09-16 2021-10-26 Qualcomm Incorporated Placement of virtual content in environments with a plurality of physical participants
CN111179184B (zh) * 2019-11-29 2021-05-04 广东工业大学 基于随机抽样一致性的鱼眼图像有效区域提取方法
US10911885B1 (en) * 2020-02-03 2021-02-02 Microsoft Technology Licensing, Llc Augmented reality virtual audio source enhancement
US11325043B2 (en) 2020-05-15 2022-05-10 Microsoft Technology Licensing, Llc Utilizing multiple input sources for generating gameplay locations
US11829529B2 (en) * 2021-07-13 2023-11-28 Meta Platforms Technologies, Llc Look to pin on an artificial reality device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110181497A1 (en) * 2010-01-26 2011-07-28 Roni Raviv Object related augmented reality play system
CN102419631A (zh) * 2010-10-15 2012-04-18 微软公司 虚拟内容到现实内容中的融合
CN102540464A (zh) * 2010-11-18 2012-07-04 微软公司 提供环绕视频的头戴式显示设备
CN102566756A (zh) * 2010-12-16 2012-07-11 微软公司 用于扩展现实显示的基于理解力和意图的内容
CN102591449A (zh) * 2010-10-27 2012-07-18 微软公司 虚拟内容和现实内容的低等待时间的融合
US20130083008A1 (en) * 2011-09-30 2013-04-04 Kevin A. Geisner Enriched experience using personal a/v system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6031519A (en) 1997-12-30 2000-02-29 O'brien; Wayne P. Holographic direct manipulation interface
US8416276B2 (en) 2006-10-26 2013-04-09 Seereal Technologies S.A. Mobile telephony system comprising holographic display
US20090102603A1 (en) 2007-10-19 2009-04-23 Fein Gene S Method and apparatus for providing authentication with a user interface system
CN102317873A (zh) 2008-12-10 2012-01-11 赫勒拉德有限责任公司 用于彩色运动全息术的系统和方法
US20120206485A1 (en) 2010-02-28 2012-08-16 Osterhout Group, Inc. Ar glasses with event and sensor triggered user movement control of ar eyepiece facilities
CN103460256B (zh) * 2011-03-29 2016-09-14 高通股份有限公司 在扩增现实系统中将虚拟图像锚定到真实世界表面
US20130328925A1 (en) 2012-06-12 2013-12-12 Stephen G. Latta Object focus in a mixed reality environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110181497A1 (en) * 2010-01-26 2011-07-28 Roni Raviv Object related augmented reality play system
CN102419631A (zh) * 2010-10-15 2012-04-18 微软公司 虚拟内容到现实内容中的融合
CN102591449A (zh) * 2010-10-27 2012-07-18 微软公司 虚拟内容和现实内容的低等待时间的融合
CN102540464A (zh) * 2010-11-18 2012-07-04 微软公司 提供环绕视频的头戴式显示设备
CN102566756A (zh) * 2010-12-16 2012-07-11 微软公司 用于扩展现实显示的基于理解力和意图的内容
US20130083008A1 (en) * 2011-09-30 2013-04-04 Kevin A. Geisner Enriched experience using personal a/v system

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107787472A (zh) * 2015-08-04 2018-03-09 谷歌有限责任公司 用于虚拟现实中的凝视交互的悬停行为
CN109952550A (zh) * 2016-06-16 2019-06-28 弗伊德有限责任公司 组合的虚拟和物理环境中的重定向移动
CN106445111B (zh) * 2016-08-30 2019-05-21 上海乐相科技有限公司 一种虚拟现实设备空间信息的锁定方法及装置
CN106445111A (zh) * 2016-08-30 2017-02-22 上海乐相科技有限公司 一种虚拟现实设备空间信息的锁定方法及装置
CN106774821B (zh) * 2016-11-08 2020-05-19 广州视源电子科技股份有限公司 基于虚拟现实技术的显示方法和系统
CN106774821A (zh) * 2016-11-08 2017-05-31 广州视源电子科技股份有限公司 基于虚拟现实技术的显示方法和系统
CN106599893A (zh) * 2016-12-22 2017-04-26 深圳大学 基于增强现实的物体偏离识别图后的处理方法及装置
CN106599893B (zh) * 2016-12-22 2020-01-24 深圳大学 基于增强现实的物体偏离识别图后的处理方法及装置
CN106886287A (zh) * 2017-03-23 2017-06-23 广州三星通信技术研究有限公司 用于在虚拟现实设备中共享画面的方法和装置
CN106886287B (zh) * 2017-03-23 2020-06-26 广州三星通信技术研究有限公司 用于在虚拟现实设备中共享画面的方法和装置
CN110495190A (zh) * 2017-04-10 2019-11-22 雅马哈株式会社 语音提供设备、语音提供方法和程序
CN110495190B (zh) * 2017-04-10 2021-08-17 雅马哈株式会社 语音提供设备、语音提供方法和程序记录介质
CN111417987A (zh) * 2017-07-28 2020-07-14 北奥拜勃工作室有限公司 用于实时复杂角色动画和交互性的系统和方法
CN110389653A (zh) * 2018-04-16 2019-10-29 宏达国际电子股份有限公司 用于追踪和渲染虚拟对象的追踪系统及用于其的操作方法
CN110389653B (zh) * 2018-04-16 2023-05-02 宏达国际电子股份有限公司 用于追踪和渲染虚拟对象的追踪系统及用于其的操作方法
CN117032450A (zh) * 2020-09-25 2023-11-10 苹果公司 用于操纵环境中的对象的方法
CN113842227A (zh) * 2021-09-03 2021-12-28 上海涞秋医疗科技有限责任公司 医疗辅助三维模型定位匹配方法、系统、设备及介质
CN113842227B (zh) * 2021-09-03 2024-04-05 上海涞秋医疗科技有限责任公司 医疗辅助三维模型定位匹配方法、系统、设备及介质

Also Published As

Publication number Publication date
WO2014190106A1 (en) 2014-11-27
US20140347391A1 (en) 2014-11-27
KR20160012139A (ko) 2016-02-02
CN105264478B (zh) 2019-06-11
KR102281026B1 (ko) 2021-07-22
EP3000020A1 (en) 2016-03-30
US9230368B2 (en) 2016-01-05
EP3000020B1 (en) 2019-06-26

Similar Documents

Publication Publication Date Title
CN105264478B (zh) 全息锚定和动态定位
CN102591449B (zh) 虚拟内容和现实内容的低等待时间的融合
CN105359076B (zh) 多步骤虚拟对象选择方法和装置
JP6860488B2 (ja) 複合現実システム
CN102419631B (zh) 虚拟内容到现实内容中的融合
EP3011411B1 (en) Hybrid world/body locked hud on an hmd
CN102591016B (zh) 用于扩展现实显示的优化聚焦区
CN105452994B (zh) 虚拟物体的同时优选观看
CN102566756B (zh) 用于扩展现实显示的基于理解力和意图的内容
CN105393158A (zh) 共享的和私有的全息物体
US20130326364A1 (en) Position relative hologram interactions
US20140176591A1 (en) Low-latency fusing of color image data
US20130342572A1 (en) Control of displayed content in virtual environments
CN104995583A (zh) 用于混合现实环境的直接交互系统
CN107810634A (zh) 用于立体增强现实的显示器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant