Advertisement

【论文笔记】3D LiDAR Mapping in Dynamic Environments Using a 4D Implicit Neural Representation

阅读量:

原文链接:https://www.ipb.uni-bonn.de/wp-content/papercite-data/pdf/zhong2024cvpr.pdf

1. 引言

为实现户外场景的精确3D重建,需要考虑运动物体的动态。过去的SLAM方法可使用多种策略处理动态:(1)使用预处理步骤从输入过滤动态,这要求对场景的语义解释;(2)在地图表达中建模占用,可通过回顾性地移除空空间的测量隐式移除动态;(3)将其纳入状态估计,对来自动态和静态部分的测量进行建模。本文方法使用(3),在地图表达中直接建模动态,得到时空占用地图表达。

隐式神经表达启发了本文对动态环境的4D重建。本文将时间相关的截断有符号距离函数(TSDF)编码为隐式神经场景表达。本文以连续激光雷达点云为输入,在每帧生成TSDF,用于提取网孔。背景的TSDF在整个序列中不变,容易从4D信号中提取出来,作为静态地图,可用于从原始点云中分割动态物体。与显式的体素表达相比,神经隐式表达可保留丰富的地图细节。

3. 本文的方法

本文的输入为点云序列\mathcal S_{1:N}=(\mathcal S_1,\cdots,\mathcal S_N)及其相应的全局姿态T_t\in\mathbb R^{4\times4},t\in[1,N]。点云\mathcal S_t=\{s^1_t,\cdots,s^{M_t}_t\}中的点s_t^i\in\mathbb R^3。本文的目标是重建4D TSDF并保留静态3D地图。

3.1 地图表达

时间表达 :TSDF为点p\in\mathbb R^3的标量函数,其值为点到最近表面的距离(若距离大于阈值,则将距离设置为阈值)。当点位于空空间或测量表面前时,符号为正;当点位于占用空间或测量表面后时,符号为负。

在动态场景中,点的有符号距离值可能会随时间变化。但对于静态物体的点而言,其有符号距离值不变。本文的思想是使用K个全局共享的基函数\phi_k:\mathbb R\rightarrow \mathbb R表达各点的时变SDF。则t时刻,点p的TSDF为
F(p,t)=\sum_{k=1}^Kw_p^k\phi_k(t)

其中w_p^k\in\mathbb R为可优化的位置相关系数。本文将基函数初始化为离散余弦变换(DCT)基函数:
\phi_k(t)=\cos(\frac\pi{2N}(2t+1)(k-1))

\phi_1(t)=1为时不变的。优化过程中,本文将\phi_1(t)固定(将w_p^1视为点p的静态SDF值),通过反向传播优化其余基函数。则F(p,t)可分解为动态基函数\phi_2(t),\cdots,\phi_K(t)的加权和与静态背景值w_p^1

空间表达 :为得到精确的场景重建,本文使用多分辨率稀疏体素网格存储空间几何信息。

首先积累多帧激光雷达点云,生成层次体素网格,并使用空间哈希表进行快速检索非空体素。

类似Instant-NGP,本文将体素角点特征向量f\in\mathbb R^D保存,得到多尺度体素角点特征图F^l,然后三线性插值得到点p的特征
f_p=\sum_{l=1}^L\text{interpolate}(p,F^l)

然后,使用全局共享的MLP将f_p解码为权重w_p=(w_p^1,\cdots,w_p^K)。由于各步骤均可微,可优化F^l、MLP解码器和基函数的值。
在这里插入图片描述

3.2 目标函数

本文沿输入帧\mathcal S_t的射线采样(q,t),有q_s^i=o_t+\lambda(s^i_t-o_t),其中o_t为激光雷达原点,s^i_t为激光雷达点。设置截断阈值\tau后,将射线分为近表面和空空间两个区域:
\mathcal T_\text{surf}^i=\{q_s^i|\lambda\in(1-\bar\tau,1+\bar\tau)\}\\ \mathcal T_\text{free}^i=\{q_s^i|\lambda\in(0,1-\bar\tau)\}

