论文阅读:基于网格的高精度实时三维重建,ScalableFusion: High-resolution Mesh-based Real-time 3D Reconstruction

图1:三个苹果的网格结果(从图2中放大)。由于不依赖过多的重叠的surfels来实现一个紧密的表面模型,网格(mesh)重建可以更精确、更有效地描述表面。

译者按:

本文为了充分利用RGB-D传感器中比depth分辨率更高的color信息,用mesh做reconstruction,更详细地,其借鉴了ElasticFusion中的权重方法,并且利用了GPU、CPU内存的协同来实现较大规模的重建,可以对surfel-based,TSDF-based和mesh-based的方法获得一定的了解。

摘要:

Dense 3D reconstructions generate globally consisent data of the environment suitable for many robot applications. Current RGB-D based reconstructions, however, only maintain the color resolution equal to the depth resolution of the used sensor. This firmly limits the precision and realism of the generated reconstructions. In this paper we present a real-time approach for creating and maintaining a surface reconstruction in as high as possible geometrical fidelity with full sensor resolution for its colorization (or surface texture). A multi-scale memory management process and a Level of Detail scheme enable equally detailed reconstructions to be generated at small scales, such as objects, as well as large scales, such as rooms or buildings. We showcase the benefit of this novel pipeline with a PrimeSense RGB-D camera as well as combining the depth channel of this camera with a high resolution global shutter camera. Further experiments show that our memory management approach allows us to scale up to larger domains that are not achievable with current state-of-the-art methods.

       三维稠密重建可以为机器人的许多应用生成全局一致的环境数据。然而,当前基于RGB-D的重建工作只能保持和深度信息相同的颜色分辨率,这制约了重建结果的精度和现实感。本文展现了一种可以实时实现高几何精度和完整着色分辨率的表面重建方法。借由一个多尺度的内存管理过程和一个多层次的细节级别方案,不管是小尺度的房间、建筑物还是小尺度的物体,其可以生成同样详细的重构。我们利用PrimeSense RGB-D摄像头,组合利用这款相机的深度通道和高分辨率的全局性快门的相机,展示了这一新颖的流程。进一步的实验表明,我们的内存管理方法允许其扩展到更大的规模,这是目前最先进的方法无法实现的。

现状和贡献:

现状:

主要流派:KinectFusion(TSDF-based),ElasticFusion(Surfel-based)

存在问题:认为颜色和深度一一对应,用平均的方式处理多视角的几何和颜色信息,对内存的管理不好。

贡献:

本文方法基于mesh,其的优势:

1 相比于TSDF,mesh的密度不必均匀分布

2 对不连接的面元,不同于进行平均的方法,可以选择适合整个表面区域的关键帧

本文的另一个贡献是

3 设计的框架可以将GPU的几何移到CPU中,便于较大规模的重建。

图2:详细系统的层次展示。重建的新增部分(右)处于正在处理的内存中,并以完整的细节显示,而较老的部分(左)被下载到系统内存中,并以较低的细节替换显示。图1所示的苹果是从这个重建(红色圆圈)中取出的,用来展示细节的动态范围。

 

方法:

首先,利用点云的有序性直接生成三角网格,对网格的边缘进行缝合,随后在分块(patch)上附着纹理。为了实时更新,选择关键帧代表分块的纹理。通过曝光时间感知和晕动校正处理捕捉到的图像,可以最大限度地减少拼接前分块之间可能的偏差(由于没有耗时的全局优化步骤)。

A 几何细化更新

深度传感器的噪声特性使其在积累多次测量数据的情况下,在较大的距离内不可能获得精确的几何形状,只有将传感器更靠近表面才能得到高质量的结果。所以无论在远程采集了多少样本,要允许近距离测量覆盖掉远程测量。

ElasticFusion中使用权重来处理这一问题。我们的方法从这些权重中获得灵感,但当传感器接近一个表面时,我们只在有利于重建的情况下才这样做,而不是生成新的几何图形。例如,当接近一个平面时,ElasticFusion会生成新的surfels来容纳额外的颜色信息,而我们的方法直接更新纹理和现有的网格。为此,需要存储每个采样的额外的纹理值。对于每个纹理像素(texel),包含的值有:

µk:测量值与实际表面的平均偏差。用来表明网格表面偏离传感器测量的程度。

