目录
摘要
道路表面重建在自动驾驶系统中起着至关重要的作用, 能够支持然而,它在直接表示大规模场景的几何信息方面仍面临挑战。为了解决这一问题,本文提出了EMIE-MAP,一种基于显式网格和隐式编码的大规模道路表面重建新方法。道路几何通过显式网格表示,每个顶点存储隐式编码,代表颜色和语义信息。为了克服道路高度优化的难题,本文引入了基于轨迹的高度初始化方法和基于多层感知器(MLP)的高度残差学习方法。此外,通过采用隐式编码和多相机颜色MLP解码,我们实现了场景物理属性和相机特征的分离建模,从而实现与不同相机模型兼容的环视重建。我们的算法在多种现实世界的挑战性场景中,展现出了卓越的道路表面重建性能。
简介
3D重建方法通常分为传统方法和基于神经辐射场(NeRF)的方法。尽管传统的多视角立体方法可以有效地重建稠密或半稠密点云,但在应用于无纹理道路时,常常会产生不完整或噪声较大的结果。而基于NeRF的方法在真实重建方面显示出很大的潜力,但由于其高资源消耗,尤其是在大规模场景中的应用,仍然存在一定的局限性。
RoMe[1]是一种使用网格表示进行大规模道路重建的简单有效方法。为了解决任务的复杂性,RoMe将3D道路分解为三角网格,并使用多层感知器(MLP)隐式建模道路的高度。每个网格顶点包含额外的颜色和语义属性,用于捕捉细微的表面细节。然而,直接从位置编码回归地面高度是不准确的。环视图之间的亮度不一致可能导致RoMe的收敛不稳定。为了解决这些挑战,我们提出了一种基于显式网格和隐式编码的大规模道路重建方法(EMIE-MAP)。
EMIE-MAP主要贡献:
- 提出了EMIE-MAP,一种大规模道路表面重建方法。EMIE-MAP的核心是基于显式网格和隐式编码的道路表面表示,便于存储和优化道
- 路几何、颜色和语义信息。
- 引入了基于轨迹的高度初始化方法和基于MLP的高度残差预测方法,用于学习地面高度,克服了在坡道上重建道路表面时的困难。
- 提出了一种基于一致隐式颜色编码和多相机颜色解码的颜色优化方法,使场景物理属性和相机特征得以分离。这使得该方法可以应用于兼容不同相机模型的环视重建。
- 在开源数据集和各种真实挑战性场景中的实验表明,EMIE-MAP展现了卓越的重建效果。
EMIE-MAP
EMIE-MAP的架构如上所示.
左侧展示了基于显式网格和隐式编码的道路表面表示。利用由等边三角形面组成的网格来表示道路结构。每个顶点存储其初始坐标(x, y, z₀)、语义信息和隐式颜色编码。一个高度残差MLP预测高度残差,而多个RGB MLP则将隐式颜色特征解码为对应相机的观察颜色。这样,在框架的中部生成了包含显式信息的道路表面。
右侧则是优化损失的部分。通过直接渲染,生成的RGB和语义图像通过观察图像进行监督。此外,激光雷达(Lidar)点云被用来监督道路表面的高度。在这一部分,我们将详细描述EMIE-MAP的工作原理。
基于显式网格和隐式编码的道路表面表示(Road Surface Representation based on Explicit mesh and Implicit Encoding)
传统的重建算法使用点云、网格或体素来表示场。然而,这些方法面临着一些挑战,例如存在孔洞、优化困难以及表示方式缺乏灵活性。相比之下,NeRF 提供了一种纯粹的隐式场景表示,利用多层感知器(MLP)建模空间坐标到空间几何和颜色信息的映射,从而实现更灵活的场景表示。然而,NeRF也面临两个主要问题:一方面,NeRF需要大量的计算资源来通过光线采样积分进行图像渲染;另一方面,虽然渲染结果非常逼真,但要获取场景的显式几何信息仍然具有挑战性。
为了解决这些问题,我们提出了一种结合显式网格和隐式编码的道路表面表示方法. 具体来说,使用由等边三角形面组成的网格来表示场景结构,每个三角形面的边长为
a
a
a, 每个顶点存储两个显式属性:位置
(
x
,
y
,
z
0
)
(x, y, z₀)
(x,y,z0)和语义(sem),以及一个隐式颜色编码
(
l
c
)
(l_{c})
(lc). 此外,我们采用一个多层感知器(MLP)来估计高度残差,从而获得更准确的位置数据。多个RGB MLP将隐式颜色特征解码为对应相机的观察颜色。
高度(Elevation)
RoMe 直接使用多层感知器(MLP)预测地面高度,这对于相对平坦的路面是有效的。然而,当路面有陡坡时,简单的 MLP 在预测剧烈的地面高度变化时表现不佳。为了解决这个问题,本文提出了一种基于轨迹高度初始化和残差预测的地面高度预测方法。与 RoMe不同,我们不再将路面初始化为水平面。基于车辆沿车道接近地面行驶的事实,我们使用轨迹高度来初始化路面高度。然后,我们使用 MLP 来预测高度残差。与直接预测剧烈的高度变化不同,MLP 只需要预测低频的高度残差,这些残差更容易学习。具体来说,坐标 (x, y) 被编码并输入到残差预测网络
M
L
P
h
r
MLP_{hr}
MLPhr。最终的路面高度是初始高度和残差的和:
z
r
=
M
L
P
h
r
(
P
E
(
x
,
y
)
)
,
z
f
=
z
0
+
z
r
z_{r} =MLP_{hr} (PE(x,y)) , z_{f}=z_{0}+z_{r}
zr=MLPhr(PE(x,y)),zf=z0+zr
其中,PE() 表示位置编码,它通过正弦和余弦函数的组合生成位置编码向量。
颜色(Color)
为了适应不同的感知需求,汽车上配备的环视摄像头各有不同。通常,前视图作为主要视角,使用具有更广视场和更高分辨率的摄像头。不同的摄像头模型在观察同一地区时会导致 RGB 图像的差异,这些差异表现为亮度和饱和度的变化。在这种情况下,直接优化 RoMe 策略中的显式 RGB 值会导致优化冲突。为了解决这个问题,我们采用隐式颜色编码
l
c
l_{c}
lc显式 RGB 值。针对不同的摄像头模型,我们使用不同的解码器进行颜色解码。
r
g
b
i
=
M
L
P
r
g
b
(
l
c
)
rgb_{i} = MLP_{rgb}(l_{c})
rgbi=MLPrgb(lc)
解码后的颜色通过与各自摄像头观测到的颜色进行监督学习。需要注意的是,不同的摄像头解码器共享相同的隐式颜色编码。隐式颜色编码代表了场景的物理属性,而解码器则学习摄像头的特性,从而实现了对多个摄像头间不一致观测的建模,最终获得一致的场景信息。
语义(Semantics)
与颜色不同,语义是场景的内在属性,独立于摄像头。因此,我们直接使用显式参数来表示语义。
优化策略(Optimizing Strategies)
网格初始化(Mesh initialization)
通过利用基于多个传感器的定位算法,如惯性测量单元(IMU)、车轮编码器、全球定位系统(GPS)和摄像头,我们可以获取车辆在水平和垂直方向上的高精度轨迹信息。在正常情况下,车辆会贴合路面并沿车道行驶。因此,我们可以将轨迹在水平方向上进行扩展,从而获取路面区域。扩展的距离由道路的宽度决定。在确定了路面区域后,我们基于设计的表示构建路面模型。路面高度 z z z通过插值计算附近轨迹点的高度 z 0 z_{0} z0 来初始化。语义 s e m sem sem 和隐式颜色编码 l c l_{c} lc则是随机初始化的。
数据采样和观测区域采样(Data sampling and observation area sampling)
数据采样和观测区域采样。为了加速训练过程,我们在每次训练迭代中采样一个批次的 B B B张图像。由于不同位置的观测路面区域不同,我们采用基于轨迹的数据采样策略来提高计算效率。每个批次中的图像来自于相邻轨迹点的观测,因此这些图像具有相似的观测区域。随后,我们提取轨迹点前后 80 米范围内的路面作为该批次数据的观测区域。通过采用这种数据采样和观测区域采样策略,每次训练迭代只需要对路面的小段进行显式处理、渲染等操作,从而显著加速了重建过程。
路面可视化(Road surface visualization)
在确定了每个训练批次的观测区域后,需要对部分观测到的路面进行全面可视化。具体而言,使用一个高度残差网络来预测每个位置的高度残差,然后将其加到初始化的高度上,从而获得路面高度信息。隐式颜色编码通过对应摄像头的颜色解码器进行解码,得到用于可视化的显式 RGB 值。语义信息则直接从存储的语义数据中提取。这个过程最终生成一个全面可视化的路面,包括坐标、颜色和语义信息。
渲染(Rendering)
与 NeRF通过沿观测光线采样并在采样点处集成信息的方式不同,我们采用基于针孔相机原理的直接投影渲染方法。给定路面网格,摄像头姿态
T
T
T和摄像头内参
K
K
K ,每个路面点
(
x
,
y
,
z
)
(x,y,z)
(x,y,z) 对应的像素坐标
(
u
,
v
,
1
)
(u,v,1)
(u,v,1)可以通过以下公式计算:
其中,
R
R
R是旋转矩阵,
t
t
t是平移向量,
[
R
∣
t
]
[R∣t]
[R∣t]表示从世界坐标系到相机坐标系的变换矩阵,
K
K
K是相机的内参矩阵,包含了相机的焦距和主点位置。地面点的颜色和语义信息被投影到相应的像素上,生成渲染的RGB图像C和语义图像S。需要注意的是,在从每个相机渲染RGB图像时,我们使用了相应解码后的RGB值。与体积渲染相比,我们的渲染方法更好地模拟了获取真实图像的过程,并显著减少了计算复杂性。实际上,从物体表面发射的光线会通过相机中心并到达像素平面。我们的渲染过程模拟了捕捉真实图像的过程。
训练损失(Training loss)
对于颜色,通过使用来自相机的观察图像来监督RGB图像的渲染。对于语义,我们利用预训练的Mask2Former [30]对观察图像进行语义分割,作为分割的真实标签。然后,我们计算渲染的语义与真实标签之间的交叉熵损失。此外,我们构建了一个基于语义的路面掩码M,用来过滤掉不相关的信息,如行人和车辆。颜色和语义的损失公式如下:
其中
C
g
t
C_{gt}
Cgt代表RGB真值,
S
g
t
S_{gt}
Sgt代表分割的真值,
C
E
(
)
CE()
CE()代表交叉熵(cross-entropy loss)
为了更好地优化路面高程,我们使用激光雷达点(Lidar points)进行高程监督。具体来说,我们查询地面点某个邻域范围内的激光雷达点,并将其高程作为路面高程的真实值
z
g
t
z_{gt}
zgt,高程监督损失的公式如下:
此外,基于地面的平滑性,我们加入了一个拉普拉斯平滑损失:
其中, N N N表示网格中的顶点数量, N i N_{i} Ni表示与顶点 i i i相邻的顶点集合, h i h_{i} hi和 h j h_{j} hj分别表示顶点 i 和顶点 j 的高程值。对于每个顶点 i,计算其与邻居 j 之间高程差的平方和,然后对所有顶点求和。这有助于模型学习生成更平滑的网格高程预测。
总损失函数是以上四个损失的组合。
参数优化和最终输出(Parameters optimization and the final outputs)
在重建过程中,可学习的参数包括高程残差MLP的参数、多种RGB MLP的参数,以及语义和隐式颜色编码的参数。一旦训练完成,预测路面高程,并使用训练好的颜色MLP解码优化后的隐式颜色特征,从而生成融合了不同相机颜色和语义信息的路面视觉表示。
参考文献
[1]Ruohong Mei, Wei Sui, Jiaxin Zhang, Qian Zhang, Tao Peng, and Cong Yang. Rome: Towards large scale road surface reconstruction via mesh representation. arXiv preprint arXiv:2306.11368, 2023.