0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于隐式表达的大规模三维建图的方法

3D视觉工坊 来源:3D视觉工坊 2023-06-27 11:01 次阅读

‍导读 本文是VCC马雪奇同学对论文 SHINE-Mapping: Large-Scale 3D Mapping Using Sparse Hierarchical Implicit Neural Representations[1] 的解读,该工作来自德国波恩大学摄影测量与机器人实验室,已被机器人领域的顶级会议ICRA 2023收录。 项目主页: https://github.com/PRBonn/SHINE_mapping 该工作提出了一种基于隐式表达的大规模三维建图的方法,它利用分层八叉树的结构来存储可学习的局部特征,并通过共享的浅层MLP将局部特征转换为有符号距离场。相比于以往的工作,该方法能够以更小的资源消耗,重建出更准确、更完整的大规模场景。 注:本文图片与视频均来自原论文与其项目主页。

I 引言 对移动机器人而言,在大规模的室外场景中进行定位和导航是一项常见的任务。因此,一个精确的三维环境地图变得尤为重要。重建的三维场景地图除了要足够精确,还应该尽可能地减少内存消耗。而目前的建图方法往往采用空间网格来表示三维地图[2][3][4],这种方法很难同时满足精确建图和减少内存的要求。 最近,基于隐式神经网络的表示方法在精确重建网格的同时,还能保持低内存消耗的要求。不过,这类方法通常应用于RGB-D数据构建的三维场景[5][6][7],在LiDAR数据方面应用的不多。此外,这类方法只适用于小型场景,很难应用于大规模的室外场景中。 本次导读论文从Takikawa等人[8] 的工作中得到启发,通过构建稀疏的分层隐式神经网络表示,完成了对大规模场景的增量式重建。该方法利用八叉树的稀疏数据结构来增量式地存储学习到的局部特征,并基于一个浅层的MLP将学习到的局部特征转换为有符号距离场。除此之外,该工作还设计了一个二值交叉熵损失函数,能够高效地实现局部特征优化。并且,该论文采用正则化的方法对特征更新进行约束,有效地缓解了在大规模场景建图过程中遇到的灾难性遗忘问题。实验结果表明: (1) 在密集点云采样区域,该方法的重建精度优于基于TSDF的方法[4][9] 以及基于体积渲染的隐式神经映射方法[7]; (2) 在稀疏点云采样区域,该方法的重建完整度优于非学习的方法[12]; (3) 相比于基于TSDF的方法,该方法重建的场景内存消耗更小。

II 技术贡献

本工作主要贡献如下:

提出了一种新的基于稀疏分层八叉树的大规模场景表示方法。该方法增量式地将学习到的局部特征向量存储在八叉树中,并通过一个浅层的神经网络将学习到的局部特征转换为有符号距离值;

设计了一种二值交叉损失函数,能够实现快速且鲁棒的局部特征值优化;

通过对特征进行正则化,有效避免了灾难性遗忘问题对大规模场景建图的影响。

III 方法介绍 SHINE-Mapping以激光雷达点云作为输入,利用稀疏分层八叉树以及全局共享的MLP解码器来隐式地表示连续空间中的有符号距离场。该方法以直接测量的点云作为监督,通过在线优化MLP解码器输出的有符号距离值来捕捉局部场景中的几何信息。最后,该方法利用Marching Cubes[10]将有符号距离场转换为显式的网格信息。 隐式神经地图表示 首先,SHINE-Mapping将三维空间中的局部特征存储在稀疏分层八叉树中,实现了隐式地图表示,有效地减少了建图过程中的内存开销。其次,该方法将八叉树中存储的多层局部特征进行求和,并送入到MLP中进行解码,从而得到三维空间中的有符号距离场。 此外,为了能够快速查找局部空间中的特征信息,SHINE-Mapping将八叉树中每一层特征信息存储在一个哈希表中,并通过独特的莫顿码,将多维数据映射到一维。这样的设计使得该方法能够轻松地扩展地图,而无需事先分配内存,从而有效地提升了建图速度。

