CN115087946A - 用于检测无对象空间的系统、方法和介质 - Google Patents
用于检测无对象空间的系统、方法和介质 Download PDFInfo
- Publication number
- CN115087946A CN115087946A CN202080086982.4A CN202080086982A CN115087946A CN 115087946 A CN115087946 A CN 115087946A CN 202080086982 A CN202080086982 A CN 202080086982A CN 115087946 A CN115087946 A CN 115087946A
- Authority
- CN
- China
- Prior art keywords
- tiles
- user
- occupied
- regions
- physical space
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 48
- 230000000007 visual effect Effects 0.000 claims description 7
- 239000011800 void material Substances 0.000 claims 1
- 230000015654 memory Effects 0.000 description 30
- 238000004891 communication Methods 0.000 description 19
- 230000006855 networking Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/0093—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B27/0172—Head mounted characterised by optical features
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B30/00—Optical systems or apparatus for producing three-dimensional [3D] effects, e.g. stereoscopic images
- G02B30/50—Optical systems or apparatus for producing three-dimensional [3D] effects, e.g. stereoscopic images the image being built up from image elements distributed over a 3D volume, e.g. voxels
- G02B30/52—Optical systems or apparatus for producing three-dimensional [3D] effects, e.g. stereoscopic images the image being built up from image elements distributed over a 3D volume, e.g. voxels the 3D volume being constructed from a stack or sequence of 2D planes, e.g. depth sampling systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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/04815—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/003—Navigation within 3D models or images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0138—Head-up displays characterised by optical features comprising image capture systems, e.g. camera
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/014—Head-up displays characterised by optical features comprising information/image processing systems
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B2027/0178—Eyeglass type
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10012—Stereo images
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Optics & Photonics (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
- Analysing Materials By The Use Of Radiation (AREA)
- Geophysics And Detection Of Objects (AREA)
Abstract
在特定实施例中,一种计算系统可以将用户周围的物理空间的至少一部分划分为多个三维(3D)区域,其中3D区域中的每个3D区域与平面中的多个片区中的片区相关联。该系统可以生成物理空间的该一部分中的对象的特征的估计位置。基于估计位置,该系统可以确定多个3D区域中的每个3D区域的占用状态。然后基于多个3D区域的占用状态,该系统可以确定多个片区中的一个或多个片区具有可能未被对象占用的相应空域。
Description
技术领域
本公开总体上涉及计算机视觉。
背景技术
人工现实是一种现实形式,其在呈现给用户之前已经以某种方式进行了调节,可以包括例如虚拟现实(VR)、增强现实(AR)、混杂(mixed)现实(MR)、混合(hybrid)现实、或其某种组合和/或派生。人工现实内容可以包括完全生成的内容或与捕获内容相结合的生成内容(例如,真实世界照片)。人工现实内容可以包括视频、音频、触觉反馈或其某种组合,其中的任何一个都可以在单个通道或多个通道中呈现(诸如向观看者产生三维效果的立体视频)。人工现实可以与例如用于在人工现实中创建内容和/或用于人工现实(例如,在其中执行活动)的应用、产品、配件、服务或其某种组合相关联。提供人工现实内容的人工现实系统可以在各种平台上实现,包括连接到主机计算机系统的头戴式设备(HMD)、独立HMD、移动设备或计算系统、或者能够提供向一位或多位查看者提供人工现实内容的任何其他硬件平台。
当用户佩戴HMD时,他对物理环境的视觉被HMD的物理结构遮挡。例如,HMD的显示器可以直接定位在用户眼睛的前面和附近,从而阻挡他对物理环境的视觉。即使用户可能无法直接看到他的物理环境,但他能够看到由HMD显示的内容并且可以四处走动。例如,某些人工现实应用(诸如游戏或虚拟世界)可能会要求用户四处走动、转身、躲避、摆动手臂、爬行等。但是,由于用户视觉被HMD挡住,他会无法看到物理环境和无法避免在移动时与物理对象发生碰撞。
发明内容
根据本发明的一个方面,提供了一种方法,该方法包括由计算系统:将用户周围的物理空间的至少一部分划分为多个三维(3D)区域,其中3D区域中的每个3D区域与平面中的多个片区中的片区相关联;生成物理空间的该部分中的对象的特征的估计位置;基于估计位置,确定多个3D区域中的每个3D区域的占用状态;以及基于多个3D区域的占用状态,确定多个片区中的一个或多个片区具有可能未被对象占用的相应空域。
优选地,计算系统与头戴式设备相关联,该头戴式设备在由用户佩戴时阻挡用户对物理空间的观察;以及其中多个片区中的所确定的一个或多个片区被配置为由应用使用,以帮助用户在物理空间的该部分内移动。
优选地,物理空间的该部分不包括以下中的至少一项:(1)物理空间的上部高于上限高度阈值或(2)物理空间的下部低于下限高度阈值。
优选地,与一个或多个片区中的每个片区相关联的空域低于上限高度阈值、高于下限高度阈值、或在上限高度阈值与下限高度阈值之间。
优选地,与一个或多个片区中的每个片区相关联的空域由从片区向上或向下延伸的垂直边界限定。
优选地,多个3D区域中的每个3D区域在与该3D区域相关联的片区的空域内。
优选地,多个3D区域中的每个3D区域的占用状态取决于位于该3D区域内的估计位置的数目。
优选地,确定多个3D区域中的每个3D区域的占用状态包括:向估计位置投射光线;其中多个3D区域中的每个3D区域的占用状态取决于与该3D区域相交的光线的数目。
优选地,如果(1)光线穿过3D区域并且(2)向其投射光线的估计位置该位于3D区域之外,则光线与该3D区域相交。
优选地,多个3D区域中的每个3D区域的占用状态指示3D区域(1)可能被至少一个对象占用或(2)可能未被至少一个对象占用。
优选地,该方法还包括:基于确定第二空域各自包含其占用状态指示3D区域可能被至少一个对象占用的至少一个3D区域,确定多个片区中的另外的一个或多个片区具有可能被对象占用的相应的第二空域。
优选地,确定多个片区中的一个或多个片区具有可能未被对象占用的相应空域还包括:确定与多个片区中的一个或多个片区中的每个片区相关联的空域不包含其占用状态指示3D区域可能被至少一个对象占用的任何3D区域;以及确定与多个片区中的一个或多个片区中的每个片区相关联的空域包含其相应占用状态指示对应3D区域可能未被至少一个对象占用的阈值数目的3D区域。
优选地,该方法还包括:将多个片区中的一个或多个片区提供给虚拟现实应用,虚拟现实应用被配置为使用多个片区中的一个或多个片区来生成用于引导用户的移动的视觉指示。
根据本发明的另一方面,提供了一种或多种计算机可读非暂态存储介质,该介质包含在被执行时可操作以进行以下操作的软件:将用户周围的物理空间的至少一部分划分为多个三维(3D)区域,其中3D区域中的每个3D区域与平面中的多个片区中的片区相关联;生成物理空间的该部分中的对象的特征的估计位置;基于估计位置,确定多个3D区域中的每个3D区域的占用状态;以及基于多个3D区域的占用状态,确定多个片区中的一个或多个片区具有可能未被对象占用的相应空域。
优选地,物理空间的该部分不包括以下中的至少一项:(1)物理空间的上部高于上限高度阈值或(2)物理空间的下部低于下限高度阈值。
优选地,与一个或多个片区中的每个片区相关联的空域由从片区向上或向下延伸的垂直边界限定。
优选地,多个3D区域中的每个3D区域的占用状态取决于位于该3D区域内的估计位置的数目。
根据本发明的另一方面,提供了一种系统,该系统包括:一个或多个处理器;以及一个或多个计算机可读非暂态存储介质,耦合到处理器中的一个或多个处理器并且包括在由处理器中的一个或多个处理器执行时能够操作以引起系统进行以下操作的指令:将用户周围的物理空间的至少一部分划分为多个三维(3D)区域,其中3D区域中的每个3D区域与平面中的多个片区中的片区相关联;生成物理空间的该部分中的对象的特征的估计位置;基于估计位置,确定多个3D区域中的每个3D区域的占用状态;以及基于多个3D区域的占用状态,确定多个片区中的一个或多个片区具有可能未被对象占用的相应空域。
优选地,物理空间的该部分不包括以下中的至少一项:(1)物理空间的上部高于上限高度阈值或(2)物理空间的下部低于下限高度阈值。
优选地,与一个或多个片区中的每个片区相关联的空域由从片区向上或向下延伸的垂直边界限定。
具体实现的概要
本文中描述的实施例涉及被配置为自动确定用户周围的物理环境中的无对象空间的系统、方法和介质。在特定实施例中,人工现实系统可以以合理的置信度,确定用户周围的物理环境中的哪些空间区域可能被物理对象占用。HMD可以具有被配置为捕获立体图像的一对外置相机。使用立体图像,该系统可以计算场景中可观察特征的深度。计算的特征深度可以表示为3D空间中的点云,点云中的每个点表示特定经观察特征的位置。然而,点云可能有很大的噪声,因此可能需要另外的处理来确定点是否真正对应于物理对象。为此,特定实施例可以将物理空间划分为多个体素。对于体素内的每个点,体素可以接收到被物理对象“占用”的投票。此外,可以从用户或HMD的视点向点云中的每个点投射光线。除了包含光线投射到其的点的体素之外,与光线相交的每个体素都会接收到“空闲”投票,以表明该体素可能是空的。不包含任何点并且未与任何光线相交的其他体素可以具有“未知”状态。在这个过程完成之后,该系统可以使用为每个体素而统计的投票,来确定体素被物理对象占用的可能性。
在特定实施例中,该系统可以基于体素的占用状态生成无对象片区的二维限定。在特定实施例中,该系统可以检测地平面并且考虑在该平面上方的且高于最小高度阈值的体素。这样做可以过滤掉由于观察到的地板、地毯或垫子的特征而可能被错误地视为“被占用”体素,这些体素可能由于缺乏明显的可跟踪的特征而是有噪声的。该系统还可以过滤掉高于最大高度阈值的体素,因为用户不太可能进入与那些体素相对应的空域,并且天花板的特征(类似于地板)可能是有噪声的。然后可以使用在最小和最大高度阈值内的体素,来确定用户可以在其中安全地导航的2D片区。
在特定实施例中,可以通过将与体素相关联的占用信息向下投影到2D平面,来确定2D无对象片区。例如,每列体素可以与2D平面内的片区相关联(例如,该片区可以对应于体素列堆叠在其上的地面)。如果体素列包含任何被视为“被占用”体素,则对应片区也将被标记为“被占用”。如果该列不包含任何“被占用”体素,则可以根据该列中的空闲体素的数目来标记对应片区。例如,即使列中的一些体素是“未知的”,但如果列中存在大量“空闲”体素,则与该列相关联的片区仍可以被视为“空闲”。如果那里的“空闲”体素数目不足,则该片区可以被视为“未知”。在完成之后,该系统将知道哪些片区可能被占用,哪些可能空闲,以及哪些可能未知。2D片区可以用于限定用户可以在其中安全地导航的无对象空间。在特定实施例中,该系统可以根据无对象空间,来生成从地板延伸到天花板的3D边界。该3D边界可以用于在用户即将离开边界时或在对象侵入边界时警告用户。在特定实施例中,2D片区可以由人工现实设备的操作系统确定并且被提供给应用,应用可以使用2D片区来程序性地生成内容(例如,人行道或路径)。
本文中公开的实施例仅是示例,并且本公开的范围不限于它们。特定实施例可以包括本文中公开的实施例的所有、一些或没有一个组件、元件、特征、功能、操作或步骤。根据本发明的实施例在所附权利要求中特别公开,这些实施例涉及方法、存储介质、系统和计算机程序产品,其中在一个权利要求类别中提及的任何特征(例如,方法)也可以在另一权利要求类别(例如,系统)中要求保护。仅出于形式原因选择所附权利要求中的依赖关系或引用。然而,也可以要求保护由有意回溯到任何先前权利要求(特别是多重从属)而产生的任何主题,从而权利要求及其特征的任何组合被公开并且可以要求保护,而不管在所附权利要求中选择的从属关系如何。可以要求保护的主题不仅包括所附权利要求中列出的特征的组合,还包括权利要求中的特征的任何其他组合,其中权利要求中提到的每个特征可以与权利要求中的任何其他特征或其他特征组合进行组合。此外,本文中描述或描绘的任何实施例和特征可以在单独的权利要求中和/或与本文中描述或描绘的任何实施例或特征或与所附权利要求的任何特征的任何组合中要求保护。
附图说明
图1示出了根据特定实施例的由用户佩戴的人工现实系统的示例。
图2示出了根据特定实施例的确定用户物理环境中可观察特征的位置的示例。
图3A示出了根据特定实施例的用于评估空间区域被物理对象占用的可能性的示例过程。
图3B示出了根据特定实施例的用于评估空间区域没有对象的可能性的示例技术。
图4示出了根据特定实施例的平面中2D片区的占用状态的示例。
图5示出了根据特定实施例的物理空间内可能未被对象占用的自动检测到的片区的示例。
图6示出了根据特定实施例的用于自动检测可能未被对象占用的片区的示例方法。
图7示出了与AR/VR或社交网络系统相关联的示例网络环境。
图8示出了示例计算机系统。
具体实施方式
本文中描述的特定实施例可以自动确定无对象片区。这样的特征在其中用户对物理环境的观察可能被HMD阻挡的人工现实环境中可能特别有用。因此,当用户佩戴HMD并且四处走动时,他冒着与物理世界中的对象(例如,家具或其他人)发生碰撞的风险。
图1示出了用户102佩戴的人工现实系统100的示例。在特定实施例中,人工现实系统100可以包括头戴式设备(“HMD”)104、控制器106和计算系统108。HMD 104可以戴在用户的眼睛上并且通过内部显示器(未示出)向用户102提供视觉内容。HMD 104可以具有两个单独的内部显示器,用户102的每只眼睛有一个。如图1所示,HMD 104可以完全覆盖用户的视场。通过成为用户102的视觉信息的排他性提供者,HMD 104实现了提供沉浸式人工现实体验的目标。然而,这样做的一个后果是,用户102将无法看到他周围的物理环境,因为他的视觉被HMD 104屏蔽。
HMD 104可以具有外置相机,诸如图1所示的两个前向相机105A和105B。虽然仅示出了两个前向相机105A-B,但HMD 104可以具有任何数目的面向任何方向的相机(例如,向上的相机用于捕获天花板或房间照明,向下的相机用于捕获用户面部和/或身体的一部分,向后的相机用于捕获用户身后的内容的一部分,和/或内部相机用于捕获用户眼睛注视以进行眼睛跟踪的目的)。外置相机被配置为捕获用户周围的物理环境,并且可以连续这样做以生成一系列帧(例如,作为视频)。所捕获的图像可以用于估计由相机105A-B观察到的物理对象的深度。深度可以以多种方式测量。在特定实施例中,深度可以基于立体图像来计算。例如,两个前向相机105A-B可以共享重叠视场、并且被配置为同时捕获图像。结果,相同的物理对象可以被两个相机105A-B同时捕获。例如,对象的特定特征可以出现在由相机105A捕获的图像中的一个像素pA处,并且相同特征可以出现在由相机105B捕获的图像中的另一像素pB处。只要深度测量系统知道这两个像素对应相同特征,它就可以使用三角测量技术来计算观察到的特征的深度。例如,基于相机105A在3D空间内的位置和pA相对于相机105A的视场的像素位置,一条线可以从相机105A投射并且穿过像素pA。类似的线可以从另一相机105B投射并且穿过像素pB。由于这两个像素都应当对应于相同物理特征,因此这两条线应当相交。两条相交线和在两个相机105A与105B之间绘制的假想线形成三角形,该三角形可以用于计算观察到的特征与相机105A或105B或观察到的特征所在的空间点的距离。
在特定实施例中,可能需要环境中的HMD 104的姿态(例如,位置和取向),以在3D空间内正确地定向观察到的特征。例如,在确定桌子的角相对于HMD的位置之后,系统100将需要确定桌子相对于表示物理空间的全局坐标系的位置。基于HMD在全局坐标内的姿态和桌子的角相对于HMD的相对深度测量,系统100可以将观察到的桌子的角放置在全局坐标内。在特定实施例中,HMD 104可以配备有惯性测量单元(“IMU”)。由IMU生成的数据连同由外置相机105A-B捕获的立体图像允许系统100使用例如SLAM(同时定位和映射)或其他合适的技术来计算HMD 104的姿态。
在特定实施例中,人工现实系统100还可以具有使得用户102能够提供输入的一个或多个控制器106。控制器106可以经由无线或有线连接与HMD 104或单独的计算单元108通信。控制器106可以具有任何数目的按钮或其他机械输入机构。此外,控制器106可以具有IMU,从而可以跟踪控制器106的位置。控制器106可以进一步基于控制器上的预定模式而被跟踪。例如,控制器106可以具有若干红外LED或共同形成预定图案的其他已知的可观察特征。使用传感器或相机,系统100可以能够捕获控制器上的预定图案的图像。根据观察到的这些模式的取向,该系统可以计算控制器相对于传感器或相机的位置和取向。
人工现实系统100还可以包括计算机单元108。计算机单元可以是与HMD 104物理分离的独立单元,或者可以与HMD 104集成。在计算机108是单独的单元的实施例中,它可以经由无线或有线链路通信耦合到HMD 104。计算机108可以是高性能设备,诸如台式机或膝上型电脑,或者是资源有限的设备,诸如移动电话。高性能设备可以具有专用GPU和大容量或恒定电源。另一方面,资源有限的设备可能没有GPU,并且可能具有有限的电池容量。因此,可以由人工现实系统100实际使用的算法取决于其计算机单元108的能力。
如前所述,HMD可能会阻挡用户对其物理环境的观察。为了帮助用户避免与物理对象或人碰撞,特定实施例旨在限定用户可以期望在其中没有危险对象的无对象空间。对无对象空间的空间的限定可以被映射到用户的物理环境,并且用于在用户即将走出该空间时警告用户或提醒用户有对象侵入空间。例如,通过使用定位技术(例如,SLAM),人工现实系统可以检测到用户何时将要移动到经限定空间之外并且警告用户(例如,该系统可以显示虚拟边界,该虚拟边界基于无对象空间的边界使用HMD而被绘制)。作为另一示例,当系统检测到诸如另一人等物理对象进入经限定空间时,该系统可以生成并且显示对象的视觉表示,以警告用户有对象闯入。
在特定实施例中,用户可以手动地限定没有物理障碍的安全空间以在其中移动。例如,当用户开始使用人工现实设备时,用户可以手动地限定空间,以在其中玩耍。例如,用户可以使用控制器或手势指向地板并且绘制虚拟边界以限定空间。但是,绘制边界的手动过程可能很繁琐,尤其是在期望边界很大和/或跨越多个房间的情况下。此外,由用户绘制的边界可能不准确。例如,由用户绘制的边界线可能无法正确考虑位于边界的空域内的对象(例如,用户可能会沿着桌子的脚绘制边界而没有考虑桌子的突出面)。因为用户在绘制边界时可能过于保守并且未能包括该区域中的所有可用空闲空间,绘制的边界也可能不是最佳的,。
本文中描述的特定实施例提供了一种用于自动确定无对象空间的技术。图2示出了确定用户的物理环境中的可观察特征的位置的示例。该图示出了佩戴HMD 104的用户102。HMD 104可以具有视场重叠的外置相机。相机可以同时捕获用户环境的图像,其中包括桌子250。立体图像可以用于估计关于用户环境中的对象的3D信息。例如,给定一对立体图像,人工现实设备的计算系统可以尝试在图像中找到对应特征。例如,桌子250的左角201可以出现在两个立体图像中。该系统可以将在一个图像中捕获的特征与在另一图像中捕获的特征进行匹配,以找到对应于相同对象的特征。例如,该系统可以确定桌角201出现在由左侧相机捕获的图像中的位置(x1,y1)处,而同一桌角201出现在由右侧相机捕获的图像中的位置(x2,y2)处。一旦该系统标识出两个图像中与同一桌角201相对应的像素,该系统就可以使用立体相机的已知相对位置来计算桌角201相对于HMD 104的深度。例如,该系统可以从左侧相机投射一条线使其穿过其屏幕空间中的(x1,y1)位置,并且从右侧相机投射另一条线使其穿过其屏幕空间中的(x2,y2)位置。如果系统正确地确定该特征对应于同一桌角201,则这两条线应当相交。由于左右相机之间的相对距离也是已知的,所以该系统可以基于这两条投影线与在相机之间绘制的一条线来形成三角形。因此,该系统可以使用三角测量技术,来计算桌角201相对于HMD 104或任一相机的深度。该相对深度测量结果与环境中的HMD104的定位信息相结合可以用于计算观察到的特征201的3D空间位置。以类似的方式,该系统可以计算环境中其他可观察特征的空间位置。在特定实施例中,可观察特征的这些空间位置可以表示为点云中的点。
然而,特征的估计空间位置可能是有噪声的。如上所述,特征的估计空间位置可以从特征的深度估计中导出。继而,深度估计的准确性取决于特征检测的准确性、和所确定的对应关系的正确性。不幸的是,特征检测和对应关系匹配都容易出错,特别是对于具有难以跟踪的非显著特征的对象(例如,白墙、地板、大表面、圆形对象等)。因此,特征的估计空间位置可能是有噪声的并且包括误报。如果系统在标识无对象空间时依赖于这样的噪声数据而没有经过审查,则所得到的无对象空间可能不准确并且过于保守(换言之,它可能会排除实际上没有对象的片区)。
图3A示出了用于评估空间区域被物理对象占用的可能性的示例过程。该图示出了佩戴HMD 104的用户102和表示特征位置的估计的点云中的点(例如,201、302-306)。例如,点201对应于图2所示的左桌角,点302-306可以对应于其他观察到的特征。点304可以是误报,这表示它是噪声、并且实际上并不对应于物理对象。
在特定实施例中,该系统可以从特定预定空间区域中过滤掉点。例如,该系统可以过滤掉如下的点,该点落入距地板310的阈值距离311(例如,2、4或5厘米)之内,诸如点305。可以出于若干原因而过滤掉离地面较低的点。如前所述,大表面片区(诸如地板)的特征可能难以检测并且容易出错。因此,靠近地板310的点更有可能是误报并且可以被安全地忽略。即使对于与实际对象相对应的点,如果它们足够靠近地板310,它们也不太可能对用户102造成危险。例如,点305可以对应于地板310上的地毯或杂志的一部分,并且因此,不会对用户102造成危险。用于过滤掉靠近地板310的点的阈值距离311可以基于经验研究预先而被确定,或由用户102来设置。例如,距离地面310的阈值距离311可以基于地板310附近的误报的统计分布而被设置(例如,距离311可以设置为一个值,由于地板特征而生成的误报将落在该值以下)。
在特定实施例中,该系统可以另外地或替代地过滤掉高于阈值312的点。例如,该系统可以过滤掉高于阈值312的点,诸如点306。靠近天花板的点(类似于靠近地板的点)可能是有噪声的,因为天花板上的特征很难检测到。此外,即使点对应于实际对象,如果该对象高于用户的触及范围,该对象也不会对用户造成危险。例如,高于7或8英尺的对象(例如,吊扇或灯)将超出用户的范围,并且因此在确定用户在其中移动是否安全的空间时不应当被考虑,因此,在特定实施例中,该系统可以过滤掉高于某个高度312的点。高度312可以相对于天花板来限定(例如,距离天花板3、5、10或15英寸),或可以相对于地板310来限定(例如,7、8或8.7英尺)。
在特定实施例中,该系统可以使用点云来评估对象的观察到的特征的位置,以评估空间中某些区域空闲的可能性或被物理对象占用的可能性。在特定实施例中,物理空间可以被划分为多个体素320。为了简化,图3A将体素示出为2D网格,但本领域普通技术人员应当认识到,体素是3D体积单位。每个体素320可以具有预定义尺寸(例如,10cm×10cm×10cm的立方体、5cm×8cm×10cm的长方体等)。
在特定实施例中,每个体素320可以具有“被占用”、“空闲”或“未知”状态。如果体素320被物理对象占用,则认为体素320“被占用”。如果体素320没有被对象占用(换言之,体素320没有对象),则体素320是“空闲的”。如果没有足够的信息来确定体素320是“被占用”还是“空闲”,则它的状态将是“未知的”。在特定实施例中,每个体素320可以被初始化为具有“未知状态”。
在特定实施例中,点云可以作为特定体素被“占用”的证据。如图3A所示,点云中的每个点可以位于体素320中的一个中,并且每个体素320可以包含任何数目的点。例如,与图2所示的表的左上角相对应的点201落在体素321中。该特定体素321包含另外的两个点。体素322包含点302,体素323包含点303,体素324包含点304。其他若干体素(诸如体素325)不包含任何点。在特定实施例中,体素中的每个点可以算作对该体素被“占用”的投票(接收到至少一个“被占用”的投票的体素被加阴影)。例如,由于体素321包含三个点,因此它可以因“被占用”而接收三票。体素322仅包含一个点302,因此它因“被占用”而有一票。由于与体素322的一票相比,体素321具有三票,因此体素321在没有任何反证的情况下更有可能被占用,这将在下面更详细地描述。在特定实施例中,可以聚合每个体素接收的投票。例如,如果每个“被占用”投票计数为+1,则体素321迄今为止接收到的投票将是+3,而体素324接收到的投票将是+1。
除了用于确定“被占用”区域,点云还可以用于标识可能没有对象的区域。从概念上讲,如果对象从特定视点可见,则对象与视点之间的空间应当没有对象;否则,对象将被遮挡。如图3B示出了根据特定实施例的用于评估空间区域没有对象的可能性的示例技术。图3B示出了体素网格320和表示观察到的特征的位置的若干点(例如,201、302、303和304)。在特定实施例中,计算系统可以向点云中的每个点投射光线。例如,图3B示出了分别向点201、302、303和304投射的光线331、332、333和334。在与目标点相交之前,每条光线可以与任何数目的体素320相交。例如,光线331在与包含目标点201的体素321相交之前与六个体素相交。作为另一示例,光线334在与包含目标点304的体素324相交之前与两个体素相交。“空闲”投票可以被分配给如下的每个体素,其在光线与包含其目标点的体素相交之前与光线相交。例如,体素340和341每个可以因被光线331相交而接收“空闲”投票。体素341可以因与光线334相交而接收另外的“空闲”投票。因此,体素341可以具有两个“空闲”投票。
在特定实施例中,每个体素接收到的投票可以用于在统计上确定其“被占用”、“空闲”或“未知”的可能性。例如,体素341可以有两个“空闲”投票;体素340可以有一个“空闲”投票;体素324可以有一个“被占用”投票和一个“空闲”投票(由于光线331);并且体素321可以有三个“被占用”投票。任何合适的规则或标准可以应用于体素的投,票以确定其可能的状态。例如,如果体素的多数投票是“被占用”,则它可以被视为“被占用”;如果其多数投票是“空闲”,则它可以被视为“空闲”;如果体素没有接收到投票,或者如果它收到相同数目的“被占用”和“空闲”投票,则其状态可以“未知”。
作为另一示例,每个体素的投票可以聚合以落在数字范围(例如,-10到10;0到10;负无穷到正无穷等)内,并且基于经计票的投票所属的特定子范围,可以定义每个体素的可能状态。例如,每个体素可以与跟踪体素接收的相对投票计数的数值相关联。该值可以从0开始,并且对于每个“被占用”投票,它可以递增+1,而对于每个“空闲”投票,它可以递减-1。例如,如果体素接收到5个“被占用”投票和2个“空闲”投票,则数值将为3。如果体素接收到6个“被占用”投票和8个“空闲”投票,则数值将为-2。如果体素的数值落在-3到+3的子范围内,则可以为体素分配可能的“未知”状态(换言之,将体素标记为“被占用”或“空闲”的置信度不足)。如果数值大于+3,则可以为体素分配可能的“被占用”状态。相反,如果数值小于-3,则可以为体素分配可能的“空闲”状态。尽管该示例示出子范围是对称的,但它们不一定是对称的。例如,与“空闲”、“未知”和“被占用”相对应的子范围可以分别是[-10到-5]、[-5到2]和[2到10]。这种子范围的不对称分配在分配“空闲”状态时更为保守,因为与“被占用”状态的要求相比,对“空闲”状态的要求更为严格(例如,“空闲”状态需要比“被占用”投票多五个“空闲”投票)。决定体素状态的统计规则可以取决于多种因素,例如,包括风险承受能力(例如,将体素视为“被占用”而不是“空闲”,倾向于犯错)、已知噪声或误差偏差(例如,如果检测到的特征的点云具有显著噪声,则可能需要更多证据才能将体素视为“被占用”)等。
在特定实施例中,在3D空间区域(例如,体素)的可能占用状态被确定之后,它们可以用于确定对应2D片区的占用状态。图4示出了平面中2D片区400的占用状态的示例。平面可以平行于底层,并且平面中2D片区的占用状态可以用于限定向用户通知空闲区域、占用区域和未知区域的地图。图4所示的2D片区400可以对应于沿着图3B所示的3D空间区域或体素320的x-y平面的横截面。例如,图4所示的片区A到J可以分别对应于图3B中的列A到J(例如,片区A可以是列A的横截面,片区B可以是列B的横截面,等等)。
在特定实施例中,可以基于对应列中的3D空间区域的占用状态来确定每个片区400的占用状态。从概念上讲,每个片区400的占用状态取决于该片区的空域。如果一个片区的空域的任何部分(其可能被限制在特定高度,诸如图3A所示的最大高度阈值312)被对象占用,则该片区被认为被占用并且用户应当注意避免进入该片区。例如,由于图3B所示的列E、F、G和H中的体素每个具有至少一个“被占用”体素(例如,列G中的体素321和322),对应片区E、F、G和H被认为“被占用”(被占用片区被浓阴影遮蔽)。对于不包含“被占用”体素的每一列,对应片区的占用状态可以是“空闲”或“未知”。在特定实施例中,可以基于该列中“空闲”体素的百分比来确定这种片区的占用状态。例如,占用状态可以基于以下等式:
“空闲”体素数÷(“空闲”体素数+“未知”体素数)。
例如,列A中30%的体素“空闲”;列C中50%的体素“空闲”;并且列J中0%的体素“空闲”。在特定实施例中,片区是否被视为“空闲”可以基于对应列中“空闲”体素的百分比是否满足阈值要求。例如,如果“空闲”体素的百分比为25%或更多,则该片区的占用状态为“空闲”;否则,占用状态将是“未知”。在图4中,较暗片区(诸如片区410)表示“被占用”片区;较浅片区(诸如片区420)表示“未占用”片区;白色片区(诸如片区430)表示“未知”片区。
图5示出了根据特定实施例的物理空间内可能未被对象占用的自动检测到的片区的示例。所示的物理空间500是具有多个房间(例如,510a、510b和510c)的住宅。用户可以携带传感器设备沿着路径530行走。例如,用户可以佩戴带有外置相机或其他类型传感器的HMD。当用户沿着路径530行走时,传感器设备可以捕获传感器数据,诸如图像。在特定实施例中,通过通信地耦合到传感器设备的计算系统(例如,与HMD集成的机载计算设备或无线连接到HMD的膝上型计算机或移动设备),可以处理到的图像。计算系统可以检测在图像中捕获的对象的特征的3D位置,并且确定3D空间区域(例如,体素)的占用状态。然后可以使用3D空间区域的占用状态,来确定哪些片区可能未被占用以及哪些片区可能被对象占用。阴影片区520表示其空域可能未被对象占用的“空闲”片区。“空闲”片区520可以根据本文中描述的实施例自动确定。
在特定实施例中,所确定的“空闲”片区、以及“被占用”和“未知”片区的地图可以用于帮助用户在物理空间内导航或移动。当用户的视觉被例如HMD阻挡时,这可能特别有用。例如,地图可以用于生成虚拟安全边界,该虚拟安全边界可以显示在HMD上,以提醒用户其相对于安全边界的位置。例如,如果用户正在接近“空闲”片区的边界,则可以基于边界和用户的相对位置来渲染虚拟边界。通过向用户展示虚拟边界,他至少会知道他靠近其空域可能被对象占用的片区,并且避免进入该片区(或者在该片区移动时更加谨慎)。在特定实施例中,该系统还可以确定入侵者是否已经进入“空闲”片区,用户期望可以在该空闲”片区中安全移动。例如,在“空闲”片区已经确定之后,计算系统可以继续在用户的物理环境中检测对象。如果系统在“空闲”片区中检测到对象(例如,人、狗、玩具等),则该系统可以将其视为入侵者,并且提醒用户该对象存在于“空闲”片区。例如,该系统可以渲染对象的视觉表示(例如,作为“被占用”体素的集合、对象的渐变轮廓、图标等)或生成定向声音警报以向用户通知对象的存在。
在特定实施例中,可以由人工现实设备的操作系统或相关联的系统级服务生成地图。地图可以被提供给在设备上运行的任何第三方应用。例如,系统级库或API可以被提供给第三方应用,以允许其请求系统生成的“空闲”片区地图。然后应用可以以任何期望方式使用该信息。例如,应用可以使用地图来帮助用户在他对物理环境的视觉被阻挡的同时,在物理环境中导航或移动。作为另一示例,应用可以渲染与“空闲”片区相对应的虚拟路径、并且指示用户沿着路径行走。应用可以另外地或替代地渲染与“被占用”和/或“未知”片区相对应的虚拟障碍物或危险(例如,墙壁、熔岩等),以阻止用户实际进入这些片区。
图6示出了用于自动检测“空闲”或“未占用”片区的示例方法600。该方法可以开始于步骤610,其中计算系统(例如,与头戴式设备相关联的系统,该头戴式设备在由用户佩戴时阻挡用户对物理空间的观察)可以将用户周围的物理空间的至少一部分划分为多个三维(3D)区域(例如,体素或其他空间定义),其中3D区域中的每个3D区域可以与平面中的多个片区中的片区相关联。在特定实施例中,物理空间的该部分可以不包括以下中的至少一项:(1)物理空间的上部高于上限高度阈值或(2)物理空间的下部低于下限高度阈值。
在步骤620,该系统可以生成物理空间的该部分中的对象的特征的估计位置。例如,基于用户周围环境的图像,该系统可以基于在图像中捕获的对象的可检测特征来生成点云。点云中的每个点可以表示特征的估计位置。
在步骤630,该系统可以基于估计位置,确定多个3D区域中的每个3D区域的占用状态。在特定实施例中,多个3D区域中的每个3D区域的占用状态可以指示3D区域:(1)可能被至少一个对象占用(例如,“被占用”)或(2)可能未被至少一个对象占用(例如,“空闲”)。此外,占用状态可以指示3D区域“未知”。在特定实施例中,多个3D区域中的每个3D区域的占用状态取决于位于该3D区域内的估计位置的数目。例如,3D区域内的每个估计位置(或点云中的一个点)都可以算作“被占用”投票。3D区域的“被占用”投票数越多,它被至少一个物理对象占用的可能性就越大。如前所述,“被占用”投票可以被“空闲”投票抵消。因此,在特定实施例中,为了确定多个3D区域中的每个3D区域的占用状态,该系统可以进一步向估计位置投射光线。多个3D区域中的每个3D区域的占用状态取决于与那些3D区域相交的光线的数目。如果(1)光线穿过该3D区域并且(2)估计位置(向该估计位置投射光线)位于该3D区域之外,则光线与该3D区域相交。每个光线交叉点都可以算作“空闲”投票。因此,如果3D区域总共接收到5个“被占用”投票和10个“空闲”投票,则该系统可以得出以下结论,即,该3D区域更有可能未被对象占用。相反,如果3D区域接收到5个“被占用”投票和2个“空闲”投票,则该系统可以得出以下结论,即,3D区域更有可能被对象占用。如果3D区域没有投票,或者其“空闲”与“被占用”投票之间的差异不足以让系统自信地在“空闲”与“被占用”状态之间进行选择,则该系统可以认为该状态是“未知”。
在步骤640,该系统可以基于多个3D区域的占用状态,确定多个片区中的一个或多个片区具有可能未被对象占用的相应空域。这可以通过例如确定以下情况来确定:与多个片区中的一个或多个片区中的每个片区相关联的空域(1)不包含如下的任何3D区域,其占用状态指示3D区域可能被至少一个对象占用;并且(2)包含阈值数目的如下3D区域,其相应占用状态指示对应3D区域可能未被至少一个对象占用。这种“空闲”区域的阈值数目可以取决于“未知”区域的数目,因此“空闲”区域的数目比“未知”区域的数目多出与该片区相关联的3D区域的总数的一定数目或一定百分比(例如,如果有100个区域与一个片区相关联,则可能需要30%、50%或70%的区域是“空闲”的,以便该片区被视为具有未占用空域)。在特定实施例中,该系统可以进一步确定多个片区中的具有相应第二空域的另外的一个或多个片区,基于确定该相应第二空域各自包含其占用状态指示3D区域可能被至少一个对象占用的至少一个3D区域,来确定第二空域可能被对象占用。
在特定实施例中,与一个或多个片区中的每个片区相关联的空域低于上限高度阈值、高于下限高度阈值、或在上限高度阈值与下限高度阈值之间。在特定实施例中,与一个或多个片区中的每个片区相关联的空域由从该片区向上或向下延伸的垂直边界限定。在特定实施例中,多个3D区域中的每个3D区域在与该3D区域相关联的片区的空域内。
在特定实施例中,多个片区中的一个或多个片区被配置为:由应用使用,以帮助用户在物理空间的该部分内移动(例如,诸如游戏等第三方应用可以使用该信息生成虚拟路径或障碍物,以在虚拟环境中引导用户而不会遇到物理对象)。在特定实施例中,该系统可以将多个片区中的一个或多个片区提供给虚拟现实应用,该虚拟现实应用被配置为使用多个片区中的一个或多个片区来生成用于引导用户移动的视觉指示。
特定实施例可以在适当的情况下重复图6的方法的一个或多个步骤。尽管本公开将图6的方法的特定步骤描述和图示为以特定顺序出现,但本公开设想图6的方法的任何合适的步骤以任何合适的顺序发生。此外,尽管本公开描述和说明了用于确定可能未被对象占用的片区的示例方法,包括图6的方法的特定步骤,但是本公开设想用于确定可能未被对象占用的片区的任何合适的方法,包括任何合适的步骤,在适当的情况下,其可以包括图6的方法的步骤的子集。此外,尽管本公开描述和图示了特定组件、设备或系统执行图6的方法的特定步骤,但是本公开设想任何合适的组件、设备或系统的任何合适的组合执行图6的方法的任何合适的步骤。
图7示出了与VR或社交网络系统相关联的示例网络环境700。网络环境700包括通过网络710彼此连接的客户端系统730、VR或社交网络系统760和第三方系统770。尽管图7示出了客户端系统730、VR或社交网络系统760、第三方系统770和网络710的特定布置,但本公开设想客户端系统730、VR或社交网络系统760、第三方系统770和网络710的任何合适的布置。作为示例而非限制,客户端系统730、VR或社交网络系统760和第三方系统770中的两个或更多个可以绕过网络710直接彼此连接。作为另一示例,客户端系统730、VR或社交网络系统760和第三方系统770中的两个或更多个可以整体地或部分地彼此物理地或逻辑地并置。此外,虽然图7示出了特定数目的客户端系统730、VR或社交网络系统760、第三方系统770和网络710,但本公开设想任何合适数目的客户端系统730、VR或社交网络系统760、第三方系统770和网络710。作为示例而非限制,网络环境700可以包括多个客户端系统730、多个VR或社交网络系统760、多个第三方系统770和多个网络710。
本公开设想任何合适的网络710。作为示例而非限制,网络710的一个或多个部分可以包括自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、无线广域网(WWAN)、城域网(MAN)、互联网的一部分、公共交换电话网络(PSTN)的一部分、蜂窝电话网络、或其中的两种或多种的组合。网络710可以包括一个或多个网络710。
链路750可以将客户端系统730、社交网络系统760和第三方系统770连接到通信网络710或彼此连接。本公开设想任何合适的链路750。在特定实施例中,一个或多个链路750包括一个或多个有线(例如,数字用户线(DSL)或有线数据服务接口规范(DOCSIS))、无线(例如,用于例如Wi-Fi或全球微波接入互操作性(WiMAX))、或光(例如,同步光网络(SONET)或同步数字体系(SDH))链路。在特定实施例中,一个或多个链路750每个包括自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路750、或两个或更多个这样的链路750的组合。链路750不必在整个网络环境700中相同。一个或多个第一链路750可以在一个或多个方面不同于一个或多个第二链路750。
在特定实施例中,客户端系统730可以是如下的电子设备,其包括硬件、软件或嵌入式逻辑组件或两个或更多个这样的组件的组合、并且能够执行由客户端系统730实现或支持的适当功能。作为示例而非限制,客户端系统730可以包括计算机系统,诸如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、相机、个人数字助理(PDA)、手持电子设备、蜂窝电话、智能手机、增强/虚拟现实设备、其他合适的电子设备或其任何合适的组合。本公开设想任何合适的客户端系统730。客户端系统730可以使得客户端系统730处的网络用户能够访问网络710。客户端系统730可以使得其用户能够与其他客户端系统730处的其他用户通信。
在特定实施例中,客户端系统730(例如,HMD)可以包括直通引擎732以提供本文所述的直通特征,并且可以具有一个或多个附加组件、插件或其他扩展组件。客户端系统730处的用户可以连接到特定服务器(诸如服务器762、或与第三方系统770相关联的服务器)。服务器可以接受该请求并且与客户端系统730通信。
在特定实施例中,VR或社交网络系统760可以是可以托管在线虚拟现实环境或社交网络的网络可寻址计算系统。VR或社交网络系统760可以生成、存储、接收和发送社交网络数据,例如用户简档数据、概念简档数据、社交图信息或与在线社交网络相关的其他合适的数据。社交网络或VR系统760可以由网络环境700的其他组件直接或经由网络710访问。作为示例而非限制,客户端系统730可以使用网络浏览器访问社交网络或VR系统760,或者直接或经由网络710访问与社交网络或VR系统760相关联的本地应用(例如,移动社交网络应用、消息传递应用、另一合适的应用或其任何组合)。在特定实施例中,社交网络或VR系统760可以包括一个或多个服务器762。每个服务器762可以是单一服务器或跨越多台计算机或多个数据中心的分布式服务器。服务器762可以是各种类型,例如但不限于网络服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、用于执行本文所述的功能或过程的其他合适的服务器、或其任何组合。在特定实施例中,每个服务器762可以包括用于执行由服务器762实现或支持的适当功能硬件、软件或嵌入式逻辑组件或两个或更多个这样的组件的组合。在特定实施例中,社交网络或VR系统760可以包括一个或多个数据存储764。数据存储764可以用于存储各种类型的信息。在特定实施例中,存储在数据存储764中的信息可以根据特定数据结构来组织。在特定实施例中,每个数据存储764可以是关系数据库、列式数据库、相关数据库或其他合适的数据库。尽管本公开描述或图示了特定类型的数据库,但本公开设想任何合适类型的数据库。特定实施例可以提供接口,该接口使得客户端系统730、社交网络或VR系统760或第三方系统770能够管理、检索、修改、添加或删除存储在数据存储764中的信息。
在特定实施例中,社交网络或VR系统760可以将一个或多个社交图存储在一个或多个数据存储764中。在特定实施例中,社交图可以包括多个节点——其可以包括多个用户节点(每个对应于特定用户)或多个概念节点(每个对应于特定概念)——以及连接节点的多条边。社交网络或VR系统760可以为在线社交网络的用户提供与其他用户通信和交互的能力。在特定实施例中,用户可以经由社交网络或VR系统760加入在线社交网络,然后添加与他们想要连接到的社交网络或VR系统760的很多其他用户的连接(例如,关系)。在此,术语“朋友”可以指代社交网络或VR系统760的任何其他用户,用户已经经由社交网络或VR系统760与该其他用户形成连接、关联或关系。
在特定实施例中,社交网络或VR系统760可以为用户提供对社交网络或VR系统760支持的各种类型的项目或对象采取行动的能力。作为示例而非限制,项目和对象可以包括社交网络或VR系统760的用户可以所属的群组或社交网络、用户可能感兴趣的事件或日历条目、用户可以使用的基于计算机的应用、允许用户经由服务、与用户可以执行的广告的交互来购买或出售项目的事务、或者其他合适的项目或对象。用户可以与能够在社交网络或VR系统760中或由第三方系统770的外部系统表示的任何东西进行交互,第三方系统770与社交网络或VR系统760分离并且经由网络710耦合到社交网络或VR系统760。
在特定实施例中,社交网络或VR系统760可以能够链接各种实体。作为示例而非限制,社交网络或VR系统760可以使得用户能够彼此交互以及从第三方系统770或其他实体接收内容,或者允许用户通过应用程序编程接口(API)或其他通信通道与这些实体交互。
在特定实施例中,第三方系统770可以包括一种或多种类型的服务器、一个或多个数据存储、一个或多个接口,包括但不限于API、一个或多个网络服务、一个或多个内容源、一个或多个网络或任何其他合适的组件,例如服务器可以与之通信的组件。第三方系统770可以由与操作社交网络或VR系统760的实体不同的实体操作。然而,在特定实施例中,社交网络或VR系统760和第三方系统770可以彼此结合操作,以向社交网络或VR系统760或第三方系统770的用户提供社交网络服务。在这个意义上,社交网络或VR系统760可以提供平台或骨干,诸如第三方系统770等其他系统可以使用该平台或骨干通过互联网向用户提供社交网络服务和功能。
在特定实施例中,第三方系统770可以包括第三方内容对象提供者。第三方内容对象提供者可以包括可以传送到客户端系统730的一个或多个内容对象源。作为示例而非限制,内容对象可以包括关于用户感兴趣的事物或活动的信息,例如电影放映时间、电影评论、餐厅评论、餐厅菜单、产品信息和评论或其他合适的信息。作为另一示例而非限制,内容对象可以包括激励内容对象,诸如优惠券、折扣票、礼券或其他合适的激励对象。
在特定实施例中,社交网络或VR系统760还包括可以增强用户与社交网络或VR系统760的交互的用户生成内容对象。用户生成内容可以包括用户可以添加、上传、发送或“发布”到社交网络或VR系统760的任何内容。作为示例而非限制,用户将帖子从客户端系统730传送到社交网络或VR系统760。帖子可以包括数据,诸如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐或其他类似数据或媒体。也可以由第三方通过“通信通道”(诸如新闻馈送或流)向社交网络或VR系统760添加内容。
在特定实施例中,社交网络或VR系统760可以包括各种服务器、子系统、程序、模块、日志和数据存储。在特定实施例中,社交网络或VR系统760可以包括以下中的一项或多项:网络服务器、动作记录器、API请求服务器、相关性和排名引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象暴露日志、推理模块、授权/隐私服务器、搜索模块、广告定位模块、用户界面模块、用户简档存储、连接存储、第三方内容存储或位置存储。社交网络或VR系统760还可以包括合适的组件,诸如网络接口、安全机制、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的组件或其任何合适的组合。在特定实施例中,社交网络或VR系统760可以包括用于存储用户简档的一个或多个用户简档商店。用户简档可以包括例如生物信息、人口统计信息、行为信息、社会信息或其他类型的描述性信息,诸如工作经验、教育历史、爱好或偏好、兴趣、亲和力或位置。兴趣信息可以包括与一个或多个类别相关的兴趣。类别可以是一般的或特定。作为示例而非限制,如果用户“喜欢”关于鞋品牌的文章,则类别可以是品牌,或者是一般类别“鞋”或“服装”。连接存储可以用于存储关于用户的连接信息。连接信息可以指示具有相似或共同工作经验、组成员资格、爱好、教育历史或以任何方式相关或共享共同属性的用户。连接信息还可以包括不同用户与内容(内部和外部)之间的用户定义的连接。网络服务器可以用于将社交网络或VR系统760经由网络710链接到一个或多个客户端系统730、或一个或多个第三方系统770。网络服务器可以包括邮件服务器或其他消息传递功能,以接收和在社交网络或VR系统760与一个或多个客户端系统730之间路由消息。API请求服务器可以允许第三方系统770通过调用一个或多个API,来访问来自社交网络或VR系统760的信息。动作记录器可以用于从网络服务器接收关于用户在社交网络或VR系统760上或之外的动作的通信。与动作日志相结合,可以维护到第三方内容对象的用户曝光的第三方内容对象日志。通知控制器可以向客户端系统730提供关于内容对象的信息。可以将信息作为通知推送到客户端系统730,或者可以响应于从客户端系统730接收的请求,而从客户端系统730提取信息。授权服务器可以用于强制实施社交网络或VR系统760的用户的一个或多个隐私设置。用户的隐私设置确定与用户相关联的特定信息如何共享。授权服务器可以允许用户选择加入或退出让其动作由社交网络或VR系统760记录或与其他系统(例如,第三方系统770)共享,例如通过设置适当隐私设置。第三方内容对象存储可以用于存储从诸如第三方系统770等第三方接收的内容对象。位置存储可以用于存储从与用户相关联的客户端系统730接收的位置信息。广告定价模块可以组合社交信息、当前时间、位置信息或其他合适的信息,以便以通知的形式向用户提供相关广告。
图8示出了示例计算机系统800。在特定实施例中,一个或多个计算机系统800执行本文中描述或图示的一种或多种方法的一个或多个步骤。在特定实施例中,一个或多个计算机系统800提供本文中描述或图示的功能。在特定实施例中,在一个或多个计算机系统800上运行的软件执行本文中描述或图示的一种或多种方法的一个或多个步骤,或者提供本文中描述或图示的功能。特定实施例包括一个或多个计算机系统800的一个或多个部分。在此,在适当的情况下,对计算机系统的引用可以涵盖计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以涵盖一个或多个计算机系统。
本公开设想任何合适数目的计算机系统800。本公开设想采用任何合适物理形式的计算机系统800。作为示例而非限制,计算机系统800可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,计算机模块(COM)或系统级模块(SOM))、台式计算机系统、膝上型计算机或笔记本计算机系统、交互式信息亭、大型机、计算机系统网格、移动电话、个人数字助理(PDA)、服务器、平板电脑系统、增强/虚拟现实设备、或其中的两个或更多个的组合。在适当的情况下,计算机系统800可以包括一个或多个计算机系统800;是单一的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或驻留在云中,该云可以包括一个或多个网络中的一个或多个云组件。在适当的情况下,一个或多个计算机系统800可以在没有实质空间或时间限制的情况下、执行本文中描述或图示的一种或多种方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统800可以实时或以批处理模式执行本文中描述或图示的一种或多种方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统800可以在不同时间或在不同位置执行本文中描述或图示的一种或多种方法的一个或多个步骤。
在特定实施例中,计算机系统800包括处理器802、存储器804、存储装置806、输入/输出(I/O)接口808、通信接口810和总线812。尽管本公开描述和图示具有特定布置的特定数目的特定组件的特定计算机系统,但本公开设想具有任何合适布置的任何合适数目的任何合适组件的任何合适计算机系统。
在特定实施例中,处理器802包括用于执行指令的硬件,诸如构成计算机程序的那些。作为示例而非限制,为了执行指令,处理器802可以从内部寄存器、内部高速缓存、存储器804或存储装置806中检索(或获取)指令;解码并且执行指令;然后将一个或多个结果写入内部寄存器、内部高速缓存、存储器804或存储装置806。在特定实施例中,处理器802可以包括用于数据、指令或地址的一个或多个内部高速缓存。本公开设想处理器802在适当的情况下包括任何合适数目的任何合适的内部高速缓存。作为示例而非限制,处理器802可以包括一个或多个指令高速缓存、一个或多个数据高速缓存以及一个或多个转换后备缓冲器(TLB)。指令高速缓存中的指令可以是存储器804或存储装置806中的指令的副本,并且指令高速缓存可以加速处理器802对那些指令的检索。数据高速缓存中的数据可以是存储器804或存储装置806中的用于在处理器802处执行以进行操作的指令的数据的副本;由在处理器802处执行的后续指令访问或用于写入存储器804或存储装置806的在处理器802处执行的先前指令的结果;或其他合适的数据。数据高速缓存可以加速处理器802的读取或写入操作。TLB可以加速处理器802的虚拟地址转换。在特定实施例中,处理器802可以包括用于数据、指令或地址的一个或多个内部寄存器。本公开设想处理器802在适当的情况下包括任何合适数目的任何合适的内部寄存器。在适当的情况下,处理器802可以包括一个或多个算术逻辑单元(ALU);是多核处理器;或者包括一个或多个处理器802。尽管本公开描述和图示特定处理器,但是本公开设想任何合适的处理器。
在特定实施例中,存储器804包括用于存储供处理器802执行的指令或供处理器802操作的数据的主存储器。作为示例而非限制,计算机系统800可以将指令从存储装置806或另一源(例如,另一计算机系统800)加载到存储器804。处理器802然后可以将指令从存储器804加载到内部寄存器或内部高速缓存。为了执行指令,处理器802可以从内部寄存器或内部高速缓存中检索指令、并且对它们进行解码。在指令执行期间或之后,处理器802可以将一个或多个结果(其可以是中间或最终结果)写入内部寄存器或内部高速缓存。处理器802然后可以将这些结果中的一个或多个写入存储器804。在特定实施例中,处理器802仅执行一个或多个内部寄存器或内部高速缓存或存储器804中的指令(与存储装置806或其他地方相反)、并且仅对一个或多个内部寄存器或内部高速缓存或存储器804中的数据进行操作(与存储装置806或其他地方相反)。一条或多条存储器总线(其各自可以包括地址总线和数据总线)可以将处理器802耦合到存储器804。总线812可以包括一条或多条存储器总线,如下所述。在特定实施例中,一个或多个存储器管理单元(MMU)驻留在处理器802与存储器804之间、并且促进对由处理器802请求的存储器804的访问。在特定实施例中,存储器804包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口或多端口RAM。本公开设想任何合适的RAM。在适当的情况下,存储器804可以包括一个或多个存储器804。尽管本公开描述和图示了特定存储器,但本公开设想任何合适的存储器。
在特定实施例中,存储装置806包括用于数据或指令的大容量存储装置。作为示例而非限制,存储装置806可以包括硬盘驱动器(HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器、或其中的两个或更多个的组合。在适当的情况下,存储装置806可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置806可以在计算机系统800内部或外部。在特定实施例中,存储装置806是非易失性固态存储器。在特定实施例中,存储装置806包括只读存储器(ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可更改ROM(EAROM)或闪存、或其中的两个或更多个的组合。本公开设想采用任何合适的物理形式的大容量存储装置806。在适当的情况下,存储装置806可以包括促进处理器802与存储装置806之间的通信的一个或多个存储控制单元。在适当的情况下,存储装置806可以包括一个或多个存储装置806。尽管本公开描述和图示了特定存储装置,但是本公开设想任何合适的存储装置。
在特定实施例中,I/O接口808包括用于为计算机系统800与一个或多个I/O设备之间的通信提供一个或多个接口的硬件、软件或这两者。在适当的情况下,计算机系统800可以包括这些I/O设备中的一个或多个。这些I/O设备中的一个或多个可以实现人与计算机系统800之间的通信。作为示例而非限制,I/O设备可以包括键盘、小键盘、麦克风、显示器、鼠标、打印机、扫描仪、扬声器、相机、触控笔、平板电脑、触摸屏、轨迹球、摄像机、其他合适的I/O设备、或其中的两个或更多个的组合。I/O设备可以包括一个或多个传感器。本公开设想任何合适的I/O设备和用于I/O设备的任何合适的I/O接口808。在适当的情况下,I/O接口808可以包括一个或多个设备或软件驱动程序,以使得处理器802能够驱动这些I/O设备中的一个或多个。在适当的情况下,I/O接口808可以包括一个或多个I/O接口808。尽管本公开描述和图示了特定I/O接口,但本公开设想任何合适的I/O接口。
在特定实施例中,通信接口810包括硬件、软件或这两者,其用于提供用于计算机系统800与一个或多个其他计算机系统800或一个或多个网络之间的通信(注入,基于分组的通信)的一个或多个接口。作为示例而非限制,通信接口810可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器、或者用于与无线网络(诸如WI-FI网络)进行通信的无线NIC(WNIC)或无线适配器。本公开设想任何合适的网络和用于其的任何合适的通信接口810。作为示例而非限制,计算机系统800可以与自组织网络、个域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、或互联网的一个或多个部分、或其中的两个或更多个的组合进行通信。这些网络中的一个或多个的一个或多个部分可以是有线的或无线的。作为示例,计算机系统800可以与无线PAN(WPAN)(例如,BLUETOOTH WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(GSM)网络)或其他合适的无线网络、或其中的两个或更多个的组合进行通信。在适当的情况下,计算机系统800可以包括用于这些网络中的任一个的任何合适的通信接口810。在适当的情况下,通信接口810可以包括一个或多个通信接口810。尽管本公开描述和图示了特定通信接口,但本公开设想任何合适的通信接口。
在特定实施例中,总线812包括用于将计算机系统800的组件彼此耦合的硬件、软件或这两者。作为示例而非限制,总线812可以包括加速图形端口(AGP)或其他图形总线、增强型工业标准架构(EISA)总线、前端总线(FSB)、HYPERTRANSPORT(HT)互连、工业标准架构(ISA)总线、INFINIBAND互连、低引脚数(LPC)总线、存储器总线、微通道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线、或其他合适的总线、或其中的两个或更多个总线的组合。在适当的情况下,总线812可以包括一条或多条总线812。尽管本公开描述和图示了特定总线,但本公开设想任何合适的总线或互连。
这里,在适当的情况下,一个或多个计算机可读非瞬态存储介质可以包括一个或多个基于半导体的或其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或特定应用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字卡或驱动器、任何其他合适的计算机可读非暂态存储介质、或其中的两个或更多个的任何合适的组合。在适当的情况下,计算机可读非暂态存储介质可以是易失性、非易失性或易失性和非易失性的组合。
这里,“或”是包括性而非排他性的,除非另有明确说明或上下文另有说明。因此,这里,“A或B”是指“A、B或两者”,除非另有明确说明或上下文另有说明。此外,“和”既是联合的又是多个的,除非另有明确说明或上下文另有说明。因此,这里,“A和B”是指“A和B,共同地或分别地”,除非另有明确说明或上下文另有说明。
本公开的范围包括本领域普通技术人员将理解的对本文中描述或图示的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文中描述或图示的示例实施例。此外,尽管本公开将本文中的各个实施例描述和图示为包括特定组件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域普通技术人员将理解的本文任何地方描述或图示的任何组件、元件、特征、功能、操作或步骤的任何组合或排列。此外,在所附权利要求中对适于、被布置为、能够、被配置为、启用、可操作以或操作以执行特定功能的装置或系统或装置或系统的组件的引用涵盖该装置、系统、组件,无论它或该特定功能是否被激活、打开或解锁,只要该装置、系统或组件如此适配、布置、能够、被配置为、启用、可操作以或操作。此外,尽管本公开将特定实施例描述或图示为提供特定优点,但特定实施例可以不提供、提供一些或所有这些优点。
Claims (15)
1.一种方法,包括由计算系统:
将用户周围的物理空间的至少一部分划分为多个三维(3D)区域,其中所述3D区域中的每个3D区域与平面中的多个片区中的片区相关联;
生成所述物理空间的所述一部分中的对象的特征的估计位置;
基于所述估计位置,确定所述多个3D区域中的每个3D区域的占用状态;以及
基于所述多个3D区域的所述占用状态,确定所述多个片区中的一个或多个片区具有可能未被对象占用的相应空域。
2.根据权利要求1所述的方法,
其中所述计算系统与头戴式设备相关联,所述头戴式设备在由所述用户佩戴时阻挡所述用户对所述物理空间的观察;以及
其中所述多个片区中的所确定的所述一个或多个片区被配置为由应用使用,以帮助所述用户在所述物理空间的所述一部分内移动。
3.根据权利要求1所述的方法,其中所述物理空间的所述一部分不包括以下中的至少一项:(1)所述物理空间的上部高于上限高度阈值、或(2)所述物理空间的下部低于下限高度阈值。
4.根据权利要求3所述的方法,其中与所述一个或多个片区中的每个片区相关联的所述空域低于所述上限高度阈值、高于所述下限高度阈值、或在所述上限高度阈值与所述下限高度阈值之间。
5.根据权利要求1所述的方法,其中与所述一个或多个片区中的每个片区相关联的所述空域由从所述片区向上或向下延伸的垂直边界限定。
6.根据权利要求1所述的方法,其中所述多个3D区域中的每个3D区域在与该3D区域相关联的所述片区的所述空域内。
7.根据权利要求1所述的方法,其中所述多个3D区域中的每个3D区域的所述占用状态取决于位于该3D区域内的所述估计位置的数目。
8.根据权利要求7所述的方法,其中确定所述多个3D区域中的每个3D区域的所述占用状态包括:
向所述估计位置投射光线;
其中所述多个3D区域中的每个3D区域的所述占用状态取决于与该3D区域相交的所述光线的数目;在这种情况下,可选地,其中如果(1)光线穿过3D区域、并且(2)向其投射光线的所述估计位置位于该3D区域之外,则光线与该3D区域相交。
9.根据权利要求1所述的方法,其中所述多个3D区域中的每个3D区域的所述占用状态指示所述3D区域(1)可能被至少一个对象占用、或(2)可能未被至少一个对象占用。
10.根据权利要求9所述的方法,以及以下中的任何一项:
a)还包括:
基于确定第二空域各自包含其占用状态指示3D区域可能被至少一个对象占用的至少一个3D区域,确定所述多个片区中的另外的一个或多个片区具有可能被对象占用的相应的所述第二空域;或者
b)其中确定所述多个片区中的所述一个或多个片区具有可能未被对象占用的相应空域还包括:
确定与所述多个片区中的所述一个或多个片区中的每个片区相关联的所述空域不包含其占用状态指示3D区域可能被至少一个对象占用的任何3D区域;以及
确定与所述多个片区中的所述一个或多个片区中的每个片区相关联的所述空域包含其相应占用状态指示对应3D区域可能未被至少一个对象占用的阈值数目的3D区域。
11.根据权利要求1所述的方法,还包括:
将所述多个片区中的所述一个或多个片区提供给虚拟现实应用,所述虚拟现实应用被配置为使用所述多个片区中的所述一个或多个片区来生成用于引导所述用户的移动的视觉指示。
12.一种或多种计算机可读非暂态存储介质,包含在被执行时能够操作以进行以下操作的软件:
将用户周围的物理空间的至少一部分划分为多个三维(3D)区域,其中所述3D区域中的每个3D区域与平面中的多个片区中的片区相关联;
生成所述物理空间的所述一部分中的对象的特征的估计位置;
基于所述估计位置,确定所述多个3D区域中的每个3D区域的占用状态;以及
基于所述多个3D区域的所述占用状态,确定所述多个片区中的一个或多个片区具有可能未被对象占用的相应空域。
13.根据权利要求12所述的介质,以及以下中的任何一项:
a)其中所述物理空间的所述一部分不包括以下中的至少一项:(1)所述物理空间的上部高于上限高度阈值、或(2)所述物理空间的下部低于下限高度阈值;或者
b)其中与所述一个或多个片区中的每个片区相关联的所述空域由从所述片区向上或向下延伸的垂直边界限定;或者
c)其中所述多个3D区域中的每个3D区域的所述占用状态取决于位于该3D区域内的所述估计位置的数目。
14.一种系统,包括:
一个或多个处理器;以及
一个或多个计算机可读非暂态存储介质,耦合到所述处理器中的一个或多个处理器并且包括在由所述处理器中的一个或多个处理器执行时能够操作以引起所述系统进行以下操作的指令:
将用户周围的物理空间的至少一部分划分为多个三维(3D)区域,其中所述3D区域中的每个3D区域与平面中的多个片区中的片区相关联;
生成所述物理空间的所述一部分中的对象的特征的估计位置;
基于所述估计位置,确定所述多个3D区域中的每个3D区域的占用状态;以及
基于所述多个3D区域的所述占用状态,确定所述多个片区中的一个或多个片区具有可能未被对象占用的相应空域。
15.根据权利要求14所述的系统,以及以下中的任何一项:
a)其中所述物理空间的所述一部分不包括以下中的至少一项:(1)所述物理空间的上部高于上限高度阈值、或(2)所述物理空间的下部低于下限高度阈值;或者
b)其中与所述一个或多个片区中的每个片区相关联的所述空域由从所述片区向上或向下延伸的垂直边界限定。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/773,886 | 2020-01-27 | ||
US16/773,886 US11605201B2 (en) | 2020-01-27 | 2020-01-27 | Systems, methods, and media for detecting object-free space |
PCT/US2020/067051 WO2021154432A1 (en) | 2020-01-27 | 2020-12-25 | Systems, methods, and media for detecting object-free space |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115087946A true CN115087946A (zh) | 2022-09-20 |
Family
ID=74206188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080086982.4A Pending CN115087946A (zh) | 2020-01-27 | 2020-12-25 | 用于检测无对象空间的系统、方法和介质 |
Country Status (6)
Country | Link |
---|---|
US (3) | US11605201B2 (zh) |
EP (1) | EP4097569A1 (zh) |
JP (1) | JP2023510452A (zh) |
KR (1) | KR20220127318A (zh) |
CN (1) | CN115087946A (zh) |
WO (1) | WO2021154432A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021183736A1 (en) * | 2020-03-13 | 2021-09-16 | Harmonix Music Systems, Inc. | Techniques for virtual reality boundaries and related systems and methods |
US11354866B2 (en) * | 2020-07-17 | 2022-06-07 | Microsoft Technology Licensing, Llc | Dynamic adjustments in mixed-reality environment based on positional assumptions and configurations |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080197702A1 (en) * | 2006-11-06 | 2008-08-21 | Herman Miller, Inc. | Programmable infrastructure system |
US9824500B2 (en) * | 2016-03-16 | 2017-11-21 | Microsoft Technology Licensing, Llc | Virtual object pathing |
US9996944B2 (en) * | 2016-07-06 | 2018-06-12 | Qualcomm Incorporated | Systems and methods for mapping an environment |
US10803663B2 (en) * | 2017-08-02 | 2020-10-13 | Google Llc | Depth sensor aided estimation of virtual reality environment boundaries |
EP3698609B1 (en) * | 2017-10-17 | 2021-02-17 | Signify Holding B.V. | Occupancy sensor calibration and occupancy estimation |
US10642275B2 (en) * | 2018-06-18 | 2020-05-05 | Zoox, Inc. | Occulsion aware planning and control |
US10535199B1 (en) | 2018-06-18 | 2020-01-14 | Facebook Technologies, Llc | Systems and methods for determining a safety boundary for a mobile artificial reality user |
-
2020
- 2020-01-27 US US16/773,886 patent/US11605201B2/en active Active
- 2020-12-25 JP JP2022525848A patent/JP2023510452A/ja active Pending
- 2020-12-25 EP EP20845496.7A patent/EP4097569A1/en active Pending
- 2020-12-25 CN CN202080086982.4A patent/CN115087946A/zh active Pending
- 2020-12-25 KR KR1020227029094A patent/KR20220127318A/ko unknown
- 2020-12-25 WO PCT/US2020/067051 patent/WO2021154432A1/en unknown
-
2023
- 2023-02-08 US US18/166,075 patent/US11915375B2/en active Active
-
2024
- 2024-01-17 US US18/415,053 patent/US20240193872A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2023510452A (ja) | 2023-03-14 |
US20240193872A1 (en) | 2024-06-13 |
US20210233311A1 (en) | 2021-07-29 |
EP4097569A1 (en) | 2022-12-07 |
US11915375B2 (en) | 2024-02-27 |
KR20220127318A (ko) | 2022-09-19 |
US11605201B2 (en) | 2023-03-14 |
US20230186568A1 (en) | 2023-06-15 |
WO2021154432A1 (en) | 2021-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11113891B2 (en) | Systems, methods, and media for displaying real-time visualization of physical environment in artificial reality | |
US11915375B2 (en) | Systems, methods, and media for detecting object-free space | |
US11200745B2 (en) | Systems, methods, and media for automatically triggering real-time visualization of physical environment in artificial reality | |
US11417054B1 (en) | Mixed reality objects in virtual reality environments | |
CN116964542A (zh) | 用于在虚拟现实中提供空间感知的系统和方法 | |
US11574474B2 (en) | Systems and methods for detecting objects within the boundary of a defined space while in artificial reality | |
CN115136054A (zh) | 在处于人工现实中时用于检测侵入的系统和方法 | |
US11481960B2 (en) | Systems and methods for generating stabilized images of a real environment in artificial reality | |
US20230056976A1 (en) | Platformization of Mixed Reality Objects in Virtual Reality Environments | |
US12033270B2 (en) | Systems and methods for generating stabilized images of a real environment in artificial reality | |
US20240194040A1 (en) | Directional Warnings in Co-located Play in Virtual Reality Environments | |
US20240233375A1 (en) | Systems And Methods For Detecting Objects Within The Boundary Of A Defined Space While In Artificial Reality | |
WO2023158741A1 (en) | Spatial anchor sharing for multiple virtual reality systems in shared real-world environments |
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 |