Bootstrap

【论文笔记】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. 本文的方法

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

3.1 地图表达

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

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

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

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

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

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

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

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

3.2 目标函数

本文沿输入帧 S t \mathcal S_t St的射线采样 ( q , t ) (q,t) (q,t),有 q s i = o t + λ ( s t i − o t ) q_s^i=o_t+\lambda(s^i_t-o_t) qsi=ot+λ(stiot),其中 o t o_t ot为激光雷达原点, s t i s^i_t sti为激光雷达点。设置截断阈值 τ \tau τ后,将射线分为近表面和空空间两个区域:
T surf i = { q s i ∣ λ ∈ ( 1 − τ ˉ , 1 + τ ˉ ) } T free i = { q s i ∣ λ ∈ ( 0 , 1 − τ ˉ ) } \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)\} Tsurfi={qsiλ(1τˉ,1+τˉ)}Tfreei={qsiλ(0,1τˉ)}

其中 τ ˉ = τ ( ∥ s t i − o t ∥ ) − 1 \bar\tau=\tau(\|s_t^i-o_t\|)^{-1} τˉ=τ(stiot)1。本文从两区域分别均匀采样 M s M_s Ms M f M_f Mf个点,并整合所有帧的样本,得到两个集合 D surf \mathcal D_\text{surf} Dsurf D free \mathcal D_\text{free} Dfree

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

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

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

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

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

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

基于距传感器原点的距离阈值 r dense r_\text{dense} rdense,将 D free \mathcal D_\text{free} Dfree进一步分为密集子集 D sparse \mathcal D_\text{sparse} Dsparse和稀疏子集 D dense \mathcal D_\text{dense} Ddense。对于 p ∈ D dense p\in\mathcal D_\text{dense} pDdense,本文采样 S t \mathcal S_t St中最近的激光雷达点 n p = arg min ⁡ q ∈ S t ∥ p − q ∥ 2 n_p=\argmin_{q\in\mathcal S_t}\|p-q\|_2 np=argminqStpq2,令 D certain = { p ∈ D dense ∣ ∥ p − n p ∥ > τ } \mathcal D_\text{certain}=\{p\in\mathcal D_\text{dense}|\|p-n_p\|>\tau\} Dcertain={pDdense∣∥pnp>τ}为空空间的确定点,然后使用静态有符号距离监督(期望的静态SDF为 τ \tau τ):
L certain ( p ) = ∣ w p 1 − τ ∣ L_\text{certain}(p)=|w_p^1-\tau| Lcertain(p)=wp1τ

总的损失为
L total = 1 ∣ D surf ∣ ∑ ( p , t ) ∈ D surf L surf ( d ^ , d surf ) + λ e L eikonal ( p , t ) + λ f ∣ D free ∣ ∑ ( p , t ) ∈ D free L free ( d ^ ) + λ c ∣ D certain ∣ ∑ ( p , t ) ∈ D certain L certain ( p ) \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} Ltotal=Dsurf1(p,t)DsurfLsurf(d^,dsurf)+λeLeikonal(p,t)+Dfreeλf(p,t)DfreeLfree(d^)+Dcertainλc(p,t)DcertainLcertain(p)

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

4. 实验

4.1 静态建图质量

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

4.2 动态物体分割

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

5. 结论

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

;