9929d6e6-1476-11ee-962d-dac502259ad0.png

图1 SHINE-Mapping整体重建过程 图1为SHINE-Mapping重建隐式表示地图的整体过程。为了便于理解,上图中仅描述了两个层级的特征,绿色和蓝色。该方法的流程为:对于任意的查询点首先从最底层(第0层)开始,对的空间位置进行三线性插值,从而得到第0层的特征。然后以此类推,获得第1层的特征信息。接着,该方法通过对多层的特征信息进行求和,得到合并后的特征,并将合并后的特征送入到MLP中,从而获得位置点的有符号距离值。由于整个过程是可微的,因此可以通过反向传播的方式对特征向量和MLP参数进行联合优化。 训练与损失函数 因为LiDAR能够提供准确的三维空间测距结果,因此该方法直接以LiDAR作为真值,以二值交叉熵作为损失函数来对特征向量和MLP参数进行监督训练。除此之外,由于该方法的网络输出是有符号距离值,为了能够得到准确的输出结果,该方法在损失函数中添加了一个Eikonal项[11]: 其中为网络模型的输出,为网络模型的参数,为网络模型的输入。 得到的损失函数如下:其中,为超参数,其表示的权重。 增量式重建 在增量式重建工程中,由于每次重建只聚焦于当前的局部区域,忽略了之前重建区域的信息,往往会导致最终的全局重建性能下降。为了避免这种问题对重建结果的影响SHINE-Mapping在损失函数中添加了正则化项用于约束参数更新:其中,为权重,表示先前训练数据的Loss对于参数变化的敏感性。为当前的参数值,为之前数据训练收敛之后的参数值。增量式重建的损失函数如下:其中,为超参数,表示的权重。 IV 部分结果展示

接下来我们首先以虚拟场景数据集MaiCity dataset为例,展示SHINE-Mapping与之前方法 Voxblox、VDBFusion、Puma[12] 以及添加可微渲染 (Differentiable Rendering: DR) 的SHINE-Mapping的重建结果对比。第一行展示的是重建后的网格结果,其中,黑色线框部分为街道两旁的“树”;第二行展示的是重建结果的误差图,从蓝色到红色的颜色图表示从-5cm到5cm的有符号重建误差。

995d080e-1476-11ee-962d-dac502259ad0.png

图2 在MaiCity数据集上,不同方法的重建结果对比

表1为不同方法在MaiCity数据集上的重建质量评价结果。可以看出,SHINE-Mapping与先前的大规模室外场景建图方法相比,在完整性误差,准确性误差、Chamfer-L1误差、完整度、F-score上均表现 SOTA。

999d1994-1476-11ee-962d-dac502259ad0.png

表1 不同方法在MaiCity数据集上的重建质量对比

99bf1a76-1476-11ee-962d-dac502259ad0.gif

图3 在MaiCity数据集上,SHINE-Mapping增量式重建过程

接下来是SHINE-Mapping在真实场景数据集Newer College dataset上的重建结果。第一行展示的是不同方法重建的Newer College网格结果,黑色线框部分为“树”;第二行展示的是重建结果的误差图,从蓝色到红色的颜色图表示从-50cm到50cm的有符号重建误差。

9a0d1d48-1476-11ee-962d-dac502259ad0.png

图4 在Newer College数据集上,不同方法的重建结果对比

9a61cb18-1476-11ee-962d-dac502259ad0.gif

‍图5 在Newer College数据集上,SHINE-Mapping的重建结果

表2为不同方法在Newer College dataset上的重建质量评价结果。可以看到,在真实场景数据集上,相比于其他方法,SHINE-Mapping的重建质量也是最好的。

9b7eec42-1476-11ee-962d-dac502259ad0.png

表2 不同方法在Newer College数据集上的重建质量对比