其中\bar\tau=\tau(\|s_t^i-o_t\|)^{-1}。本文从两区域分别均匀采样M_sM_f个点,并整合所有帧的样本,得到两个集合\mathcal D_\text{surf}\mathcal D_\text{free}

近表面损失 :本文期望静态物体的近表面点的有符号距离不随时间变化,但其真值是不可知的。因此,只能利用其符号和其上界d_\text{surf}(沿射线方向到表面的距离)来约束:
L_\text{surf}(\hat d,d_\text{surf})=\begin{cases}|\hat d|&若\hat d\cdot d_\text{surf}d^2_\text{surf}\\ 0&否则\end{cases}

其中\hat d=F(q,t),q\in\mathcal D_\text{surf}。该损失仅惩罚错误符号或超出上界的距离。对于表面上的点,该损失退化为L1损失。

此外,使用有符号距离函数的自然属性约束\mathcal D_\text{surf}内样本梯度向量的长度:
L_\text{eikonal}(p,t)=(\|\frac{\partial F(p,t)}{\partial p}-1\|)^2

计算时,使用数值梯度替代自动梯度计算,以通过手动添加扰动增强鲁棒性:
\nabla_xF(p,t)=\frac{F(p+\epsilon_x,t)-F(p-\epsilon_x,t)}{2\epsilon}

其中\nabla_xF(p,t)为梯度\frac{\partial F(p,t)}{\partial p}x分量,\epsilon_x=(\epsilon,0,0)^T为扰动。为促进收敛,初始时,使用大的\epsilon,然后逐步减小之。

空空间损失 :本文使用L1损失约束空空间点p\in\mathcal D_\text{free}的有符号距离(期望的SDF为\tau
L_\text{free}(\hat d)=|\hat d-\tau|

基于距传感器原点的距离阈值r_\text{dense},将\mathcal D_\text{free}进一步分为密集子集\mathcal D_\text{sparse}和稀疏子集\mathcal D_\text{dense}。对于p\in\mathcal D_\text{dense},本文采样\mathcal S_t中最近的激光雷达点n_p=\argmin_{q\in\mathcal S_t}\|p-q\|_2,令\mathcal D_\text{certain}=\{p\in\mathcal D_\text{dense}|\|p-n_p\|>\tau\}为空空间的确定点,然后使用静态有符号距离监督(期望的静态SDF为\tau):
L_\text{certain}(p)=|w_p^1-\tau|

总的损失为
\begin{aligned}L_\text{total}&=\frac1{|\mathcal D_\text{surf}|}\sum_{(p,t)\in \mathcal D_\text{surf}}L_\text{surf}(\hat d,d_\text{surf})+\lambda_eL_\text{eikonal}(p,t)\\ &+\frac{\lambda_f}{|\mathcal D_\text{free}|}\sum_{(p,t)\in \mathcal D_\text{free}}L_\text{free}(\hat d)\\ &+\frac{\lambda_c}{|\mathcal D_\text{certain}|}\sum_{(p,t)\in \mathcal D_\text{certain}}L_\text{certain}(p)\end{aligned}

可根据本文的4D地图表达进行动态物体分割。若p属于静态背景,应有w_p^1=0。因此本文设置阈值d_\text{static},当点的w_p^1>d_\text{static}时将其视为动态的。

4. 实验

4.1 静态建图质量

与传统TSDF融合方法、数据驱动的方法、和神经表达建图方法比较,本文方法有较好的性能。

4.2 动态物体分割

本文方法能实现最优的动静态分割。注意本文方法无需标注,且无需预处理或后处理。

5. 结论

局限性 :目前,本文方法需要依赖SLAM估计的传感器姿态,且只能离线应用。

全部评论 (0)

还没有任何评论哟~