CN113139992A - 多分辨率体素网格化 - Google Patents

多分辨率体素网格化 Download PDF

Info

Publication number
CN113139992A
CN113139992A CN202110056511.5A CN202110056511A CN113139992A CN 113139992 A CN113139992 A CN 113139992A CN 202110056511 A CN202110056511 A CN 202110056511A CN 113139992 A CN113139992 A CN 113139992A
Authority
CN
China
Prior art keywords
resolution
voxel
hash table
voxels
physical environment
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
Application number
CN202110056511.5A
Other languages
English (en)
Inventor
M·迈兰
A·普瑞多赫
K·L·西梅克
庄茗
P·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.)
Apple Inc
Original Assignee
Apple Inc
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
Priority claimed from US17/147,559 external-priority patent/US11328481B2/en
Application filed by Apple Inc filed Critical Apple Inc
Publication of CN113139992A publication Critical patent/CN113139992A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • 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/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

本公开涉及多分辨率体素网格化。本文公开的各具体实施生成表示物理环境中的表面的网格。该网格使用基于检测到的深度信息(例如,来自深度相机)的多分辨率体素生成。这些技术可使用多个哈希表来存储多分辨率体素数据。例如,哈希表可存储每个体素的3D位置和与每个体素距最接近表面的距离对应的截断式带符号距离场(TSDF)值。多个哈希表中的每个哈希表可包括对应于不同分辨率级别的数据,并且那些分辨率可取决于距离/噪声或其他因素。例如,与距离深度相机较远的体素相比,靠近深度相机的体素可具有更精细的分辨率和更小的尺寸。本文所公开的技术可涉及使用网格化算法,该网格化算法将存储在多个哈希表中的多分辨率体素信息组合以生成单个网格。

Description