下图描述了在MaiCity dataset与Newer College dataset两个数据集实验中,内存消耗与建图质量之间的关系,地图的分辨率从100cm到10cm。从对比结果可以看出,SHINE-Mapping方法可以使用更小的内存资源来重建出质量更高的室外地图。

9b9cdc0c-1476-11ee-962d-dac502259ad0.png

图6 不同方法在内存效率与重建误差上的表现

下图为SHINE-Mapping在KITTI dataset上的重建过程。可以看到,即使是大规模的实际复杂街道场景,该方法依然可以精确地重建出道路的真实样貌。

9be030ba-1476-11ee-962d-dac502259ad0.gif

图7 SHINE-Mapping在KITTI数据集上的重建过程

V 总结与展望 本次导读的论文提出了一种基于LiDAR的大规模三维场景建图方法。与基于TSDF的方法不同,SHINE-Mapping方法使用基于八叉树的隐式表示法,将学习到的隐式特征存储在哈希表中,大大缩短了处理时间。其次,该方法将学习到的特征通过一个MLP转换为有符号距离值,并通过Marching Cubes进行显式化网格重建。除此之外,该方法通过对损失函数进行调整,并添加相应的正则化,避免了增量式重建过程中遇到的灾难性遗忘问题。实验结果表明,该方法能够以较小的内存重建出更为准确和完整的三维地图。 VI 思考与讨论 Q: SHINE-Mapping方法将局部特征信息存放入八叉树中时,使用了其中的几层呢?又是如何实现快速查找对应的特征信息的呢? A: 如下图所示,假设八叉树为11层,SHINE-Mapping方法将最低的三层作为局部特征存放层,即第0,1,2层(分别对应图中的红色、绿色、蓝色方格)。为了能够加速建图速度,SHINE-Mapping将八叉树中第 0,1,2层的局部特征信息存储在哈希表中,并且每一层对应一个哈希表。当需要查询指定点的局部特征时,使用哈希表可以很快得到相应的特征信息。

9c7dfc1e-1476-11ee-962d-dac502259ad0.png

图8SHINE-Mapping对空间进行网格划分,并得到局部特征信息 Q: 在增量式重建过程中,是否可以使用预训练的MLP作为解码器来得到相应的有符号距离值? A: 是的,虽然本文提出的方法可以在训练过程中联合优化八叉树中的局部特征信息以及MLP中的参数,但是在实际增量式重建过程中,作者采用的是预训练的MLP来得到对应位置的有符号距离值,一方面这样可以加快重建的速度,另外一方面,在实验过程中,使用预训练的MLP可以得到更好的重建效果。 以下是开放性问题,欢迎读者朋友留言讨论: Q: SHINE-Mapping在增量式重建的过程中,实际上是增量式地更新空间中的局部特征信息,并在更新完整个地图之后,使用MLP将局部特征信息转换为有符号距离值,然后使用Marching Cubes来显式的构建网格。因此,如果想在建图的过程中,实时地查看重建的网格信息,则需要不断地调用MLP和Marching Cubes,这将会导致实时的计算效率非常低。那么应该如何改进这一方法,或者是否可以使用其他的网格构建方法,使得在快速建图过程中,能够实时地查看重建效果呢?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    206

    文章

    27041

    浏览量

    201417
  • 三维
    +关注

    关注

    1

    文章

    466

    浏览量

    28767
  • 函数
    +关注

    关注

    3

    文章

    3882

    浏览量

    61310

