CN108885492A - 虚拟对象路径控制 - Google Patents

虚拟对象路径控制 Download PDF

Info

Publication number
CN108885492A
CN108885492A CN201780017803.XA CN201780017803A CN108885492A CN 108885492 A CN108885492 A CN 108885492A CN 201780017803 A CN201780017803 A CN 201780017803A CN 108885492 A CN108885492 A CN 108885492A
Authority
CN
China
Prior art keywords
physical space
region
virtual objects
display
occupancy
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
CN201780017803.XA
Other languages
English (en)
Other versions
CN108885492B (zh
Inventor
M·J·舍恩伯格
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 CN108885492A publication Critical patent/CN108885492A/zh
Application granted granted Critical
Publication of CN108885492B publication Critical patent/CN108885492B/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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/216Input arrangements for video game devices characterised by their sensors, purposes or types using geographical information, e.g. location of the game device or player using GPS
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/65Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Environmental & Geological Engineering (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

公开了用于控制在显示器上或通过显示器查看时物理空间中的虚拟对象放置和移动的示例。示例方法包括:接收指示物理空间中的多个区域随时间的占用转变的数目的计数,在基于物理空间中的多个区域中的每个区域的计数而选择的初始位置中显示虚拟对象,并且至少基于虚拟对象的初始位置和物理空间中的多个区域中的每个区域的计数来确定在显示器上或通过显示器查看时虚拟对象在物理空间中的已更新位置。这个示例方法还包括在已更新位置中显示虚拟对象,虚拟对象被控制为至少基于物理对象穿过物理空间的移动而在物理空间中移动。

Description

虚拟对象路径控制
背景技术
在增强和/或虚拟现实应用中,虚拟对象可以被显示以便看起来在物理环境(例如,查看者所在的物理环境和/或查看者所在的物理环境的表示)内和/或与物理环境交互。一些虚拟对象可能是静止的,而其他虚拟对象可能穿过物理环境移动。
附图说明
图1示出了人类对象和其他物理对象可以移动穿过其的示例物理空间。
图2示出了图1的物理空间的采样区域的占用转变的示例直方图。
图3是用于监测物理空间中的占用转变的方法的流程图。
图4是用于基于物理空间内的占用转变来在该物理空间内显示虚拟对象的方法的流程图。
图5示出了通过透视显示器查看时移动穿过物理空间的虚拟对象的示例呈现。
图6示出了示例性头戴式透视显示设备。
图7示出了示例计算***。
具体实施方式
如上所述,增强现实应用可以被配置为在物理环境和/或空间内呈现一个或多个虚拟对象,以便将虚拟对象与物理空间整合。例如,增强现实应用可以控制显示器(例如,透视显示器)以在现实世界物理对象旁边添加浮动文本(例如,在通过透视显示器查看时)以描述该对象。在另一示例中,增强现实应用可以控制显示器在物理空间内呈现虚拟化身(诸如游戏的虚拟角色)(例如,在通过透视显示器查看时)。以这种方式,虚拟对象可以看起来增强现实世界物理空间、与现实世界物理空间交互或移动通过现实世界物理空间。类似的增强可以应用于物理环境的表示以提供完全沉浸式的虚拟现实应用。例如,可以在显示器上对物理环境进行成像和呈现,并且可以在显示器上的物理环境的表示内显示虚拟对象。关于增强现实应用(例如,其中当通过透视显示器查看时,虚拟对象在相对于物理环境的位置显示)描述的示例也可以适用于虚拟现实应用(例如,其中当在显示器上查看时,虚拟对象在相对于物理环境的位置显示)。
当虚拟对象的行为类似于物理空间中的现实世界对象时,在现实世界空间中包括诸如移动虚拟对象等虚拟对象可以提供更加沉浸式和自然的用户体验。因此,本公开提供了确定当在显示器上或通过显示器查看时物理空间中的虚拟对象放置和/或移动的示例。虚拟对象的放置和/或移动可以至少基于物理空间中的现实世界物理对象放置和/或移动以提供真实的用户体验。
存在于物理空间区域中的对象可以被称为“占用”该物理空间区域。因此,物理空间中的区域的占用的变化可以指示物理对象穿过那些区域的移动。作为简化示例,走廊可以包括沿着走廊的长度的四个地砖。当人类对象步行穿过走廊时,四个地砖上/上方的空间区域的占用可以从未占用(在人类对象进入走廊之前)切换到被占用(当人类对象穿过走廊时)。然后,四个地砖上/上方的空间区域的占用可以从被占用(当人类对象穿过走廊时)切换到未占用(一旦人类对象已经穿过最终地砖)。因此,走廊中的空间区域的占用的变化(例如,被占用与未占用之间的占用转变)可以指示穿过走廊的移动。相对较高的数目的占用转变可以指示频繁移动(例如,高业务量区域)。较低的数目的占用转变可以指示不频繁或没有移动(例如,低无业务区域或无业务区域)。此外,零占用转变可以对应于墙壁、一件家具或其他静止对象。有对象位于其中的零占用转变的这样的位置可以被标记为被占用以便防止虚拟对象与物理对象的冲突。同样地,没有对象位于其中的零占用转变的位置可以被标记为未占用以指示自由空间。在一些示例中,传感器数据(例如,来自噪声传感器)可以指示对象边缘附近的相对较高的占用转变计数(例如,在对象遇到自由空间的区域中)。因此,为了补偿这样的噪声,可以鉴于对象放置/识别和/或基于传感器参数来调整和/或分析传感器数据。
图1示出了示例物理空间100,诸如人类对象102等物理对象可以移动/穿过该物理空间100。图1所示的示例表示房间,诸如房屋的起居室。然而,本文中公开的特征可以对应于任何合适的物理空间和/或与任何合适的物理空间结合使用,包括多层建筑物、室外空间和/或其他环境。
如图所示,诸如人类对象102等物理对象穿过物理空间的移动通常可以遵循一个或多个路径,诸如路径104和106。由于空间中的障碍物(例如,家具)、空间内/外的目的地(例如,坐下的地方、到其他房间的门口等)、和/或空间的其他特征,可能形成特定路径。例如,路径104可以是穿过房间通过门口108到相邻房间的典型路径。路径106可以是穿过房间以坐在沙发110和/或椅子112上的典型路径,并且由于诸如桌子114等障碍物的存在而可以以特定方式成形。
表示路径104和106的箭头的不同相对厚度可以指示穿过路径的不同移动频率(例如,路径104可以比路径106更频繁地被穿过)和/或与路径相关联的不同运动速度(例如,人类对象可以更快地步行穿过路径104以到达下一房间,但是在路径106中更慢地步行以导航家具和/或最终坐在椅子112/沙发110上。
为了监测物理空间100以确定穿过空间的移动和/或其他空间占用数据,可以通过一个或多个成像设备对空间进行成像。(多个)成像设备可以连续地对物理空间进行成像,和/或以规则或不规则的间隔捕获帧。例如,物理空间可以由基本上静止的深度相机116进行成像,深度相机116可以被定位以便捕获物理空间100内的多个区域的图像。虽然未示出,但是附加相机(例如,附加的深度相机)可以被定位在物理空间100中(或在物理空间外部,但被定位以捕获物理空间100中的区域的图像)。这些附加相机的视野可以与深度相机116的视野组合以便对物理空间100的所有期望区域进行完全成像。也可以使用多个相机(例如,相机阵列)以便绕过遮挡元素进行成像。例如,第一相机前面的第一对象可以遮挡位于第一对象后面的第二对象。具有不同定向和/或视野的附加相机可以布置在第一对象的一侧,并且因此可以捕获第二对象的图像。
物理空间100可以另外地或替代地使用移动成像设备进行成像,诸如头戴式显示器(HMD)设备118(例如,由人类对象102穿戴)上的面向外RGB和/或深度相机。HMD 118可以用于连续扫描设备的穿戴者附近的物理区域。如下面关于图6更详细地描述的,物理空间的区域可以基于HMD 118的传感器(例如,GPS、加速度计/陀螺仪等)的测量和/或诸如对象识别等处理来标识。
对于移动或基本上静止的相机/相机阵列,可以通过捕获空间的图像(例如,深度图像)并且存储指示物理空间中的多个区域中的每个区域的占用状态的变化的数据来监测物理空间。例如,物理空间100可以由空间中的多个三维点或区域表示。每个点或区域可以具有可以经由使用任何适当的参考系的坐标系(例如,使用笛卡尔坐标系、极坐标系或其他坐标系)可标识的位置。这些空间区域可以以任何合适的格式表示,包括体素网格(例如,物理空间的区域的三维像素和/或三维表示)、点云和/或其他表示。每个体素/点/其他代表性实体可以具有指示物理空间的关联区域的占用和/或占用转变计数的一个或多个值。
物理空间的给定区域的占用可以基于由诸如深度相机116和/或HMD 118等成像设备收集的图像数据来指示。例如,深度图像可以指示对象沿着远离深度相机延伸的给定方向的深度值(例如,远离相机的距离)。因此,物理空间的对应位置(即,在该深度处)可以被标识为被占用。沿着该方向的具有较小深度值(例如,在远离相机的较短距离处)的物理空间的区域可以被发现是空的。在一些实现中,还可以发现具有较大深度值的位置(例如,在远离相机的较远距离处)是空的。可以针对来自第一相机的深度图像执行该分析以指示沿着远离相机延伸的多个方向的物理空间中的占用和空(未占用)区域。此外,可以针对位于不同位置中的其他相机重复该分析,以便确定1)在第一相机的视野之外的物理空间的区域的占用和/或2)与由第一相机成像的对象(例如,可能被第一相机的视野中的其他对象从第一相机遮挡的对象)相比处于更大的深度(相对于第一相机)处的物理空间的区域的占用。
在一些示例中,可以在深度相机处和/或在相关联的计算设备处本地确定空间中的给定点/区域的占用。例如,深度相机116可以将深度图像数据发送到计算设备120以进行处理以确定物理空间中的区域的占用状态。同样地,集成在HMD 118中的深度相机可以将深度图像发送到集成在HMD 118中的处理器/存储设备以进行处理以确定物理空间中的区域的占用状态。在附加或替代示例中,来自深度相机的数据(例如,直接和/或经由计算设备120/HMD 118)可以被发送到远程服务122(例如,经由网络124)以进行处理以确定物理空间中的区域的占用状态。
所确定的占用状态可以存储在任何合适的存储设备中,包括1)在深度相机本地和/或与深度相机相关联的存储设备(例如,计算设备120和/或HMD 118的存储设备)和/或2)在远程服务122本地和/或与远程服务122通信的存储设备。所存储的占用状态可以用标识符标记,或者以其他方式链接到物理空间中的相关联的区域。在附加或替代示例中,上述(多个)存储设备中的一个或多个可以确定或接收物理空间的区域的占用变化的指示并且存储这样的指示。例如,可以将物理空间的给定区域的占用状态(例如,基于正在处理的深度图像)与物理空间的该区域的先前存储的占用状态相比较以便确定占用状态是否已经改变(例如,从被占用变为未占用/空或从未占用/变为被占用)。在一些示例中,将在占用状态从空变为被占用并且然后在阈值时间段内返回(例如,指示对象移动穿过该空间区域)的情况下,可以将占用状态仅标识为有效占用转变。在其他示例中,可以将占用状态的任何变化记录为有效占用转变。
占用转变可以存储为表示物理空间的体素的值,存储为表示物理空间的点云,存储在表格中,和/或以任何其他合适的格式存储。在一些示例中,占用转变可以被存储为从建立的开始时间/日期开始的多个转变(例如,从物理空间的数据的第一记录或者在重置操作之后)。在其他示例中,可以存储滚动时间帧的占用转变(例如,上个月/日/年/等的占用转变)。在一些示例中,占用转变可以由计数器指示,该计数器随着每个有效占用变化而递增。在其他示例中,占用转变可以由概率值指示,其中空间区域是用于穿过空间的移动的路径的概率随着每个有效占用变化而增加。这些仅是示例,可以使用任何合适的表示来反映占用转变量。
仍然参考图1,在点A1、A2、B、C、D和E处示出了空间中的示例区域。例如,点A1和A2对应于物理空间100中的两个相邻的三维区域,每个三维区域沿着路径104。点B对应于物理空间中当前被一件家具(例如,椅子)占用的区域。点C对应于物理空间中沿着路径106的区域。点D对应于物理空间中为空的区域。虽然点A1至D都被示出为具有与物理空间100的地板共面的底面,但点E示出了地板上方的物理空间的空区域。从地板到天花板以及从墙壁到墙壁的物理空间的每个区域可以被成像和跟踪以确定相关联的占用转变。换言之,可以实现一些示例中的***以跟踪所描绘的房间的整个三维体积的占用和占用转变。
图2的图表200中示出了物理空间100中的所示示例点的示例占用转变。如图所示,点A1和A2(用示例笛卡尔坐标示出以示出沿着物理空间的地板,点是相邻的)具有相同数目的占用转变。相对较高数目的占用转变可以指示物理空间的那些区域中的相对较高的业务量区域(例如,如图1的相对较粗的路径104所示)。相反,点B被示出为具有相对较低的占用转变(例如,1)。例如,图1中占用点B的椅子在深度相机开始监测物理空间之后可能已经被移动到该点,并且该移动被记录为单个占用转变。
沿着图1的路径106的点C具有比点A1和A2低的占用转变数目,但是仍然具有比点B高的占用转变数目。点D被示出为具有相对较低的占用转变数目(例如,2)。例如,人类对象可能已经短暂地移动到由点D指示的位置以查看计算设备120的一侧,并且然后离开该区域。点E被示出为具有零占用转变,因为在物理空间的监测期间没有对象可能已经移入/移出该区域。图2所示的占用变化的数目是为了说明的目的而提供的简化示例,以指示物理空间的不同区域的潜在相对测量。给定位置的占用变化的数目可以基于物理空间的观察时间长度,使得随着时间的推移,可以观察到物理空间的区域的更高数目的占用转变。
可以将物理空间的给定区域的占用转变的数目与阈值(例如,预定阈值)相比较以便确定该区域是否是穿过物理空间的移动路径的一部分。阈值可以表示为占用转变的原始数目和/或计数、得分、占用转变的速率、概率(例如,空间中的区域属于路径的概率)和/或任何其他合适的参数。在所示示例中,阈值由线202表示(例如,大约5个占用转变)。如图所示,点A1、A2和C具有高于阈值的相关联的占用转变数目,并且因此被指示与移动路径相关联(例如,分别为图1的路径104和106)。点B、D和E具有低于阈值的相关联的占用转变数目,并且因此不被指示为与移动路径相关联。
图3是用于监测物理空间以便确定穿过物理空间的移动路径的示例方法300的流程图。如本文中使用的,移动路径可以是指物理空间中表现出指示区域的占用(例如,被物理对象)的变化的特性的多个区域。例如,路径每个可以包括物理空间中的多个区域的子集,其中子集中的每个区域与子集中的至少一个其他区域相邻。尽管被称为移动路径,但是一些路径可能不会经历物理对象穿过其的连续移动。例如,给定路径可以具有一个或多个停止和/或暂停点,在这些点处,物理对象可以在沿着路径继续之前暂时停止移动(例如,占用一段时间)。作为现实世界示例,路径可以穿过房间,在一件家具(例如,沙发)的位置处具有停止点,然后从停止点继续到出口或其他目的地点(例如,离开物理空间的边界的门口,其中物理空间可以由监测物理空间的一个或多个相机的(多个)视野来限制)。
方法300可以使用深度相机116、HMD 118的深度相机、计算设备120、远程服务122和/或这些设备的任何组合或子组合来执行。在302处,该方法包括对物理空间进行成像。例如,如上所述,可以使用一个或多个深度相机来对物理空间进行成像。可以针对每个捕获的图像/图像帧顺序地执行该方法,其中一些框可以使用多个处理设备针对多个图像同时完成。可以在方法300的执行期间连续地执行在302处执行的成像,以便继续捕获图像帧用于根据方法300的剩余部分进行处理。
在304处,该方法包括:对于所选择的图像帧,将物理空间中的每个三维区域的值存储为被占用或未占用(例如,空/自由空间)。例如,可以基于图像/成像设备的分辨率将物理空间划分成区域,使得每个区域占用与能够针对图像进行分析的最小三维数据点相对应的大小。取决于可用资源和/或其他考虑因素,可以根据需要按比例放大或缩小分辨率。在区域足够大以包括多个数据点的示例中,可以基于该区域中的所有数据点来确定区域的占用。在一个示例中,如果区域中的任何一个或多个数据点被占用,则可以确定该区域被占用。在另一示例中,如果区域中大于阈值的量的数据点被占用,则可以仅确定该区域被占用。在一些示例中,可以记录与占用确定相关联的时间戳以指示进行占用确定的时间。
在306处,该方法包括检查下一帧图像数据以确定该帧中物理空间中的区域的占用。在308处,该方法包括确定三维区域的占用是否已经被保持(例如,如果空间中的任何三维区域的占用有变化)。如果针对至少一个三维区域发现占用的变化(例如,308处的“否”),则该方法进行到310以针对具有变化的占用的每个三维区域递增计数器(或以其他方式增加占用转变的表示)。该方法可以可选地包括针对每个三维区域存储上一占用变化与当前占用变化之间的时间差,如312所示。利用该信息,可以基于区域的占用的变化有多快(例如,占用转变的变化速率)来估计穿过该区域的移动速度。
然后,该方法继续到314以确定是否要检查另外的帧(例如,是否已经检查了特定分析阶段的所有帧)。如果已经保持三维区域的占用(例如,没有发现占用的变化,在308处的“是”),则该方法可以跳过310和312,并且直接到314以确定是否要检查另外的帧。如果更多帧可用于分析给定的处理阶段(例如,314处的“否”),则该方法返回306以检查下一帧并且确定/记录该帧中的占用变化。例如,可以通过检查多个深度图像(例如,顺序地和/或同时地)来执行深度图像的分析以确定物理空间内的物理对象的移动和/或交互。在一些示例中,在处理每个图像之后和/或一旦检测到一个或多个区域的占用转变,可以计算和/或更新得分。在这样的示例中,该方法通常将沿着314的“否”分支继续,因为一次检查一个图像。在其他示例中,可以以规则的间隔(例如,在已经处理了多个图像帧之后,在已经检测到多个占用变化之后,和/或任何其他合适的间隔,在时间上周期性地)计算和/或更新得分。在这样的示例中,该方法可以沿着314的“是”分支继续,直到检查到导致满足间隔的图像帧(例如,已经过了设定的时间量,已经处理了设定数目的图像帧,已经检测到设定数目的占用变化,等等)。
如果已经检查了所有可用帧(例如,314处的“是”),则该方法继续到316以至少基于不同区域的占用变化的数目来确定每个三维区域的得分。例如,可以将每个区域的占用变化的数目与阈值相比较(例如,如上面关于图2所描述的),如318所示。得分可以指示空间区域是否为穿过空间的移动路径的一部分(例如,高于阈值的得分可以指示区域是路径的一部分,并且低于阈值的得分可以指示区域不是任何路径的一部分)。在一些示例中,得分可以进一步指示路径的使用频率、穿过路径的速度、路径的长度(例如,基于具有高于阈值的得分/占用转变计数的相邻区域的数目)、路径的目的地(例如,位于路径的末端的对象)和/或其他信息。例如,随着给定路径的频率和/或速度增加,得分可以增加。在其他示例中,物理空间的每个区域可以被指派多个不同的得分,例如指示区域是否沿着路径的得分、指示并且基于路径的使用频率的得分(例如,占用转变的数目)、指示并且基于穿过路径的平均移动速度的得分、指示并且基于路径长度的得分等。
在320处,该方法包括构建点云、体素数据库、或指示空间的三维区域和相关联的得分/占用变化的其他格式的数据存储装置。在一些示例中,可以使用其他传感器设备(例如,RGB相机、蓝图、多普勒等)来确定物理空间的特征。这些特征可以用于指导对由成像设备捕获的数据的解释(例如,以标识自由空间区和目标区域以监测占用变化)。
如上所述,可以使用穿过物理空间的移动流程以便作为增强现实体验的一部分控制虚拟对象在物理空间中的放置和/或移动。例如,穿过物理空间移动虚拟角色、化身或其他对象(例如,在通过透视显示器查看时)使得对象能够类似于物理人类对象移动,从而增加由增强现实应用提供的真实感和沉浸感。图4是用于控制在显示器上或通过显示器查看时物理空间中的虚拟对象的放置和移动的示例方法400的流程图。在402处,该方法包括接收指示物理空间中的多个区域在一时间段内的占用转变的数目的计数/得分。例如,计数/得分可以使用诸如图3的方法300等方法生成。即使在方法400的执行期间,也可以动态更新计数/得分,使得虚拟对象的位置/移动基于最近观察到的数据。
在404处,该方法包括在初始位置中显示虚拟对象,初始位置是基于物理空间中的多个区域中的每个区域的计数/得分而选择的。例如,初始位置可以被选择为当前未占用的物理空间的位置并且是移动路径的一部分。移动路径可以包括物理空间中的多个区域的子集,其中子集中的每个区域与子集中的至少一个其他区域相邻,并且其中子集中的每个区域与基本上相等数目的占用转变相关联。
在一些示例中,初始位置可以被选择为具有与虚拟对象和/或增强现实应用/用户的上下文对准的特性/参数的移动路径的一部分。例如,可以将虚拟对象的预期移动速度与和物理空间中的每个路径相关联的移动速度相比较。使用图1的示例,如果期望虚拟对象相对较慢地移动,则可以选择初始位置以占用沿着路径106的物理空间的区域。相反,如果期望虚拟对象相对较快地移动,则可以选择初始位置以占用沿着路径104的物理空间的区域。类似地,如果期望虚拟对象执行诸如坐下等动作,则可以将初始位置选择为沿着路径106,因为路径穿过诸如沙发110和椅子112等附近的家具。相反,如果期望虚拟对象走出房间并且进入另一房间,则可以将初始位置选择为沿着路径104,因为路径指向门口108。在附加或替代示例中,路径选择可以控制虚拟对象的移动、动作和/或其他行为。例如,如果虚拟对象位于路径104上,则虚拟对象的后续移动可以具有比位于路径106上的虚拟对象更高的速度。类似地,如果虚拟对象位于路径106上,则虚拟对象可以被控制为在沿着路径行进之前坐下(例如,在沙发110上)一段时间。
初始位置的选择可以另外地或替代地基于虚拟对象的类型。以这种方式,虚拟对象的大小、由虚拟对象表示的对象(例如,人类、动物、机器人、无生命对象等)和/或虚拟对象的其他特征可以用作选择初始位置时的参数。例如,可以为相对较大的虚拟对象选择大路径或由大量自由空间围绕的路径,以避免物理空间中的虚拟对象与物理对象之间的冲突。同样地,增强现实中的其他虚拟对象的位置可以是选择初始位置时的因素(例如,虚拟对象可以位于未被其他虚拟对象占用的路径中或仅被在相同方向上移动以避免碰撞的虚拟对象占用的路径中)。以这种方式,虚拟对象的特征可以被映射到穿过物理空间的可用移动路径的对应特征(例如,大虚拟对象可以被映射到大路径等)。
在406处,该方法包括确定在显示器上或通过显示器查看时物理空间中的虚拟对象的已更新位置,虚拟对象的已更新位置至少基于虚拟对象在物理空间中的初始位置和物理空间中的多个区域中的每个区域的计数/得分。例如,已更新位置可以被选择为沿着初始位置所在的路径的相邻区域。以这种方式,虚拟对象的已更新位置可以包括物理空间中与所选择的路径相关联的一个或多个已更新三维点,至少一个已更新三维点1)不同于被虚拟对象占用的每个初始三维点并且2)与被虚拟对象占用的初始三维点中的至少一个相邻。在一些示例中,已更新位置可以不直接与初始位置相邻,因为虚拟对象可以被控制为与更新显示相比更快地移动到不同的空间区域。在这样的示例中,已更新位置可以间接地与初始位置相邻(例如,沿着路径并且与直接或间接地与初始位置相邻的区域相邻)。
在408处,该方法包括在显示器上或通过显示器查看时在物理空间的已更新位置中显示虚拟对象。以这种方式,可以至少基于物理对象穿过物理空间的移动来控制虚拟对象在物理空间中移动。物理对象可以包括人类对象、动物、机器人、远程控制对象、和/或可以沿着路径/轨迹穿过空间移动的任何其他物理对象。该方法可以返回到诸如框406等先前的框以确定另外的已更新位置并且继续移动虚拟对象穿过物理空间。
图5示出了通过HMD 502的透视显示器的增强现实场景的示例视图,其中区域504表示通过HMD 502的透视显示器查看的物理空间500的视图。如图所示,虚拟对象(所示示例中的化身506(例如,增强现实应用的角色))可以被控制为以类似于人类对象将移动穿过物理空间的方式移动穿过该物理空间。所示示例涉及虚拟化身,然而本文中提供的示例可以适用于任何虚拟对象,包括但不限于应用的虚拟角色(例如,类人生物、动物、怪物、车辆、和/或其他对象或对象表示)。在时间T1,化身506出现在HMD用户508的右侧,在空间500中的家具前面。在时间T2(比时间T1晚一些时间),化身506沿着以下路径被移动到已更新位置,该路径在家具前方并且在朝向门口以离开空间500的方向上延伸。在时间T3(比时间T2晚一些时间),化身506沿着相同路径被移动到另外的已更新位置,该相同路径在家具前方并且在朝向门口以离开空间500的方向上延伸。化身的自然移动模仿人类对象在进行穿过空间500时可能具有的移动。虽然为了说明的目的提供化身506穿过房间的简单穿越,但是应当理解,化身506可以被控制为在指定的方向上以指定的速度移动以避开障碍物和/或基于化身所在的路径的特征停留或踌躇在特定位置。
通过理解人类和其他物理对象如何使用物理空间,本公开的***和方法使得增强现实应用能够呈现以现实方式与物理空间交互并且移动穿过物理空间的虚拟对象。以这种方式,增强现实应用可以提供模仿用户对现实世界物理环境的体验的沉浸式用户体验。
图6示出了具有透视显示器602的可穿戴眼镜形式的头戴式近眼透视显示***(也称为HMD 600)的非限制性示例。例如,HMD 600可以是图1的HMD 118、图5的HMD 502和/或图7的计算***700(下面描述)的非限制性示例。HMD可以采用任何其他合适的形式,其中透明、半透明和/或不透明的显示器被支撑在查看者的一个或多个眼睛前方。例如,不透明的近眼显示器可以位于查看者的(多个)眼睛前方并且被控制为显示与用户前方的视图相对应的图像(例如,基于由面向前方的图像传感器实时或接近实时地捕获的至少一个图像)。此外,本文中描述的实现可以与任何其他合适的计算设备一起使用,包括但不限于移动计算设备、膝上型计算机、台式计算机、平板计算机、其他可穿戴计算机等。
HMD 600包括透视显示器602和控制器604。控制器604可以被配置为执行与眼睛注视检测、用户输入识别、在透视显示器602上的增强现实图像的视觉呈现和本文中描述的其他操作相关的各种操作。
透视显示器602可以使得诸如增强现实图像(也称为增强图像或全息图)等图像能够被递送到HMD 600的穿戴者的眼睛。透视显示器602可以被配置为向通过透视显示器602查看物理环境的穿戴者在视觉上增强现实世界物理环境的外观。可以使用任何合适的机制经由透视显示器602显示图像。例如,透视显示器602可以包括位于透镜606内的图像产生元件(诸如例如,透视有机发光二极管(OLED)显示器)。作为另一示例,透视显示器602可以包括位于HMD 600的框架内的显示设备(诸如例如,硅上液晶(LCOS)设备或OLED微显示器)。在这个示例中,透镜606可以用作或以其他方式包括用于从显示设备向穿戴者的眼睛递送光的光导。这样的光导可以使得穿戴者能够感知位于穿戴者正在查看的物理环境内的3D全息图像,同时还允许穿戴者直接查看物理环境中的物理对象,从而创建混合现实环境。另外地或替代地,透视显示器602可以经由相应的左眼和右眼显示器呈现左眼和右眼增强现实图像。
HMD 600还可以包括各种传感器和相关的***以向控制器604提供信息。这样的传感器可以包括但不限于一个或多个面向内的图像传感器608A和608B、一个或多个面向外的图像传感器610A和610B、惯性测量单元(IMU)614和一个或多个麦克风616。一个或多个面向内的图像传感器608A、608B可以被配置为从穿戴者的眼睛获取注视跟踪数据形式的图像数据(例如,传感器608A可以获取穿戴者的一个眼睛的图像数据,并且传感器608B可以获取穿戴者的另一个眼睛的图像数据)。
HMD 600的控制器604可以被配置为基于从图像传感器608A、608B接收的信息以任何合适的方式确定穿戴者的每个眼睛的注视方向。例如,一个或多个光源618A、618B(诸如红外光源)可以被配置为引起闪烁的光从穿戴者的每个眼睛的角膜反射。然后,一个或多个图像传感器608A、608B可以被配置为捕获穿戴者的眼睛的图像。从图像传感器608A、608B收集的图像数据确定的闪烁和瞳孔的图像可以由控制器604用来确定每个眼睛的光轴。使用该信息,控制器604可以被配置为确定穿戴者正在注视的方向(也称为注视矢量)。控制器604可以被配置为另外通过将用户的注视矢量投影到周围环境的3D模型上来确定穿戴者正在注视的物理和/或虚拟对象的身份。一个或多个光源618A、618B、一个或多个面向内的图像传感器608a、608B和控制器604可以共同表示被配置为确定HMD 600的穿戴者的眼睛的注视矢量的注视检测器。在其他实现中,可以在HMD 600中采用不同类型的注视检测器/传感器来测量用户眼睛的一个或多个注视参数。可以由控制器604用来确定眼睛注视样本的由一个或多个注视传感器测量的注视参数的示例可以包括眼睛注视方向、头部定向、眼睛注视速度、眼睛注视加速度、眼睛注视方向的角度变化和/或任何其他合适的跟踪信息。在一些实现中,可以针对HMD 600的穿戴者的双眼独立地记录眼睛注视跟踪。
一个或多个面向外的图像传感器610A、610B可以被配置为测量HMD 600所位于的物理环境的物理环境属性(例如,光强度)。在一个示例中,图像传感器610A可以包括被配置为收集物理空间的可见光图像的可见光相机。此外,图像传感器610B可以包括被配置为收集物理空间的深度图像的深度相机。更具体地,在一个示例中,深度相机是红外飞行时间深度相机。在另一示例中,深度相机是红外结构光深度相机。
来自面向外的图像传感器610A、610B的数据可以由控制器604用来检测透视显示器602的视野内的移动,诸如由穿戴者或者由视野内的人或物理对象执行的基于姿势的输入或其他移动。在一个示例中,来自面向外的图像传感器610A、610B的数据可以用于检测由HMD的穿戴者执行的穿戴者输入,诸如手势(例如,手指的捏合、拳头的闭合等),这个穿戴者输入指示经由物理空间中的计算设备的显示器可视地呈现的与用户界面的虚拟交互。来自面向外的图像传感器610A、610B的数据可以由控制器604用来确定能够在现实世界环境中对HMD 600进行位置/运动跟踪的方向/位置和定向数据(例如,来自成像环境特征)。来自面向外的图像传感器610A、610B的数据可以由控制器604用来从HMD 600的视角构建周围环境的静止图像和/或视频图像。
在另一示例中,HMD 600可以用作移动深度成像设备以监测用户的环境。例如,来自面向外的图像传感器610A、610B的数据可以用于检测用户/HMD所位于的物理空间的区域的占用转变。可以存储来自面向外的图像传感器的数据,诸如三维物理空间中的点/区域的占用状态,该占用状态被标记有三维物理空间中的该点/区域的标识符。可以识别三维物理空间中的给定点/区域的占用状态的切换并且将其用于增加三维物理空间中的该点/区域的占用转变的计数器。
控制器604可以被配置为以任何合适的方式标识物理空间的表面。在一个示例中,可以基于从由深度相机610B提供的深度数据得到的深度图来标识物理空间的表面。在另一示例中,控制器604可以被配置为使用来自面向外的图像传感器610A、610B的信息来生成或更新物理的三维模型。另外地或替代地,来自面向外的图像传感器610A、610B的信息可以被传送到负责生成和/或更新物理空间的模型的远程计算机。在任一种情况下,可以评估HMD600相对于物理空间的相对位置和/或定向,使得可以在具有期望定向的期望的现实世界位置中准确地显示增强现实图像。在一个示例中,控制器604可以被配置为使用由表面传感器单独地或与HMD 600的其他传感器组合地提供的信息来执行物理空间的同时定位和映射(SLAM)。具体地,控制器604可以被配置为生成物理空间的3D模型,该3D模型包括可以用于标识物理空间中的表面的表面重建信息。
在一些实现中,HMD 600可以基于从面向外的相机610A和610B提供的图像来标识物理空间中的不同计算设备的不同显示器。
IMU 614可以被配置为向控制器604提供HMD 600的位置和/或定向数据。在一个实现中,IMU 614可以被配置为三轴或三自由度(3DOF)位置传感器***。这个示例性位置传感器***可以例如包括三个陀螺仪以指示或测量HMD 600在3D空间内关于三个正交轴(例如,滚动、俯仰和偏航)的定向变化。从IMU的传感器信号得到的定向可以用于经由透视显示器显示具有逼真且稳定的位置和定向的一个或多个AR图像。
在另一示例中,IMU 614可以被配置为六轴或六自由度(6DOF)位置传感器***。这样的配置可以包括三个加速度计和三个陀螺仪以指示或测量HMD 600沿着三个正交空间轴(例如,x、y和z)的位置变化以及关于三个正交旋转轴(例如,偏航、俯仰和滚动)的设备定向的变化。在一些实现中,来自面向外的图像传感器610A、610B和IMU 614的位置和定向数据可以结合使用以确定HMD 600的位置和定向(或6DOF姿态)。
HMD 600还可以支持其他合适的定位技术,诸如GPS或其他全球导航***。此外,虽然已经描述了位置传感器***的具体示例,但是应当理解,可以使用任何其他合适的传感器***。例如,头部姿势和/或运动数据可以基于来自安装在穿戴者上和/或在穿戴者外部的传感器的任何组合的传感器信息来确定,传感器包括但不限于任何数目的陀螺仪、加速度计、惯性测量单元、GPS设备、气压计、磁力计、相机(例如,可见光相机、红外线相机、飞行时间深度相机、结构光相机等)、通信设备(例如,WIFI天线/接口)等。
HMD 600可以包括被配置为与其他计算设备通信的通信接口612。通信接口612可以包括任何合适的通信组件,包括与一个或多个不同通信协议/标准(例如,WiFi、蓝牙)兼容的有线和/或无线通信设备。在一些实现中,通信接口612可以被配置为向计算设备发送控制信号以调整计算设备的操作以支持HMD的穿戴者与计算设备的虚拟交互。
控制器604可以包括与HMD 600的显示器和各种传感器通信的逻辑机器和存储机器,下面参考图7更详细地讨论。
在一些实施例中,本文中描述的方法和过程可以绑定到一个或多个计算设备的计算***。特别地,这样的方法和过程可以实现为计算机应用程序或服务、应用程序编程接口(API)、库和/或其他计算机程序产品。
图7示意性地示出了可以实施上述方法和过程中的一个或多个的计算***700的非限制性实施例。计算***700以简化形式示出。计算***700可以采用以下形式:一个或多个可穿戴设备(例如,头戴式显示设备,诸如图6的HMD 600)、个人计算机、服务器计算机(例如,图1的远程服务122)、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备(例如,图1的计算设备120)、移动计算设备、移动通信设备(例如,智能电话)和/或其他计算设备。
计算***700包括逻辑机器702和存储机器704。计算***700可以可选地包括显示子***706、输入子***708、通信子***710和/或图7中未示出的其他组件。
逻辑机器702包括被配置为执行指令的一个或多个物理设备。例如,逻辑机器可以被配置为执行作为一个或多个应用、服务、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分的指令。这样的指令可以被实现以执行任务,实现数据类型,变换一个或多个组件的状态,实现技术效果,或者以其他方式实现期望的结果。
逻辑机器可以包括被配置为执行软件指令的一个或多个处理器。另外地或替代地,逻辑机器可以包括被配置为执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑机器的处理器可以是单核或多核的,并且在其上执行的指令可以被配置用于顺序、并行和/或分布式处理。逻辑机器的各个组件可选地可以分布在两个或更多个单独的设备之间,这些设备可以远程定位和/或被配置用于协同处理。逻辑机的各方面可以由以云计算配置而配置的远程可访问的联网计算设备来虚拟化和执行。
存储机器704包括被配置为保存由逻辑机器可执行以实现本文中描述的方法和过程的指令的一个或多个物理设备。当这样的方法和过程被实现时,存储机器704的状态可以被变换,例如,以保存不同的数据。
存储机器704可以包括可移除和/或内置设备。存储机器704可以包括光学存储器(例如,CD、DVD、HD-DVD、蓝光盘等)、半导体存储器(例如,RAM、EPROM、EEPROM等)和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)等。存储机器704可以包括易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址和/或内容可寻址设备。
应当理解,存储机器704包括一个或多个物理设备。然而,本文中描述的指令的各方面替代地可以通过在有限的持续时间内不被物理设备保存的通信介质(例如,电磁信号、光信号等)进行传播。
逻辑机器702和存储机器704的各方面可以一起集成到一个或多个硬件逻辑组件中。例如,这样的硬件逻辑组件可以包括现场可编程门阵列(FPGA)、程序特定和应用特定的集成电路(PASIC/ASIC)、程序特定和应用特定的标准产品(PSSP/ASSP)、片上***(SOC)和复杂可编程逻辑器件(CPLD)。
术语“模块”、“程序”和“引擎”可以用于描述被实现为执行特定功能的计算***700的一方面。在一些情况下,模块、程序或引擎可以经由逻辑机器702执行由存储机器704保存的指令来实例化。应当理解,不同的模块、程序和/或引擎可以从相同的应用、服务、代码块、对象、库、例程、API、函数等实例化。同样地,相同的模块、程序和/或引擎可以由不同的应用、服务、代码块、对象、例程、API、函数等实例化。术语“模块”、“程序”和“引擎”可以包含单独的或多组的可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。
应当理解,本文中使用的“服务”是跨多个用户会话可执行的应用程序。服务可以可用于一个或多个***组件、程序和/或其他服务。在一些实现中,服务可以在一个或多个服务器计算设备上运行。
当被包括时,显示子***706可以用于呈现由存储机器704保存的数据的视觉表示。该视觉表示可以采取图形用户界面(GUI)的形式。由于本文中描述的方法和过程改变了由存储机器保存的数据,并且因此转变存储机器的状态,所以显示子***706的状态同样可以被转变以在视觉上表示底层数据的变化。显示子***706可以包括利用几乎任何类型的技术的一个或多个显示设备(例如,图6的透视显示器602和相关联的控制器)。这样的显示设备可以在共享封装中(例如,在图6的HMD 600内)与逻辑机器702和/或存储机器704组合,或者这样的显示设备可以是***显示设备。
当被包括时,输入子***708可以包括一个或多个用户输入设备或与其对接,用户输入设备诸如键盘、鼠标、触摸屏或游戏控制器。在一些实施例中,输入子***可以包括所选择的自然用户输入(NUI)组件或与其对接。这样的组件可以是集成的或***的,并且输入动作的转换和/或处理可以在板上或板外处理。示例NUI组件可以包括用于语音和/或声音识别的麦克风;用于机器视觉和/或手势识别的红外、彩色、立体和/或深度相机;用于运动检测和/或意图识别的头部***、眼睛***、加速度计和/或陀螺仪;以及用于评估大脑活动的电场感测组件。
当被包括时,通信子***710可以被配置为将计算***700与一个或多个其他计算设备通信地耦合。通信子***710可以包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子***可以被配置用于经由无线电话网络或者有线或无线局域网或广域网进行通信。在一些实施例中,通信子***可以允许计算***700经由诸如因特网等网络向其他设备发送消息和/或从其他设备接收消息。
另一示例提供了一种控制在显示器上或通过显示器查看时物理空间中的虚拟对象放置的方法,该方法包括接收指示物理空间中的多个区域中的每个区域在一时间段内的占用转变的数目的计数;在初始位置中显示虚拟对象,初始位置是基于物理空间中的多个区域中的每个区域的计数而选择的;确定在显示器上或通过显示器查看时虚拟对象在物理空间中的已更新位置,虚拟对象的已更新位置至少基于虚拟对象在物理空间中的初始位置和物理空间中的多个区域中的每个区域的计数;并且在显示器上或通过显示器查看时在物理空间中的已更新位置中显示虚拟对象,虚拟对象被控制为至少基于物理对象穿过物理空间的移动而在物理空间中移动。计数可以另外地或替代地是基于在至少所述时间段内使用一个或多个深度相机对物理空间进行成像而生成的。该方法可以另外地或替代地还包括生成点云,并且多个区域中的每个区域的计数可以另外地或替代地与物理空间中的不同三维点相关联地存储。物理空间中的多个区域可以另外地或替代地被映射到多个体素,并且多个区域中的每个区域的计数可以另外地或替代地与多个体素中的不同体素相关联。显示器可以另外地或替代地包括头戴式显示设备的透视显示器。该方法可以另外地或替代地还包括确定物理空间中的多个区域中的每个区域的占用转变的变化速率,并且基于变化速率确定穿过物理空间中的区域的移动速度。虚拟对象的已更新位置可以另外地或替代地进一步至少基于与虚拟对象相关联的移动速度和虚拟对象的类型中的一项或多项,与虚拟对象相关联的移动速度和虚拟对象的类型中的一项或多项被映射到物理空间中的多个区域的占用转变的相关联的变化速率。该方法可以另外地或替代地还包括确定穿过物理空间的路径,路径包括物理空间中的多个区域的子集,其中子集中的每个区域与子集中的至少一个其他区域相邻,并且其中子集中的每个区域与基本上相等数目的占用转变相关联。虚拟对象的已更新位置可以另外地或替代地被定为在穿过物理空间的路径上,并且该方法可以另外地或替代地还包括确定沿着穿过物理空间的路径定位的虚拟对象的一个或多个后续已更新位置。该方法可以另外地或替代地还包括:对于多个区域中的每个区域,至少基于与该区域相关联的计数来确定该区域的得分,得分指示与该区域相关联的计数是否高于预定阈值。在各种实现中,任何或所有上述示例可以以任何合适的方式组合。
另一示例提供了一种头戴式显示设备,其包括近眼显示器、逻辑设备和保存指令的存储设备,这些指令由逻辑设备可执行以:接收指示物理空间中的多个区域中的每个区域在一时间段内的占用转变的数目的计数;对于多个区域中的每个区域,至少基于与该区域相关联的计数和预定阈值来确定该区域的得分;在初始位置显示虚拟对象,初始位置是基于物理空间中的多个区域中的每个区域的得分而选择的;确定在显示器上或通过显示器查看时虚拟对象在物理空间中的已更新位置,虚拟对象的已更新位置至少基于虚拟对象在物理空间中的初始位置和物理空间中的多个区域中的每个区域的得分;并且在显示器上或通过显示器查看时在物理空间的已更新位置中显示虚拟对象。头戴式显示设备可以另外地或替代地还包括深度相机,并且接收计数可以另外地或替代地包括在上述时间段内使用深度相机捕获物理空间的多个深度图像并且跟踪多个深度图像的多个体素中的每个体素的占用转变的数目。指令可以另外地或替代地进一步可执行以将多个深度图像中的每个深度图像的多个体素中的每个体素与物理空间中的相关联的三维点相关联。指令可以另外地或替代地进一步可执行以确定物理空间中的多个区域中的每个区域的占用转变的变化速率并且基于变化速率来确定穿过物理空间中的区域的移动速度。虚拟对象的已更新位置可以另外地或替代地进一步至少基于与虚拟对象相关联的移动速度和虚拟对象的类型中的一项或多项,与虚拟对象相关联的移动速度和虚拟对象的类型中的一项或多项被映射到物理空间中的多个区域的占用转变的相关联的变化速率。指令可以另外地或替代地进一步可执行以确定穿过物理空间的路径,该路径包括物理空间中的多个区域的子集,其中子集中的每个区域与子集中的至少一个其他区域相邻,并且其中子集中的每个区域与基本上相等数目的占用转变相关联。虚拟对象的已更新位置可以另外地或替代地被定位在穿过物理空间的路径上,该方法还包括确定沿着穿过物理空间的路径定位的虚拟对象的一个或多个后续已更新位置。接收计数可以另外地或替代地包括以下中的一项或多项:1)从外部计算设备接收计数;以及2)从外部深度相机接收多个深度图像并且至少基于多个深度图像确定计数。在各种实现中,任何或所有上述示例可以以任何合适的方式组合。
另一示例提供了一种控制在显示器上或通过显示器查看时物理空间中的虚拟对象放置的方法,该方法包括在一时间段内监测物理空间以确定指示物理空间中的多个三维点中的每个三维点在一时间段内的占用转变的数目的计数;确定穿过物理空间的一个或多个移动路径,每个移动路径包括物理空间中的多个三维点的子集,被包括在子集中的每个三维点与子集的至少一个其他三维点相邻,与子集的每个三维点相关联的计数高于预定阈值;确定在显示器上或通过显示器查看时物理空间中的虚拟对象的第一位置,第一位置包括物理空间中与一个或多个移动路径中的所选择的路径相关联的一个或多个初始三维点;在显示器上或通过显示器查看时在物理空间的第一位置中显示虚拟对象;确定在显示器上或通过显示器查看时物理空间中的虚拟对象的已更新位置,虚拟对象的已更新位置包括物理空间中与所选择的路径相关联的一个或多个已更新三维点,至少一个已更新三维点1)不同于每个初始三维点并且2)与初始三维点中的至少一个相邻;并且在显示器上或通过显示器查看时在物理空间的已更新位置中显示虚拟对象,虚拟对象被控制为至少基于穿过物理空间的物理对象的移动来在物理空间中移动。显示器可以另外地或替代地包括被包括在头戴式显示设备中的透视显示器。
应当理解,本文中描述的配置和/或方法本质上是示例性的,并且这些具体实施例或示例不应当被视为具有限制意义,因为很多变型是可能的。本文中描述的特定例程或方法可以表示任何数目的处理策略中的一项或多项。这样,所示出和/或描述的各种动作可以以所示出和/或描述的顺序、以其他顺序、并行地执行或省略。同样地,可以改变上述过程的顺序。
本公开的主题包括各种过程、***和配置、以及本文中公开的其他特征、功能、动作和/或属性的所有新颖和非明显组合和子组合、以及任何及其所有等价物。

