原文链接:https://arxiv.org/pdf/2304.10406.pdf
1. 引言
激光雷达的新视图合成未得到充分探索。由于激光雷达通常只提供场景的部分视图,该视图还会因为激光雷达的传感器特点遭到破坏,因此充满挑战。
本文首先将激光雷达点云转化为360度的距离伪图像,其每个像素表示激光雷达与光束终点的距离。然后,使用网络编码3D信息,并预测像素的属性:距离、强度和射线丢弃率。此外,传统的NeRF仅关注单个像素,而忽视其局部信息,会导致几何建模较差(由其是低纹理区域和大规模场景)。本文提出结构正则化来保留局部结构细节,使NeRF产生更精确的估计。
由于目前的自动驾驶数据集多为单激光雷达,其中的物体视角变化有限,更适合场景级别的合成。场景级别的合成在图像新视图合成中很常见,且与物体级别的合成有区别。本文建立了一个数据集NeRF-MVL,是以物体为中心的多视图激光雷达数据集。
3. 新激光雷达视图合成
问题定义:新激光雷达视图合成的目标是根据给定的视图观测,渲染物体或场景的新视图。即给定集合 D = { ( P i , G i ) } \mathcal{D}=\{(P_i,G_i)\} D={(Pi,Gi)}其中 P i P_i Pi为激光雷达姿态, G i G_i Gi为相应的观测点云,目标是确定渲染函数 f f f,以生成任意新姿态 P ′ P' P′下的点云,即 G ′ = f D ( P ′ ) G'=f_\mathcal{D}(P') G′=fD(P′)。
3.1 激光雷达模型和距离表达
由于基于图像的NeRF使用光度损失,不适用激光雷达点云,因此本文将激光雷达点云转换为距离表达。对垂直方向上含
H
H
H个激光器的激光雷达,其水平方向有
W
W
W次发射,返回属性(距离
d
d
d与强度
i
i
i)组成了
H
×
W
H\times W
H×W的伪图像。具体来说,对伪图像内的2D坐标
(
h
,
w
)
(h,w)
(h,w),对应激光雷达射线的方向角满足
(
α
β
)
=
(
∣
f
u
p
∣
−
f
v
h
H
−
2
w
−
W
W
π
)
(1)
\left(\begin{matrix}\alpha \\ \beta\end{matrix}\right)=\left(\begin{matrix}|f_{up}|-f_v\frac{h}{H}\\-\frac{2w-W}{W}\pi \end{matrix}\right)\tag{1}
(αβ)=(∣fup∣−fvHh−W2w−Wπ)(1)
其中
f
v
=
∣
f
d
o
w
n
∣
+
∣
f
u
p
∣
f_v=|f_{down}|+|f_{up}|
fv=∣fdown∣+∣fup∣为激光雷达的垂直视角范围。对激光雷达坐标系中的3D点
(
x
,
y
,
z
)
(x,y,z)
(x,y,z),可以按下式投影到伪图像上:
(
h
w
)
=
(
(
1
−
arcsin
(
z
,
d
)
+
∣
f
d
o
w
n
∣
f
v
)
H
(
1
2
−
arctan
(
y
,
x
)
2
π
)
W
)
(2)
\left(\begin{matrix}h\\ w\end{matrix}\right)=\left(\begin{matrix}(1-\frac{\arcsin(z,d)+|f_{down}|}{f_v})H\\(\frac{1}{2}-\frac{\arctan(y,x)}{2\pi})W\end{matrix}\right)\tag{2}
(hw)=((1−fvarcsin(z,d)+∣fdown∣)H(21−2πarctan(y,x))W)(2)
若有多个点落入同一像素,则仅保留距离最小的点。没有点的像素设置为0。
3.2 LiDAR-NeRF网络
表达激光雷达传感器的隐式场:由于激光雷达为主动传感器,与相机的被动特点不同,所以需要专门的传感器特性建模。由于距离图像的一个像素对应一条光束,可根据式(1)计算方向角
θ
\theta
θ。期望深度可由样本的积分得到:
D
^
(
r
)
=
∑
i
=
1
N
T
i
(
1
−
exp
(
−
σ
i
δ
i
)
)
t
i
\hat{D}(r)=\sum_{i=1}^NT_i(1-\exp(-\sigma_i\delta_i))t_i
D^(r)=i=1∑NTi(1−exp(−σiδi))ti
其中
T
i
=
exp
(
−
∑
j
=
1
i
−
1
σ
j
δ
j
)
T_i=\exp(-\sum_{j=1}^{i-1}\sigma_j\delta_j)
Ti=exp(−∑j=1i−1σjδj)表示沿射线
r
r
r到样本点
t
i
t_i
ti的积累透射率,
δ
i
=
t
i
+
1
−
t
i
\delta_i=t_{i+1}-t_i
δi=ti+1−ti为样本点的距离。注意射线起点
o
o
o与实现方向均表达在全局坐标系下。、
本文设计的网络如上图(b)所示。网络估计场景几何、激光雷达强度与射线丢弃掩膜。其中后两者可视为激光雷达的颜色特征,均依赖与视图。使用第一个MLP预测密度
σ
\sigma
σ和距离
d
d
d,第二个MLP预测两通道特征图:强度
i
i
i和射线丢弃概率
p
p
p。与图像颜色渲染相同,可沿射线积分得到沿射线
r
r
r的强度和丢弃概率:
I
^
(
r
)
=
∑
i
=
1
N
T
i
(
1
−
exp
(
−
σ
i
δ
i
)
)
i
i
,
P
^
(
r
)
=
∑
i
=
1
N
T
i
(
1
−
exp
(
−
σ
i
δ
i
)
)
p
i
\hat{I}(r)=\sum_{i=1}^NT_i(1-\exp(-\sigma_i\delta_i))i_i,\hat{P}(r)=\sum_{i=1}^NT_i(1-\exp(-\sigma_i\delta_i))p_i
I^(r)=i=1∑NTi(1−exp(−σiδi))ii,P^(r)=i=1∑NTi(1−exp(−σiδi))pi
总的来说,可将本文的LiDAR-NeRF记为函数
(
σ
,
i
,
p
)
=
f
(
x
,
θ
)
(\sigma,i,p)=f(x,\theta)
(σ,i,p)=f(x,θ)。
结构正则化:由于NeRF不关注局部信息,会导致较差的几何预测。因此,本文设计正则化方法指导NeRF学习几何。使用流行的几何正则化损失平滑邻域点的方法在大型场景中效果不佳,因为这种情况下相邻点的差异可能很大。使用梯度损失从真值学习结构信息,但因为纹理丰富的区域在梯度损失中占主要部分,作为正则化方法仍然不够充分。因此,本文基于梯度损失,设计新的结构正则化方法,仅在低纹理区域(如地面)正则化。结构损失定义为:
L
r
e
g
=
∥
G
^
M
(
R
)
−
G
M
(
R
)
∥
1
\mathcal{L}_{reg}=\|\hat{G}_M(R)-G_M(R)\|_1
Lreg=∥G^M(R)−GM(R)∥1
其中
R
R
R为局部patch训练射线的集合,
G
M
(
⋅
)
G_M(\cdot)
GM(⋅)为带低纹理区域掩膜的梯度操作。
损失函数:本文有4个训练目标,损失函数如下:
L
=
L
d
i
s
t
a
n
c
e
+
λ
1
L
i
n
t
e
n
s
i
t
y
(
r
)
+
λ
2
L
r
a
y
d
r
o
p
(
r
)
+
λ
3
L
r
e
g
\mathcal{L}=\mathcal{L}_{distance}+\lambda_1\mathcal{L}_{intensity}(r)+\lambda_2\mathcal{L}_{raydrop}(r)+\lambda_3\mathcal{L}_{reg}
L=Ldistance+λ1Lintensity(r)+λ2Lraydrop(r)+λ3Lreg
其中
L
d
i
s
t
a
n
c
e
=
∑
r
∈
R
∥
D
^
(
r
)
−
D
(
r
)
∥
1
\mathcal{L}_{distance}=\sum_{r\in R}\|\hat{D}(r)-D(r)\|_1
Ldistance=∑r∈R∥D^(r)−D(r)∥1,
L
i
n
t
e
n
s
i
t
y
(
r
)
=
∑
∥
I
^
(
r
)
−
I
(
r
)
∥
2
2
\mathcal{L}_{intensity}(r)=\sum\|\hat{I}(r)-I(r)\|^2_2
Lintensity(r)=∑∥I^(r)−I(r)∥22,
L
r
a
y
d
r
o
p
(
r
)
=
∑
∥
P
^
(
r
)
−
P
(
r
)
∥
2
2
\mathcal{L}_{raydrop}(r)=\sum\|\hat{P}(r)-P(r)\|^2_2
Lraydrop(r)=∑∥P^(r)−P(r)∥22。
4. 实验
指标:本文为深度估计评估均方根误差(RMSE)和阈值精度(
δ
1
,
δ
2
,
δ
3
\delta_1,\delta_2,\delta_3
δ1,δ2,δ3)。使用SSIM评估结构质量。此外,还将渲染的激光雷达距离图像转换为点云,并计算与真实点云之间的差异:
C-D
(
G
1
,
G
2
)
=
1
∣
G
1
∣
∑
x
∈
G
1
min
y
∈
G
2
∥
x
−
y
∥
2
2
+
1
∣
G
2
∣
∑
y
∈
G
2
min
x
∈
G
1
∥
y
−
x
∥
2
2
\text{C-D}(G_1,G_2)=\frac{1}{|G_1|}\sum_{x\in G_1}\min_{y\in G_2}\|x-y\|^2_2+\frac{1}{|G_2|}\sum_{y\in G_2}\min_{x\in G_1}\|y-x\|^2_2
C-D(G1,G2)=∣G1∣1x∈G1∑y∈G2min∥x−y∥22+∣G2∣1y∈G2∑x∈G1min∥y−x∥22
还计算了两个点云之间的F-Score,阈值为5cm。对于强度图像,计算平均绝对误差(MAE)评估。
4.1 场景级别的合成
(使用KITTI-360数据集)与激光雷达模拟器方法(基准方案)相比,LiDAR-NeRF在所有指标上都能达到更优,且生成的点云更加接近真实。因为基准方案显式重建3D网孔,会导致过度估计物体表面;此外它们忽视了激光雷达点的某些特征:如光束穿透玻璃或光束丢失。
4.2 物体级别的合成
本文的方法能大幅超过基准方案,且能生成高质量的点云。
4.3 消融研究
与原始的NeRF相比,使用instant-NGP(iNGP)作为基本结构性能更优。使用不同的正则化损失进行实验,发现本文的正则化方法最优。
附录
A. 局限性与未来工作
LiDAR-NeRF需要进行逐场景优化,且适合静态场景。未来可结合图像与激光雷达进行渲染。
B. 更多细节
B.2 LiDAR-NeRF的细节
LiDAR-NeRF(带iNGP):首先通过从场景的中心坐标系减去全局坐标系的原点来中心化激光雷达点云,然后缩放点云使感兴趣区位于单位立方体中,进行位置编码。对于结构正则化,本文使用逐patch的训练,并屏蔽掉梯度小于0.1的部分。
C. 额外的实验结果
C.2 LiDAR-NeRF的更多消融实验
contract
(
x
)
=
{
x
/
r
若
∥
x
∥
≤
r
(
1
+
b
−
b
r
∥
x
∥
)
x
∥
x
∥
否则
(3)
\text{contract}(x)=\left\{\begin{matrix}x/r&若\|x\|\leq r\\(1+b-\frac{br}{\|x\|})\frac{x}{\|x\|}&否则\end{matrix}\right.\tag{3}
contract(x)={x/r(1+b−∥x∥br)∥x∥x若∥x∥≤r否则(3)
LiDAR-NeRF(带NeRF):对其使用不同的训练策略。考虑缩放(缩放点云使RoI位于单位立方体中)与收缩(公式(3),其中
r
r
r与
b
b
b为决定映射界限的半径参数),实验表明在没有缩放或收缩时,网络基本不能学习;使用两者之一的性能相近。此外,使用学习率余弦调度能略微提高性能。
C.3 基准方案的更多消融实验
为激光雷达模拟器方法加入射线丢弃MLP估计能提高性能,但需要相当大的努力(处理数据集和调参)。
D. 更多的定性可视化
场景编辑:LiDAR-NeRF可以调节激光雷达的内参,以处理不同的激光雷达设备产生的不同的激光雷达模式。将NeRF-MVL数据集的物体融合到KITTI-360数据集中,能产生比复制粘贴数据增广更真实的结果。