CN106716497A - 在表面重构中使用自由形式变形 - Google Patents

在表面重构中使用自由形式变形 Download PDF

Info

Publication number
CN106716497A
CN106716497A CN201580050663.7A CN201580050663A CN106716497A CN 106716497 A CN106716497 A CN 106716497A CN 201580050663 A CN201580050663 A CN 201580050663A CN 106716497 A CN106716497 A CN 106716497A
Authority
CN
China
Prior art keywords
attitude
node
summit
physical space
nodes
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
CN201580050663.7A
Other languages
English (en)
Other versions
CN106716497B (zh
Inventor
M·J·格莱
J·A·克拉克
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 CN106716497A publication Critical patent/CN106716497A/zh
Application granted granted Critical
Publication of CN106716497B publication Critical patent/CN106716497B/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/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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/557Depth or shape recovery from multiple images from light fields, e.g. from plenoptic cameras
    • 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
    • G06T7/596Depth or shape recovery from multiple images from stereo images from three or more stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20228Disparity calculation for image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)

Abstract

在表面重构过程中使用3D物理空间的体,其中相邻体共享顶点,使得在各体之间不存在间隙或交叠。结果是,在表面重构过程中获得连续表面。顶点被锚定到姿态图中的节点,使得顶点的位置随着姿态图被更新而被调整。结果是,准许体的变形。基于体的变形,相应地使该物理空间的深度图的一区域变形。每个顶点可被锚定到该姿态图的最接近节点,或锚定到基于节点组合的一点。在一种方法中,该点基于该最接近节点和该最接近节点的所定义半径内的其它节点来定义。

Description