Claims (15)

1.一种控制在显示器上或通过显示器查看时物理空间中的虚拟对象放置的方法,所述方法包括:
接收指示所述物理空间中的多个区域中的每个区域在一时间段内的占用转变的数目的计数;
在初始位置显示所述虚拟对象,所述初始位置基于所述物理空间中的所述多个区域中的每个区域的所述计数而被选择;
确定在所述显示器上或通过所述显示器查看时所述虚拟对象在所述物理空间中的已更新位置,所述虚拟对象的所述已更新位置至少基于所述虚拟对象在所述物理空间中的所述初始位置和所述物理空间中的所述多个区域中的每个区域的所述计数;以及
在所述显示器上或通过所述显示器查看时所述物理空间的所述已更新位置中显示所述虚拟对象,所述虚拟对象被控制为至少基于物理对象穿过所述物理空间的移动而在所述物理空间中移动。
2.根据权利要求1所述的方法,其中所述计数基于在至少所述时间段内利用一个或多个深度相机对所述物理空间进行成像而被生成。
3.根据权利要求2所述的方法,还包括生成点云,其中所述多个区域中的每个区域的所述计数与所述物理空间中的不同三维点相关联地被存储。
4.根据权利要求2所述的方法,其中所述物理空间中的所述多个区域被映射到多个体素,并且其中所述多个区域中的每个区域的所述计数与所述多个体素中的不同体素相关联。
5.根据权利要求1所述的方法,还包括确定所述物理空间中的所述多个区域中的每个区域的占用转变的变化速率,并且基于所述变化速率确定穿过所述物理空间中的所述区域的移动速度。
6.根据权利要求5所述的方法,其中所述虚拟对象的所述已更新位置还至少基于与所述虚拟对象相关联的移动速度和所述虚拟对象的类型中的一项或多项,与所述虚拟对象相关联的所述移动速度和所述虚拟对象的所述类型中的一项或多项被映射到所述物理空间中的所述多个区域的占用转变的相关联的变化速率。
7.根据权利要求1所述的方法,还包括确定穿过所述物理空间的路径,所述路径包括所述物理空间中的所述多个区域的子集,其中所述子集中的每个区域与所述子集中的至少一个其他区域相邻,并且其中所述子集中的每个区域与基本上相等数目的占用转变相关联。
8.根据权利要求7所述的方法,其中所述虚拟对象的所述已更新位置被定位在穿过所述物理空间的所述路径上,所述方法还包括确定沿着穿过所述物理空间的所述路径定位的所述虚拟对象的一个或多个后续已更新位置。
9.一种头戴式显示设备,包括:
近眼显示器;
逻辑设备;以及
保持指令的存储设备,所述指令由所述逻辑设备可执行以:
接收指示物理空间中的多个区域中的每个区域在一时间段内的占用转变的数目的计数;
对于所述多个区域中的每个区域,至少基于与所述区域相关联的所述计数和预定阈值来确定所述区域的得分;
在初始位置中显示虚拟对象,所述初始位置基于所述物理空间中的所述多个区域中的每个区域的所述得分而被选择;
确定在所述显示器上或通过所述显示器查看时所述虚拟对象在所述物理空间中的已更新位置,所述虚拟对象的所述已更新位置至少基于所述虚拟对象在所述物理空间中的所述初始位置和所述物理空间中的所述多个区域中的每个区域的所述得分;以及
在所述显示器上或通过所述显示器查看时所述物理空间的所述已更新位置中显示所述虚拟对象。
10.根据权利要求9所述的头戴式显示设备,所述头戴式显示设备还包括深度相机,其中接收所述计数包括:在所述时间段内使用所述深度相机捕获所述物理空间的多个深度图像,并且跟踪所述多个深度图像的多个体素中的每个体素的占用转变的数目。
11.根据权利要求10所述的头戴式显示设备,其中所述指令还可执行以将所述多个深度图像中的每个深度图像的所述多个体素中的每个体素与所述物理空间中的相关联的三维点相关联。
12.根据权利要求9所述的头戴式显示设备,所述指令还可执行以确定所述物理空间中的所述多个区域中的每个区域的占用转变的变化速率,并且基于所述变化速率确定穿过所述物理空间中的所述区域的移动速度。
13.根据权利要求12所述的头戴式显示设备,其中所述虚拟对象的所述已更新位置还至少基于与所述虚拟对象相关联的移动速度和所述虚拟对象的类型中的一项或多项,与所述虚拟对象相关联的所述移动速度和所述虚拟对象的所述类型中的一项或多项被映射到所述物理空间中的所述多个区域的占用转变的相关联的变化速率。
14.根据权利要求9所述的头戴式显示设备,其中所述指令还可执行以确定穿过所述物理空间的路径,所述路径包括所述物理空间中的所述多个区域的子集,其中所述子集中的每个区域与所述子集中的至少一个其他区域相邻,并且其中所述子集中的每个区域与基本上相等数目的占用转变相关联。
15.根据权利要求14所述的头戴式显示设备,其中所述虚拟对象的所述已更新位置被定位在穿过所述物理空间的所述路径上,所述方法还包括确定沿着穿过所述物理空间的所述路径定位的所述虚拟对象的一个或多个后续已更新位置。
CN201780017803.XA 2016-03-16 2017-03-09 控制虚拟对象放置的方法和头戴式显示设备 Active CN108885492B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/072,192 2016-03-16
US15/072,192 US9824500B2 (en) 2016-03-16 2016-03-16 Virtual object pathing
PCT/US2017/021471 WO2017160566A1 (en) 2016-03-16 2017-03-09 Virtual object pathing