多分辨率体素网格化
技术领域
本公开整体涉及生成物理环境的三维几何表示,并且具体地涉及基于在物理环境中检测到的深度信息生成几何表示的系统、方法和设备。
背景技术
已通过生成三维(3D)网格对物理环境建模(例如,重建)。这些网格表示物理环境的地板、墙壁和其他对象的3D表面点和其他表面特征。此类重建可基于物理环境的图像和深度测量(例如,使用RGB相机和深度传感器)来生成。该重建技术可使用体素(voxel)生成网格来提供重建。如本文所用,体素是指体积像素。现有的重建技术使用固定尺寸的体素,这些体素在3D空间中以规则间隔的网格间隔开,而体素之间没有间隙。例如,此类重建技术可使用截断式带符号距离函数(TSDF)定容地累积信息,该截断式带符号距离函数为物理环境中的表面的阈值距离内的体素提供符号距离值,其中这些值表示此类体素到物理环境中最接近的相应表面的距离。当此类技术使用相对较大的体素时,这些技术可能无法充分表示物理环境的详细特征。相比之下,当此类技术使用相对较小的体素时,这些技术可能由于噪声滤波不充分而产生不准确的重建,并且可能需要不期望的资源使用,例如,需要无法实时执行的处理或不期望或难以获得的存储器存储级别。因此,现有的重建技术可能无法提供足够准确有效的物理环境重建。
发明内容
本文所公开的各种具体实施包括使用基于检测到的深度信息生成的多分辨率体素来生成表示物理环境中的表面的网格(例如,形成连接的三角形的顶点)的设备、系统和方法。在一些具体实施中,重建技术使用多个哈希表来存储多分辨率体素数据。例如,该哈希表可存储每个体素的3D位置和与每个体素距最接近表面的距离对应的截断式带符号距离场(TSDF)值。该多个哈希表中的每个哈希表可包括对应于不同分辨率级别的数据。那些分辨率可以基于体素距传感器的距离、与不同体素相关联的深度数据中的噪声或其他因素来选择。例如,与距离深度相机较远的体素相比,靠近深度相机的体素可具有更精细的分辨率和更小的尺寸。
本文所公开的技术可通过使用多分辨率体素来实现各种优点。使用多分辨率体素为重建的某些部分提供较小的体素以提供更精细的分辨率并因此潜在地提供更高的准确性和保真性,并且为重建的其他部分提供较大的体素以提供更粗糙的分辨率并因此提供更低的准确性和保真性。如果已将小体素用于重建的所有部分,则所有尺寸的体素的总数可能小于原本将存在的体素总数,从而减少确定和处理体素信息所需的资源。此外,可使用相比于提供对较小体素的使用将不太可能带来更高准确性的区域(例如,在数据中存在较多噪声的区域),在这样做将可能带来更高准确性的区域(例如,在数据中存在较少噪声的区域)中这样做的标准来确定体素尺寸(例如,哪些体素小,哪些体素大)。因此,使用适当选择和变化尺寸的体素可有利于快速且有效的重建,例如,为重建提供足够的准确度和速度以用于实时应用。
本文所公开的技术可使用多分辨率体素数据来生成重建物理环境的几何结构的网格。这可涉及使用网格化算法,该网格化算法将存储在多个哈希表中的多分辨率体素信息组合以生成单个网格。此类算法被配置为考虑多个哈希表中表示的体素的不同分辨率。
本公开的一些具体实施涉及一种基于深度传感器测量结果生成表示3D环境中的表面的网格(例如,形成连接的三角形的顶点)的示例性方法。该方法涉及使用传感器获得物理环境的深度数据。例如,该深度数据可包括来自视点的像素深度值以及传感器位置和取向数据。
示例性方法还涉及基于该深度数据生成第一哈希表,该第一哈希表存储具有第一分辨率的第一组体素(例如,大体素)的3D位置和表示到物理环境的表面(例如,到最接近表面)的距离的带符号距离值。距离场可被定义为标量场,其在任何给定点处的值等于从该点到该最接近表面的距离。例如,在一些具体实施中,带符号距离值包括TSDF值,该TSDF值可用于表示每个体素到物理环境的表面的最接近表面的体素距离。TSDF值可通过在表示中仅包括截断带内的值(例如,仅存储表面的阈值距离内的体素数据)来节省存储空间。
该示例方法还涉及基于该深度数据生成第二哈希表,该第二哈希表存储具有第二分辨率的第二组体素(例如,小体素)的3D位置和表示到该物理环境的表面的距离的带符号距离值,其中该第二分辨率不同于该第一分辨率。例如,可基于距传感器的距离、噪声、语义等来确定用于每个体素的分辨率级别。例如,相比于距离深度相机较远的体素,靠近深度相机的体素可具有更精细的分辨率和更小的尺寸。
该示例性方法还涉及基于该第一哈希表和该第二哈希表生成表示该表面的网格。可以通过沿着将第一组体素的第一体素(例如,位于第一体素的中心处的位置)与第二组体素的第二体素(例如,位于第二体素的中心处的位置)连接的线定位顶点来生成网格。附加地或另选地,在相同分辨率内的体素之间生成顶点(例如,每当存在过零点时,在该过零点处TSDF值从负变为正)。例如,可使用步进立方体网格化算法技术来生成网格,该算法技术识别连接与每个哈希表中的体素相关联的点的线,并且进行插值以识别沿着与表面对应的那些线的顶点。执行步进立方体网格化算法可涉及解析一个或多个哈希表以及利用表示由哈希表所表示的体积中的表面的顶点生成网格三角形。对于每个哈希条目,该算法可构建其所属立方体的相邻体素的顶点列表,并识别穿过该立方体的三角形表面。在一些具体实施中,生成网格包括生成连接与多个哈希表中的每个哈希表中(例如,在第一哈希表和第二哈希表之间,在第二哈希表和第三哈希表之间等)的体素相关联的点的线,以及沿着这些线进行插值以识别网格的与这些表面对应的顶点。在一些具体实施中,该网格化算法提取重复剔除网格和流形网格。
在一些具体实施中,该示例性方法还涉及基于该深度数据生成第三哈希表,该第三哈希表存储具有第三分辨率的第三组体素的3D位置和表示到该物理环境的表面的距离的带符号距离值,该第三分辨率不同于该第一分辨率和第二分辨率,其中网格基于该第三哈希表而生成。可针对所需的每个分辨率级别生成附加的哈希表。在示例性具体实施中,将至少四个哈希表用于四种不同的分辨率。
在一些具体实施中,该示例性方法还涉及确定是将3D位置表示为具有第一分辨率的体素还是具有第二分辨率的体素。在一些具体实施中,该示例性方法还涉及基于确定该深度数据中的噪声来确定是将3D位置表示为具有第一分辨率的体素还是具有第二分辨率的体素。在一些具体实施中,该示例性方法还涉及基于最接近体素的表面距深度数据的来源(例如,深度相机位置)的距离来确定是将3D位置表示为具有第一分辨率的体素还是具有第二分辨率的体素。在一些具体实施中,该第一组体素的体素具有第一尺寸,并且该第二组体素的体素具有第二尺寸,其中该第一尺寸大于该第二尺寸。
在一些具体实施中,该第一哈希表和该第二哈希表使用3D位置作为键(key)来生成存储体素信息的存储器地址。在一些具体实施中,该第一哈希表和该第二哈希表具有存储带符号距离值的存储器地址。
在一些具体实施中,使用一个或多个深度相机获得深度数据。例如,一个或多个深度相机可基于结构光(SL)、被动立体(PS)、主动立体(AS)、飞行时间(ToF)等获取深度。深度相机可提供与来自标准相机的图像像素对准的每像素深度信息。在一些具体实施中,该深度数据包括来自视点的像素深度值和传感器位置。
根据一些具体实施,一种设备包括一个或多个处理器、非暂态存储器以及一个或多个程序;该一个或多个程序被存储在非暂态存储器中并且被配置为由一个或多个处理器执行,并且该一个或多个程序包括用于执行或使得执行本文所述方法中的任一种的指令。根据一些具体实施,一种非暂态计算机可读存储介质中存储有指令,这些指令在由设备的一个或多个处理器执行时使该设备执行或使执行本文所述方法中的任一种。根据一些具体实施,一种设备包括:一个或多个处理器、非暂态存储器以及用于执行或使执行本文所述方法中的任一种的装置。
附图说明
因此,本公开可被本领域的普通技术人员理解,更详细的描述可参考一些例示性具体实施的方面,其中一些具体实施在附图中示出。
图1是根据一些具体实施的示例性操作环境的框图。
图2是根据一些具体实施的示例性控制器的框图。
图3是根据一些具体实施的示例性设备的框图。
图4是根据一些具体实施的使用基于深度信息的多分辨率哈希数据结构生成表示3D环境中的表面的网格的示例性方法的流程图表示。
图5是示出根据一些具体实施的深度数据的区域的示例性截断式带符号距离场(TSDF)值的框图。
图6是示出根据一些具体实施的哈希数据结构的框图。
图7是示出根据一些具体实施的多分辨率哈希数据结构表示和网格表示的框图。
图8A至图8C是示出根据某些具体实施的在使用密集TSDF映射进行3D重建期间的示例性图像的框图。
图9A至图9C是示出根据某些具体实施的在使用稀疏TSDF映射和单分辨率网格的哈希表进行3D重建期间的示例性图像的框图。
图10A至图10C是示出根据某些具体实施的在使用稀疏TSDF映射和多分辨率网格的多个哈希表进行3D重建期间的示例性图像的框图。
图11是根据某些具体实施的使用基于深度信息的多分辨率哈希数据结构来表示3D环境中的表面的网格的示例性生成的系统流程图。
根据通常的做法,附图中示出的各种特征部可能未按比例绘制。因此,为了清楚起见,可以任意地扩展或减小各种特征部的尺寸。另外,一些附图可能未描绘给定的系统、方法或设备的所有部件。最后,在整个说明书和附图中,类似的附图标号可用于表示类似的特征部。
具体实施方式
描述了许多细节以便提供对附图中所示的示例具体实施的透彻理解。然而,附图仅示出了本公开的一些示例方面,因此不应被视为限制。本领域的普通技术人员将理解,其他有效方面和/或变体不包括本文所述的所有具体细节。此外,没有详尽地描述众所周知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。
图1是根据一些具体实施的示例性操作环境100的框图。在该示例中,示例性操作环境100示出了包括对象125和桌子135的示例性物理环境105。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,操作环境100包括控制器110和设备120。
在一些具体实施中,控制器110被配置为管理和协调用户体验。在一些具体实施中,控制器110包括软件、固件和/或硬件的合适组合。下文参考图2更详细地描述控制器110。在一些具体实施中,控制器110是相对于物理环境105处于本地或远程位置的计算设备。在一个示例中,控制器110是位于物理环境105内的本地服务器。在另一个示例中,控制器110是位于物理环境105之外的远程服务器(例如,云服务器、中央服务器等)。在一些具体实施中,控制器110经由一个或多个有线或无线通信信道144(例如,蓝牙、IEEE 802.11x、IEEE 802.16x、IEEE 802.3x等)与设备120通信地耦接。
在一些具体实施中,设备120被配置为向用户呈现环境。在一些具体实施中,设备120包括软件、固件和/或硬件的合适组合。下文参考图3更详细地描述设备120。在一些具体实施中,控制器110的功能由设备120提供和/或与该设备结合。
在一些具体实施中,用户将设备120穿戴在他/她的头上。这样,设备120可包括被设置成显示内容的一个或多个显示器。例如,设备120可包围用户的视野。在一些具体实施中,设备120是被配置为向用户呈现内容的手持式电子设备(例如,智能电话或平板电脑)。在一些具体实施中,用被配置为呈现内容的腔室、外壳或室替代设备120,其中用户不穿戴或手持该设备120。
图2是根据一些具体实施的控制器110的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,控制器110包括一个或多个处理单元202(例如,微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、中央处理单元(CPU)、处理核心等)、一个或多个输入/输出(I/O)设备206、一个或多个通信接口208(例如,通用串行总线(USB)、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、全球移动通信系统(GSM)、码分多址(CDMA)、时分多址(TDMA)、全球定位系统(GPS)、红外(IR)、蓝牙、ZIGBEE和/或相似类型接口)、一个或多个编程(例如,I/O)接口210、存储器220以及用于互连这些部件和各种其他部件的一条或多条通信总线204。
在一些具体实施中,所述一条或多条通信总线204包括互连系统部件和控制系统部件之间的通信的电路。在一些具体实施中,一个或多个I/O设备206包括键盘、鼠标、触控板、操纵杆、一个或多个麦克风、一个或多个扬声器、一个或多个图像传感器、一个或多个显示器等中的至少一种。
存储器220包括高速随机存取存储器,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、双倍数据速率随机存取存储器(DDR RAM)或者其他随机存取固态存储器设备。在一些具体实施中,存储器220包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器220任选地包括远离所述一个或多个处理单元202定位的一个或多个存储设备。存储器220包括非暂态计算机可读存储介质。在一些具体实施中,存储器220或存储器220的非暂态计算机可读存储介质存储以下程序、模块和数据结构,或它们的子集,包括可选的操作系统230以及一个或多个应用程序240。
操作系统230包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些具体实施中,操作系统230包括内置CGR功能,例如,包括CGR环境应用程序或被配置为从一个或多个应用程序240调用以在用户界面内显示CGR环境的查看器。在一些具体实施中,应用程序240被配置为管理和协调一个或多个用户的一个或多个体验(例如,一个或多个用户的单个体验,或一个或多个用户的相应群组的多个体验)。
应用程序240包括图像整合单元242、哈希算法单元244、网格算法单元246和CGR单元248。图像整合单元242、哈希算法单元244、网格算法单元246和CGR单元248可组合成单个应用程序或单元,或者分成一个或多个附加应用程序或单元。
图像整合单元242被配置有指令,该指令能够由处理器执行以获得图像数据(例如,光强度数据、深度数据等)并使用本文所公开的一种或多种技术来整合(例如,融合)这些图像数据。例如,图像集成单元242将来自光强度相机的RGB图像与来自深度相机(例如,飞行时间传感器)的稀疏深度图和其他物理环境信息源融合,以输出信息的密集深度点云。
哈希算法单元244被配置有指令,该指令能够由处理器执行以使用本文所公开的一种或多种技术基于深度数据生成哈希表,该哈希表存储体素的3D位置和表示到物理环境的表面(例如,到最接近的表面)的距离的带符号距离值。例如,哈希算法单元244可从图像数据确定分辨率的层级,并针对所确定分辨率的每个级别生成哈希表。
网格算法单元246被配置有指令,该指令能够由处理器执行以使用本文所公开的一种或多种技术来执行网格化算法(例如,双步进立方体网格化算法、泊松网格化算法、四面体网格化算法等)并且生成表示房间(例如,物理环境105)和/或房间内的对象(例如,对象125、桌子135等)的网格。计算机生成现实(CGR)单元248被配置有指令,该指令能够由处理器执行以提供包括对含有真实对象或虚拟对象的物理环境的描述的CGR环境。可基于对3D空间中的对象相对于彼此的检测、跟踪和表示,基于真实对象和虚拟对象的所存储3D模型,例如使用本文所公开的一种或多种技术来定位虚拟对象。
此外,图2更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图2中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。
图3是根据一些具体实施的设备120的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,设备120包括一个或多个处理单元302(例如,微处理器、ASIC、FPGA、GPU、CPU、处理核心等)、一个或多个输入/输出(I/O)设备及传感器306、一个或多个通信接口308(例如,USB、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE802.11x、IEEE 802.16x、GSM、CDMA、TDMA、GPS、IR、BLUETOOTH、ZIGBEE、SPI、I2C和/或类似类型的接口)、一个或多个编程(例如,I/O)接口310、一个或多个AR/VR显示器312、一个或多个面向内部和/或面向外部的图像传感器314、存储器320以及用于互连这些部件和各种其他部件的一条或多条通信总线304。
在一些具体实施中,一条或多条通信总线304包括互连和控制系统部件之间的通信的电路。在一些具体实施中,该一个或多个I/O设备及传感器306包括以下项中的至少一个:惯性测量单元(IMU)、加速度计、磁力计、陀螺仪、温度计、一个或多个生理传感器(例如,血压监测仪、心率监测仪、血氧传感器、血糖传感器等)、一个或多个麦克风、一个或多个扬声器、触觉引擎以及/或者一个或多个深度传感器(例如,结构光、飞行时间等)等。
在一些具体实施中,一个或多个显示器312被配置为向用户呈现体验。在一些具体实施中,一个或多个显示器312对应于全息、数字光处理(DLP)、液晶显示器(LCD)、硅上液晶(LCoS)、有机发光场效应晶体管(OLET)、有机发光二极管(OLED)、表面传导电子发射器显示器(SED)、场发射显示器(FED)、量子点发光二极管(QD-LED)、微机电系统(MEMS)和/或相似显示器类型。在一些具体实施中,一个或多个显示器312对应于衍射、反射、偏振、全息等波导显示器。例如,设备120包括单个显示器。又如,设备120包括针对用户的每只眼睛的显示器。
在一些具体实施中,一个或多个图像传感器系统314被配置为获得对应于物理环境105的至少一部分的图像数据。例如,该一个或多个图像传感器系统314包括一个或多个RGB相机(例如,具有互补金属氧化物半导体(CMOS)图像传感器或电荷耦合器件(CCD)图像传感器)、单色相机、IR相机、基于事件的相机等。在各种具体实施中,一个或多个图像传感器系统314还包括发射光的照明源,诸如闪光灯。在各种具体实施中,一个或多个图像传感器系统314还包括相机上图像信号处理器(ISP),该ISP被配置为对图像数据执行包括本文所述的过程和技术中的至少一部分的多个处理操作。
存储器320包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备。在一些具体实施中,存储器320包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器320任选地包括远离所述一个或多个处理单元302定位的一个或多个存储设备。存储器320包括非暂态计算机可读存储介质。在一些具体实施中,存储器320或存储器320的非暂态计算机可读存储介质存储以下程序、模块和数据结构,或它们的子集,包括可选的操作系统330以及一个或多个应用程序340。
操作系统330包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些具体实施中,操作系统330包括内置CGR功能,例如,包括CGR环境应用程序或被配置为从一个或多个应用程序340调用以在用户界面内显示CGR环境的查看器。在一些具体实施中,应用程序340被配置为管理和协调一个或多个用户的一个或多个体验(例如,一个或多个用户的单个体验,或一个或多个用户的相应群组的多个体验)。
应用程序340包括图像整合单元342、哈希算法单元344、网格算法单元346和CGR单元348。图像整合单元342、哈希算法单元344、网格算法单元346和CGR单元348可组合成单个应用程序或单元,或者分成一个或多个附加应用程序或单元。
图像整合单元342被配置有指令,该指令能够由处理器执行以获得图像数据(例如,光强度数据、深度数据等)并使用本文所公开的一种或多种技术来整合(例如,融合)这些图像数据。例如,图像集成单元342将来自光强度相机的RGB图像与来自深度相机(例如,飞行时间传感器)的稀疏深度图和其他物理环境信息源融合,以输出密集的深度云。
哈希算法单元344被配置有指令,该指令能够由处理器执行以使用本文所公开的一种或多种技术基于深度数据生成哈希表,该哈希表存储体素的3D位置和表示到物理环境的表面(例如,到最接近的表面)的距离的带符号距离值。例如,哈希算法单元344可从图像数据确定分辨率的层级,并针对所确定分辨率的每个层级生成哈希表。
网格算法单元346被配置有指令,该指令能够由处理器执行以使用本文所公开的一种或多种技术来执行网格化算法(例如,双步进立方体网格化算法、泊松网格化算法、四面体网格化算法等)并且生成房间(例如,物理环境105)和/或房间内的对象(例如,对象125、桌子135等)的网格表示。CGR单元348被配置有指令,该指令能够由处理器执行以提供包括对含有真实对象或虚拟对象的物理环境的描述的CGR环境。可基于对3D空间中的对象相对于彼此的检测、跟踪和表示,基于真实对象和虚拟对象的所存储3D模型,例如使用本文所公开的一种或多种技术来定位虚拟对象。
尽管这些元件被示出为驻留在单个设备(例如,设备120)上,但应当理解,在其他具体实施中,元件的任何组合可位于单独的计算设备中。此外,图3更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图3中单独示出的一些功能模块(例如,应用程序340)可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。
图4为根据一些具体实施的使用表示多个分辨率的体素的多个哈希表生成网格的示例性方法400的流程图表示。在一些具体实施中,方法400由设备(例如,图1和图2的设备120)诸如移动设备、台式计算机、膝上型电脑或服务器设备等来执行。方法400可以在具有用于显示2D图像的屏幕和/或用于观看立体图像的屏幕的设备(例如,图1和图3的设备120)上执行,该设备诸如头戴式显示器(HMD)。在一些具体实施中,方法400由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法400由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。
方法400使用基于在物理环境中检测到的深度信息的多分辨率哈希数据结构生成表示3D环境中的表面的网格(例如,形成连接的三角形的顶点)。方法400可提供物理环境的现实的而有物理意义的重建。当图像捕获设备(例如,移动电话)扫描物理环境(例如,建筑物的房间或走廊)时,方法400可有效地使用存储器并快速更新重建。方法400可生成可用于多种应用程序中的网格。例如,方法400可提供一种网格,该网格促成与CGR环境中的物理对象交互的虚拟对象的现实放置和移动以及3D中的物理环境的分割以实现对象替换。
在框402处,方法400使用传感器获得物理环境的深度数据,该物理环境具有表面。例如,该深度数据可包括来自视点的像素深度值以及传感器位置和取向数据。在一些具体实施中,使用一个或多个深度相机获得深度数据。例如,一个或多个深度相机可基于结构光(SL)、被动立体(PS)、主动立体(AS)、飞行时间(ToF)等获取深度。可以应用各种技术来获取深度图像数据以分配图像的每个部分(例如,以像素级或体素级)。此类技术可涉及获得和分析深度值、深度图像和深度直方图,并且可导致对识别图像的与不同焦深平面相关联的部分的一个或多个掩模的创建。例如,体素数据(例如,3D网格上的光栅图形,具有长度、宽度和深度的值)还可包含多个标量值,诸如不透明度、颜色和密度。在一些具体实施中,从图像的内容的传感器或3D模型获得深度数据。图像的一部分或全部内容可基于真实环境,例如描绘设备120周围的物理环境105。图像传感器可捕获物理环境105的图像以包括在关于物理环境105的图像和深度信息中。在一些具体实施中,设备120上的深度传感器确定基于由设备120上的图像传感器捕获的图像所确定的体素的深度值。用户周围的物理环境105可基于一个或多个值进行3D建模,并且可基于模型和相机位置信息来确定在物理环境的后续图像中描绘的对象的后续深度。在一些具体实施中,虚拟对象可与图像数据一起呈现在CGR环境中,并且该虚拟对象可具有预先指定的深度值或根据其可确定此类深度值的坐标。
在框404处,方法400基于深度数据生成第一哈希表,该第一哈希表存储具有第一分辨率的第一组体素的3D位置和表示到物理环境的表面的距离的带符号距离值。例如,第一分辨率可包括距物理环境的表面特定距离处的较大体素(例如,桌子135上的对象125)。在一些具体实施中,使用多个哈希表,并且每个哈希表包括存储带符号距离值的存储器地址。如本文参考图5进一步讨论的,在一些具体实施中,截断式带符号距离场(TSDF)值可用于表示每个体素到对应于深度数据的物理环境的表面中的最接近表面的体素距离。TSDF值可用于通过在表示中仅包括截断带内(例如,在表面的阈值距离内)的值来节省大量存储空间。
此外,例如,3D体积数据可包括分布式体素地址,并且所存储的3D位置可用作哈希表条目的键以提供(x,y,z)坐标并生成存储体素信息的存储器地址。例如,在3D体积数据中,每个位可以是唯一的,并且每个体素的(x,y,z)坐标可以是唯一的。在一个示例性具体实施中,在系统中实施的算法可利用示例性3D体积数据中的唯一体素位置来提供使无序或多余的哈希表条目最小化的寻址方案。如本文参考图6进一步所述,无序或多余的哈希表条目可以是哈希方案中采用的哈希函数,该哈希方案在哈希表中针对多于一个键生成相同索引。
在框406处,方法400基于深度数据生成第二哈希表,该第二哈希表存储具有第二分辨率的第二组体素的3D位置和表示到物理环境的表面的距离的带符号距离值。框406中的第二哈希表的生成可类似于框404中的第一哈希表的生成。然而,在框406处,使用与第一哈希表的分辨率不同的第二分辨率。例如,第二分辨率可为较精细的分辨率并且包括较小体素,并且第一哈希表可包括较粗糙的分辨率并且包括较大体素。不同的哈希表可包括对应于不同分辨率级别的数据,并且那些分辨率可取决于距离、噪声或其他因素。距离可用作基于相关性的噪声的近似值(例如,相对于距离的二次噪声,使得距离越远意味着噪声越大)。
根据一些具体实施,方法400还包括确定是将3D位置表示为具有第一分辨率的体素还是具有第二分辨率的体素。例如,系统可确定要分析并由哈希表表示的分辨率级别数。根据一些具体实施,方法400还包括基于确定深度数据中的估计噪声来确定是将3D位置表示为具有第一分辨率的体素还是表示为具有第二分辨率的体素,如本文所述。根据一些具体实施,方法400还包括基于最接近体素的表面距深度数据的来源的距离来确定是将3D位置表示为具有第一分辨率的体素还是具有第二分辨率的体素。例如,系统可基于深度相机位置和到物理环境中对象的表面的距离(诸如到对象125的表面的距离)的对应深度数据来确定要分析的分辨率级别数。
附加地或另选地,可基于识别对象类型(例如,桌子、茶壶、椅子、花瓶等)的语义标记来确定分辨率级别。在一些具体实施中,语义标记使用机器学习模型,其中语义分割模型可被配置为识别图像数据的像素或体素的语义标记。例如,如果体素被标记为“墙壁”,则无论对象(墙壁)有多远,系统都可以基于墙壁型对象将具有不需要使用精细分辨率表示的一致或无关紧要的纹理的假设或说明而选择更大/更稀疏的分辨率。如果该体素被标记为“茶杯”,则系统可以基于茶杯型对象将具有无论潜在噪声如何都值得尝试表示的精细细节的假设或说明而选择更小/更精细的分辨率。在一些具体实施中,机器学习模型是神经网络(例如,人工神经网络)、决策树、支持向量机、贝叶斯网络等。
根据一些具体实施,可基于深度数据生成第三哈希表以存储具有第三分辨率的第三组体素的3D位置和表示到物理环境的表面的距离的带符号距离值。该第三分辨率与第一分辨率和第二分辨率不同。可基于第三哈希表生成网格。根据具体实施或情况,可针对每个更多级别的分辨率类似地生成另外的哈希表。
在方框408处,方法400基于第一哈希表和第二哈希表生成表示表面的网格,其中该网格通过沿着将第一组体素的第一体素与第二组体素的第二体素连接的线定位网格的顶点来生成。例如,可以通过沿着将第一组体素的第一体素(例如,位于第一体素的中心处的位置)与第二组体素的第二体素(例如,位于第二体素的中心处的位置)连接的线定位网格的顶点来生成网格。在一些具体实施中,可使用双步进立方体网格化算法技术来生成网格,该算法技术识别连接与每个哈希表中的体素相关联的点的线,并且进行插值以识别沿着与表面对应的那些线的顶点。附加地或另选地,在相同分辨率内的体素之间生成顶点(例如,每当存在过零点时,在该过零点处TSDF值从负变为正)。使用步进立方体网格化算法可涉及解析一个或多个哈希表以及利用表示体积中的表面的顶点生成网格三角形。对于哈希表中的每个哈希条目,该算法可构建其所属立方体的相邻体素的顶点列表,并识别穿过该立方体的三角形表面。在一些具体实施中,生成网格包括生成连接与第一哈希表和第二哈希表两者中的体素相关联的点的线,以及沿着这些线进行插值以识别网格的与这些表面对应的顶点。在一些具体实施中,该网格化算法提取重复剔除网格和流形网格。另选地,可使用其他合适的网格化算法(例如,泊松网格化算法、四面体网格化算法等)。
图5是示出根据一些具体实施的深度数据的区域520的示例性截断式带符号距离场(TSDF)值的示例性操作环境500的框图。在该示例中,示例性操作环境500示出了包括设备510、对象125和桌子135的环境。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,操作环境500包括设备510。
在一些具体实施中,设备510可包括一个或多个深度传感器(例如,结构光、飞行时间等)。如图5所示,设备510朝向对象125成角度倾斜。对象125包括最靠近设备510的边缘525。为了进行示意性的说明,对象520的区域520在网格格式的二维(2D)表示中以体素级别扩展,以示出截断式带符号距离函数(TSDF)值。如果体素在截断阈值内,则存储带符号距离值。如图所示,行1和行1'分别处于“++”和“--”距离,并且行2和行2'分别处于“+”和“-”距离,每一者均在正截断阈值532或负截断阈值534内。然而,行3和行3'在相应的截断阈值之外,因此未存储带符号的距离函数。或者,换句话讲,对于相应截断阈值之外的那些体素,带符号的距离被截断或忽略。在示例性具体实施中,哈希化和网格化系统利用一个以上的分辨率级别。因此,体素542和544被示出为示例,其中体素可被调整并划分成更小的体素以用于更精细的分辨率。另外,根据所需的分辨率级别,可进一步划分体素542和544中的每一者内的四个体素中的每个体素。然后将由系统确定的要利用的每个分辨率级别存储在单独的哈希数据结构中,如下面参考图6进一步描述的。
图6是示出根据一些具体实施的用于多分辨率哈希数据结构的示例性环境600的框图。示例性环境600包括8×8×8单分辨率正交(均匀)体素网格602。体素网格602通过预先分配在存储器中的固定3D体素网格来表示体积中的所有信息。虽然体素网格602为每个体素存储和检索其TSDF值提供了恒定的访问时间,但是必须对存储器进行预先分配这一事实使得存储大容量是不切实际的,即使对于大小适中的房间,该容量也可达到数十千兆字节。每个体素(例如,体素610)可包括全局(x,y,z)坐标和TSDF值。可使用将世界坐标映射到体素的哈希函数H(x,y,z)来进行更为紧凑的表示。因此,示例性环境600中的体素610中的信息被示出为存储在哈希表620中。哈希表620存储哈希条目,每个哈希条目包含指向所分配体素块(例如,体素610)的指针。对于每个体素,该信息基于不同的参数存储在存储区中(例如,存储的信息可以包括世界坐标(x,y,z)、TSDF值和存储区多余条目的偏移值)。例如,哈希表620可被分解成一组存储区,其中每个时隙是未分配的或包含一个条目(灰色阴影)。然后针对每个有序的体素条目将每个存储区存储为体素块阵列630,从而移除所有多余条目。
哈希表620将体积表示为哈希图,其中哈希函数用于访问体素,诸如体素610。哈希表620允许空间中体素的动态分配和管理。另外,除TSDF信息之外,哈希表620还提供了实时关联和检索每个体素的元数据的能力。例如,与可能需要大量搜索以寻得类似能力的八叉树相比,可以快速检索每个体素的材料或对象分类属性。哈希表620提供了将大体积分成较小3D网格并且基于平台计算可用性和应用要求管理不同分级结构(例如,基于不同分辨率级别)下的多个本地和全局哈希表以及它们之间的有效合并和更新的能力。换句话讲,使用哈希表的优点在于它不是先验地对要重建的体积施加限制,并且通过设计根据需要加大映射。
图7包括示出根据一些具体实施的示例性多分辨率哈希数据结构表示(例如,示例性体素表示700A至700D)和2D网格表示(例如,网格表示700E)的框图。示例性体素表示700A至700D是2D体素表示。例如,示例性体素表示700A是示出针对第一哈希表在第一分辨率下的体素(例如,体素711、712、713)的表示,并且示例性体素表示700B是示出针对第二哈希表在不同于第一分辨率的第二分辨率下的体素(例如,体素721、722、723)的表示。使用用于体素表示700A的世界坐标以及第一哈希表中的体素的体素尺寸和形状来确定体素711与体素712相邻,但不与体素713相邻。使用用于体素表示700B的世界坐标以及第二哈希表中的体素的体素尺寸和形状来确定体素721与体素722相邻,但不与体素723相邻。此外,使用世界坐标以及第一哈希表和第二哈希表两者中体素的体素尺寸和形状来确定体素721与体素711相邻,但不与体素712相邻。
体素表示700A、700B中的“无体素区域”用于示意性说明目的以举例说明特定分辨率的哈希表表示仅创建针对该特定分辨率的哈希表。例如,体素表示700A表示更精细的分辨率,因此以更小的体素(例如,体素711、712、713)显示,体素表示700B表示更稀疏或粗糙的分辨率,因此与体素表示700A的体素尺寸相比,以更大的体素(例如,体素711、712、713)显示。
尽管未示出,但可以用更小的体素显示另一个体素表示,以获得第三更精细的分辨率。例如,体素711可被分成用于表示该第三分辨率的单独哈希表的四个更小的体素。
示例性体素表示700C是由多个哈希表(例如,体素表示700A的第一哈希表和体素表示700B的第二哈希表)以及连接相邻体素的线和示出体素距离符号的标记(例如,+或-)组合而成的2D体素表示。例如,示例性体素表示700C示出了用于两个分辨率级别的体素网格的拓扑结构,其中该体素网格的每个顶点位于每个体素的中心处。体素距离符号(例如,“+”和“-”)用于示出哪些体素为正“+”或在检测到的对象表面的外边缘上方以及哪些体素为负“-”或在检测到的对象表面的外边缘下方,如示例性体素表示700D所示。
如示例性体素表示700D所示,考虑具有不同符号值的体素之间的线,并且边缘730包括基于内插和深度数据沿着这些线所选择的网格顶点A、B、C、D。例如,示例性体素表示700D中的边缘730可表示图5中的对象125的边缘525。
图8至图10分别示出了使用密集TSDF映射、稀疏TSDF映射和用于单个分辨率的哈希表,以及稀疏TSDF映射和用于多分辨率网格的多哈希表的示例性3D网格重建。图8至10示出了在三种不同的数据采集时间间隔(例如,0秒、6秒和12秒)下使用多分辨率哈希数据结构(例如,图10)与两种其他技术(例如,图8和图9)相比生成网格之间的比较。
在一个具体实施中,图8A至图8C是示出根据某些具体实施的在使用密集TSDF映射进行对象(例如,茶壶)的3D重建期间的示例性图像的框图。具体地,在3D重建网格化过程期间,示例性环境800a–800c表示三种不同的数据采集时间间隔,初始时间(例如,t在0秒处)时的示例性环境800a,第一中点时间(例如,t在6秒处)时的示例性环境800b,以及后续中点时间或用于表示数据采集结束的结束时间(例如,t在12秒处)时的示例性环境800c。另选地,可使用更多或更少的时间来获取和生成网格。另外,示例性时间间隔0秒、6秒和12秒仅用于示例性目的,以示出所生成的3D重建网格的过程。例如,屏幕截图802a-802c表示已从所获得的包括深度数据(例如,RGB-D数据)的图像数据整合而成的密集点云数据。例如,从图5中的设备510获得的图像数据。屏幕截图804a–804c表示密集截断式带符号距离场数据。该密度数据用于高分辨率重建。屏幕截图806a–806c表示基于所接收的密集截断式带符号距离场数据生成的3D重建的网格。
在一个具体实施中,图9A至图9C是示出根据某些具体实施的在使用稀疏TSDF映射和单分辨率网格的哈希表进行对象(例如,茶壶)的3D重建期间的示例性图像的框图。具体地,在3D重建网格化期间,示例性环境900a–900c表示三种不同的数据采集时间间隔,初始时间(例如,t在0秒处)时的示例性环境900a,第一中点时间(例如,t在6秒处)时的示例性环境900b,以及后续中点时间或用于表示数据采集结束的结束时间(例如,t在12秒处)时的示例性环境900c。另选地,可使用更多或更少的时间来获取和生成该网格。另外,示例性时间间隔0秒、6秒和12秒仅用于示例性目的,以示出所生成的3D重建网格的过程。例如,屏幕截图902a-902c表示已从所获得的包括深度数据(例如,RGB-D数据)的图像数据整合而成的密集点云数据。例如,从图5中的设备510获得的图像数据。屏幕截图904a–904c表示使用针对一级分辨率的单个哈希表算法的稀疏截断式带符号距离场数据。屏幕截图906a–906c表示基于所接收的稀疏截断式带符号距离场数据和单个哈希表数据生成的3D重建的网格。
在一个示例性具体实施中,图10A至图10C是示出根据某些具体实施的在使用稀疏TSDF映射和多分辨率网格的哈希表进行对象(例如,茶壶)的3D重建期间的示例性图像的框图。具体地,在3D重建网格化过程期间,示例性环境1000a–1000c表示三种不同的数据采集时间间隔,初始时间(例如,t在0秒处)时的示例性环境1000a,第一中点时间(例如,t在6秒处)时的示例性环境1000b,以及后续中点时间或用于表示数据采集结束的结束时间(例如,t在12秒处)时的示例性环境1000c。另选地,可使用更多或更少的时间间隔来获取和生成该网格3D重建。另外,示例性时间间隔0秒、6秒和12秒仅用于示例性目的,以示出所生成的3D重建网格的过程。例如,屏幕截图1002a-1002c表示已从所获得的包括深度数据(例如,RGB-D数据)的图像数据整合而成的密集点云数据。例如,从图5中的设备510获得的图像数据。屏幕截图1004a–1004c表示利用多个哈希表进行多分辨率网格3D重建的稀疏截断式带符号距离场数据。屏幕截图1006a–1006c表示基于所接收的数据利用用于多分辨率的多个哈希表生成的3D重建网格。
图11是示例性环境1100的系统流程图,其中系统可使用基于在物理环境中检测到的深度信息的多分辨率哈希数据结构生成表示3D环境中的表面的网格(例如,形成连接的三角形的顶点)。在一些具体实施中,示例性环境1100的系统流程是在设备(例如,图1和图2的设备120)诸如移动设备、台式计算机、膝上型电脑或服务器设备上执行的。示例性环境1100的系统流程可以在具有用于显示2D图像的屏幕和/或用于观看立体图像的屏幕的设备(例如,图1和图3的设备120)上执行,该设备诸如头戴式显示器(HMD)。在一些具体实施中,示例性环境1100的系统流程是在处理逻辑部件(包括硬件、固件、软件或其组合)上执行的。在一些具体实施中,示例性环境1100的系统流程是在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行的。
示例性环境1100的系统流程获取对象(例如,茶壶)的图像数据,并且使用多分辨率哈希数据结构1134生成表示3D环境中的表面的网格1144。网格1144基于在物理环境中检测到的被整合(例如,被融合)的深度信息以重新创建该物理环境。
在一个示例性具体实施中,环境1100包括图像合成流水线,该图像合成流水线获取或获得物理环境的对象(例如,图1和图5的物理环境105的对象125)的数据(例如,来自图像源1110的图像数据)。示例性环境1100是获取多个图像帧的图像数据(例如,光强度数据和深度数据)的示例。图像源1110可包括获取物理环境的深度数据1115的深度相机1114,以及获取强度数据1113的光强度相机1112(例如,RGB相机)。附加地或另选地,在一些具体实施中,图像合成流水线包括针对CGR环境生成的虚拟内容(例如,桌子135上的虚拟盒子),如本文所述。例如,图像合成流水线可包括CGR单元(例如,图2的CGR单元248和图3的CGR单元348),该CGR单元被配置具有可由处理器执行以提供CGR环境的指令,该CGR环境包括对包括真实物理对象和虚拟内容的物理环境的描述。CGR单元可生成虚拟深度数据(例如,虚拟内容的深度图像)和虚拟强度数据(例如,虚拟内容的光强度图像(例如,RGB)。
CGR环境是指人们经由电子系统感测和/或交互的完全或部分模拟的环境。在CGR中,跟踪人的物理运动的一个子集或其表示,并且作为响应,以符合至少一个物理定律的方式调节在CGR环境中模拟的一个或多个虚拟对象的一个或多个特征。例如,CGR系统可以检测人的头部转动,并且作为响应,以与此类视图和声音在物理环境中变化的方式类似的方式调节呈现给人的图形内容和声场。在一些情况下(例如,出于可达性原因),对CGR环境中虚拟对象的特征的调节可以响应于物理运动的表示(例如,声音命令)来进行。
人可以利用其感觉中的任一者来感测CGR对象和/或与CGR对象交互,包括视觉、听觉、触觉、味觉和嗅觉。例如,人可以感测音频对象和/或与音频对象交互,该音频对象创建3D或空间音频环境,该3D或空间音频环境提供3D空间中点音频源的感知。又如,音频对象可以使能音频透明度,该音频透明度在有或者没有计算机生成的音频的情况下选择性地引入来自物理环境的环境声音。在某些CGR环境中,人可以感测和/或只与音频对象交互。在一些具体实施中,图像数据与本文所述CGR环境内与成像处理技术一起使用的物理环境105(例如,RGB、深度等)的图像像素配准。
CGR的示例包括虚拟现实和混合现实。虚拟现实(VR)环境是指被设计成对于一个或多个感觉完全基于计算机生成的感官输入的模拟环境。VR环境包括人可以感测和/或与之交互的虚拟对象。例如,树木、建筑物和代表人的化身的计算机生成的图像是虚拟对象的示例。人可以通过在计算机生成的环境内人的存在的模拟、和/或通过在计算机生成的环境内人的物理移动的一个子组的模拟来感测和/或与VR环境中的虚拟对象交互。
与被设计成完全基于计算机生成的感官输入的VR环境相比,混合现实(MR)环境是指被设计成除了包括计算机生成的感官输入(例如,虚拟对象)之外还引入来自物理环境的感官输入或其表示的模拟环境。在虚拟连续体上,混合现实环境是完全物理环境作为一端和虚拟现实环境作为另一端之间的任何状况,但不包括这两端。
在一些MR环境中,计算机生成的感官输入可以对来自物理环境的感官输入的变化进行响应。另外,用于呈现MR环境的一些电子系统可以跟踪相对于物理环境的位置和/或取向,以使虚拟对象能够与真实对象(即,来自物理环境的物理物品或其表示)交互。例如,系统可以导致移动使得虚拟树木相对于物理地面看起来是静止的。
混合现实的示例包括增强现实和增强虚拟。增强现实(AR)环境是指其中一个或多个虚拟对象叠加在物理环境或其表示之上的模拟环境。例如,用于呈现AR环境的电子系统可具有透明或半透明显示器,人可以透过该显示器直接查看物理环境。该系统可以被配置为在透明或半透明显示器上呈现虚拟对象,使得人利用该系统感知叠加在物理环境之上的虚拟对象。另选地,系统可以具有不透明显示器和一个或多个成像传感器,该成像传感器捕获物理环境的图像或视频,这些图像或视频是物理环境的表示。系统将图像或视频与虚拟对象组合,并在不透明显示器上呈现组合物。人利用系统经由物理环境的图像或视频而间接地查看物理环境,并且感知叠加在物理环境之上的虚拟对象。如本文所用,在不透明显示器上显示的物理环境的视频被称为“透传视频”,意味着系统使用一个或多个图像传感器捕获物理环境的图像,并且在不透明显示器上呈现AR环境时使用那些图像。进一步另选地,系统可以具有投影系统,该投影系统将虚拟对象投射到物理环境中,例如作为全息图或者在物理表面上,使得人利用该系统感知叠加在物理环境之上的虚拟对象。
增强现实环境也是指其中物理环境的表示被计算机生成的感官信息进行转换的模拟环境。例如,在提供透传视频中,系统可以对一个或多个传感器图像进行转换以施加与成像传感器所捕获的视角不同的选择视角(例如,视点)。又如,物理环境的表示可以通过图形地修改(例如,放大)其部分而进行转换,使得经修改部分可以是原始捕获图像的代表性的而非真实性版本。再如,物理环境的表示可以通过以图形方式消除其部分或将其部分进行模糊处理而进行转换。
增强虚拟(AV)环境是指虚拟或计算机生成环境结合了来自实体环境的一项或多项感官输入的模拟环境。感官输入可以是物理环境的一个或多个特性的表示。例如,AV公园可以具有虚拟树木和虚拟建筑物,但人的脸部是从对物理人拍摄的图像逼真再现的。又如,虚拟对象可以采用一个或多个成像传感器所成像的物理物品的形状或颜色。再如,虚拟对象可以采用符合太阳在物理环境中的定位的阴影。
有许多不同类型的电子系统使人能够感测和/或与各种CGR环境交互。示例包括头戴式系统、基于投影的系统、平视显示器(HUD)、集成有显示能力的车辆挡风玻璃、集成有显示能力的窗户、被形成为被设计用于放置在人眼睛上的透镜的显示器(例如,类似于隐形眼镜)、耳机/听筒、扬声器阵列、输入系统(例如,具有或没有触觉反馈的可穿戴或手持控制器)、智能电话、平板电脑、和台式/膝上型计算机。头戴式系统可以具有一个或多个扬声器和集成的不透明显示器。另选地,头戴式系统可以被配置为接受外部不透明显示器(例如,智能电话)。头戴式系统可以结合用于捕获物理环境的图像或视频的一个或多个成像传感器、和/或用于捕获物理环境的音频的一个或多个麦克风。头戴式系统可以具有透明或半透明显示器,而不是不透明显示器。透明或半透明显示器可以具有媒介,代表图像的光通过该媒介被引导到人的眼睛。显示器可以利用数字光投影、OLED、LED、uLED、硅基液晶、激光扫描光源或这些技术的任意组合。媒介可以是光学波导、全息图媒介、光学组合器、光学反射器、或它们的任意组合。在一个具体实施中,透明或半透明显示器可被配置为选择性地变得不透明。基于投影的系统可以采用将图形图像投影到人的视网膜上的视网膜投影技术。投影系统也可以被配置为将虚拟对象投影到物理环境中,例如作为全息图或在物理表面上。
示例性环境1100还包括图像整合单元1120(例如,图2的图像整合单元242和/或图3的图像整合单元342),该图像整合单元被配置有指令,该指令能够由处理器执行以获得图像数据(例如,光强度数据、深度数据等)并使用本文所公开的一种或多种技术来整合(例如,融合)这些图像数据。例如,图像整合单元1120从图像源1110(例如,光强度相机1112和深度相机1114)接收深度图像数据1115和强度图像数据1113,并且对该数据进行整合并生成图像整合数据1122。图像整合数据1122可包括发送至哈希化和网格化算法的密集点云数据1124(例如,对象周围的多个图像帧的不完美深度图和相机姿态)。例如,图像集成单元1122将来自光强度相机的RGB图像与来自深度相机(例如,飞行时间传感器)的稀疏深度图和其他物理环境信息源融合,以输出信息的密集深度点云。
示例性环境1100还包括哈希算法单元1130(例如,图2的哈希算法单元244,和/或图3的哈希算法单元344),该哈希算法单元被配置有指令,该指令能够由处理器执行以使用本文所公开的一种或多种技术基于深度数据执行生成哈希表,该哈希表存储体素的3D位置和表示到物理环境的表面(例如,到最接近的表面)的距离的带符号距离值。例如,哈希算法单元1130可从图像数据确定分辨率的层级,并针对所确定分辨率的每个级别生成哈希表。哈希算法单元1130获得图像整合数据1122以使用本文参考图7和图8所公开的一种或多种哈希技术生成哈希数据1132,对于图11中的示例性茶壶而言,该哈希数据为多分辨率哈希数据结构1134。
示例性环境1100还包括网格算法单元1140(例如,图2的网格算法单元246,和/或图3的网格算法单元346),该网格算法单元被配置有指令,该指令能够由处理器执行以使用本文所公开的一种或多种技术来执行网格化算法(例如,双步进立方体网格化算法、泊松网格化算法、四面体网格化算法等)并且生成房间(例如,物理环境105)和/或房间内的对象(例如,对象125、桌子135等)的网格表示。网格算法单元1140从哈希算法单元1130获得哈希数据1132并执行网格化算法以生成网格数据1142。例如,可使用步进立方体网格化算法技术来生成示例性茶壶网格1144的网格数据1142,该算法技术识别连接与每个哈希表中的体素相关联的点的线,并且进行插值以识别沿着与表面对应的那些线的顶点。本文参考图8公开了这种网格化技术。
本文阐述了许多具体细节以提供对要求保护的主题的全面理解。然而,本领域的技术人员将理解,可以在没有这些具体细节的情况下实践要求保护的主题。在其他实例中,没有详细地介绍普通技术人员已知的方法、设备或系统,以便不使要求保护的主题晦涩难懂。
除非另外特别说明,否则应当理解,在整个说明书中,利用诸如“处理”、“计算”、“计算出”、“确定”和“识别”等术语的论述是指计算设备的动作或过程,诸如一个或多个计算机或类似的电子计算设备,其操纵或转换表示为计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内的物理电子量或磁量的数据。
本文论述的一个或多个系统不限于任何特定的硬件架构或配置。计算设备可以包括部件的提供以一个或多个输入为条件的结果的任何合适的布置。合适的计算设备包括基于多用途微处理器的计算机系统,其访问存储的软件,该软件将计算系统从通用计算设备编程或配置为实现本发明主题的一种或多种具体实施的专用计算设备。可以使用任何合适的编程、脚本或其他类型的语言或语言的组合来在用于编程或配置计算设备的软件中实现本文包含的教导内容。
本文所公开的方法的具体实施可以在这样的计算设备的操作中执行。上述示例中呈现的框的顺序可以变化,例如,可以将框重新排序、组合和/或分成子块。某些框或过程可以并行执行。
本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。本文包括的标题、列表和编号仅是为了便于解释而并非旨在为限制性的。
还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一节点可以被称为第二节点,并且类似地,第二节点可以被称为第一节点,其改变描述的含义,只要所有出现的“第一节点”被一致地重命名并且所有出现的“第二节点”被一致地重命名。第一节点和第二节点都是节点,但它们不是同一个节点。
本文中所使用的术语仅仅是为了描述特定具体实施并非旨在对权利要求进行限制。如在本具体实施的描述和所附权利要求中所使用的那样,单数形式的“一个”和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。
如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。类似地,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”被解释为表示“在确定所述先决条件为真时”或“响应于确定”或“根据确定”所述先决条件为真或“当检测到所述先决条件为真时”或“响应于检测到”所述先决条件为真,具体取决于上下文。
本发明的前述描述和概述应被理解为在每个方面都是例示性和示例性的,而非限制性的,并且本文所公开的本发明的范围不仅由例示性具体实施的详细描述来确定,而是根据专利法允许的全部广度。应当理解,本文所示和所述的具体实施仅是对本发明原理的说明,并且本领域的技术人员可以在不脱离本发明的范围和实质的情况下实现各种修改。

Claims (20)

1.一种方法,所述方法包括:
在具有处理器的电子设备处:
使用传感器获得物理环境的深度数据,所述物理环境包括表面;
基于所述深度数据生成第一哈希表,所述第一哈希表存储具有第一分辨率的第一组体素的三维3D位置和表示到所述物理环境的所述表面的距离的带符号距离值;
基于所述深度数据生成第二哈希表,所述第二哈希表存储具有第二分辨率的第二组体素的3D位置和表示到所述物理环境的所述表面的距离的带符号距离值,所述第二分辨率不同于所述第一分辨率;以及
基于所述第一哈希表和所述第二哈希表生成表示所述表面的网格,所述网格是通过沿着连接所述第一组体素的第一体素与所述第二组体素的第二体素的线来定位所述网格的顶点而生成的。
2.根据权利要求1所述的方法,所述方法还包括:确定是将3D位置表示为具有所述第一分辨率的体素还是具有所述第二分辨率的体素。
3.根据权利要求1所述的方法,所述方法还包括:基于确定所述深度数据中的噪声来确定是将3D位置表示为具有所述第一分辨率的体素还是具有所述第二分辨率的体素。
4.根据权利要求1所述的方法,所述方法还包括:基于最接近体素的表面距所述深度数据的来源的距离来确定是将3D位置表示为具有所述第一分辨率的体素还是具有所述第二分辨率的体素。
5.根据权利要求1所述的方法,所述方法还包括:基于针对最接近体素的表面所识别的语义标记来确定是将3D位置表示为具有所述第一分辨率的体素还是具有所述第二分辨率的体素。
6.根据权利要求1所述的方法,其中所述第一组体素的体素具有第一尺寸,并且所述第二组体素的体素具有第二尺寸,其中所述第一尺寸大于所述第二尺寸。
7.根据权利要求1所述的方法,所述方法还包括:
基于所述深度数据生成第三哈希表,所述第三哈希表存储具有第三分辨率的第三组体素的3D位置和表示到所述物理环境的所述表面的距离的带符号距离值,所述第三分辨率不同于所述第一分辨率和所述第二分辨率,其中所述网格是进一步基于所述第三哈希表而生成的。
8.根据权利要求1所述的方法,其中所述第一哈希表和所述第二哈希表使用所述3D位置作为键来生成存储体素信息的存储器地址。
9.根据权利要求1所述的方法,其中所述第一哈希表和所述第二哈希表包括存储带符号距离值的存储器地址。
10.根据权利要求1所述的方法,其中所述带符号距离值包括截断式带符号距离场TSDF值,所述TSDF值表示每个体素距与所述深度数据对应的所述物理环境的所述表面中的最接近表面的体素距离。
11.根据权利要求1所述的方法,其中生成所述网格包括:
生成连接与所述第一哈希表和所述第二哈希表两者中的体素相关联的点的线;以及
沿着所述线进行插值以识别与所述表面对应的所述网格的顶点。
12.根据权利要求1所述的方法,其中所述深度数据是使用一个或多个深度相机而获得的。
13.根据权利要求1所述的方法,其中所述深度数据包括来自视点的像素深度值和传感器位置。
14.一种设备,所述设备包括:
非暂态计算机可读存储介质;和
一个或多个处理器,所述一个或多个处理器耦接至所述非暂态计算机可读存储介质,其中所述非暂态计算机可读存储介质包括程序指令,所述程序指令在所述一个或多个处理器上执行时,使所述系统执行以下操作:
使用传感器获得物理环境的深度数据,所述物理环境包括表面;
基于所述深度数据生成第一哈希表,所述第一哈希表存储具有第一分辨率的第一组体素的三维3D位置和表示到所述物理环境的所述表面的距离的带符号距离值;
基于所述深度数据生成第二哈希表,所述第二哈希表存储具有第二分辨率的第二组体素的3D位置和表示到所述物理环境的所述表面的距离的带符号距离值,所述第二分辨率不同于所述第一分辨率;以及
基于所述第一哈希表和所述第二哈希表生成表示所述表面的网格,所述网格是通过沿着连接所述第一组体素的第一体素与所述第二组体素的第二体素的线来定位所述网格的顶点而生成的。
15.根据权利要求14所述的设备,所述操作还包括:基于最接近体素的表面距所述深度数据的来源的距离来确定是将3D位置表示为具有所述第一分辨率的体素还是具有所述第二分辨率的体素。
16.根据权利要求14所述的设备,所述操作还包括:
基于所述深度数据生成第三哈希表,所述第三哈希表存储具有第三分辨率的第三组体素的3D位置和表示到所述物理环境的所述表面的距离的带符号距离值,所述第三分辨率不同于所述第一分辨率和所述第二分辨率,其中所述网格是进一步基于所述第三哈希表而生成的。
17.根据权利要求14所述的设备,所述操作还包括:基于针对最接近体素的表面所识别的语义标记来确定是将3D位置表示为具有所述第一分辨率的体素还是具有所述第二分辨率的体素。
18.根据权利要求14所述的设备,其中所述第一哈希表和所述第二哈希表使用所述3D位置作为键来生成存储体素信息的存储器地址。
19.根据权利要求14所述的设备,其中所述第一哈希表和所述第二哈希表包括存储带符号距离值的存储器地址,其中所述带符号距离值包括截断式带符号距离场TSDF值,所述TSDF值表示每个体素距与所述深度数据对应的所述物理环境的所述表面中的最接近表面的体素距离。
20.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储在计算机上计算机可执行的程序指令以执行以下操作:
使用传感器获得物理环境的深度数据,所述物理环境包括表面;
基于所述深度数据生成第一哈希表,所述第一哈希表存储具有第一分辨率的第一组体素的三维3D位置和表示到所述物理环境的所述表面的距离的带符号距离值;
基于所述深度数据生成第二哈希表,所述第二哈希表存储具有第二分辨率的第二组体素的3D位置和表示到所述物理环境的所述表面的距离的带符号距离值,所述第二分辨率不同于所述第一分辨率;以及
基于所述第一哈希表和所述第二哈希表生成表示所述表面的网格,所述网格是通过沿着连接所述第一组体素的第一体素与所述第二组体素的第二体素的线来定位所述网格的顶点而生成的。
CN202110056511.5A 2020-01-17 2021-01-15 多分辨率体素网格化 Pending CN113139992A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062962481P 2020-01-17 2020-01-17
US62/962,481 2020-01-17
US17/147,559 2021-01-13
US17/147,559 US11328481B2 (en) 2020-01-17 2021-01-13 Multi-resolution voxel meshing

Publications (1)

Publication Number Publication Date
CN113139992A true CN113139992A (zh) 2021-07-20

Family

ID=76811238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110056511.5A Pending CN113139992A (zh) 2020-01-17 2021-01-15 多分辨率体素网格化

Country Status (1)

Country Link
CN (1) CN113139992A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113744410A (zh) * 2021-09-13 2021-12-03 浙江商汤科技开发有限公司 网格生成方法、装置、电子设备及计算机可读存储介质
WO2023035548A1 (zh) * 2021-09-09 2023-03-16 上海商汤智能科技有限公司 目标环境的信息管理方法及相关增强现实的显示方法、电子设备、存储介质、计算机程序和计算机程序产品
CN118570375A (zh) * 2024-05-20 2024-08-30 清华大学 元光场跨尺度智能重建方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020186216A1 (en) * 2001-06-11 2002-12-12 Baumberg Adam Michael 3D computer modelling apparatus
CN105378796A (zh) * 2013-06-12 2016-03-02 微软技术许可有限责任公司 可伸缩体积3d重构
US20160364907A1 (en) * 2015-06-10 2016-12-15 Michael John Schoenberg Selective surface mesh regeneration for 3-dimensional renderings
CN108961390A (zh) * 2018-06-08 2018-12-07 华中科技大学 基于深度图的实时三维重建方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020186216A1 (en) * 2001-06-11 2002-12-12 Baumberg Adam Michael 3D computer modelling apparatus
CN105378796A (zh) * 2013-06-12 2016-03-02 微软技术许可有限责任公司 可伸缩体积3d重构
US20160364907A1 (en) * 2015-06-10 2016-12-15 Michael John Schoenberg Selective surface mesh regeneration for 3-dimensional renderings
CN108961390A (zh) * 2018-06-08 2018-12-07 华中科技大学 基于深度图的实时三维重建方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
OLAF KÄHLER等: "Hierarchical Voxel Block Hashing for Efficient Integration of Depth Images", 《IEEE ROBOTICS AND AUTOMATION LETTERS》, 29 January 2016 (2016-01-29), pages 192 - 197, XP011597970, DOI: 10.1109/LRA.2015.2512958 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023035548A1 (zh) * 2021-09-09 2023-03-16 上海商汤智能科技有限公司 目标环境的信息管理方法及相关增强现实的显示方法、电子设备、存储介质、计算机程序和计算机程序产品
CN113744410A (zh) * 2021-09-13 2021-12-03 浙江商汤科技开发有限公司 网格生成方法、装置、电子设备及计算机可读存储介质
CN118570375A (zh) * 2024-05-20 2024-08-30 清华大学 元光场跨尺度智能重建方法及装置

Similar Documents

Publication Publication Date Title
US11928779B2 (en) Multi-resolution voxel meshing
US11288857B2 (en) Neural rerendering from 3D models
US20210279967A1 (en) Object centric scanning
CN111243093B (zh) 三维人脸网格的生成方法、装置、设备及存储介质
CN113315878B (zh) 单程对象扫描
CN110633617B (zh) 使用语义分割的平面检测
CN110888567A (zh) 三维内容中基于位置的虚拟元件模态
CN113139992A (zh) 多分辨率体素网格化
US11763479B2 (en) Automatic measurements based on object classification
EP3533218B1 (en) Simulating depth of field
US9754398B1 (en) Animation curve reduction for mobile application user interface objects
CN112306228B (zh) 计算机生成渲染环境的视觉搜索细化
US11640692B1 (en) Excluding objects during 3D model generation
CN110866966A (zh) 利用与环境相匹配的逼真表面属性渲染虚拟对象
CN117557714A (zh) 三维重建方法、电子设备及可读存储介质
US20240112394A1 (en) AI Methods for Transforming a Text Prompt into an Immersive Volumetric Photo or Video
CN111161398A (zh) 一种图像生成方法、装置、设备及存储介质
US20230140170A1 (en) System and method for depth and scene reconstruction for augmented reality or extended reality devices
KR102390797B1 (ko) 3d 의미론적 메시로부터의 객체 관계 추정
CN113678173A (zh) 用于虚拟对象的基于图绘的放置的方法和设备
US12002165B1 (en) Light probe placement for displaying objects in 3D environments on electronic devices
US12002132B1 (en) Rendering using analytic signed distance fields
US11915349B1 (en) Extrusion technique for curve rendering
KR102696670B1 (ko) 인스턴스 검출 및 일반적인 장면 이해를 이용한 객체 검출
US20230290078A1 (en) Communication sessions using object information

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