在表面重构中使用自由形式变形
背景
表面重构(SR)涉及标识物理空间中的对象的表面。例如,表面可表示房间中的墙壁、地板、天花板、家具或其他对象。各表面提供物理环境的模型。这样的模型可在大范围应用中使用。一个示例是引导机器人通过物理空间。另一示例是诸如通过使用头戴式显示设备向用户显示虚拟对象。
概述
本文中描述的技术提供用于重构物理空间中的表面的各实施例。
物理空间的深度图是使用深度传感器获得的。深度图包含表示从深度传感器到物理空间中的各表面的距离的深度值。深度图是相对于物理空间中的各体来定义的,并且这些体的位置是相对于坐标系来定义的。例如,坐标系可根据用于承载深度传感器的装备的姿态(例如,位置和定向)来被定义。
然而,随着附加的深度图被获得且附加的体被定义,这些体的位置的误差可累积。为了降低误差累积,物理空间的可见光图像被获得并被用于形成姿态图。姿态图包括与该装备的不同姿态以及相应的图像相关联的节点。各节点之间的链接表示这些图像之间的对应关系以及这些节点的坐标系之间的变换。有时,随着新图像被捕捉,姿态图被更新。例如,节点可通过更新与节点相关联的坐标系来被更新。
此外,体的顶点(例如角落)被锚定到姿态图的不同节点或节点组合或与其相关联。具体而言,相邻的体可在共享面上具有共享顶点,使得在各体之间没有间隙或交叠。当姿态图被更新且节点的坐标系改变时,所述体被允许在形状方面变形,以使得共享面的顶点继续被锚定到相同节点或节点组合。然而,如果合适,顶点可被周期性地重新锚定到新节点或节点组合。
因为在执行表面重构过程时避免了相邻体之间的间隙和交叠,不同体中的表面将跨各体被平滑接合。表面可根据姿态图的当前状态在任何时间重构。
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识所要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定所要求保护的主题的范围。
附图简述
在附图中,相同编号的元素彼此对应。
图1是用于表面重构的系统5的框图,该系统5包括装备、服务器和中枢计算系统。
图2是图1中的装备20作为头戴式显示器(HMD)设备150的实现的俯视图。
图3是描绘图2的HMD设备150的各个组件的框图。
图4是描述图2的处理单元105的各个组件的框图。
图5是图1的中枢计算系统50的一个实施例的框图。
图6A描绘了用于使用姿态图来重构物理空间中的各表面的过程。
图6B描绘了图6A的步骤603的进一步细节。
图6C描绘了图6A的步骤606的进一步细节。
图6D描绘了图6A的步骤607的进一步细节。
图7描绘用于执行图6A的过程的表面重构流水线。
图8A描绘如结合图7的3D融合子系统734讨论的符号距离函数的示例。
图8B描绘了如结合图7的3D融合子系统734讨论的投影到体素中的深度图的示例。
图9A描绘了一组体900-905以及深度传感器的视锥体920。
图9B描绘了被添加到图9A的一组体900-905中的新的体,如由初始放置的体907和经重新定位的体906所表示的。
图10描绘了表示物理空间中的装备的姿态的姿态图的示例。
图11A描绘了针对相机所捕捉的图像的示例数据记录。
图11B描绘了针对深度传感器所捕捉的深度图的示例数据记录。
图12A描绘了姿态图的示例数据记录。
图12B描绘了第一体的示例数据记录,其中该第一体的每个顶点被锚定到一不同节点。
图12C描绘了与第一体相邻的第二体的示例数据记录,且其中该第二体的每个顶点被锚定到一不同节点。
图12D描绘了第一体的示例数据记录,其中该第一体的一个顶点被锚定到节点组合。
图12E描绘了第二体的示例数据记录,其中该第二体的一个顶点被锚定到节点组合。
图13A描绘了示出深度传感器的视锥体的示例物理空间。
图13B描绘了与图13A一致的深度图。
图13C描绘了图13B的深度图的距离值。
图14A描绘了示出可见光相机的视野的图13A的示例物理空间。
图14B描绘由处于图14A的姿态的可见光相机获得的图像。
图14C描绘了随着HMD设备的姿态被改变而示出可见光相机的另一视野的图13A的示例物理空间。
图14D描绘由处于图14C的姿态的可见光相机获得的图像。
图15描绘了各体在图13A的物理空间中的初始放置。
图16A描绘了图6A的涉及图15的体Vol1和Vol2的步骤606的示例,其中体的每个顶点链接到一不同节点,与图12B和12C的数据记录相一致。
图16B描绘了图6A的涉及图15的体Vol1和Vol2的步骤606的示例,其中体的顶点链接到节点组合,与图12D和12E的数据记录相一致。
图16C1描绘了节点N5和N11分别距最接近节点N6到v6的距离d5和d11。
图16C2描绘了图16B的组合坐标系1660的x轴。
图16D描绘了当体Vol1和Vol2不被扭曲时这些体内的未扭曲对象的深度图。图16E描绘了当体Vol1和Vol2被扭曲时这些体内的被扭曲对象的深度图。
图17描绘了其中虚拟对象被放置在图13A的物理空间中的示例应用。
详细描述
表面重构可在许多应用中被使用,包括放置虚拟对象、定义游戏空间、路径查找、碰撞检测或虚拟对象对物理空间的遮挡。
大规模的表面重构要求对跟踪和映射误差的稳健性。例如,具有大尺寸的物理空间可以是家里的房间、办公室或博物馆或室外空间。在表面重构过程中,使用由装备上承载的深度传感器获取的多个深度图来获取各表面。这些表面是使用易造成累积不准确性的计算机视觉跟踪和映射技术来相对于彼此定位的。此外,随着更多关于环境的信息变得可用,对装备的姿态估计随时间改变。
一些SR解决方案在小规模上操作,或者忽略跟踪误差。然而,这导致非自身一致的SR数据。而且,一些SR解决方案允许各体之间的间隙或交叠。间隙导致缺少表面数据,这在重构表面中将很清楚地注意到。交叠导致冗余或冲突的数据。冗余数据花费资源,诸如存储器、计算时间和能力。冲突数据可引起可见的伪像。
本文中提供的技术解决了以上和其他问题。在一个方法中,SR过程涉及创建要重构的多个分开的SR体。体的每一顶点都可被锚定到跟踪和映射姿态图中的节点(例如,关键帧)或节点组合(例如,与其相关联)。而且,相邻体可共享顶点以使得它们具有共享的面。在此情况下,每个顶点的位置可基于坐标系和该顶点锚定到的相应节点的姿态来定义。单个体中的顶点的位置因此可基于坐标系和不同节点的姿态来定义。在姿态图诸如由于批量调整或重新定位而更新时,各顶点仍旧锚定到其相应节点。结果是,允许体变形和改变其形状,且体之间的间隙和交叠继续被避免。在实践中,形状的这些改变相对较小,以使得它们在执行SR时通常不可见。
新体可被创建,以在获得附加深度图时确保物理空间的覆盖。如果适当,体的顶点可被偶尔重新锚定。
图1-5描述可用于表面重构的各种系统。图6和更后面的附图描绘表面重构技术和场景。
图1是用于表面重构的系统5的框图,该系统5包括装备、服务器和中枢计算系统。装备、服务器和中枢计算系统是硬件计算设备的示例。装备20可表示在物理空间中到处移动的设备。该设备可被安装到例如自主移动机器人上,或例如由用户(例如人)携带或佩戴,诸如在头戴式显示设备上。装备在其到处移动时具有不同的姿态。在跟踪和映射算法的上下文中,姿态指示空间点和方向。也就是说,姿态是位置和定向的组合。装备包括诸如用于经由网络30与服务器10通信的通信接口21。增强现实投影系统22可用于将增强现实图像(例如,虚拟对象)显示在用于执行表面重构的物理空间中。控制电路23用于控制装备的各个组件。可见光相机24例如以固定速率(诸如每秒钟若干次)或以指定的次数获得物理空间的图像。
深度传感器25获得物理空间的深度图。通常,与相机图像相比,深度图被更不频繁地获得。深度传感器可以是例如飞行时间相机或立体相机。在装备是头戴式显示设备的情况下,注视检测系统26可用于确定用户的注视。例如,这在将虚拟对象放置在物理空间中时可以是有用的。定向传感器27获得关于装备的定向的读数。例如,定向读数可与每一图像和深度图相关联。这些可以是例如以下进一步讨论的惯性传感器。存储器28可存储由控制电路执行的可执行代码以提供本文中描述的功能,并存储由可见光相机24、深度传感器25、注视检测系统26和定向传感器27获得的信息。
任选地,装备与服务器10通信。例如,装备可上传其收集的一些信息或下载诸如可执行代码之类的信息、增强现实投影系统的数据或其他内容。在一个方法中,服务器在该装备远程。在另一方法中,装备与诸如在用户的家中的本地中枢计算系统50通信。中枢计算系统可以是例如运行各种游戏和非游戏应用的游戏控制台。还参见图5。
在一个方法中,网络30是诸如红外(例如,)或蜂窝(例如,GSM)之类的无线网络。任选地,多个装备可在公共物理空间内彼此通信。
一般来说,这些通信接口允许各计算设备之间的通信。控制电路提供对相应的计算设备的硬件和/或软件的控制。例如,控制电路可包括一个或多个处理器,所述处理器执行指令并被配置成执行指令,所述指令被存储在其上嵌入有处理器可读软件的一个或多个有形的非瞬态处理器可读存储设备(例如,存储器)上,用以将处理器编程为执行如本文所述的处理器实现的或计算机实现的方法。存储器可存储指令作为代码,并可提供处理器可读存储设备。存储器可提供数据库、数据存储或被访问来执行本文中描述的技术的其他数据源。存储器可以是硬件存储器设备。
替换地或附加地,此处描述的功能可以至少部分由一个或多个硬件逻辑组件来执行。例如、但非限制,可使用的硬件逻辑组件的说明性类型包括场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)、等等。
结合以下附图提供了这些系统的进一步细节。
图2是图1中的装备20作为头戴式显示器(HMD)设备150的实现的俯视图。仅详细描绘了HMD设备的右侧。HMD设备包括通常可以是眼镜架形状的头戴式镜架101、镜腿102和103、以及鼻梁104的前镜片框。在鼻梁104中置入了话筒110以用于记录声音(包括说出的用户命令)以及将对应的音频数据传送给处理单元105。在透视近眼HMD设备的示例中,透镜116和119是透视的。沉浸式HMD设备可被替代地使用。
HMD设备可被戴在用户的头上,使得该用户可以透过显示器看并从而看到包括不是由该HMD设备生成的图像的现实世界场景。HMD设备可以是自包含的,使得其所有组件由镜架来承载。任选的,HMD设备的一个或多个组件不由该镜架来承载。例如,不被该镜架承载的一个或多个组件可以通过导线来物理地附连到该镜架所承载的某一组件。
此外,未被该镜架承载的一个或多个组件可以与该镜架所承载的某一组件进行无线通信,并且没有通过导线或以其他方式物理地附连到该镜架所承载的某一组件。在一种方法中,未被该镜架承载的一个或多个组件可由该用户携带,如在腕上。例如,处理单元105可经由有线链路或经由无线链路连接到该镜架中的组件。术语“HMD设备”可涵盖镜架上的组件和相关联的镜架外的组件两者。
处理单元105包括用于操作HMD设备的计算能力中的许多能力。该处理器可以执行存储在处理器可读存储设备上的指令以执行本文描述的过程。在一个实施例中,处理单元与一个或多个服务器、中枢计算系统、其他HMD、或其他计算设备无线通信。控制电路136提供支持HMD设备的其他组件的各种电子装置。
在HMD设备的前面是一个或多个面向前方的或面向房间的可见光相机113。相机可包括可捕捉视频和静态图像以及将图像传送给处理单元的至少一个可见光摄像机。相机可用于标识物理空间中的各特征,诸如色彩、图案、形状、线等等。深度传感器可由红外发射器115和红外传感器/检测器117的组合来形成。可见光视频相机也可以是深度传感器的一部分。可见光相机113面朝外,并具有与用户的视点类似的视点。
HMD设备的镜架的一部分围绕包括一个或多个透镜的显示器。该显示器包括光导光学元件112、不透明滤光器114、前部右侧透视透镜116和后部右侧透视透镜118。在一个实施例中,不透明滤光器114处于透视透镜116之后并与其对齐,光导光学元件112处于不透明滤光器114之后并与其对齐,而透视透镜118处于光导光学元件112之后并与其对齐。不透明滤光器114滤除自然光(要么逐像素地,要么均匀地)以增加增强现实图像的对比度。光导光学元件112将人造光引导到眼睛。类似地,HMD的左侧包括前部左侧透视透镜119和后部左侧透视透镜121。
在镜腿102处或镜腿102内安装有图像源,该图像源(在一个实施例中)包括用于对增强现实图像进行投影的微显示器120、以及用于将图像从微显示器引导到光导光学元件112中的透镜122。在一个实施例中,透镜122是准直透镜。增强现实发射器可包括微显示器、诸如透镜122和光导光学元件112之类的一个或多个光学组件、以及诸如驱动器之类的相关联的电子装置。这样的增强现实发射器与该HMD设备相关联,并向用户的眼睛发射光,其中该光表示增强现实静态图像或视频图像。这可用于将虚拟对象显示在物理空间中。
结合附图3进一步讨论的控制电路136提供支持HMD设备的其他组件的各种电子装置。处于镜腿102内部或安装在镜腿102处的有耳机130、惯性传感器132(例如,图1的定向传感器27的示例)。在一个实施例中,惯性传感器132包括三轴磁力计132A、三轴陀螺仪132B、以及三轴加速度计132C(参见图3)。惯性传感器用于感测HMD设备的位置、定向、突然加速。例如,惯性传感器可以是用于确定佩戴在用户的头部上的HMD的定向和位置的一个或多个传感器。
微显示器通过透镜122来投影图像。光导光学元件112将来自微显示器的光传送到用户的眼睛140,同时允许来自HMD设备前方的光传送经过光导光学元件一直到眼睛140,如箭头142所描绘的,从而允许用户除了接收来自微显示器的增强现实图像之外还具有HMD设备的前方空间的实际直接视图。从而,光导光学元件的壁是透视的。光导光学元件包括第一反射面124(例如镜面或其他表面)。来自微显示器的光穿过透镜122并入射在反射面124上,反射面124反射该入射光,使得光通过内反射而被陷在包括光导光学元件的平面基底内。在基底的表面上进行若干次反射之后,所陷的光波到达选择性反射面的阵列,包括示例表面126。
反射面126将从基底出射的入射光波耦合进用户的眼睛140。由于不同光线以不同角度击中各反射面126,它们将在基底内部行进并以不同角度被反弹。因此,不同光线将被所述反射面中的不同反射面从基底反射出。关于哪些光线将被哪个表面126从基底反射出的选择是通过选择表面126的合适角度来设计的。在一个实施例中,每只眼睛将具有其自己的光导光学元件。当HMD设备具有两个光导光学元件时,每只眼睛都可具有其自己的微显示器,微显示器可以在两只眼睛中显示相同图像或者在两只眼睛中显示不同图像。在另一实施例中,可以存在将光反射到两只眼睛中的一个光导光学元件。
图3是描绘图2的HMD设备150的各个组件的框图。HMD设备组件包括跟踪各种条件的许多传感器。在示例实现中,HMD设备将从处理单元105接收关于增强现实图像的指令,并且将传感器信息提供回给图4中描绘的处理单元。任选地,处理单元还从服务器或中枢计算设备接收感测信息。基于该信息和/或其他准则,处理单元可确定在何处以及在何时向用户提供增强现实图像并相应地将指令发送给HMD设备。
注意,一些组件(例如眼睛跟踪相机134B、微显示器120、不透明滤光器114、眼睛跟踪照明134A、以及耳机130)是以阴影示出的,以指示出这些设备中的每一者都存在两个,其中一个用于HMD设备的左侧,而一个用于HMD设备的右侧。类似地,深度传感器313可包括例如红外发射器115和红外传感器/检测器117。在另一方法中,彼此间具有已知间隔的两个或更多个相机被用作深度相机,以便获得房间内的对象的深度数据,深度数据指示出从相机/HMD设备到该对象的距离。任选地,使用一个可见光相机113。眼睛跟踪相机134B和眼睛跟踪照明134A是眼睛跟踪组件134的一部分。
来自面向前方的相机的图像可被用于标识用户的视野中的人、手势、以及其他对象。例如,可确定用户何时作出诸如指向某一对象之类的手势。现实世界对象可被标识并与数据流相关联,或者被用作显示先前相关联的数据流的位置。
控制电路300与电源管理电路302通信。控制电路300包括处理器310、与存储器344(例如DRAM)通信的存储器控制器312、相机接口316、相机缓冲器318、显示驱动器320、显示格式化器322、定时生成器326、显示输出接口328、以及显示输入接口330。GPS电路317可用于标识HMD设备的位置。
在一个实施例中,控制电路300的所有组件都通过专用线路或一个或多个总线彼此进行通信。在另一实施例中,控制电路300的每个组件都与处理器310通信。相机接口/缓冲器316向可见光相机提供接口并存储来自可见光相机的图像。深度传感器接口/缓冲器318向深度传感器提供接口并存储来自深度传感器的图像。
显示驱动器320驱动微显示器。显示格式化器322向控制不透明滤光器114的不透明度控制电路324提供与微显示器上正在显示的增强现实图像有关的信息。定时生成器326被用来为该系统提供定时数据。显示输出接口328是用于将来自面向前方的相机113的图像提供给处理单元105的缓冲器。显示输入接口330是用于接收诸如要在微显示器上显示的增强现实图像之类的图像的缓冲器。
当处理单元通过导线被附连到HMD设备的镜架,或通过无线链路通信,以及通过腕带被佩戴在用户的腕上时,显示输出接口328和显示输入接口330与作为到处理单元的接口的带接口332进行通信。该方法降低了HMD设备的镜架承载的组件的重量。如上所述,在其他方法中,处理单元可由镜架承载并且不使用带接口。
电源管理电路302包括电压调节器334、眼睛跟踪照明驱动器337、音频DAC和放大器338、话筒前置放大器音频ADC 340、以及时钟生成器345。电压调节器334通过带接口332从处理单元接收电力,并将该电力提供给HMD设备的其他组件。眼睛跟踪照明驱动器如上文所述的那样为眼睛跟踪照明134A提供红外(IR)光源。音频DAC和放大器338接收来自耳机130的音频信息。话筒前置放大器和音频ADC 340提供用于话筒110的接口。作为定向传感器是一部分,电源管理单元302还向三轴磁力计132A、三轴陀螺仪132B以及三轴加速度计132C提供电力并从其接收回数据。
图4是描述图2的处理单元105的各组件的框图。控制电路404与电源管理电路406通信。控制电路404包括中央处理单元(CPU)420、图形处理单元(GPU)422、高速缓存424、RAM426、与存储器430(例如DRAM)进行通信的存储器控制器428、与闪存434(或其他类型的非易失性存储)进行通信的闪存控制器432、经由带接口402和带接口332(在被使用时)与HMD设备进行通信的显示输出缓冲器436、经由带接口402和带接口332(在被使用时)与HMD设备进行通信的显示输入缓冲器438、与用于连接到话筒的外部话筒连接器442进行通信的话筒接口440、用于连接到无线通信组件446的外围部件互连(PCI)快速接口444、以及(诸)USB端口448。
在一个实施例中,无线通信组件446可包括启用的通信设备、 通信设备、或红外通信设备。无线通信组件446是无线通信接口,在一个实现中,该无线通信接口接收与由HMD设备显示的内容同步的数据。进而,可响应于所接收的数据来显示增强现实图像。在一个方法中,这样的数据是从服务器、中枢计算系统、本地网络或WLAN、蜂窝电话网络、本地存储设备或其他源接收的。
USB端口可被用于将处理单元对接到中枢计算设备50,以便将数据或软件加载到处理单元上以及对处理单元进行充电。在一个实施例中,CPU 420和GPU 422是用于确定在何处、何时以及如何在用户的视野内插入增强现实图像的主负荷设备。
电源管理电路406包括时钟生成器460、模数转换器462、电池充电器464、电压调节器466和HMD电源476。模数转换器462连接到充电插座470以用于接收AC供电并为该系统产生DC供电。电压调节器466与用于向该系统提供电能的电池468进行通信。电池充电器464被用来在从充电插孔468接收到电力时(通过电压调节器466)对电池470进行充电。HMD电源476向HMD设备提供电力。
确定在何处、如何以及何时插入增强现实图像的计算可由HMD设备和/或由与HMD设备通信的计算设备来执行。
在一个示例实施例中,HMD设备将基于HMD设备的视野,创建用户所处环境的模型并跟踪该环境中的各种对象。模型以及跟踪信息被提供给处理单元。HMD设备所获得的传感器信息被传送给处理单元4。处理单元细化用户的视野并向HMD设备提供关于如何、在何处以及何时插入增强现实图像的指令。
图5是图1的中枢计算系统50的一个实施例的框图。在这一实施例中,计算系统是多媒体控制台500,诸如游戏控制台等。多媒体控制台具有CPU 501以及便于处理器访问各种类型的存储器的存储器控制器502,各种类型的存储器包括闪存只读存储器(ROM)503、随机存取存储器(RAM)506、硬盘驱动器508,以及便携式媒体驱动器505。在一种实现中,CPU包括1级高速缓存510和2级高速缓存512,这些高速缓存用于临时存储数据并因此减少对硬盘驱动器508进行的存储器访问周期的数量,从而提高处理速度和吞吐量。
CPU、存储器控制器以及各种存储器设备经由一个或多个总线(未示出)互连。
在一个实现中,CPU、存储器控制器、ROM以及RAM被集成到公用模块514上。在此实现中,ROM被配置为通过PCI总线和ROM总线(两者都没有示出)连接到存储器控制器的闪存ROM。RAM被配置为多个双倍数据速率同步动态RAM(DDR SDRAM)模块,它们被存储器控制器通过分开的总线(未示出)独立地进行控制。硬盘驱动器和便携式媒体驱动器被示为通过PCI总线和AT附加(ATA)总线516连接到存储器控制器。
GPU 520和视频编码器522形成用于高速和高分辨率图形处理的视频处理流水线。
音频处理单元524和音频编解码器(编码器/解码器)526形成对应的用于对各种数字音频格式进行多通道音频处理的音频处理流水线。通过通信链路(未示出)在音频处理单元和音频编解码器之间传送音频数据。视频和音频处理流水线向A/V(音频/视频)端口528输出数据,以便传输到电视机或其它显示器。在例示出的实现中,视频和音频处理组件520、522、524、526以及528被安装在该模块上。
模块514包括USB主控制器531和网络接口532。USB主控制器被示为通过总线(例如,PCI总线)与CPU和存储器控制器进行通信,并用作外围控制器504(1)-504(4)的主机。网络接口提供对网络(例如,因特网、家庭网络等)的访问,并且可以是各种各样的各种有线或无线接口组件中的任一者。
在所描绘的实现中,控制台包括用于支持四个外围设备控制器的控制器支持子组件540。控制器支持子部件包括支持与诸如,例如,媒体和游戏控制器之类的外部控制设备的有线和无线操作所需的任何硬件和软件组件。前面板I/O子组件542支持电源按钮512、弹出按钮541,以及任何LED(发光二极管)或暴露在控制台的外表面上的其它指示器等多个功能。这些子部件通过一个或多个电缆部件544与模块进行通信。在其他实现中,控制台可以包括另外的控制器子组件。光学I/O接口535发送和接收可被传达到模块514的信号。该接口可对遥控器590作出响应。
存储器单元(MU)540(1)和540(2)可以分别连接到MU端口“A”530(1)和“B”530(2)。附加的MU(例如,MU 540(3)-540(6))被示为可连接到外围设备控制器504(1)和504(3),即每一个控制器两个MU。控制器504(2)和504(4)也可以被配置成接纳MU(未示出)。每一个MU都提供附加存储,在其上面可以存储游戏、游戏参数、及其它数据。在一些实现中,其它数据可以包括数字游戏组件、可执行的游戏应用,用于扩展游戏应用的指令集、以及媒体文件中的任何一种。当被插入到控制台或控制器中时,MU可以被存储器控制器访问。系统供电模块向控制台的组件供电。风扇552冷却控制台内的电路。还提供微控制器单元554。
包括机器指令的应用560被存储在硬盘驱动器上。当控制台被接通电源时,应用的各个部分被加载到RAM、和/或高速缓存中以供在CPU上执行,其中应用是一个这样的示例。各种应用可以被存储在硬盘驱动器上以供在CPU上执行。
控制台可通过简单地将系统连接到监视器、电视机、视频投影仪、或其它显示设备而被用作独立系统。在此独立模式下,控制台允许一个或多个玩家玩游戏或欣赏数字媒体,例如观看电影或欣赏音乐。然而,随着宽带连接的集成通过网络接口而成为可能,控制台还可以作为较大的网络游戏社区的参与者来操作。
图6A描绘了用于使用姿态图来重构物理空间中的各表面的过程。大规模表面重构涉及对齐来自多个源位置的范围(深度)数据。这些源位置分开越远,将它们共同对齐中的误差越大。共同对齐技术(诸如迭代最接近点)解决了有关小规模的问题,但是在大规模上导致不期望的伪像,诸如漂移或扭曲。一种方法涉及将体锚定到姿态图中的节点并准许相邻体间的交叠以避免间隙。该解决方案受益于累积全局跟踪误差的知识,该知识不总是可用或精确。而且,其使用网格拉链扣紧(mesh zippering)来组合来自全部相异体的表面。
跟踪和映射解决方案(诸如同时局部化和映射或并行跟踪和映射)产生姿态图,所述姿态图的节点对应于世界中的“特征”的坐标的估计,且所述姿态图的链接对应于这些节点间的变换。这些是用于在同时保持跟踪装备在物理环境中的位置的同时构建未知环境的图(或更新已知环境内的图)的技术。
节点和链接两者均包含在姿态图被细化时例如归因于进一步处理或附加测量的并入而随时间改变的误差。每个深度图(范围数据图像)被指派相对于姿态图中的节点的姿态(位置和定向)。还存在融合体的集合,每个融合体被锚定到姿态图中的一个或多个节点。当姿态图随时间演进时,体迁移并且总体上相异地迁移。为了解决这一问题,在一个方法中,不是针对每个体使用单个锚,每个融合体的每个顶点可被锚定到一不同的姿态图节点。例如,立方融合体具有8个顶点并且因此具有至少8个锚。而且,每个融合体被完全对准且与其邻居相邻地放置,以使得相邻体具有带共享顶点的共享面。当顶点迁移时,这些顶点一致地迁移,这意味着所有体保持完全齐平——没有间隙或交叠。这等同于向每个体应用自由形式的变形。而且,变形可在融合之前或之后被应用,或者在融合之前和之后均被应用,从而产生受益于姿态图细化的大规模重构。
步骤600指示装备在物理空间中以不同的姿态移动。例如,装备可以是机器人或在物理空间内四处移动的用户佩戴的HMD设备,其持续捕捉物理空间的图像。步骤601涉及通过装备上的可见光相机获得物理空间的图像。步骤602涉及通过装备上的定向传感器获得定向读数。步骤603涉及处理这些图像和定向读数以提供和更新姿态图。例如,姿态图可被从第一状态更新到第二状态。步骤604通过装备上的深度相机获得物理空间中的各体的定向深度图。深度图指示从传感器到物理空间中的对象的距离以及传感器和对象之间的定向。深度图可在不同时刻被获得,诸如当装备瞄准物理空间中尚未获得其深度数据的区域时。
步骤605涉及将物理空间分区成各体,并在合适的情况下创建新体。体可以是物理空间中形状统一的空间,诸如立方体、长方体或其它六面体。还可以使用其它多面体形状。在一个方法中,体被分割成被称为块的子体,其中每个体存在N×N×N子体,并且N是1或大于1的整数。此外,每一块可被分割成8×8×8个体素。
步骤606涉及将这些体的顶点锚定到姿态图中的点。例如,姿态图中的每个点可以是节点或节点组合。一般而言,体的顶点被锚定到姿态图中的至少两个不同的点。
顶点到姿态图中的点的锚定意味着物理空间中的顶点的位置被基于该点的坐标系来定义。坐标系可以是节点的坐标系,或者作为多个节点的坐标系的线性组合获得的坐标系。关于进一步细节参看图6C。
步骤607涉及基于姿态图的状态来重构物理空间中的各表面。注意,这些步骤中的一些步骤可并发地执行或按不同的次序执行。一般来说,获得图像和更新姿态图可与获得深度图和重构各表面分开地发生。类似地,获得深度图可与获得图像和更新姿态图分开地发生。随着装备继续移动,附加的图像和深度图可被捕捉和处理。关于该过程的更多细节在以下提供。
图6B描绘了图6A的步骤603的进一步细节。步骤603涉及处理这些图像和定向读数以提供并更新姿态图。步骤610涉及更新定向读数以及装备的姿态的图像,并确定图像特征。一般来说,图像可被处理以按紧凑方式表示该图像、降低数据存储需求以及促成基于特征的图像匹配。图像可包括诸如色彩、图案、形状、线等特征,并且两个图像中的共同特征可被标识出。表示图像的一种方式是使用特征检测器和描述器。流行的描述器包括比例不变特征变换(SIFT)和加速稳健特征(SURF)。已知这些对缩放、旋转和照明改变稳健。
例如,在SIFT技术中,首先从一组参考图像中提取物理空间中的对象的关键点,并将其存储在数据库中。通过将来自新图像的每一特征个体地与该数据库进行比较并基于其特征向量的欧式距离寻找出候选匹配特征来识别新图像中的对象。在完整的匹配集合中,就对象及其在新图像中的位置、尺寸和定向方面达成一致的关键点子集被标识出以过滤出良好匹配。确定一致群集是通过使用通用霍夫变换的高效散列表实现来快速执行的。就对象及其姿态达成一致的三个或更多个特征的每一群集随后遭受更详细的模型验证,并随后异常值被丢弃。最后,在给出拟合准确性和可能的错误匹配的数目的情况下,特定特征集合指示存在对象的概率被计算。通过所有这些测试的对象匹配可用高置信度被标识为正确。
判定步骤611确定该姿态是否为新。在一个方法中,如果姿态并不与先前姿态或另一姿态显著不同,则该姿态不可被认为是新的,在该情况下,流程返回到步骤610。例如,如果定向与其他节点中的显著不同,则该姿态可以是新的。或则,如果图像的特征与其他节点中的显著不同或者如果自最后一个新姿态起已经经过了指定时间量,则该姿态可以是新的。在一个方法中,相机提供视频图像序列,并且所选的图像适合在定义节点时使用。
如果该姿态是新的,则步骤612将新节点添加到姿态图。步骤613确定与姿态的定向相关联的坐标系。或者,该坐标系可能已经被确定。步骤614将以该姿态取得的图像(例如,在装备/相机已采取该姿态时,由该装备上的该相机捕捉的图像)以及坐标系与新节点相关联。例如,这可涉及将该信息存储在数据库中,如以下进一步讨论的。图像可按任何形式(包括像素数据和/或提取的特征数据)来表示和存储。步骤615确定与新节点相关联的图像与姿态图中的一个或多个其他节点的图像之间的对应关系。例如,这可涉及将新节点的图像的特征与姿态图中接近于该新节点的一个或多个其他节点的图像的特征进行比较。当两个图像中的特征相对近似时,这两个图像之间的对应关系相对较高。例如,对应关系的程度可使用SIFT技术来确定。
步骤616确定新节点的坐标系和一个或多个其他节点的坐标系之间的变换。步骤617将变换和对应关系与新节点和一个和多个其他节点之间的一个或多个链接关联。步骤618在合适的情况下更新姿态图中的其他节点和链接。例如,姿态图的状态的更新可涉及执行批量调整,在该批量调整中坐标系和变换被调整,或者更新这些坐标系中的一者或多者,或者执行重新定位,在该重新定位中存在姿态图的拓扑结构的变化。例如,该重新定位可包括环闭合,在环闭合中,在姿态图中形成各节点的闭合环。
图6C描绘了图6A的步骤606的进一步细节。步骤606涉及将这些体的顶点锚定到姿态图中的点。步骤620涉及选择体的顶点。对于体,可针对每个顶点独立作出关于该顶点将被锚定到什么点的判定。步骤621确定最接近的节点。一种方法是将顶点锚定到最接近的节点。例如,顶点距离每个节点的距离可被确定,其中具有最小距离的节点被选择。顶点和节点之间的距离可被定义为该顶点距离该节点的坐标系的原点的距离。关于进一步的细节,参见例如图16A。
在一个选项中,步骤622将顶点锚定到最接近的节点。在判定步骤623,如果在体中没有要锚定的下一顶点,则该过程在步骤624结束。如果存在要锚定的下一顶点,则通过选择下一顶点来重复步骤620。在第二选项中,步骤625标识最接近的节点的半径内的一个或多个其它节点。步骤626确定作为该最接近节点和该一个或多个其它节点的组合的点。例如,该点可以是最接近节点的坐标系的原点和该一个或多个其它点之间的中心点。
例如,见图16B。步骤627将顶点锚定到该点。此方法可将顶点锚定到基于节点组合的点,诸如距最接近节点指定范围内的所有节点的组合。关于进一步的细节,见例如图16B。一旦最接近节点被确定,就可标识出在该最接近节点的指定半径内的节点。例如,所述节点可以是其坐标系的原点在最接近节点的坐标系的原点的一半径内的节点。半径定义其它节点位于其中的球。在一种方法中,半径是固定的。在另一方法中,半径是最接近节点和顶点之间的距离的指定百分比。半径或其它距离也可以是体的大小的函数,以使得当体相对较大时半径相对较大。
将顶点锚定到基于节点组合的点可在执行表面重构时提供平滑效果。
使用除了球之外的形状来标识相对靠近最接近节点的节点是可能的。
一旦标识出节点或节点组合,将顶点锚定到被标识的节点或节点组合,例如通过更新数据库中的记录,如下面进一步讨论的。从而,体的顶点与节点相关联,使得该顶点是基于该节点的坐标系被定位在物理空间中的。当该节点的坐标系被调整时,该体的该顶点在物理空间中的位置也被调整。通常,体的顶点持续被锚定到一个节点,但体的顶点有可能被重新锚定到不同的节点,诸如在由于对姿态图的更新,不同节点的姿态变得更接近于用于获得该体的姿态的情况下。同样,顶点可在一个顶点对一个节点的基础上或者在许多顶点对一个节点的基础上被锚定到各节点。类似地,顶点可在一个顶点对一个点的基础上或者在许多顶点对一个点的基础上被锚定到姿态图中的点。
在一些情况下,可能存在比顶点更少的节点,诸如在姿态图被启动时。初始地,可能仅有一个节点,在这种情况下所有顶点可被锚定到该节点。随着新节点被添加,顶点可被重新锚定到新节点。姿态图的更新可包括将一个或多个节点添加到姿态图,其中对于一个或多个体,姿态图中该体中的顶点所锚定到的点的数量在将一个或多个节点添加到姿态图的过程中增加。
图6D描绘了图6A的步骤607的进一步细节。步骤607涉及基于姿态图的状态来重构物理空间中的各表面。步骤630涉及标识用于表面重构的一个或多个体及相关联的深度图。例如,这些体可对应于物理空间的在用户的视野中的一部分。当用户转动他的头并看物理空间的不同部分时,表面重构中所涉及的体可相应地改变。步骤631涉及确定一个或多个体被锚定到的一个或多个节点。这可通过查找数据库中被交叉引用到体的节点来完成。步骤632涉及确定一个或多个节点的坐标系。这可通过查找数据库中被交叉引用到节点的坐标系来完成。步骤633涉及基于一个或多个坐标系将一个或多个体投影到一个或多个深度图中。尤其地,深度图是相对于坐标系来定义的,使得该深度图的深度值基于该坐标系与体的各部分相关联。
图7描绘用于执行图6A的过程的表面重构流水线。在该示例实现中,SR流水线跨专用集成电路(ASIC)700和片上系统(SoC)740两者运行。ASIC和SoC各自托管多个设备和子系统。箭头指示数据流动方向。传感器710连接到ASIC。传感器被承载在诸如HMD设备或机器人之类的装备上。这些传感器包括诸如惯性测量单元(IMU)之类的感测旋转和线加速度的定向传感器711。可见光相机712获得物理空间的可见光图像,并且深度传感器713获得物理空间的深度图。示例实现使用作为深度传感器的飞行时间相机的时间。这一传感器测量从相机闪光、从物理空间中的表面反弹并返回到该传感器的光的往返时间。总往返时间花费几十纳秒。深度传感器的另一实现是一对立体可见光相机,但该方法可能导致较低质量的深度图。
跟踪子系统720将传感器数据转换成姿态和互连的坐标框架的图。例如,在为HMD设备的示例情况下,这可以是头部跟踪子系统。跟踪子系统720对图服务子系统741做出响应,且跟踪子系统包括跟踪和映射过程721。跟踪子系统720和图服务子系统741共同形成跟踪和映射子系统742。
SR融合和提取内核(SRFEK)730将深度图和姿态转换成表面数据。SRFEK在ASIC上运行,并与ASIC和SoC两者中的其它进程通信。SRFEK摄入两段输入数据:深度图和姿态。原始到深度子系统731从深度传感器中捕捉原始红外图像,并将其转换成深度图中的深度值。深度值指示物理空间中的一个或多个表面距深度传感器的距离。这些深度图具有透镜扭曲。为了解决这个,去扭曲子系统732将来自相机的透镜的扭曲效果从深度图中移除,以提供经去扭曲的深度图。这可涉及应用透镜扭曲模型(该模型的参数是通过校正测量的)以产生平的经去扭曲的图像。在运行时,这可涉及创建去扭曲图(查找表)并将其应用于每一深度图像素。
3D融合子系统734将经去扭曲的深度图与姿态组合以将其融合到3D体中。融合涉及将深度图(其是2D图像)投影到体(其是3D的)中。例如,可使用表示从深度传感器到对象的表面的距离的符号距离函数(SDF)。参见图8A和8B以获得进一步细节。
提取算法733用该体数据创建多边形网格。不是所有应用都需要多边形网格,但是多边形网格通常在诸如游戏引擎之类的使用网格来进行渲染和碰撞的应用中有用。在填充SDF体后提取网格的一种方式使用称为移动立方体(Marching Cubes)的算法。移动立方体背后的概念涉及将每一体数据框都转为多边形集合,其中这些多边形的顶点位于这些框的边上。
3D融合子系统734和提取算法733的输出可被存储在SRFEK高速缓存735中。该输出包括表示物理空间的几何结构的经重构的表面。
在给予SR服务750数据块和处理该数据的命令的情况下,SR服务750是控制SRFEK的较高级过程。SR服务还将通过表面重构获得的表面数据馈送给应用。该服务包括深度图获取子系统751,该深度图获取子系统751基于在何处以及在何时需要深度图来决定何时触发对深度图的获取。体放置子系统752决定如何将物理空间分区成各体,例如要创建多少体以及要将其放置在何处。决定要将体放置在何处是初始问题。可从一组先前定义的SR体开始。参见图9A和9B以获得进一步细节。
SR数据可占据大量存储器,从而该服务使用高速缓存驱逐和补充子系统753决定要将哪些数据保持在存储器(例如,SR服务高速缓存754)中,以及将哪些数据存储以供以后使用(例如在后备存储755中)。SR服务决定要驱逐以及补充哪些SR数据,何时驱逐以及补充该数据,以及向应用提供SR数据。SR服务在管理缩放时有用,两者都基于物理空间的尺寸以及所生成的数据的质量。该系统应对延伸在用户的紧邻邻近度上的物理范围(例如在若干米的物理空间中,诸如在办公建筑中)起作用。蛮力解决方案不将起作用,因为即使中间尺寸的区域使用了成百或上千个SR体并且每一SR体可使用几兆字节。SR系统可通过以下来缩放:将空间分区成诸体并在存储器和盘之间对这些体进行分页(例如,转移)。
SR服务可用高速缓存驱逐和重新填充子系统来实现持久性和数据可伸缩性两者。例如,该子系统可建立最大数目的体。这提供关于SR服务消耗的SoC主存储器的量的上限。当那个上限将通过添加更多数据、或更多SR体而被超过时,可重新填充一些其他体。这类似于近期最少使用(LRU)驱逐策略,只是SR服务可驱逐最远的的体,例如距装备最远的体。此外,当装备重新进入其先前捕捉SR数据的区域时,可向高速缓存重新填充那个数据。由此,可通过将最接近的体加载到装备中来间歇地从后备存储重新填充高速缓存。注意,仍可添加新的体,使得其也对高速缓存填充作出贡献。
许多应用可按类似的方式消耗SR数据。SR扩展和利用子系统760为应用开发者提供共用功能。扩展和利用可包括用于用现实世界几何结构来遮挡全息图的遮挡渲染761、用于添加有用的辅助信息的网格后处理762、现实对象和虚拟对象之间的碰撞检测763、用于帮助全息图放置的运作空间定义764和负空间分配765。SR网格后处理例程的示例包括接合顶点、拉合网格、计算表面法线、剪裁重叠网格中的三角、平滑网格、以及简化网格以降低多边形的数目。
关于全息图放置,网格对于某些类型的全息图放置逻辑而言太过精细和复杂。相反,应用开发者可发现处理诸如墙壁、天花板和底板之类的抽象物更容易。一个解决方案将是寻找出平坦三角形、标识连接的平坦区域并随后将各平面装到那些区域。为了寻找出低曲率的连续区域,多个分开的网格先被组合到单个连续网格。这是接合和拉合有用的地方。
关于计算表面法线,为了寻找出平坦区域,计算表面曲率是有用的。SR流水线可从SDR(使用有限的差异)或从网格(使用每个面的法线)生成每个体素的法线。
SR网格后处理的另一示例是应用如通过相机捕捉的纹理。
图8A描绘如结合图7的3D融合子系统734讨论的符号距离函数的示例。水平轴描绘从深度传感器到物理空间中的对象800的距离。垂直轴描绘SDF的值。对象具有前表面801和后表面802。线805表示SDF。在对象外部的区域具有正距离,在对象内部的区域具有负距离,并且在对象的表面处的区域具有零值。在一些情况下,检测对象的前表面,但不检测后表面。融合涉及用通过将体素投影到深度图中而推断出的SDF值来填充大量体素。从SDF体开始,随后获取深度图及其相对于那个体的姿态。融合算法如下注入形成的深度图。对于每一体素,将其投影到深度图中并根据该体素的距离相对于距表面的距离来更新SDF值。表面位于负SDF值和正SDF值之间的边界上,其中该函数为零—即所谓的零水平设置。对每一深度图重复该过程。
图8B描绘投影到体素上的深度图的示例。每一方块表示一体素。所示的体素可以是一个或多个块的部分。实线810表示对象的表面。虚线811表示没有被检测到但被假设远离传感器、越过可被检测到的最大深度的表面。该表面的深度值可被设在默认深度。被这些线穿越的体素具有SDF=0,并由带斜纹线的图案来表示,诸如对于体素813。被认为在对象内部的体素具有SDF<0,并由带点的图案来表示,诸如对于体素812。被认为在对象外部的体素具有SDF>0,并由无图案的框来表示,诸如对于体素814。线815表示深度传感器的视锥体的边界。所示的视图可以是房间的顶视图,其中线810表示墙壁和该墙壁的框架。
图9A描绘了一组体900-905以及深度传感器的视锥体920。注意,示出了各体之间的一些重叠。一些体用带虚线的图案示出的以将这些体清楚地区分开。当SR服务决定获取深度图时,深度传感器被激活。视锥体表示深度传感器的视野,例如其中可获得深度读数的物理空间的一部分。SR服务随后将深度图视锥体与该组SR体进行比较。如果深度图视锥体中的任何部分都没有被任何SR体覆盖,则该服务可创建新的体。然而,新的体的放置(包括其相对于其他体的定向)是个问题。新的体最初可被放置在视锥体没有被任何现有体覆盖的任何地方。随后,新的体被重新定位以与现有体对准并与现有体共享顶点。该重新定位可涉及在物理空间中的平移和/或旋转,这改善了该新的体的位置。
图9B描绘了被添加到图9A的一组体900-905中的新的体,如由初始放置的体907和经重新定位的体906所表示的。
图10描绘了表示物理空间中的装备的姿态的姿态图1000的示例。姿态图包括通过链接连接的节点。节点包括如由可见光相机捕捉的物理空间的图像以及相关联的坐标系。两个节点之间的链接(例如,边)包括两个节点的图像之间的对应关系以及两个节点的坐标框架之间的变换。姿态图表示装备的路径循环。箭头1210描绘了装备的路径。示例节点是N1-N9。示例链接是节点N1和N2之间的链接L(N1,N2)以及节点N1和N3之间的链接L(N1,N3)。
具体地,装备的姿态图可用于为表面重构优化各体的顶点在物理空间中的放置。空间分区的问题并不因SR而异,并且存在许多空间划分方案。为了理解为何文本中描述的技术能针对SR良好工作,首先考虑装备跟踪如何工作的各方面。装备的跟踪和映射子系统742(图7)通过分析由装备的相机捕捉到的图像(例如图片)来在空间和时间上跟踪装备的轨迹。想象装备在第一时间内通电,并且相机捕捉图像。跟踪和映射子系统从这些图像中提取特征,估计这些特征在图像中的位置并存储这些特征。跟踪和映射子系统还创建它要使用来测量位置和定向的坐标系(例如,坐标框架)。图像和坐标系两者都与节点一起被存储在图中。随后装备移动。跟踪和映射子系统拍摄更多的图片,并创建另一坐标框架,该图将这些更多的图片和另一坐标框架与另一节点关联。图服务子系统741认识到第一和第二图像具有一些共有的特征。映射器使用计算机视觉算法和IMU数据来估计那两个节点之间的相对姿态。
各节点之间的链接表示图像间的对应关系以及这些节点的坐标系之间的变换。然而,当映射器可获得针对节点之间的变换的多个估计时,那些变换可能是不一致的。跟踪和映射系统通过调整坐标变换和特征位置来使不一致性最小化。这被称为批量调整。随着装备到处移动,映射器继续添加节点和链接,并且这导致附加的姿态调整。结果,物理空间的图随时间变化。也就是说,对特征位置的估计改变了,并且姿态图被改善。例如,姿态图中的链接可使距离或定向变化。SR应当对姿态调整稳健。
为了理解该问题可能有多严重以及图像中的特征可表现为移动得有多远,考虑环闭合—姿态图调整的突变形式。环闭合是重定位的形式。例如,想象装备访问分开的空间,而无需访问连接这些空间的区域。映射器将具有针对每一空间的分开的图分量。随后,想象装备访问这些空间之间的区域。跟踪和映射子系统将认识到这些区域被连接,并且将添加链接到姿态图。重新定位指的是姿态图的任何拓扑变化。
一种形式的环闭合在装备最终在它已经访问过的空间点并且跟踪和映射子系统观察到了那个事实时发生。例如,想象在起始位置开始,佩戴HMD设备的用户走进诸如美术馆中的房间并且总是面对距该用户最近的墙壁。用户没有打量该房间也没有看该用户的后面。在跟踪和映射子系统创建新节点时,该用户随后绕开该房间,转而看着每一墙壁。就在用户返回起始点之前,跟踪和映射子系统还没有认识到它又在起始点了。但是,最后,跟踪和映射子系统将认识到用户在起始点时捕捉的特征,并将标识在该环的起始和结束处拍摄的图像之间的对应关系。因此,它将在姿态图中创建新链接,由此形成闭合环。就在环闭合之前,该环的开始和结束之间的变换需要许多跳点。就在环闭合之后,该环的开始和结束之间的变换仅需要单个跳点。每一跳点都具有某个误差,并且这些误差累积。就在环闭合之后,累积误差量较小。因此,就在环闭合之前和就在环闭合之后,节点之间的变换将突然改变。本文中提供的技术通过将各体锚定到姿态图中的节点以及其坐标系来允许SR过程从对姿态图的调整中获益。当姿态图变化时,SR体随之改变,因为这些体的顶点跟随其被锚定到的姿态图节点。
图11A描绘了针对相机所捕捉的图像的示例数据记。每一图像或图像集合(诸如视频)都可被存储在数据记录(例如,图像1)中。装备的定向读数(例如,OR1)可与该图像相关联。
图11B描绘了针对深度传感器所捕捉的深度图的示例数据记录。每一深度图都可被存储在数据记录(例如,DM1)中。装备的定向读数(例如,OR1)可与深度图相关联。
图12A描绘了姿态图的示例数据记录。节点的记录可包括节点标识符(例如,N1)、相机图像(例如,图像1)和坐标系(例如,CS1)。针对链接L(N1,N2)的记录可包括链接标识符(例如,L(N1,N2))、图像对应关系数据(例如,C(N1,N2))和坐标系之间的变换(例如,T(N1,N2))。针对链接L(N1,N3)的记录可包括链接标识符(例如,L(N1,N3))、图像对应关系数据(例如,C(N1,N3))和坐标系之间的变换(例如,T(N1,N3))。变换可以是将作为矩阵的一个坐标系与作为矩阵的另一坐标系相关的矩阵。
图12B描绘了第一体的示例数据记录,其中该体的每个顶点被锚定到一不同节点。例如,第一体可以是也结合图15和16A-16E讨论的Vol1。记录包括体标识符(例如Vol1)以及该体的每个顶点的条目。每个条目包括顶点标识符和该顶点被锚定到的点的标识符。例如,顶点v1,v2,v3,v4,v5,v6,v7和v8分别被锚定到节点N1,N2,N3,N4,N5,N6,N7和N8。
图12C描绘了与第一体相邻的第二体的示例数据记录,且其中该第二体的每个顶点被锚定到一不同节点。例如,该第二体可以是也结合图15和16A-16E讨论的Vol2。例如,顶点v2,v4,v6,v8,v9,v10,v11和v12分别被锚定到节点N2,N4,N6,N8,N9,N10,N11和N12。如所见,Vol1和Vol2具有公共节点v2,v4,v6和v8。这些公共节点定义这两个相邻体的公共面。
图12D描绘了第一体的示例数据记录,其中该第一体的一个顶点被锚定到一节点组合。此处,v6被锚定到N5,N6和N11的组合。
图12E描绘了第二体的示例数据记录,其中该第二体的一个顶点被锚定到节点组合。与图12D相一致,v6被锚定到节点N10,N11和N12的组合。
图13A描绘了示出深度传感器的视锥体的示例物理空间。物理空间1300是诸如佩戴作为装备的示例的HMD设备1302的用户1301的家中的房间。HMD设备上的深度传感器具有视野,该视野由延伸在后表面1304和房间的墙壁1306处的前表面1305之间的视锥体1303表示。墙壁包括门道1307和装饰画1308。该画被附贴到墙壁1306并具有可注意的深度。线1309表示深度传感器的视野的中心轴,例如深度传感器(和用户和HMD设备)正注视的方向。具有正交轴xr、yr和zr的笛卡尔坐标系1310是HMD设备的示例坐标系(r表示装备)。例如,xr轴可具有与表示装备的定向的(与线1309重合的)向量相同的方向。yr轴可被定义为与地面平行地延伸。zr轴因此与xr和yr轴正交。还描绘了物理空间的具有正交轴x、y和z的笛卡尔坐标系1311。深度传感器在该坐标系的原点处。
图13描绘了与图13一致的深度图1315。该深度图包括针对墙壁1306的区域1320、针对画1308的区域1321和针对门道1307的区域1322。
图13C图13B的深度图的距离值。水平轴描绘了与深度传感器的中心线1309正交的方向,诸如yr轴的方向。垂直轴描绘了对象距深度传感器的距离,诸如沿着xr轴的距离。线1330表示深度。该线的对应于墙壁的深度的部分具有深度值D墙壁。该线的对应于画的深度的部分具有深度值D绘画。该线的对应于门道的深度的部分具有深度值Dmax(D最大),即深度传感器可检测到的最大深度。在该情况下,由于深度传感器穿过门道看向在检测范围上方的表面,深度值可被设为最大值。Dmin(D最小)表示深度传感器可检测到的最小深度。
图14A描绘了示出可见光相机的视野的图13A的示例物理空间。一般来说,相机的视野1340可不同于深度传感器的视野,但是它们可看着同一方向,例如HMD设备的方向,并且它们可基本上重叠。在该示例中,相机的视野1340比深度传感器的视野略微更窄且更高。作为示例但这并不是必须的,HMD设备的坐标系1310与图13A中的相同。该轴可与相机的中心线重合,该中心线与深度传感器的中心线1309相同。
图14B描绘由图14A的姿态中的可见光相机获得的图像。图像1400包括表示墙壁的部分1401、表示画的部分1402和表示门道的部分1403。
图14C描绘了随着HMD设备的姿态被改变而示出可见光相机的另一视野的图13A的示例物理空间。在该情况下,用户已经移动,使得HMD设备的相机捕捉物理空间的不同图像。例如,用户可能已旋转了他的头和/或在房间中到处走动。视野1420是相对于坐标系1430定义的,坐标系1430不同于图14A的坐标系1310。在一种方法中,xr轴与相机的中心线1421重合。
图14D描绘由图14C的姿态中的可见光相机获得的图像。图像1440包括表示墙壁1306和毗邻墙壁1415的部分1441和表示画的部分1442。如可明白的,图像1400和1440将具有诸如画框的水平线1444、画框的垂直线1443和画中的花和花瓶的色彩和形状之类的相应特征。
图15描绘了各体在图13A的物理空间中的初始放置。视锥体1303连同8个体(包括图12B的示例体Vol1和图12C的Vol2)被描绘,所述8个体被定位成包围该视锥体。这些体初始地被定位在彼此附近,从而在这些体之间没有间隙或交叠。体的顶点关于一个或多个节点或节点组合被定义,如同所讨论的。此示例中的体是立方体且初始地被放置成其底部表面平行于地。
图16A描绘了图6A的涉及图15的体Vol1和Vol2的步骤606的示例,其中体的每个顶点链接到一不同节点,与图12B和12C的数据记录相一致。Vol1包括被标记为v1-v8的顶点。Vol2包括被标记为v2,v4,v6和v8(与Vol1共享)以及v9,v10,v11和v12的顶点。在此示例中,为了简明只有两个体,然而也可使用其它体。一些顶点的锚定作为示例被示出。例如,v5被锚定到节点N5及其坐标系1610,该坐标系具有原点O5以及轴x5,y5和z5。每个轴可被认为是在物理空间中具有方向的向量。V6被锚定到节点N6及其坐标系1620,该坐标系具有原点O6以及轴x6,y6和z6。V11被锚定到节点N11和其坐标系1630,其坐标系1630具有原点O11以及轴x11、y11和z11。V9被锚定到节点N9和其坐标系1640,其坐标系1640具有原点O9以及轴x9、y9和z9。一般而言,不同坐标系的z轴可彼此平行且表示高度。x轴和y轴可在各坐标系间不同。
图16B描绘了图6A的步骤606的涉及图15的体Vol1和Vol2的示例,其中体的顶点被链接到节点组合,其与图12D和12E的数据记录相一致。v5、v11和v9与在图16A中一样被锚定到N5、N11和N9。然而,v6被锚定到点1650,该点由方块表示。该点是坐标系1660的原点Oc,该坐标系1660包括轴xc、yc和zc。为了清楚起见,坐标系被独立示出。在此示例中,N6被首先标识为姿态图中的所有现有节点中最接近v6的节点。接着,N5和N11被标识为N6的半径R(指定距离)内的节点。例如,原点Oc可被定义为O5、O6和O11之间的中心点,从而给予每个原点/节点相等的权重。这种方法为该半径内的所有点提供了相等的权重。
图16C1描绘了节点N5和N11分别距最接近节点N6到v6的距离d5和d11。另一种方法是通过向该半径内的不同节点赋予不同的权重来获得中心点。例如,最接近节点的点(例如N6的O6)可被给予比该半径内的其它点更高的权重。该半径内的其它点可被等同地加权,或者可以被给予与距最接近节点的点的增加的距离成比例的减少的权重。在另一方法中,最接近节点和半径内的其它节点与其距顶点的距离成反比地被加权。
点1650表示节点N5、N6和N11(分别具有原点O5、O6和O11)之间的中心点,从而给予每个节点或原点相等的权重。在另一方法中,点1651表示在节点N5、N6和N11(分别具有原点O5、O6和O11)之间的中心点,从而给予v6的最接近节点(N6)比N5和N11更高的权重。
图16C2描绘了图16B的组合坐标系1660的x轴。坐标系1660作为N5、N6和N11的坐标系的线性组合被获得。例如,在所有节点被等同加权的情况下,x轴xc可通过x轴x5、x6和x11的向量求和获得。类似地,y轴yc可通过y轴y5、y6和y11的向量求和获得,且z轴可通过z轴z5、z6和z11的向量求和获得。或者,如果所有z轴被定义为竖直,则不需要向量求和来获得zc。在节点被等同加权的情况下,坐标系1620的各轴可通过据此在向量求和中对各轴加权来获得。
图16D描绘了当体Vol1和Vol2不被扭曲时这些体内的未扭曲对象的深度图。该深度图与图13B一样包括针对墙壁的区域1320、针对画的区域1321和针对门道的区域1322。这些区域在体Vol1和Vol2内被提供。Vol1具有高度h2和宽度w2。Vol2也具有此高度和宽度。画的区域1321具有高度h1和和宽度w1。
图16E描绘了当体Vol1和Vol2被扭曲时这些体内的被扭曲对象的深度图。在此示例中,对v2被锚定到的节点做出调整,导致v2的位置从位置1661到位置1662的改变。这表示高度改变dh2和宽度改变dw2。从而,Vol1和Vol2经历形状改变,或即扭曲。这些体内的深度图的区域也与体的扭曲相对应地被扭曲。例如,未扭曲墙壁区域1320变成扭曲墙壁区域1320d,未扭曲画区域1321变成扭曲画区域1321d,且未扭曲门道区域1322变成扭曲门道区域1322d。例如,画的右上角可从点1665改变到点1666。右上角可向上移动距离dh1并向右移动距离dw1,距离dh1与h1xdh2/h2成比例,距离dw1与w1xdw2/w2成比例。这些是近似值,其描绘了基于体的扭曲该体内的3D对象的扭曲的大致概念。在一种方法中,可针对该体内的任何点执行线性内插,以确定该对象的已扭曲的形状。
图17描绘了其中虚拟对象被放置在图13A的物理空间中的示例应用。如同前面提及的,表面重构可在许多应用中被使用,包括放置虚拟对象、定义游戏空间、路径查找、碰撞检测或虚拟对象对物理空间的遮挡。在此示例中,虚拟对象1710是作为HMD设备1302的增强现实图像对用户1301可见的人。视野1700与HMD设备的增强现实投影系统相关联。由于房间中的各表面是已知的,因此虚拟对象可被放置在物理空间1300中的适当位置。例如,虚拟对象可被放置于在墙壁1306前面并在门道1307侧面的指定距离处。此外,在诸如画1308之类的虚拟对象后面的现实世界对象可被遮挡以提供更大的真实性。注意,不同或共同的视野可与深度传感器、相机及增强现实投影系统相关联。此外,尽管已描述了涉及HMD设备的示例实现,但文本中描述的技术可适用于许多其他场景,包括涉及机器人和其他类型的装备的那些场景。
因此,可以看出,在一个方面,一种用于重构物理空间的方法包括:在装备通过多个姿态在所述物理空间中移动时,使用所述装备承载的相机获得所述物理空间的多个图像;确定每一姿态的定向和坐标系;将所述物理空间分区为多个体,所述多个体中的每个体包括顶点;对于所述多个体中的每一体,使用所述装备承载的深度传感器获得所述物理空间的深度图;提供处于第一状态的姿态图,处于所述第一状态的所述姿态图包括多个节点和所述多个节点中的各节点之间的链接,所述多个节点中的每个节点与所述姿态中的一个姿态、所述图像中与所述姿态中的所述一个姿态相关联的一个图像、以及所述坐标系中与所述姿态中的所述一个姿态相关联的一个坐标系相关联,且所述链接定义所述图像之间的对应关系以及所述坐标系之间的变换;对于所述多个体中的每个体,将该体的顶点锚定到处于所述第一状态的所述姿态图中的至少两个不同点,该体的顶点包括共享顶点,当所述姿态图处于所述第一状态时所述共享顶点被与所述多个体中的相邻体共享,将所述姿态图更新到第二状态,所述更新包括更新所述节点中的一个或多个以及所述链接中的一个或多个;以及对于所述多个体中的每个体,当所述姿态图处于所述第二状态时维持所述共享顶点,其中所述维持所述共享顶点导致改变所述多个体中的至少一个体的形状。
所述方法还包括根据所述姿态图的所述第二状态重构所述多个体中的至少一个体中的表面;以及在所述重构期间,对于所述多个体中的所述至少一个体,基于所述多个体中的所述至少一个体的形状来使得所述物理空间的深度图扭曲。
所述多个节点中的每个节点可与所述物理空间中的装备的一位置相关联;以及对于所述多个体中的一个或多个体,将该体的顶点锚定到所述姿态图中的至少两个不同点可包括将该体的一个顶点锚定到所述姿态图中的所述节点中位置最靠近所述一个顶点的一个节点。
所述多个节点中的每个节点可与所述物理空间中的装备的一位置相关联;以及对于所述多个体中的一个或多个体,将该体的顶点锚定到所述姿态图中的至少两个不同点可包括将该体的一个顶点锚定到所述姿态图中的节点组合,所述节点组合可包括所述姿态图中的所述节点中位置最靠近所述一个顶点的一个节点。
所述节点组合可包括在所述姿态图中的所述节点中位置最靠近所述一个顶点的所述一个节点的指定距离内的一个或多个节点。
在所述节点组合中,在所述指定距离内的所述一个或多个节点中的每个节点可根据该节点到所述姿态图中的所述节点中位置最靠近所述一个顶点的所述一个节点的距离被加权。
对于所述多个体中的一个或多个体,将该体的顶点锚定到所述姿态图中的至少两个不同点可包括将该体的一个顶点锚定到所述姿态图中的一个节点以及将该体的另一顶点锚定到所述姿态图中的另一节点。
所述方法进一步包括对于所述多个体中的一个或多个体,将所述体的每个顶点锚定到所述姿态图中的不同点。
所述更新姿态图可包括将一个或多个节点添加到所述姿态图;并且对于所述多个体中的一个或多个体,所述姿态图中该体中的顶点所锚定到的点的数量在将一个或多个节点添加到所述姿态图的过程中增加。
所述多个体可不彼此交叠且在所述体之间不存在间隙。
在另一方面,一种用于重构物理空间的装置包括:定向传感器;深度传感器;相机;以及与所述定向传感器、所述深度传感器和所述相机通信的处理器。所述处理器被适配成:从所述相机获得所述物理空间的多个图像,基于所述定向传感器来将姿态和坐标系与每一图像关联,将所述物理空间分区为多个体,所述多个体中的每个体包括顶点,对于所述多个体中的每一体,从所述深度传感器获得所述物理空间的深度图,提供处于第一状态的姿态图,所述姿态图包括多个节点和所述节点之间的链接,所述多个节点中的每个节点与所述姿态中的一个姿态、所述图像中与所述姿态中的所述一个姿态相关联的一个图像、以及所述坐标系中与所述姿态中的所述一个姿态相关联的一个坐标系相关联,且所述链接定义所述图像之间的对应关系以及所述坐标系之间的变换,对于所述多个体中的每个体,将该体的顶点锚定到处于所述第一状态的所述姿态图中的至少两个不同点,该体的顶点包括共享顶点,当所述姿态图处于所述第一状态时所述共享顶点被与所述多个体中的相邻体共享,使用所述节点中的一个或多个以及所述链接中的一个或多个的更新,将所述姿态图更新到第二状态,对于所述多个体中的每个体,为了当所述姿态图处于所述第二状态时维持所述共享顶点,改变所述多个体中的至少一个体的形状,以及根据所述姿态图的第二状态重构所述体中的一个或多个中的表面。
在另一方面,一种处理器可读存储器包括具体化在所述处理器可读存储器上的处理器可读软件,所述处理器可读软件用于将处理器编程为执行一种用于重构物理空间的方法,其中所述方法包括:将物理空间分区为多个体,所述多个体中的每个体包括顶点,对于所述多个体中的每一体,获得所述物理空间的深度图;提供处于第一状态的姿态图,处于第一状态的姿态图包括多个节点和所述多个节点之间的链接;对于所述多个体中的每个体,将该体的顶点锚定到处于所述第一状态的所述姿态图中的至少两个不同点,该体的顶点包括共享顶点,当所述姿态图处于所述第一状态时所述共享顶点被与所述多个体中的相邻体共享;以及将所述姿态图更新到第二状态,所述更新包括更新所述节点中的一个或多个以及所述链接中的一个或多个;以及对于所述多个体中的每个体,当所述姿态图处于所述第二状态时维持所述共享顶点,其中所述维持所述共享顶点导致改变所述多个体中的至少一个体的形状。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (15)