Publications (2)

Publication Number Publication Date
CN108885492A true CN108885492A (zh) 2018-11-23
CN108885492B CN108885492B (zh) 2021-04-09

Family

ID=58489051

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780017803.XA Active CN108885492B (zh) 2016-03-16 2017-03-09 控制虚拟对象放置的方法和头戴式显示设备

Country Status (4)

Country Link
US (1) US9824500B2 (zh)
EP (1) EP3430498B8 (zh)
CN (1) CN108885492B (zh)
WO (1) WO2017160566A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262729A (zh) * 2019-05-20 2019-09-20 联想(上海)信息技术有限公司 一种对象处理方法和设备

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170092002A1 (en) * 2015-09-30 2017-03-30 Daqri, Llc User interface for augmented reality system
US10210661B2 (en) * 2016-04-25 2019-02-19 Microsoft Technology Licensing, Llc Location-based holographic experience
KR20180071031A (ko) * 2016-12-19 2018-06-27 엘지전자 주식회사 공기조화기 및 그 제어방법
MX2019013187A (es) 2017-05-05 2020-07-27 Hubbell Lighting Inc Dispositivo y método para controlar sensores de ocupación activados por bluetoothtm.
US10649616B2 (en) * 2017-07-06 2020-05-12 Google Llc Volumetric multi-selection interface for selecting multiple objects in 3D space
US11175132B2 (en) 2017-08-11 2021-11-16 Zoox, Inc. Sensor perturbation
US10983199B2 (en) * 2017-08-11 2021-04-20 Zoox, Inc. Vehicle sensor calibration and localization
US20190130648A1 (en) * 2017-10-26 2019-05-02 Tsunami VR, Inc. Systems and methods for enabling display of virtual information during mixed reality experiences
CN109840947B (zh) * 2017-11-28 2023-05-09 广州腾讯科技有限公司 增强现实场景的实现方法、装置、设备及存储介质
US11308312B2 (en) * 2018-02-15 2022-04-19 DMAI, Inc. System and method for reconstructing unoccupied 3D space
CA3092884A1 (en) * 2018-03-27 2019-10-03 Spacedraft Pty Ltd A media content planning system
CN108543309B (zh) * 2018-04-03 2020-03-10 网易(杭州)网络有限公司 在增强现实中控制虚拟控制对象移动的方法、装置及终端
US10984600B2 (en) 2018-05-25 2021-04-20 Tiff's Treats Holdings, Inc. Apparatus, method, and system for presentation of multimedia content including augmented reality content
US10818093B2 (en) 2018-05-25 2020-10-27 Tiff's Treats Holdings, Inc. Apparatus, method, and system for presentation of multimedia content including augmented reality content
CN108898516B (zh) * 2018-05-30 2020-06-16 贝壳找房(北京)科技有限公司 在虚拟三维空间讲房模式进功能间的方法、服务器和终端
US10445942B1 (en) * 2018-06-29 2019-10-15 Microsoft Technology Licensing, Llc Ranking of hologram placement locations based on unexposed information
US10719944B2 (en) * 2018-09-13 2020-07-21 Seiko Epson Corporation Dynamic object tracking
EP4344194A3 (en) * 2018-11-13 2024-06-12 Dolby Laboratories Licensing Corporation Audio processing in immersive audio services
US10854007B2 (en) * 2018-12-03 2020-12-01 Microsoft Technology Licensing, Llc Space models for mixed reality
CN109445103B (zh) * 2018-12-10 2022-03-01 北京虚拟动点科技有限公司 显示画面的更新方法及装置、储存介质、电子装置
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
US10885710B2 (en) * 2019-03-14 2021-01-05 Microsoft Technology Licensing, Llc Reality-guided roaming in virtual reality
CN110045827B (zh) 2019-04-11 2021-08-17 腾讯科技(深圳)有限公司 虚拟环境中虚拟物品的观察方法、装置及可读存储介质
CN110246235B (zh) * 2019-06-18 2021-10-08 广州供电局有限公司 一种基于Hololens混合现实技术的配电房现场巡检方法及***
WO2021020130A1 (ja) * 2019-07-29 2021-02-04 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US11461867B2 (en) * 2019-09-19 2022-10-04 Sanctuary Cognitive Systems Corporation Visual interface and communications techniques for use with robots
US11275453B1 (en) * 2019-09-30 2022-03-15 Snap Inc. Smart ring for manipulating virtual objects displayed by a wearable device
US11605201B2 (en) * 2020-01-27 2023-03-14 Meta Platforms Technologies, Llc Systems, methods, and media for detecting object-free space
US11660528B2 (en) 2020-03-12 2023-05-30 Reavire, Inc. Populating virtual objects in physical environments
US11361512B2 (en) * 2020-03-26 2022-06-14 Facebook Technologies, Llc. Systems and methods for detecting intrusion while in artificial reality
US11277597B1 (en) 2020-03-31 2022-03-15 Snap Inc. Marker-based guided AR experience
US11126850B1 (en) * 2020-04-09 2021-09-21 Facebook Technologies, Llc Systems and methods for detecting objects within the boundary of a defined space while in artificial reality
US11798429B1 (en) 2020-05-04 2023-10-24 Snap Inc. Virtual tutorials for musical instruments with finger tracking in augmented reality
US11325043B2 (en) * 2020-05-15 2022-05-10 Microsoft Technology Licensing, Llc Utilizing multiple input sources for generating gameplay locations
US11520399B2 (en) 2020-05-26 2022-12-06 Snap Inc. Interactive augmented reality experiences using positional tracking
US11925863B2 (en) 2020-09-18 2024-03-12 Snap Inc. Tracking hand gestures for interactive game control in augmented reality
US11546505B2 (en) 2020-09-28 2023-01-03 Snap Inc. Touchless photo capture in response to detected hand gestures
US11593994B2 (en) * 2020-11-05 2023-02-28 Kyndryl, Inc. Creating working boundaries in a multi-user environment
US11740313B2 (en) 2020-12-30 2023-08-29 Snap Inc. Augmented reality precision tracking and display
US11232644B1 (en) 2020-12-31 2022-01-25 Facebook Technologies, Llc Systems and methods for providing spatial awareness in virtual reality
CN112967404A (zh) * 2021-02-24 2021-06-15 深圳市慧鲤科技有限公司 控制虚拟对象移动的方法、装置、电子设备及存储介质
US12013985B1 (en) 2021-02-25 2024-06-18 Snap Inc. Single-handed gestures for reviewing virtual content
US11531402B1 (en) 2021-02-25 2022-12-20 Snap Inc. Bimanual gestures for controlling virtual and graphical elements
US11361519B1 (en) * 2021-03-29 2022-06-14 Niantic, Inc. Interactable augmented and virtual reality experience
CN117178247A (zh) 2021-04-19 2023-12-05 斯纳普公司 用于动画化及控制虚拟和图形元素的手势
US11596866B1 (en) * 2021-09-28 2023-03-07 Sony Group Corporation Method to use recognition of nearby physical surfaces to generate NPC reactions to events

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130222381A1 (en) * 2012-02-28 2013-08-29 Davide Di Censo Augmented reality writing system and method thereof
US20150317839A1 (en) * 2014-04-18 2015-11-05 Magic Leap, Inc. Interacting with totems in augmented or virtual reality systems
CN105359076A (zh) * 2013-06-18 2016-02-24 微软技术许可有限责任公司 多步骤虚拟对象选择
CN105393284A (zh) * 2013-06-28 2016-03-09 微软技术许可有限责任公司 基于人类身体数据的空间雕刻

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6552722B1 (en) 1998-07-17 2003-04-22 Sensable Technologies, Inc. Systems and methods for sculpting virtual objects in a haptic virtual reality environment
JP2000350865A (ja) * 1999-06-11 2000-12-19 Mr System Kenkyusho:Kk 複合現実空間のゲーム装置、その画像処理方法およびプログラム記憶媒体
US6914600B2 (en) 2001-06-26 2005-07-05 Hewlett-Packard Development Company, L.P. Volumetric warping for voxel coloring on an infinite domain
US8585476B2 (en) 2004-11-16 2013-11-19 Jeffrey D Mullen Location-based games and augmented reality systems
US20070171199A1 (en) 2005-08-05 2007-07-26 Clement Gosselin Locomotion simulation apparatus, system and method
EP2126778A4 (en) 2007-01-22 2013-01-09 Bell Helicopter Textron Inc SYSTEM AND METHOD FOR CONTROLLING A VIRTUAL ENVIRONMENT BY A PERSON ACTING IN THIS VIRTUAL ENVIRONMENT
US8267781B2 (en) 2009-01-30 2012-09-18 Microsoft Corporation Visual target tracking
US8564534B2 (en) 2009-10-07 2013-10-22 Microsoft Corporation Human tracking system
US9122053B2 (en) 2010-10-15 2015-09-01 Microsoft Technology Licensing, Llc Realistic occlusion for a head mounted augmented reality display
US10088317B2 (en) * 2011-06-09 2018-10-02 Microsoft Technologies Licensing, LLC Hybrid-approach for localization of an agent
US8933970B2 (en) 2012-09-11 2015-01-13 Longsand Limited Controlling an augmented reality object
US9132342B2 (en) 2012-10-31 2015-09-15 Sulon Technologies Inc. Dynamic environment and location based augmented reality (AR) systems
US9791872B2 (en) * 2013-03-14 2017-10-17 Pelco, Inc. Method and apparatus for an energy saving heating, ventilation, and air conditioning (HVAC) control system
WO2014146668A2 (en) 2013-03-18 2014-09-25 Aalborg Universitet Method and device for modelling room acoustic based on measured geometrical data
US9489772B2 (en) 2013-03-27 2016-11-08 Intel Corporation Environment actuation by one or more augmented reality elements

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130222381A1 (en) * 2012-02-28 2013-08-29 Davide Di Censo Augmented reality writing system and method thereof
CN105359076A (zh) * 2013-06-18 2016-02-24 微软技术许可有限责任公司 多步骤虚拟对象选择
CN105393284A (zh) * 2013-06-28 2016-03-09 微软技术许可有限责任公司 基于人类身体数据的空间雕刻
US20150317839A1 (en) * 2014-04-18 2015-11-05 Magic Leap, Inc. Interacting with totems in augmented or virtual reality systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110262729A (zh) * 2019-05-20 2019-09-20 联想(上海)信息技术有限公司 一种对象处理方法和设备
CN110262729B (zh) * 2019-05-20 2021-11-16 联想(上海)信息技术有限公司 一种对象处理方法和设备