σk:估计的噪声水平,其随着测量的增加而降低。值越小,新测量对几何形状的影响就越小。此外,σs, k定义了估计的传感器投射到表面的点p上的噪声水平 .

σm,k:到步骤k估计的最小噪声水平。这个假设量子化是唯一的限制因素。σm,s,k指的是传感器的投影值。

估计的噪声水平和最小噪声水平更新方式如下:

 

其中:

 

注意σ‘k+1小于σk’和σ’s, k,这意味着每此量测都可以进一步提高结果的假设。该系统保证了随着迭代数k的增长,σk逼近但始终高于σm,k。结果值σ’s; 和σk’ k + 1是用来更新µ:

B 扩展更新

一旦传感器从一个新的位置生成一个新的帧,先前建图的表面元素就被用来渲染当前传感器位置的深度图。将人工深度图与传感器当前感知到的深度值进行比较。接近于地图值的深度值会更新到已经存在的表面。如果捕捉到的表面离相机很近,它就会被加入到当前的重建中。这些操作的阈值以及σs,k取决于深度、像素位置和传感器本身。

C. 建立网格

在识别出捕获深度图的新增部分后,应用针孔模型投影深度像素,生成三维点。这些点根据彼此之间的距离和估计的法向量被分割成更小的块。从有组织的点云得到的邻域信息可以直接完成此操作,以及在每个相邻的3个点之间生成三角形。在此过程中,要小心确保没有在相邻深度值低于第IIIB节中提到的阈值的情况下创建三角形。这种分割和网格划分过程的输出示例如图3所示

图3:应用于单帧的三角形创建过程。(a)将点云粗分割成分块,(b)分块网格后形成规则的三角形图案。

 

D. 缝合

由于在二维图像平面中存在邻域信息,在单个深度图上生成网格可以很快完成。然而,一旦将新的传感器数据集成到现有的重建中,情况就会发生变化。为了解决这个问题,所有在当前帧之前捕获的可见三角形都将被搜索为开口边。这是指三角形不与另一条边相交的每一条边。打开的边被投射到当前帧的深度映射的像素空间。在这个过程之后,在新的三角形集合中为一个重建的三角形寻找一个潜在的邻居就是在当前的图像平面中进行简单的查找。这一扩展重构过程如图4所示。

图4:将新增数据链接到已有的几何图形:白色轮廓的开边(a)连接到粗分割(c),结果(d)显示分割模式中新旧几何图形之间有明显的连线。

 

结果:

实施:

现代桌面硬件区分了与GPU对应的内存和与CPU对应的系统内存。如果不通过PCI-E总线执行昂贵的数据传输,就不能跨内存空间进行访问。因此,我们的数据结构被设计成可以在CPU和GPU之间镜像的信息,并且只有在必要的时候才会同步。我们引入一个线程系统来同时处理不完全相互依赖的任务。例如,当一个帧的几何图形更新网格时,不需要的数据可以同时从GPU传输到系统内存(下载)。里程测量同样不明确地依赖于最新的几何信息。因此,当最后一帧仍在整合时,可以对新帧进行位姿估计。此系统的示例时间线如图5所示。

图5:所采用的线程系统。黑色箭头表示数据流。彩色条纹表示实际的处理

 

实验:

传统的三维重建流程比较方法是将重建点云与地面真值网格进行比较,或者将测程法与地面真值轨迹进行比较。这些基准主要反映里程计的质量,而不是感知质量。为了展示光度质量,而不是跟踪质量,我们捕捉选定的场景与Xtion Live Pro和一个刚性连接的IDS全球快门相机,提供1600×1200像素的分辨率相结合。在从Xtion传感器记录30Hz的深度和颜色的同时,我们还从IDS传感器捕获60Hz的高分辨率数据。我们评估了纹理算法相对于ElasticFusion输出的质量。

A 几何对比

ElasticFusion使用的加权方案与我们基于标准差的方法相似。从图6的图像可以看出,结果并没有太大的差异。然而,我们可以看到,在我们的重建中,ElasticFusion表面的密度比三角形的密度要低。此外,这些surfels的目的是重叠,形成一个光滑的表面。缺点是重叠的surfels经常创建表面的冗余(重复),见图7。

