可伸缩体积3d重构的制作方法_5

文档序号:9620969阅读:来源:国知局
活动区的体 素映射到工作集的索引。
[0122] 图11是二维的活动区和工作集的示意图。活动区1100、1102、1104、1106被示为 网格。对于活动区1104,工作集由包含点的网格单元来描绘。对于活动区1106,工作集也 由包含点的网格单元来描绘。活动区1100和1102被示为与世界坐标系相关。这些活动区 与不同相机位置相关联;每一相机视锥体是使用图4中的三角形来描绘的。图11中的活动 区网格的每一单元与世界中的一根体素相对应。
[0123] 活动区和工作集可被用来标识可在并行处理单元存储器与主机计算设备处的存 储器之间流传输的3D模型的索引。索引可从GPU存储器流传输出来到达主机,或反之。例 如,在图11中,活动区1100与活动区1104相对应且表示旧相机位置的状况。活动区1102 与活动区1106相对应且表示新相机位置的状况。考虑旧活动区104,空白单元表示可被流 传输出来到主机的索引(或子树),因为它们在工作集之外。考虑新活动区1106,要被流 传输出来的子树由网格1108中填充了点的单元来表示,且要被流传输出来的子树由网格 1110中填充了点的单元来表示。
[0124] 图12是在并行处理单元处的存储器与主机计算设备处的存储器之间流传输3D模 型数据的方法的流程图。例如从图1的实时跟踪器114接收1200相机姿态。使用接收到 的相机姿态在以上给出的活动区的定义以及3D模型的分辨率的知识(作为规则网格或作 为分层结构)的基础上计算1202或更新活动区。将活动区映射1204到工作集。使用活动 区和工作集映射的知识,选择1206要被流传输出来的工作集索引并选择1208要将数据流 传输进来的工作集索引。对于流传输出来,这些可以是自先前的活动区以来已变为不在新 活动区中的工作集索引。对于流传输进来,这些可以是在现在存在于新活动区中而不在先 前活动区中的工作集索引。
[0125] 在用于流传输出来的工作集索引的选择1206期间,压缩准则也可被使用。如果分 层结构被使用(参见判决点1210),则所选工作集索引的子树可被转换1216成深度优先存 储并被流传输到主机。如果没有使用分层结构,则所选体素值被流传输出来1212。
[0126] 在流传输进来期间,如果分层结构被使用(参见判决点1210),则子树从主机被访 问并被恢复1218成分层数据结构。如果分层结构未被使用,则该过程从主机将体素值流传 输1214进来。
[0127] 在参考图13描述的示例中,从GPU到主机的流传输使用对分层结构的两个广度优 先遍历。给定一组工作集索引以流传输出来到主机上,该过程将这些复制1300到GPU队列 中并执行树遍历1302以确定每一子树需要多少空间(使用并行缩减来计算总和)。该过程 执行并行前缀扫描以计算1304可存储每一子树的线性缓冲区中的偏移。作出树遍历1306 以将每一体素写入线性缓冲区,从而用始自每一子树的开始的字节偏移来替换poollndex。 这一操作将森林(树列表的形式)从广度优先存储转换成深度优先存储。线性缓冲区和偏 移的列表可被复制1308到主机且每一子树被存储1310在字典中。从主机到GPU的流传输 可以是类似的。
[0128] 在一些示例中,通过使用多个图像处理器或其他并行处理单元,分层体方案被用 来允许更大的扫描和观看距离。分层体方案可以在3D模型被存储为规则网格或分层结构 的情况下使用。
[0129] 例如,图14示出三个6?1](6?1]〇、6?1]1、6?1]2),每一6?1]用来存储由本文描述的30 环境建模系统(或任何其他合适的3D环境建模系统)重构的3D模型或3D模型的一部分。 6卩1]0被用来表示世界空间31400,6?1]1被用来表示世界空间21402,且6?1]2被用来表示世 界空间11404。三角形1406表示相机视锥体。世界空间各自具有不同的物理尺寸。例如, 世界空间3可以大于世界空间2,而世界空间2可以大于世界空间1。各世界空间能以同一 物理位置为中心,使得世界空间3包含世界空间2,世界空间2包含世界空间1。在每一GPU 处使用的存储器可以相同。以此方式,GPU1捕捉粗比例表面几何形状,GPU1捕捉中间比例 表面几何形状,而GPU2捕捉细比例表面几何形状。
[0130] 图15是将深度图集成到分层体(如图14的分层体)的方法的流程图。接收1500 当前深度图并且计算1502当前相机姿态。分别在步骤1504、1506和1508将当前深度图集 成到体0、1和2中的每一者。如上所述的深度图集成过程可以根据3D模型是规则网格还 是分层结构来被使用。
[0131] 为根据3D模型渲染图像,光线投射过程(如本文描述的)可分开且并行地被应用 1510、1512、1514到每一体。光线投射结果随后被混合1516或聚集。在一些示例中,光线投 射结果可被反馈以供在相机姿态计算中使用。
[0132] 在使用分层体时,应用流传输是可能的。例如,接收1600相机姿态并如上所述更 新1602活动区。活动区被映射到每一体的工作集1604且这允许标识1606要从该体流传 输进来或出来的数据。对于每一体,流传输双向地独立且并行地发生1608。
[0133]图17是将深度图集成到分层体的另一方法的流程图。接收1700深度图并且计算 1702相关联的相机姿态。深度图被集成到最内体1704并且流传输1706被应用于最内体。 在流传输出来期间,该过程用来自较精细体的聚集数据填充1708较粗略体。
[0134] 在一示例中,一种用于构造现实世界环境的3D模型的装置,包括:
[0135] 输入接口,所述输入接口被安排成接收由移动环境捕捉设备捕捉到的现实世界环 境的深度图的流;
[0136] 至少一个并行处理单元,所述至少一个并行处理单元被安排成根据所述深度图来 计算包括表示所述现实世界环境中的各表面的值的3D模型;
[0137] 所述并行处理单元处的存储器,所述存储器被安排成将所述3D模型存储在包括 根层节点、多个中间层节点以及多个叶节点的分层结构中,所述节点中的每一个具有表示 所述现实世界环境的一部分的相关联的体素网格,所述体素网格在所述叶节点处比在所述 根节点处具有更精细的分辨率;
[0138] 所述并行处理单元被安排成在所述根节点和中间节点处计算并存储描述所述分 层结构的元数据,以及在所述叶节点处计算并存储表示各表面的所述值。
[0139] 例如,所述并行处理单元被安排成通过使用原子队列分配存储器块形成内部节点 和叶节点。
[0140] 例如,所述并行处理单元被安排成在考虑距3D模型所建模的表面的深度观测距 离的细化策略的基础上形成内部节点和叶节点。
[0141] 例如,所述装置具有至少部分地使用从以下中的任一者或多者选择的硬件逻辑来 实现的所述并行处理单元:现场可编程门阵列、程序专用集成电路、程序专用标准产品、片 上系统、复杂可编程逻辑器件、图形处理单元。
[0142] 作为替换或补充,本文所述的功能可至少部分地由一个或多个硬件逻辑组件来 执行。例如,但非限制,可被使用的硬件逻辑组件的说明性类型包括现场可编程门阵列 (FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上系统(S0C)、复杂 可编程逻辑器件(CPLD),图形处理单元(GPU)。
[0143] 图18示出示例性的基于计算的设备1800的各个组件,设备1800可以被实现为任 何形式的计算和/或电子设备,并在其中能实现上述3D建模技术的实施例。
[0144] 基于计算的设备1800包括一个或多个处理器1802,这些处理器可以是微处理器、 控制器或用于处理计算机可执行指令以控制设备操作以便执行3D重构的任何其他合适类 型的处理器。在一些示例中,例如在使用片上系统架构的示例中,处理器1802可以包括一 个或多个固定功能块(亦称加速器),这些块以硬件(而非软件或固件)来实现3D建模、渲 染或流传输方法的一部分。
[0145] 基于计算的设备1800还包括经由通信接口 1806与处理器1802进行通信的图形 处理系统1804,并包括被安排成以快速且高效的方式执行并行的、线程化的操作的一个或 多个图形处理单元1808。图形处理系统1804还包括被安排成启用自图形处理单元1808的 快速并行访问的存储器设备1810。在各示例中,存储器设备1810可存储3D模型,并且图形 处理单元1808可执行上述模型生成和光线投射运算。
[0146] 基于计算的设备1800还包括被安排成接收来自诸如移动环境捕捉设备(包括深 度相机)等一个或多个设备的输入以及可任选地接收来自一个或多个用户输入设备(例 如,游戏控制器、鼠标、和/或键盘)的输入的输入/输出接口 1812。输入/输出接口 1812 还可作为通信接口来操作,它被安排成与一个或多个通信网络(例如,因特网)进行通信。
[0147] 还提供了显示器接口 1814并且它被安排成向与该基于计算的设备集成在一起或 与该基于计算的设备进行通信的显示系统提供输出。显示系统可提供图形用户界面,或任 何合适类型的其他用户界面,但这不是必需的。
[0148] 可以使用可由基于计算的设备1800访问的任何计算机可读介质来提供计算机可 执行指令。计算机可读介质可以包括例如诸如存储器1816等计算机存储介质和通信介 质。诸如存储器1816等计算机存储介质包括以用于存储如计算机可读指令、数据结构、程 序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动 介质。计算机存储介质包括但不限于,RAM、ROM、EPROM、EEPR0M、闪存或其他存储器技术、 CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或 者可用于存储信息以供计算设备访问的任何其他非传输介质。相反,通信介质可以以诸如 载波或其他传输机构等已调制数据信号来体现计算机可读指令、数据结构、程序模块或者 其他数据。如本文所定义的,计算机存储介质不包括通信介质。因此,计算机存储介质不应 被解释为本质上是传播信号。传播信号可存在于计算机存储介质中,但是传播信号本身不 是计算机存储介质的示例。虽然在基于计算的设备1800中示
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1