1.一种用于重构物理空间的装置,包括:
定向传感器;
深度传感器;
相机;以及
与所述定向传感器、所述深度传感器和所述相机通信的处理器,所述处理器被适配成:
从所述相机获得所述物理空间的多个图像,
基于所述定向传感器来将姿态和坐标系与每一图像关联,
将所述物理空间分区为多个体,所述多个体中的每个体包括顶点,
对于所述多个体中的每一体,从所述深度传感器获得所述物理空间的深度图,
提供处于第一状态的姿态图,所述姿态图包括多个节点和所述节点之间的链接,所述多个节点中的每个节点与所述姿态中的一个姿态、所述图像中与所述姿态中的所述一个姿态相关联的一个图像、以及所述坐标系中与所述姿态中的所述一个姿态相关联的一个坐标系相关联,且所述链接定义所述图像之间的对应关系以及所述坐标系之间的变换,
对于所述多个体中的每个体,将该体的顶点锚定到处于所述第一状态的所述姿态图中的至少两个不同点,该体的顶点包括共享顶点,当所述姿态图处于所述第一状态时所述共享顶点被与所述多个体中的相邻体共享,
使用对所述节点中的一个或多个以及所述链接中的一个或多个的更新,将所述姿态图更新到第二状态,
对于所述多个体中的每个体,为了当所述姿态图处于所述第二状态时维持所述共享顶点,改变所述多个体中的至少一个体的形状,以及
根据所述姿态图的所述第二状态重构所述物理空间中的对象的表面,所述表面处于所述体中的一个或多个中。
2.如权利要求1所述的装置,其特征在于,所述处理器被适配成:
在所述表面的重构期间,对于所述多个体中的所述至少一个体,基于所述多个体中的所述至少一个体的形状来使得所述物理空间的深度图扭曲。
3.如权利要求1或2所述的装置,其特征在于:
所述多个节点中的每个节点与所述物理空间中的一位置相关联;以及
对于所述多个体中的一个或多个体,将该体的顶点锚定到所述姿态图中的至少两个不同点包括将该体的一个顶点锚定到所述姿态图中的所述节点中位置最靠近所述一个顶点的一个节点。
4.如权利要求1或2所述的装置,其特征在于:
所述多个节点中的每个节点与所述物理空间中的一位置相关联;以及
对于所述多个体中的一个或多个体,将该体的顶点锚定到所述姿态图中的至少两个不同点包括将该体的一个顶点锚定到所述姿态图中的节点组合,所述节点组合包括所述姿态图中的所述节点中位置最靠近所述一个顶点的一个节点。
5.如权利要求1至4中的任一项所述的装置,其特征在于:
所述多个体不彼此交叠且在所述体之间不存在间隙。
6.一种重构物理空间的方法,包括:
在装备通过多个姿态在所述物理空间中移动时,使用所述装备承载的相机获得所述物理空间的多个图像;
确定每一姿态的定向和坐标系;
将所述物理空间分区为多个体,所述多个体中的每个体包括顶点,
对于所述多个体中的每一体,使用所述装备承载的深度传感器获得所述物理空间的深度图;
提供处于第一状态的姿态图,处于所述第一状态的所述姿态图包括多个节点和所述多个节点中的各节点之间的链接,所述多个节点中的每个节点与所述姿态中的一个姿态、所述图像中与所述姿态中的所述一个姿态相关联的一个图像、以及所述坐标系中与所述姿态中的所述一个姿态相关联的一个坐标系相关联,且所述链接定义所述图像之间的对应关系以及所述坐标系之间的变换;
对于所述多个体中的每个体,将该体的顶点锚定到处于所述第一状态的所述姿态图中的至少两个不同点,该体的顶点包括共享顶点,当所述姿态图处于所述第一状态时所述共享顶点被与所述多个体中的相邻体共享;
将所述姿态图更新到第二状态,所述更新包括更新所述节点中的一个或多个以及所述链接中的一个或多个;
对于所述多个体中的每个体,当所述姿态图处于所述第二状态时维持所述共享顶点,其中所述维持所述共享顶点导致改变所述多个体中的至少一个体的形状;以及
根据所述姿态图的所述第二状态重构所述物理空间中的对象的表面,所述表面处于所述多个体中的至少一个体中。
7.如权利要求6所述的方法,其特征在于:
所述多个节点中的每个节点与所述物理空间中的装备的一位置相关联;以及
对于所述多个体中的一个或多个体,将该体的顶点锚定到所述姿态图中的至少两个不同点包括将该体的一个顶点锚定到所述姿态图中的节点组合,所述节点组合包括所述姿态图中的所述节点中位置最靠近所述一个顶点的一个节点。
8.如权利要求7所述的方法,其特征在于:
所述节点组合包括在所述姿态图中的所述节点中位置最靠近所述一个顶点的所述一个节点的指定距离内的一个或多个节点。
9.如权利要求8所述的方法,其特征在于:
在所述节点组合中,在所述指定距离内的所述一个或多个节点中的每个节点根据该节点到所述姿态图中的所述节点中位置最靠近所述一个顶点的所述一个节点的距离被加权。
10.如权利要求6所述的方法,其特征在于,进一步包括:
对于所述多个体中的一个或多个体,将所述体的每个顶点锚定到所述姿态图中的不同点。
11.如权利要求6所述的方法,其特征在于:
对于所述多个体中的一个或多个体,将该体的顶点锚定到所述姿态图中的至少两个不同点包括将该体的一个顶点锚定到所述姿态图中的一个节点以及将该体的另一顶点锚定到所述姿态图中的另一节点。
12.如权利要求6所述的方法,其特征在于:
所述更新所述姿态图包括将一个或多个节点添加到所述姿态图;以及
对于所述多个体中的一个或多个体,所述姿态图中该体的顶点所锚定到的点的数量在将所述一个或多个节点添加到所述姿态图期间增加。
13.如权利要求6至12中的任一项所述的方法,其特征在于:
所述多个体不彼此交叠且在所述体之间不存在间隙。
14.如权利要求6、12或13中的任一项所述的方法,其特征在于:
所述多个节点中的每个节点与所述物理空间中的装备的一位置相关联;以及
对于所述多个体中的一个或多个体,将该体的顶点锚定到所述姿态图中的至少两个不同点包括将该体的一个顶点锚定到所述姿态图中的所述节点中位置最靠近所述一个顶点的一个节点。
15.如权利要求6、12、13或14中的任一项所述的方法,其特征在于,还包括:
在所述重构期间,对于所述多个体中的所述至少一个体,基于所述多个体中的所述至少一个体的形状来使得所述物理空间的深度图扭曲。
CN201580050663.7A 2014-09-18 2015-09-10 在表面重构中使用自由形式变形 Active CN106716497B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/489,802 US9483879B2 (en) 2014-09-18 2014-09-18 Using free-form deformations in surface reconstruction
US14/489,802 2014-09-18
PCT/US2015/049274 WO2016044037A1 (en) 2014-09-18 2015-09-10 Using free-form deformations in surface reconstruction