原文标题:基于稀疏分层隐式神经表示的大规模三维场景建图

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    三维的高级处理

    三维的高级处理1. 消处理 例.比较网前后的图形 z=peaks(50); subplot(2,1,1); mesh(z); t
    发表于 09-22 15:37

    三维曲线导入到三维图形控件中

    三维线条做了一个同心圆曲线,怎么才能把它导入到三维图形控件中呢?如图
    发表于 10-27 13:49

    labview三维曲面,三维成像的切片怎样弄,效果效果如下。

    三维数据的切片
    发表于 12-05 09:54

    什么让三维扫描数据栩栩如生

    三维模型数据5.真实拍摄的物体照片4、小结思看科技的HSCAN331可以在10分钟内扫描出该物体外形,相比传统的三维扫描仪,HSCAN手持三维
    发表于 08-02 10:18

    如何快速高效的完成汽车前盖板的三维检测?

    软件参数实时提高选定区域的扫描点间距,保证细节,同时也提高了效率。配合原始3D图纸通过3D比较精准快速获取偏差注释,数据保存直观方便。2.所需设备及型号 手持激光三维扫描仪HSCAN3313.
    发表于 08-11 14:16

    三维参数输入矩阵的含义

    三维参数图画一个三维图时,输入矩阵X,Y,Z都表示啥?
    发表于 10-07 17:39

    labview怎样画三维曲面

    用labview三维曲面图画一个曲面,横截面表达式为f=2.4*y*y*y*y-1.6*y*y+0.1*y+2.2
    发表于 12-15 18:42

    三维快速建模技术与三维扫描建模的应用

    的HANDYSCAN三维激光扫描仪采集它的三维点云信息,然后利用Vxelements软件对多站点云数据进行拼接、统一化和去燥,将处理后的点云数据导入Geomagic Studio软件,对其进行封装、孔洞填充、平滑等
    发表于 08-07 11:14

    广西扫描服务三维检测三维扫描仪

    、医疗、教育等行业都在广泛使用三维扫描技术。中科院广州电子的Creaform便携激光三维扫描仪扫描工件的三维数据,通过实物与理论二
    发表于 08-29 14:42

    MATLAB的基本知识之三维的高级处理

    ) %垂帘网线图TItle('裁剪后的网')colormap([0 0 1]) %蓝色网线[img][/img] 注意裁剪时矩阵的对应关系,即大小一定要相同.3. 三维旋转体的绘制为了一些专业用户可以更
    发表于 05-04 08:30

    三维设计应用案例

    CAD是目前工业制造产品设计的重要软件之一,广泛应用于机械、建筑等领域。而常用的CAD软件,也就是所谓的三维制图软件,较二的图纸和二的绘图软件,三维CAD软件能够更加直观、准确地反
    发表于 07-03 07:06

    Handyscan三维扫描仪对户外大型灯箱三维扫描解决方案

    的户外广告灯箱的生产图纸。客户原来是使用老式的拍照三维扫描仪,扫描前需要喷粉、贴点,但是扫描数据精度却差强人意,不仅外观粗糙、噪点多,且扫描速度慢,工作效率低。在扫描结束后,还需要再对喷的粉(显像剂
    发表于 07-15 10:52

    Handyscan三维扫描仪机械零部件三维扫描抄数服务

    `Handyscan三维扫描仪机械零部件三维扫描抄数服务 如何快速、批量的对零配件进行三维检测呢?今天小编就来给大家看看近期一个矿山重型起重机械公司的案例。该客户主要从事单梁起重机、双梁起重机、门
    发表于 07-21 16:52

    Handyscan汽车三维扫描服务尺寸检测的应用

    相关尺寸检测分析,检测如图3所示。借助我司推荐的便携激光三维扫描仪,客户后续可以直接在生产车间现场进行检测分析。特别是对有交付客户要求他们现场抽检产品时,工程师可以随时随地进行产品的扫描检测,并自动生成
    发表于 08-04 16:07

    Labview绘制三维曲面

    `现在有个项目我想优化一下,想要添加一个三维曲线图(火山),有没有在这方面有过研究的?不太会弄,每次画出来的都奇奇怪怪的,主要问题应该是数据不够,有人知道怎么将X-Z,Y-Z(如图)两条曲线拟合
    发表于 12-18 10:12