Also Published As

Publication number Publication date
US9824500B2 (en) 2017-11-21
WO2017160566A1 (en) 2017-09-21
EP3430498A1 (en) 2019-01-23
EP3430498B1 (en) 2020-12-30
CN108885492B (zh) 2021-04-09
US20170270711A1 (en) 2017-09-21
EP3430498B8 (en) 2021-03-17

Similar Documents

Publication Publication Date Title
CN108885492A (zh) 虚拟对象路径控制
CN106164818B (zh) 使用随着时间的眼睛注视评估进行选择
EP3137974B1 (en) Display device viewer gaze attraction
CN107407567B (zh) 增强现实导航
CN105009031B (zh) 增强现实设备以及在其上操作用户界面的方法
CN105264461B (zh) 虚拟对象与表面的交互
CN107577045B (zh) 用于头戴式显示器的预测跟踪的方法、装置及存储介质
CN105359082B (zh) 用于用户接口导航的***和方法
CN104838337B (zh) 用于用户界面的无触摸输入
TWI567659B (zh) 照片表示視圖的基於主題的增強
US8497838B2 (en) Push actuation of interface controls
CN105981076B (zh) 合成增强现实环境的构造
CN111226189A (zh) 内容显示属性管理
KR20160148557A (ko) 월드 락 디스플레이의 품질 피드백 기법
CN107810465A (zh) 用于产生绘制表面的***和方法
CN103823553B (zh) 对表面背后的场景的增强现实显示
CN106255943A (zh) 身体锁定增强现实与世界锁定增强现实之间的转换
CN103365411A (zh) 信息输入设备、信息输入方法和计算机程序
WO2014133919A1 (en) Mixed reality augmentation
KR20130112061A (ko) 자연스러운 제스처 기반 사용자 인터페이스 방법 및 시스템
CN102929507A (zh) 运动控制的列表滚动
US11238651B2 (en) Fast hand meshing for dynamic occlusion
US10565786B1 (en) Sensor placement interface
KR20200145698A (ko) 증강 현실 기반의 3차원 조립 퍼즐을 제공하는 방법 및 단말
Wozniak et al. Depth sensor based detection of obstacles and notification for virtual reality systems

Legal Events

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