来源:https://www.elecfans.com/d/2152448.html
导读
本文是VCC马雪奇同学对论文 SHINE-Mapping: Large-Scale 3D Mapping Using Sparse Hierarchical Implicit Neural Representations[1] 的解读,该工作来自德国波恩大学摄影测量与机器人实验室,已被机器人领域的顶级会议ICRA 2023收录。
项目主页:
https://github.com/PRBonn/SHINE_mapping
该工作提出了一种基于隐式表达的大规模三维建图的方法,它利用分层八叉树的结构来存储可学习的局部特征,并通过共享的浅层MLP将局部特征转换为有符号距离场。相比于以往的工作,该方法能够以更小的资源消耗,重建出更准确、更完整的大规模场景。
本文解决了使用3D激光雷达测量实现具有隐式表示的大规模3D重建的问题。
我们通过基于八叉树的层次结构来学习和存储隐含特征,该结构是稀疏的和可扩展的。
这些特征可以通过浅层神经网络转化为有符号的距离值。
我们利用二进制交叉熵损失来优化局部特征,并将三维测量作为监督。
基于我们的隐式表示,我们设计了一个带有正则化的增量映射系统来解决持续学习中的灾难性遗忘问题。
我们的实验表明,我们的3D重建比目前最先进的3D映射方法更准确、更完整、更高效。
技术贡献
本工作主要贡献如下:
- 提出了一种新的基于稀疏分层八叉树的大规模场景表示方法。该方法增量式地将学习到的局部特征向量存储在八叉树中,并通过一个浅层的神经网络将学习到的局部特征转换为有符号距离值;
- 设计了一种二值交叉损失函数,能够实现快速且鲁棒的局部特征值优化;
- 通过对特征进行正则化,有效避免了灾难性遗忘问题对大规模场景建图的影响。
方法介绍
- SHINE-Mapping以激光雷达点云作为输入,利用稀疏分层八叉树以及全局共享的MLP解码器来隐式地表示连续空间中的有符号距离场。
- 该方法以直接测量的点云作为监督,通过在线优化MLP解码器输出的有符号距离值来捕捉局部场景中的几何信息。
- 最后,该方法利用Marching Cubes[10]将有符号距离场转换为显式的网格信息。
隐式神经地图表示
- 首先,SHINE-Mapping将三维空间中的局部特征存储在稀疏分层八叉树中,实现了隐式地图表示,有效地减少了建图过程中的内存开销。
- 其次,该方法将八叉树中存储的多层局部特征进行求和,并送入到MLP中进行解码,从而得到三维空间中的有符号距离场。
- 此外,为了能够快速查找局部空间中的特征信息,SHINE-Mapping将八叉树中每一层特征信息存储在一个哈希表中,并通过独特的莫顿码,将多维数据映射到一维。
- 这样的设计使得该方法能够轻松地扩展地图,而无需事先分配内存,从而有效地提升了建图速度。
- 图1为SHINE-Mapping重建隐式表示地图的整体过程。
- 为了便于理解,上图中仅描述了两个层级的特征,绿色和蓝色。
- 该方法的流程为:对于任意的查询点首先从最底层(第0层)开始,对的空间位置进行三线性插值,从而得到第0层的特征。
- 然后以此类推,获得第1层的特征信息。
- 接着,该方法通过对多层的特征信息进行求和,得到合并后的特征,并将合并后的特征送入到MLP中,从而获得位置点的有符号距离值。
- 由于整个过程是可微的,因此可以通过反向传播的方式对特征向量和MLP参数进行联合优化。
训练与损失函数
L b a t c h = L b c e + L E i k o n a l = L b c e + λ e ( ∣ ∣ ∂ f θ ( x i ) ∂ x i ∣ ∣ − 1 ) 2 L_{batch}=L_{bce}+L_{Eikonal}= L_{bce}+\lambda_{e}(||\frac{\partial f_{\theta}(x_{i})}{\partial x_{i}}||-1)^{2} Lbatch=Lbce+LEikonal=Lbce+λe(∣∣∂xi∂fθ(xi)∣∣−1)2
- 因为LiDAR能够提供准确的三维空间测距结果,因此该方法直接以LiDAR作为真值,以二值交叉熵作为损失函数来对特征向量和MLP参数进行监督训练。
- 除此之外,由于该方法的网络输出是有符号距离值,为了能够得到准确的输出结果,该方法在损失函数中添加了一个Eikonal项[11]: 其中 $ 数学s$ 为网络模型的输出,为网络模型的参数,为网络模型的输入。 得到的损失函数如下:其中,为超参数,其表示的权重。
增量式重建
- 在增量式重建工程中,由于每次重建只聚焦于当前的局部区域,忽略了之前重建区域的信息,往往会导致最终的全局重建性能下降。
- 为了避免这种问题对重建结果的影响SHINE-Mapping在损失函数中添加了正则化项用于约束参数更新:其中,为权重,表示先前训练数据的Loss对于参数变化的敏感性。为当前的参数值,为之前数据训练收敛之后的参数值。
- 增量式重建的损失函数如下:其中,为超参数,表示的权重。
docker 集装箱化安装
- 安装windows版本Docker Desktop
- 安装wsl2
按照以下网址进行:
https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package
进行到步骤五(步骤六就是安装其他linux镜像) - docker build --tag shine .
安装Image
(ps:如果安装磁盘空间不足https://blog.csdn.net/qq_34687856/article/details/132513368)
。。。未完待续