Publications (2)

Publication Number Publication Date
CN106716497A true CN106716497A (zh) 2017-05-24
CN106716497B CN106716497B (zh) 2020-05-05

Family

ID=54197073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580050663.7A Active CN106716497B (zh) 2014-09-18 2015-09-10 在表面重构中使用自由形式变形

Country Status (5)

Country Link
US (1) US9483879B2 (zh)
EP (1) EP3195270B1 (zh)
KR (1) KR102399399B1 (zh)
CN (1) CN106716497B (zh)
WO (1) WO2016044037A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10168699B1 (en) * 2015-01-30 2019-01-01 Vecna Technologies, Inc. Interactions between a vehicle and a being encountered by the vehicle
US9940542B2 (en) * 2015-08-11 2018-04-10 Google Llc Managing feature data for environment mapping on an electronic device
US10890600B2 (en) 2016-05-18 2021-01-12 Google Llc Real-time visual-inertial motion tracking fault detection
US11017610B2 (en) * 2016-05-18 2021-05-25 Google Llc System and method for fault detection and recovery for concurrent odometry and mapping
US10802147B2 (en) 2016-05-18 2020-10-13 Google Llc System and method for concurrent odometry and mapping
CA3032812A1 (en) 2016-08-04 2018-02-08 Reification Inc. Methods for simultaneous localization and mapping (slam) and related apparatus and systems
EP3565259A1 (en) * 2016-12-28 2019-11-06 Panasonic Intellectual Property Corporation of America Three-dimensional model distribution method, three-dimensional model receiving method, three-dimensional model distribution device, and three-dimensional model receiving device
US10242458B2 (en) * 2017-04-21 2019-03-26 Qualcomm Incorporated Registration of range images using virtual gimbal information
US10977856B2 (en) * 2018-03-29 2021-04-13 Microsoft Technology Licensing, Llc Using a low-detail representation of surfaces to influence a high-detail representation of the surfaces
GB2574795B (en) * 2018-05-04 2022-10-05 Signaturize Holdings Ltd Generating virtual representations
KR102206314B1 (ko) * 2019-10-08 2021-01-22 전남대학교산학협력단 처리 장치 및 처리 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060094951A1 (en) * 2003-06-11 2006-05-04 David Dean Computer-aided-design of skeletal implants
CN102622776A (zh) * 2011-01-31 2012-08-01 微软公司 三维环境重构

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030047933A (ko) * 2003-05-02 2003-06-18 예병수 체적 화소를 이용한 다 시점 영상제작 방법
EP1876411A4 (en) * 2005-04-25 2011-06-29 Geo Technical Lab Co Ltd METHOD FOR ANALYZING THE PICTURE POSITION
US7286127B2 (en) * 2005-06-22 2007-10-23 Microsoft Corporation Large mesh deformation using the volumetric graph Laplacian
US8364615B2 (en) * 2009-02-06 2013-01-29 Microsoft Corporation Local graph partitioning using evolving sets
KR101068465B1 (ko) * 2009-11-09 2011-09-28 한국과학기술원 삼차원 물체 인식 시스템 및 방법
US8913055B2 (en) 2011-05-31 2014-12-16 Honda Motor Co., Ltd. Online environment mapping
US20150178988A1 (en) * 2012-05-22 2015-06-25 Telefonica, S.A. Method and a system for generating a realistic 3d reconstruction model for an object or being
US9432636B2 (en) * 2013-11-26 2016-08-30 Microsoft Technology Licensing, Llc Large-scale surface reconstruction that is robust against tracking and mapping errors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060094951A1 (en) * 2003-06-11 2006-05-04 David Dean Computer-aided-design of skeletal implants
CN102622776A (zh) * 2011-01-31 2012-08-01 微软公司 三维环境重构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
STEINBRUCKER FRANK等: "Large-Scale multi-resolution surface reconstruction from RGB-D sequences", 《2013 IEEE INTERNATIONAL CONFERENCE ON COMPUTER VISION》 *

