RoGS
- 摘要
- 简介
- RoGS
- 基于高斯面元的道路表面表示(Road Surface Representation Based on Guassian Surfel)
- 2D Gaussian Surfel:
- Road Surface Modeling:
- Why use 2D Gaussian Surfels?
- 基于轨迹的初始化(Trajectory-base Initialization)
- 优化(Optimization)
- 颜色和语义渲染(RGB Rendering and Semantic Rendering)
- 训练损失(loss)
- 参考文献
摘要
道路表面重建在自动驾驶中起着至关重要的作用,可用于车道感知和自动标注任务。近年来,基于网格的道路表面重建算法表现出了令人瞩目的重建效果。然而,这些基于网格的方法存在处理速度慢和渲染质量差的缺点。相比之下,3D 高斯点技术(3DGS)在渲染速度和质量方面表现出色。尽管 3DGS 采用显式高斯球来表示场景,但其无法直接表示场景的几何信息。为了解决这一限制,我们提出了一种基于二维高斯点(2DGS)的新型大规模道路表面重建方法,称为 RoGS。道路的几何形状通过二维高斯面元显式表示,每个面元存储颜色、语义和几何信息。与高斯球相比,高斯面元更贴近道路的物理现实。与以点云为基础初始化高斯球的传统方法不同,我们引入了一种基于轨迹的高斯面元初始化方法。得益于高斯面元的显式表示和良好的初始化,我们的方法显著提高了处理速度,同时改善了重建质量。
简介
本文提出了一种基于高斯点技术 (Gaussian Splatting) 的大规模道路表面重建方法 RoGS,通过高斯面元 (Gaussian Surfels) 实现高效且高质量的道路表面重建。具体而言,我们设计了一种更贴合道路表面物理特性的二维高斯表示。每个面元包含道路坐标、颜色、语义信息以及其大小和方向。此外,不同于其他利用点云或随机初始化的 3D 高斯方法,我们提出了一种基于轨迹的初始化方法。
在假设车辆轨迹与道路表面平行的先验条件下,我们通过以下步骤进行初始化:
- 使用轨迹范围初始化道路区域范围;
- 使用扩展后的轨迹点坐标初始化高斯面元坐标;
- 使用轨迹曲率初始化高斯面元方向。
这种初始化方法充分利用了车辆轨迹与道路表面之间的关系,更有助于后续的道路表面几何纹理优化。初始化后,我们利用观测到的 RGB 语义图来监督由二维高斯面元渲染的 RGB 图像,同时使用真实的激光雷达点云优化道路表面几何形状。最终,我们获得了具有颜色和语义信息的三维道路表面重建结果。
本文的贡献总结如下:
- 提出 RoGS:一种基于高斯点技术的大规模道路表面重建方法,其核心是二维高斯面元表示。该
示符合道路表面的物理特性,包含颜色、语义和几何信息。 - 提出基于轨迹的初始化方法:使得二维高斯道路表面更贴近物理现实,促进后续优化。
- 优异实验结果:在 KITTI 和 Nuscenes 数据集上,我们的方法实现了高效且高质量的道路表面重建。在不依赖激光雷达的情况下,与 RoMe 在 PSNR 和 mIoU 指标上表现相近,并在海拔误差指标上实现了 17.62% 的误差降低。更重要的是,我们的方法在速度上实现了 15.84 倍的提升!
RoGS
RoGS主要包含三个组建:基于高斯面元的道路表面表示、基于轨迹初始化、优化。
- 左侧展示了基于 2DGS 的道路表示。蓝色曲线表示轨迹。我们使用二维高斯面元来表示真实的道路表面,这些面元存储了位置、尺度、旋转、颜色、不透明度和语义信息。可优化的参数以蓝色标出
- 中间部分展示了基于轨迹的初始化方法。对于每个高斯面元,其高度(z 坐标)和旋转角度通过轨迹中的最近点进行初始化。
- 最后,通过渲染生成的颜色和语义使用真实数据进行监督。此外,为了进一步优化结果,还可以引入激光雷达点云对高度进行监督。标记为L*的部分表示可选的损失函数。
基于高斯面元的道路表面表示(Road Surface Representation Based on Guassian Surfel)
2D Gaussian Surfel:
在3DGS里,高斯球 (Gaussian Sphere) 用三维协方差矩阵
Σ
Σ
Σ和其中心坐标
p
p
p表示:
G
(
p
)
=
e
−
1
2
p
T
∑
−
1
p
G(p) = e^{- {\frac{1}{2}} p^{T} {\sum}^{-1}p }
G(p)=e−21pT∑−1p
三维协防差矩阵
∑
\sum
∑是由旋转矩阵
R
R
R和沿三个方向的尺度
s
=
(
s
x
,
s
y
,
s
z
)
T
s=(s_{x},s_{y},s_{z})^{T}
s=(sx,sy,sz)T决定的,为简化表示,尺度
s
s
s被表示为角对称矩阵
S
S
S,定义如下:
通过旋转矩阵R和尺度矩阵S,协防差矩阵
∑
\sum
∑表示为:
∑
=
R
S
R
T
\sum = RSR^{T}
∑=RSRT
这里,S定义了高斯球的基本形状,而 R将该形状旋转到三维空间中的正确方向。这种表示方法允许高斯球通过简单的矩阵运算在几何和空间上进行灵活的调整和优化,非常适合复杂场景中的建模和重建任务。
与之前2DGS[1]类似,通过将高斯球在 z 方向的尺度设置为 0 来获得高斯面元 (Gaussian Surfel)。为了表示纹理信息和语义信息,我们对高斯面元的颜色 (RGB)、不透明度和语义进行参数化。最终,一个高斯面元可以显式地参数化为:
Θ
=
{
(
x
,
y
,
z
)
,
(
r
,
g
,
b
)
,
(
s
x
,
s
y
)
,
α
,
R
,
S
e
m
}
\Theta = \left \{ (x,y,z),(r,g,b),(s_{x},s_{y}),\alpha,R,Sem \right \}
Θ={(x,y,z),(r,g,b),(sx,sy),α,R,Sem}
其中:
- ( x , y , z ) (x,y,z) (x,y,z)表示高斯面元的中心坐标;
- ( r , g , b ) (r,g,b) (r,g,b)表示颜色(RGB);
- ( s x , s y (s_{x},s_{y} (sx,sy分别表示在 x 和 y 方向上的尺度;
- α \alpha α表示不透明度;
- R , S e m R,Sem R,Sem表示旋转和语义信息。
在实际应用中,语义 S e m Sem Sem 使用一个长度等于语义类别数量的向量来表示,这样能够准确标注每个高斯面元的语义类别。这种显式的参数化方法使得高斯面元能够在表示道路表面时同时包含几何、纹理和语义信息,有助于提高重建精度和渲染效果.
Road Surface Modeling:
道路表面建模依赖于相机的姿态和图像的语义信息。相机的姿态通过车辆的里程计和外部参数获得。语义结果主要用于去除非道路元素。与 RoMe 类似,我们也使用 Mask2Former来获取语义结果。
具体流程如下:
- 相机姿态:
第一帧的姿态作为参考系统,后续帧的相机姿态通过车辆里程计和外部参数获得。 - 车辆轨迹和道路区域初始化:
将车辆轨迹投影到xy-平面上,并在此基础上通过扩展一定的范围来初始化道路区域。 - 道路区域离散化:
道路表面区域被离散化为均匀分布的点,这些点的分布具有一定的分辨率。
这些点被用作高斯面元的中心,如图 3 所示。 - 语义信息处理:
语义结果通过 Mask2Former 提取,主要用于去除图像中的非道路元素,从而帮助更准确地建模道路表面。
这种方法通过结合相机姿态、语义信息和车辆轨迹,能够有效地初始化道路区域并为高斯面元提供基础,最终实现高质量的道路表面重建。
Why use 2D Gaussian Surfels?
基于网格的道路表面重建通常会遇到一些显著的问题,比如长时间的优化过程。3DGS 通过使用三维高斯原语来表示世界场景,并采用可微分的体积点绘制技术进行图像渲染。这种方法显著加速了渲染速度,并减少了优化时间。尽管 3DGS使用显式的高斯球体来表示场景,它主要关注渲染质量,并未充分利用高斯球体的显式特性来恢复场景几何信息。
为了解决这一局限性,我们采用了 二维高斯面元 (2D Gaussian Surfels) 来建模道路表面。与高斯球体相比,高斯面元表示更贴近道路的物理现实,从而能够更精确地表示道路的几何形态。
基于轨迹的初始化(Trajectory-base Initialization)
在通过将车辆轨迹投影到 xy-平面上获得初始的高斯面元坐标后,由于 z 被设置为 0,它在高度上与道路表面不对齐。因此,对于每个高斯面元,我们通过轨迹上最近点的高度来初始化其 z-坐标。由于车辆轨迹通常与道路平行,高斯面元的旋转 R 被初始化为轨迹上最近点的姿态。这种初始化方法充分利用了车辆轨迹与道路表面之间的关系,有助于后续优化道路表面几何纹理的过程。
优化(Optimization)
颜色和语义渲染(RGB Rendering and Semantic Rendering)
为了使用高斯表面渲染图像,整个过程涉及几个步骤,将三维表面转换为二维图像空间、计算颜色值,并调整相机的曝光差异。以下是详细过程:
- 从世界坐标系到相机坐标系的转换:
最初定义在世界坐标系中的高斯表面,首先需要使用世界到相机的变换矩阵 W W W将其转换为相机坐标系中的表面:
X C = W X W X_{C} = W X_{W} XC=WXW - 投影到图像平面:
将转换后的高斯表面通过局部仿射变换 J J J投影到图像平面上。这个投影生成一个新的协方差矩阵 ∑ ′ \sum ^{\prime } ∑′, 该矩阵表示高斯表面在二维图像空间中的不确定性和分布。
新的协方差矩阵通过以下公式计算:
∑ ′ = J W ∑ W W T J T {\sum }^{\prime } = JW{\sum}_{W}W^{T}J^{T} ∑′=JW∑WWTJT
其中, ∑ W {\sum}_{W} ∑W是原始的高斯表面在世界坐标系中的协方差矩阵。
- 在图像平面上形成椭圆:
由于 ∑ \sum ∑表示的是二维协方差,它在图像平面上形成一个椭圆,得到方法是忽略原始三维协方差矩阵的第三行和第三列。这个椭圆描述了高斯表面在二维平面中的不确定性。 - 颜色表示:
对于图像中的每个像素,所有 K K K个投影到该像素的高斯表面根据其原始深度值按升序排列。最终的像素颜色 c ( p ) c(p) c(p)是通过加权这些高斯表面的颜色来计算的,权重由它们的透明度 α k \alpha_{k} αk
决定,并且考虑了表面间的相互作用。颜色的计算公式如下:
c ( p ) = ∑ k = 1 K c k α k g k ( p ) ∏ i = 1 k − 1 ( 1 − α i g i ( p ) ) c\left ( p \right ) =\sum_{k=1}^{K} c_{k} \alpha_{k}g_{k}(p)\prod_{i=1}^{k-1}(1- \alpha_{i}g_{i}(p)) c(p)=k=1∑Kckαkgk(p)i=1∏k−1(1−αigi(p))
其中:
- c k c_{k} ck是第k个高斯表面的颜色
- α k \alpha_{k} αk是第 k 个高斯表面的透明度
- g k ( p ) g_{k}(p) gk(p)是第 k 个高斯表面在图像像素p上的投影
- 乘积项确保了透明度正确混合,考虑了前后表面之间的影响。
在渲染语义时,颜色 c 被替换为语义向量,该向量可能代表不同的类别,例如“汽车”、“行人”等。
5. 曝光补偿:
在现实世界中,不同相机的曝光水平不同。为了在使用多个相机重建路面时考虑这一点,为每个相机引入了可学习的曝光参数a和 b. 这项调整补偿了相机之间的曝光差异,并应用于最终的颜色输出。
其中:
- a 是曝光参数
- b 是为曝光补偿添加的偏移量,
- c ( p ) c(p) c(p)是像素p 的原始颜色值。
这种方法可以渲染出既具真实感的图像(包括颜色和透明度),又可以处理语义信息,同时考虑到相机之间的曝光差异。
训练损失(loss)
颜色损失通过将渲染图像与真实观察图像进行比较来监督渲染的颜色输出。这个损失可以通过像素级的差异来定义,通常使用均方误差(MSE)或L1损失。此损失鼓励网络生成与实际观察场景一致的逼真图像。
L
c
o
l
o
r
=
1
∣
M
∣
∑
m
i
∣
c
i
−
c
i
ˉ
∣
L_{color}= \frac{1}{\left | M \right | } \sum m_{i}\left |c_{i}-\bar{c_{i}} \right |
Lcolor=∣M∣1∑mi∣ci−ciˉ∣
语义损失通过将渲染的语义输出与通过Mask2Former推断得到的语义结果进行比较来监督渲染的语义。Mask2Former是一个用于语义分割任务的先进模型。渲染的语义输出是将图像像素分类为不同类别(例如,道路、汽车、行人等)。使用语义掩码M来排除非道路元素,从而确保模型专注于道路相关的区域。语义损失可以定义为:
L
s
e
m
=
1
∣
M
∣
∑
m
i
⋅
C
E
(
s
e
m
i
,
s
e
m
i
ˉ
)
L_{sem}= \frac{1}{\left | M \right | } \sum m_{i} \cdot CE(sem_{i},\bar{sem_{i}} )
Lsem=∣M∣1∑mi⋅CE(semi,semiˉ)
其中:
- CE(CrossEntropy) 是预测语义标签与真实标签之间的交叉熵损失。
- m i m_{i} mi是语义掩码(0或1),作用是移除非道路元素
- ∣ M ∣ {\left | M \right |} ∣M∣表示mask M中有效的像素个数
由于道路表面通常较为平滑,引入了高程平滑度损失,以确保重建的道路表面保持平滑和连续。该损失惩罚高程的突变变化,促使模型生成更加逼真和平滑的道路表面。平滑度损失定义为:
L
s
m
o
o
t
h
=
1
N
∑
i
=
1
N
∑
j
∈
N
(
i
)
∣
∣
z
i
−
z
j
∣
∣
2
2
L_{smooth}= \frac{1}{ N } \sum_{i=1}^{N} \sum_{j\in N(i)}^{} \left || z_{i}-z_{j} \right ||_{2}^{2}
Lsmooth=N1i=1∑Nj∈N(i)∑∣∣zi−zj∣∣22
其中
N
(
i
)
N(i)
N(i)表示K个最近邻点。此外,为了提高重建的质量,LiDAR的点云也可以用来做高程的监督:
L
z
=
1
N
∑
i
=
1
N
∣
∣
z
i
−
z
i
ˉ
∣
∣
2
2
L_{z}= \frac{1}{ N } \sum_{i=1}^{N} \left || z_{i}-\bar{z_{i}} \right ||_{2}^{2}
Lz=N1i=1∑N∣∣zi−ziˉ∣∣22
通过查询xy平面中点云的最近邻高程 ,我们可以确保预测的高程与实际的地形数据(来自附近的LiDAR点云)对齐。
最终的总损失是多个损失项的加权和,包括颜色损失、语义损失、高程平滑度损失和LiDAR监督损失。整体损失函数可以定义为:
参考文献
[1] Binbin Huang, Zehao Yu, Anpei Chen, Andreas Geiger, and Shenghua Gao. 2d gaussian
splatting for geometrically accurate radiance fields. arXiv preprint arXiv:2403.17888, 2024.