图7: ElasticFusion和ScalableFusion重建。(a)显示较新的surfel(蓝色)部分如何层叠在较老的surfel(红色)表面上。另一方面,我们的重构(b)保持了光滑的非冗余曲面

 

直接作用于表面的方法对跟踪误差很敏感。如果无法将捕获的曲面识别为重构曲面,则将建出一个副本。体积(Volumetric)方法,如KinectFusion,是处理这些情况的最佳方法,因为它们更新了重建体积,使它们能够获得正确的表面模型。我们通过我们的噪声相关阈值方案减轻了这个问题,实现比传统的基于表面的方法更一致的映射。尽管如此,当深度和跟踪错误超过给定的阈值时,这些工件有时仍然会出现。

B 纹理对比

从图8可以看出,我们的方法比ElasticFusion更好的利用了RGB传感器,而ElasticFusion和其他方法一样,每个几何基元只有一种颜色。如图10所示,考虑到只有900万像素的空间,整个重建只能存储相当于900万像素图像的颜色细节。此外,平均方案的颜色,加上跟踪不准确和不考虑光度传感器的特点,导致冲刷和斑点重建。我们的纹理方法克服了许多不足:纹理密度不再与顶点密度耦合,而是从最优的摄像机帧中提取,以分批推进重建。这使得高分辨率相机的使用,如图8c所示。我们还考虑曝光时间和光晕,以减少沿线段边缘的接缝。

图8:大多数方法对颜色观测进行平均,导致褪色和斑点的结果(a).我们基于纹理的方法((b), (c))采样颜色拼接,因此,保留更清晰的细节。这使得使用高分辨率相机(c)成为可能。

C,内存消耗对比

我们在两个大型场景中进行测试。基于TSDF和surfel方法实现重构大型场景时存在困难。第一个实验是对一个由多个房间组成的大型办公空间进行实时连续重构(图9),数据被下载到CPU内存中,在GPU上只保留当前观察到的区域进行即时处理。这可以从图9b中重建右下角的不同LOD看出。驻留在GPU上的顶点数平均是恒定的,仅随重构帧的复杂性而波动(图10)。与ElasticFusion相比,surfel计数的增长与捕获场景的总体大小相关。

第二个实验是两个系统的极端压力测试。我们重复地重建一个房间的数据集,同时通过5米的偏移来人为地创建一个大的环境。在这个测试中,ElasticFusion在积累了900万surfels之后,会在2200帧停止,因为GPU内存的容量已经达到。另一方面,我们的系统继续无缝地在对相同内存的持续需求下运行。在我们的系统(Intel Core i7-7700K, Geforce GTX 1070)上,我们实现了30hz的恒定帧率来完成纹理和几何图形细化任务,同时仍然允许几何图形在5hz下进行扩展、网格划分和缝合。这与整体重建大小无关。

图9:大型办公空间的局部重构。(a)ElasticFusion 渲染所有面元,(b)我们的系统对此环境进行了更高效的渲染
图10:当前驻留在GPU上的顶点数。上图:图9中办公室的重建。底部: 带有位姿漂移的重复相同房间的数据集。ScalableFusion保持在100万个活动顶点以下,而ElasticFusion则积累与环境大小相关的数据。

结论

在这篇文章中,我们介绍了ScalableFusion,一种新的重建方法,直接网格化三角形和顶点,大大提高了三维重建的质量。虽然三角网格的使用在数据管理方面增加了开销,但其好处远远超过了增加计算工作量带来的负面影响。这特别适用于以非常小的对象为特征的真实环境。基于网格的方法以出色的细节描述了这些元素。的整个网格划分过程摄像机帧的像素空间消除了昂贵的邻域搜索。该方法充分利用了相机分辨率的优势,优于彩色几何元。我们还提供了一个复杂的内存管理方案,以支持使用细节级别的实时操作。一个详细的比较表明ScalableFusion为机器人应用创造了更好的重构。它创建了更清晰的特征(图8),克服了生成双平面的问题(图7),保持了彩色相机的全分辨率(图8)。并克服了现有方法的内存限制(图2)。10)

实际经验表明,目前基于ScalableFusion的里程计方法是不够的。我们目前正在考虑更精细的方法,如ORB SLAM和直接稀疏里程计来改善这个问题。其他未来的工作将包括简化和镶嵌几何图形的任务,这是在机器人应用程序中不断变化的环境中应用该系统所必需的

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值