Also Published As

Publication number Publication date
US9483879B2 (en) 2016-11-01
KR102399399B1 (ko) 2022-05-17
KR20170056672A (ko) 2017-05-23
EP3195270A1 (en) 2017-07-26
WO2016044037A1 (en) 2016-03-24
EP3195270B1 (en) 2018-10-24
CN106716497B (zh) 2020-05-05
US20160086385A1 (en) 2016-03-24

Similar Documents

Publication Publication Date Title
CN105765631B (zh) 对跟踪和映射误差稳健的大规模表面重构
CN106716497A (zh) 在表面重构中使用自由形式变形
US11978159B2 (en) Cross reality system
US11580705B2 (en) Viewpoint dependent brick selection for fast volumetric reconstruction
US11568605B2 (en) Cross reality system with localization service
US20240062491A1 (en) Cross reality system with accurate shared maps
US11967020B2 (en) Cross reality system with map processing using multi-resolution frame descriptors
US20220130120A1 (en) Cross reality system supporting multiple device types
JP7422785B2 (ja) ニューラルネットワークおよび角検出器を使用した角検出のための方法および装置
CN106101689B (zh) 利用手机单目摄像头对虚拟现实眼镜进行增强现实的方法
JP2021534491A (ja) クロスリアリティシステム
CN115803788A (zh) 用于大规模环境的交叉现实系统
CN109791442A (zh) 表面建模系统和方法
CN105190703A (zh) 使用光度立体来进行3d环境建模
CN105264478A (zh) 全息锚定和动态定位
CN105393158A (zh) 共享的和私有的全息物体
JP2022533207A (ja) 稠密3d再構築データのキャッシュおよび更新
US20230147759A1 (en) Viewpoint dependent brick selection for fast volumetric reconstruction
JP2022539160A (ja) 平面抽出を使用した単純環境ソルバ
WO2020072972A1 (en) A cross reality system
US20210358173A1 (en) Computationally efficient method for computing a composite representation of a 3d environment
JP2024506299A (ja) 占有率グリッドを使用した場面理解

Legal Events

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