RoadBEV:鸟瞰视图下的路面重建

news2024/11/14 21:58:22

作者:Tong Zhao,Lei Yang,Yichen Xie等

编译:董亚微@一点人工一点智能

RoadBEV:鸟瞰视图下的路面重建icon-default.png?t=N7T8https://mp.weixin.qq.com/s/hDNHwvpFe39doiXlVc-d7Q

摘要:道路的路面状况,特别是几何轮廓,对自动驾驶车辆的行驶性能有着巨大影响。基于视觉的在线道路重建技术能够提前获取精确的道路信息,具有很大的潜力。然而,现有的解决方案如单目深度估计和立体匹配的性能还比较一般。最近的鸟瞰视图(Bird’s-Eye-View,BEV)感知技术为更可靠准确的重建提供了巨大的潜力。

本文提出了两个简单而有效的模型统一用于BEV中的道路高程重建,分别是通过单目视觉进行道路高程估计的RoadBEV-mono和通过立体视觉进行道路高程估计的RoadBEV-stereo。其中,RoadBEV-mono直接根据从图像视角查询的体素特征来拟合高程值,而RoadBEV-stereo则通过BEV体积来高效识别左右体素特征之间的差别以呈现道路高程的模式。并通过深入的分析,表述了它们相对于透视视角的共同点和差异。

实验证明,这两个模型在物理世界数据集上表现出良好的准确性和优越性。RoadBEV-mono和RoadBEV-stereo的高程误差分别仅为1.83cm和0.56cm。基于单目图像的鸟瞰视图,估计性能提升了50%。我们的模型在实际应用中具有很大潜力,并为基于视觉的自动驾驶中的鸟瞰视图感知提供了有价值的参考。

01 介绍

近年来,无人地面车辆(UGV)的快速发展对车载感知系统提出了更高的要求。对驾驶环境和条件的实时理解对于准确的运动规划和控制至关重要[1,2,3]。对车辆而言,道路是与物理世界唯一接触的介质。路面条件决定了许多车辆特性和驾驶性能[4]。路面不平坦,如凸起和坑洞(如图1(a)所示),会严重影响乘用车的乘坐体验。实时的路面条件感知,特别是几何高度感知,极大地有助于提高乘坐舒适度[5,6]。

图1 我们的动机。(a)我们BEV中的重建方法在单目和立体配置下优于图像视角的方法。(b)对于图像视角的深度估计,搜索方向偏离道路高程方向。深度视图中道路轮廓特征稀疏。坑洞无法清晰识别。(c)在BEV中,可以准确捕捉到轮廓振动,如坑洞、路边台阶甚至车辙。垂直方向上的路面高程特征更密集,更容易识别。

与UGV中的其他感知任务(如分段和检测)相比,路面重建(RSR)是一种最近受到更多关注的新兴技术。与现有的感知Pipeline类似,RSR通常利用车载激光雷达和相机来采集路面信息。激光雷达直接扫描道路剖面并生成点云[7,8],可以直接提取车辆轨迹上的道路高程,无需复杂的算法。然而,激光雷达传感器成本很高,限制了它们在大规模生产经济型汽车上的应用。与车辆和行人等尺寸较大的交通对象不同,道路不平坦通常具有较小的振幅,因此点云的准确性至关重要。这种方案需要运动补偿和实时道路扫描的滤波处理,而这将进一步要求厘米级的高精度定位。

基于图像的RSR是一项比激光雷达更有前景的3D视觉任务,其在精度和分辨率上更具优势。这种方案保留了路面纹理,使道路感知更全面。基于视觉的道路高程重建实际上是一个深度估计问题。对于单目相机,可以实现基于单张图像的单目深度估计或基于连续图像序列的多视图立体匹配(MVS)来直接估计深度[9]。对于立体相机,立体匹配回归视差图,可以将其转换为深度[10,11]。在给定相机参数的情况下,可以恢复相机坐标系中的道路点云。最终通过主要的后处理Pipeline得到道路结构和高程信息。在地面真值(GT)标签的监督下,可以实现高精度和可靠的RSR。

然而,图像视角下的RSR存在固有的缺点。对于特定像素的深度估计实际上是沿垂直于图像平面的方向找到最佳bin,如图1(b)中的橙色点所示。深度方向与路面存在一定的角度偏差。道路轮廓特征的变化和趋势与搜索方向不一致。深度视图中关于道路高程变化的信息很少。此外,每个像素的深度搜索范围都是相同的,导致模型捕捉到全局几何层次结构而不是局部表面结构。精细的道路高程被全局但粗糙的深度搜索所破坏。由于我们关注垂直方向的高程,所以在深度方向上的我们不会深究。透视视图中的远距离纹理细节丢失,这进一步对有效的深度回归提出了挑战,除非有进一步的先验约束[12]。

从顶视图(即BEV)估计道路高程是一个自然的想法,因为高程本质上描述了垂直振动。BEV是一种在统一坐标下表示多模态和多视图数据的有效范例[13,14]。基于BEV的方法取得了3D物体检测和分割任务的近期最佳性能[15],与透视图不同的是,引入了估计头(estimation heads)来处理视角转换后的图像特征。图1展示了我们的动机。与图像视角涵盖全局结构不同,BEV中的重建直接识别沿垂直方向的道路特征,而且仅在一定的小范围内进行。BEV中的道路特征投影密集地反映了结构和轮廓变化,这有助于准确、精细的搜索。因为道路在垂直于视角的平面上均匀表示,透视效应的影响也被抑制住。基于BEV特征的道路重建有望获得更高的性能。

为了解决上述问题,我们采用BEV技术进行重建路面。我们特别关注道路的几何形状,即高程。为了利用单目和立体图像,并展示BEV感知的广泛可行性,我们提出了两个子模型:RoadBEV-mono和RoadBEV-stereo。按照BEV的范式,定义了覆盖潜在道路起伏的感兴趣体素。体素通过3D-2D投影查询像素特征。对于RoadBEV-mono,引入了高程估计头对重塑的体素特征进行预测。RoadBEV-stereo的结构与图像视图中的立体匹配保持一致。在BEV中构建了一个基于左右体素特征的4D成本体,通过3D卷积进行聚合。高程回归被视为对预定义的bin进行分类,以提高模型学习的效率。我们在之前发布的物理世界数据集上验证了这些模型,并展示了它们相对于传统的单目深度估计和立体匹配方法的巨大优势。

我们的研究工作主要有以下几点贡献:

• 我们首次通过理论和实验证明了在BEV中进行路面重建的必要性和优越性。

• 针对单目和立体视觉方案,我们分别提出了两个模型,分别命名为RoadBEV-mono和RoadBEV-stereo,并详细解释了它们的原理。

• 我们对提出的模型进行了全面的测试和分析,并提供了有价值的深入洞察和未来研究的展望。

02 相关工作

基于视觉的路面重建。

现有的道路重建方案是基于单目或立体图像的透视图实现的[16]。早期的研究通过引入先验几何约束来恢复道路剖面并检测异常[17, 18]。基于已知路面视差,构建了道路视差图或v-disparity图[19]。通过基于v-disparity的仿射变换来定位不规则的不平坦性[20]。通过引入v-disparity道路模型和视觉里程计,从立体图像中连续提取道路高程和可行驶区域。上述几何约束仍然依赖于准确的视差估计。

通过从运动恢复结构(SFM),在局部路面进行了稀疏重建[21]。他们假设局部路面已知,并更注重与自适应卡尔曼滤波器的运动估计,这有助于大规模户外场景的全局重建。最近的研究通过道路网格表示,实现了大规模的单目重建,恢复了几何和纹理[22, 23]。然而,由于更注重纹理而几何受到稀疏标记的监督,因此道路高程的准确性较差。

BEV(Bird’s Eye View)表示

BEV表示为自动驾驶提供了一种同意的视角,有助于准确地定位物体和对多个传感器数据进行流畅融合[24, 25]。这种方法巧妙地结合了空间和时间数据,提高了场景理解能力。它的应用涵盖了各种物理世界的需求,包括3D物体检测[26, 27, 28, 29, 30, 31]、占用预测[32, 33]、运动规划[34]和在线构建高清地图[35]等。

当前的研究可以分为两个主要类别,基于几何的方法和基于Transformer的方法。

基于Transformer的检测器,例如BEVFormer [29],首先设计了一组BEV网格查询。然后,利用这些查询通过图像特征的交叉注意力实现视角变换。基于几何的方法,如Lift-splat-shoot (LSS) [36],将每个图像根据深度[37、27、38]或高度[30、31]估计转换成特征的锥体,然后将这些锥体喷洒(splatting)到栅格化的BEV网格中。BEVDet [27]将图像直接投影到BEV空间进行3D物体检测。后续的研究工作引入了来自激光雷达传感器的深度监督[28]或多视图立体技术[39],以提高深度估计的准确性,从而在该领域取得了领先水平的性能。

路面与BEV网格之间存在自然的空间分布一致性,使得BEV范式在进行RSR任务时非常适用。在提供BEV空间中的水平信息的基础上,我们进一步引入高度估计,通过网络的预测能力实现准确的路面重建。

03 Dataset和预处理

我们使用我们之前发布的路面重建数据集(Road Surface Reconstruction Dataset,简称RSRD)作为测试模型性能的基准。这是一个专门为路面重建目的设计的大规模高精度数据集,包含2800对高分辨率立体图像、密集的点云标注以及密集子集中的运动姿态信息。与现有的用于自动驾驶感知视觉的数据集不同,该数据集专注于路面并保留了丰富的道路纹理。它涵盖了各种沥青和混凝土道路的不同条件,包括典型的平坦和不平坦情况,如坑洞和减速带。我们采用了一半分辨率的子集(即960*540)。为了开发更可靠的模型并展示这个应用任务的重要性,我们从原始数据集中提取了具有更严重不平坦性的代表性样本。本文使用的数据集包含1210个训练样本和371个测试样本。

我们先介绍在图2(a)中所示的坐标定义。X_c-Y_c-Z_c是相对于水平平面具有一定俯仰角的原始相机坐标系。X'_c-Y'_c-Z'_c是一个水平的参考坐标系,其中X'_c-Z'_c在水平平面并指向垂直方向(即零滚转和俯仰角)。原始坐标和参考坐标可以通过利用IMU测得的姿态相互转换。类似于图像视图中的深度估计,相机平面表示零参考,道路高度也需要一个参考基准来正确描述道路轮廓。为了便于算法开发和后续应用,我们引入了另一个道路坐标X_r-Y_r-Z_r,垂直于相机参考坐标系。与X'_cZ'_c平行的X_rY_r轴表示道路的横向和纵向方向。Z_r轴描述道路轮廓,对于在参考平面上方的道路产生正的高程值;否则为负值。基于我们对数据集的统计分析,我们将O'_cO_r之间的参考高度(即相机和道路参考平面之间的垂直距离)设为1.10米。尽管由于车辆悬挂的压缩和拉伸,相机与道路之间的确切距离会有所变化,但变化很小,下面定义的特征体素可以覆盖这种轻微变化。

由于我们的目标是从自上而下的视角重建路面,因此需要进行视图转换,在BEV中生成道路高程标签。由于只有车辆经过的道路区域会影响车辆的响应,因此我们只关注特定的ROI,而不是整个图像。如图2(b)和(c)所示,我们将沿着X_rY_r轴的范围分别设置为[-1.0m,0.9m]和[2.1m,7.1m]。横向范围1.9m覆盖了大多数乘用车的宽度,确保左右轮胎轨迹上的道路信息可用。矩形的道路区域应离散化,方便生成数字化的道路高程地图。如图2(d)所示,我们将横向和纵向方向上的道路网格分辨率设置为3.0cm,这足够细致,因为在汽车工程中,我们感兴趣的最小道路不平坦波长约为10cm。自此,我们获得了N_y纵向和N_x横向的网格,分别为164和64。

图2 坐标示例和GT高程标签的生成。(a) 坐标。(b) 图像视图中的ROI。(c) BEV中的ROI。(d) 网格中的GT标签生成。

完整的路面点云首先在相机坐标系中转换为相机参考坐标系,然后转换为道路参考坐标系。之后对ROI中的点进行裁剪,再对每个3×3cm大小的网格内的点进行索引和分组。一个网格的GT高程值是其内部点的平均Z_r坐标值。由于可能有一些方格没有任何点落入其中,因此建立了一个二进制掩码\pmb{M}来记录具有可用标签的方格。最后,根据图3所示,为每个图像样本生成形状为164*64的GT高程图\pmb{E}

图3 道路图像和GT高程图的示例

04 方法

本节首先介绍了关于特征体素、视图变换和高程回归的一般设置,以及所提模型的详细结构。

4.1 特征体素和高程回归

在BEV感知范式中,首先定义三维体素以便于从透视视图到3D视图的变换和特征投影。对于主流的检测或分割任务,特征体素通常覆盖了百米级大范围,并在三个维度上具有较大间隔。然而,对于这个尺度较小的RSR任务,为了确保高精度,体素间隔也应相应减小。为了在精度和计算之间达到平衡,我们将垂直体素间隔设置为1.0cm,比后面的纵向间隔3.0cm要小。这个分辨率可以覆盖到如裂缝和小石头等道路微小起伏的振幅。

在目标检测中,感兴趣的垂直范围通常设置为道路上方几米高度,覆盖了大多数潜在障碍物的高度。但道路重建的设置不同,因为我们关注的是道路本身,而且路面可能在参考平面之上或之下。考虑到实际道路的不均匀性模式,我们将高程范围设置为[-20cm,20cm],垂直方向上得到N_z=40个体素。这个高程范围涵盖了大多数常见道路起伏的最大范围,如凸起和坑洼。如第三节中提到的,相机相对于道路的实际高度是可变的,并且路面可能整体位于参考平面之上或之下。尽管如此,确定的高程范围仍然能够捕捉到道路的趋势和结构。最后,我们在Y_r, X_r, Z_r轴上分别获得形状为164、64和40的特征体素。

为了实现视图变换,我们采用了3D到2D的投影,而不是2D到3D的投影,因为我们只关注特定的感兴趣区域(ROI)。通过3D到2D的投影来查询体素的特征更容易实现。另一个原因是2D到3D的投影需要准确的深度估计,而我们的目标本质上是恢复路面的几何结构。为了将特征填充到体素中,我们使用外参数和内参数将体素中心投影到图像平面,并索引相应的像素特征。我们在图像视图中可视化特征体素,如图4所示。相同水平位置上堆叠的体素的像素投影连接成一条线段。距离较远的体素对应于较短的线段。

我们的任务目标是为每个栅格估计连续的高程值,显然,这可以被定义为回归任务。然而,深度学习中的端到端回归往往表现不佳,因为搜索空间巨大。常用的回归损失函数,如L1和MSE损失,无法有效约束模型的学习。因此,我们将其视为对预定义高程范围中的区间进行分类。GT(ground truth)值也被转换为相应区间上的独热编码标签。更多细节将在第四节中给出。

图4 图像视图中的感兴趣特征体素。相同水平位置上堆叠的体素中心投影为红色线段上的像素点。

4.2 RoadBEV-mono

图5显示了RoadBEV-mono的结构。输入的RGB图像经过了一个从EfficientNet-B6 [41]简化而来的特征提取骨架。与检测中的常见结构类似,它包括一个特征金字塔,其中包含\frac{1}{2^n}分辨率的特征图(n\in \{1,2,3,4 \})。多尺度特征图保留了低层几何和高层语义信息。然后,特征金字塔插值到1/4分辨率,沿着通道维度进行串联,最后融合为具有C=64个通道的特征图。对应的特征体素的索引像素由将体素中心的坐标投影到图像平面来确定。然后,体素用n维像素特征填充,得到体素特征\pmb{F}_{vox}\in \mathbb{R}^{C\times N_z\times N_y\times N_x}。正如[42]中所演示的,为了更方便地为下游任务提取特征,BEV特征\pmb{F}_{BEV}\in \mathbb{R}^{(C\cdot N_z)\times N_y\times N_x}经过了对体素特征垂直维度的重塑。然后,BEV特征经过了与3D卷积相比更具成本效益的降维EfficientNet-B0的2D卷积。

由于我们通过对区间进行分类来回归道路高程,生成了一个高程特征图\pmb{F}_{ele}\in \mathbb{R}^{N_c\times N_y\times N_x},其中N_c是类别数(即高程区间的数量)。然后,每个栅格的通道通过softmax进行归一化,表示相应高程值的可能性。利用soft argmin操作来预测连续高程图\pmb{\hat{E}}

如图6所示,我们进一步对基于单目的RSR在BEV中的机制进行了深入分析。凸起的路面用橙色像素表示。在水平位置上标记为红色的候选体素在图像上被投影为红色线段上的像素。每个体素都是一个查询图像特征的可能性结果。然而,在一个水平位置上通常只有一个高度值。因此,候选体素中只有一个体素(如深蓝色体素所示)包含了正特征,而其他体素接收到了负特征。分类头的任务实际上是识别和强调正确的特征,同时抑制其他特征。浅蓝色体素共享相同的像素特征,因为它们在同一条相机光线上,这表明对于当前位置的正特征可能对其他位置是负的。

上述分析的机制实际上与采用AdaBins等搜索区间的单目深度估计相同。我们的RoadBEV与它们不同,因为搜索直接沿着高度方向进行,而不是深度方向。它直接识别高度变化的特征模式,避免了在有偏向的方向上无效努力。因此,RSR的BEV范式预计比深度估计更有效。

图5 RoadBEV-mono的架构。我们利用3D到2D的投影来查询像素特征。高度估计头部利用2D卷积在重新调整的BEV特征上提取特征。 图6 RoadBEV-mono 的机制。体素是侧视图

图6 RoadBEV-mono 的机制。体素是侧视图

4.3 RoadBEV-stereo

图7展示了RoadBEV-stereo的架构。与RoadBEV-mono和通用立体匹配模型相似,左右图像首先使用共享权重进行特征提取。CNN骨干网络的设置与RoadBEV-mono相同,即EfficientNet-B6。唯一的区别在于特征图的分辨率在FPN中被插值为1/2。有关分辨率的解释和分析将在下文中给出。特征体素被投影到两个图像平面,并从左右视角查询特征。因此,左右体素特征\pmb{F}'_{vox,l}\pmb{F}'_{vox,r}具有相同的形状[C,N_z,N_y,N_x]。在立体匹配模型的架构中,通过相关操作建立了两个特征图的相似性的代价体积。我们遵循这个范式,但使用减法来强调左右体素特征的差异。

在体素构建方面,与立体匹配不同的是特征输入。特征体素的垂直维度表示高度候选或建议,相当于立体匹配中的视差维度。对于立体匹配,输入特征是3D的,并且视差维度是在体积构建过程中引入的。相反,我们提出的方法直接将4D体素特征作为输入,其建议维度在体积构建之前引入。

与RoadBEV-mono类似,4D BEV体素可以被重新塑造为3D张量,并使用2D卷积进行处理,这样可以有效地节省计算资源。然而,为了展示其与立体匹配模型的一致性,我们仍将其视为4D体积,并通过3D卷积进行聚合。具体而言,我们堆叠了六个3D卷积层和三个具有1/2分辨率降低的沙漏模块(Hourglass Modules)。BEV体积的通道维度最终被减少为1。由于垂直体素的数量N_z可能与高度类别的数量N_c不同,因此高度建议维度被插值为具有N_c个通道。因此得到了高度特征图\pmb{F}'_{ele}\in \mathbb{R}^{N_c\times N_y\times N_x}。接下来的输出层与RoadBEV-mono相同。

图7 RoadBEV-stereo的架构。在左侧相机坐标下定义的体素查询左右特征图的像素特征。我们通过左右体素特征的减法构建BEV中的差异体积。然后,使用3D卷积对BEV中的4D体积进行聚合。

此外,我们进一步对BEV中基于立体视觉的RSR机制进行了深入的分析,如图8所示。在水平位置上,堆叠的体素建议被投影到左右两个图像平面上,如蓝色像素所示。右侧的体素特征提供了来自新视角的相同体素位置的信息。绿色像素是左图中与蓝色像素相对应的物理世界位置,即对应点。它们具有较高的特征相似性。表示对应像素的绿色线段与表示查询像素的蓝色线段只有一个交点。对于错误的高度建议,查询到的特征对具有较低的相似性,因为对应像素在右图中与查询像素相距较远。实际高度位置被投影为深绿色像素,在所有的特征对中具有最高的相似性或最低的代价。

对于透视视图中的立体匹配,任务是在右图同一行像素中找到具有最高特征相似性的对应像素。搜索范围是图像的宽度。对于我们的方法,分类头的任务是在建议对中识别出最高的相似性。搜索范围是高度候选的数量,远小于图像的宽度。从理论上讲,估计机制是相同的,即测量特征相似性并找到最高值。然而,BEV中立体匹配的搜索范围大大缩小。候选范围的减小有助于通过考虑较少的不相关特征测量进行有效的聚合。

尽管有这些好处,使用BEV中立体图像进行准确的RSR需要更严格的要求。首先,高分辨率的特征图对于与精确但狭窄的搜索范围相配合是必要的。由于道路纹理具有重复性而没有规律的模式,道路图像特征在某一区域内相似。因此,高分辨率特征对于识别轻微的特征变化至关重要。这也是为什么我们利用1/2分辨率的图像特征图的原因。然后,强调特征差异的有效相似性测量至关重要。在立体匹配中常用的相关操作(即逐点乘法)忽略了幅度差异,并可能引入整体偏差。因此,我们提出通过减法构建差异体积,这比相关性更直接,并且可以放大细微的差异。第5.5节的消融研究进一步证明了它们的影响。

图8 RoadBEV-stereo 的机制

4.4 损失函数

如上所示,我们通过对区间进行分类回归来预测道路高度。我们将类别间隔设置为0.5厘米,表示在高度范围[-20厘米,20厘米]内有N_c=80个类别。这个设置的原因在第5.4节中有解释。对于RoadBEV-mono预测的高度图,总损失是对每个具有有效标签的网格g的交叉熵损失的总和。

在这种情况下,\pmb{M}是二进制的GT掩码,c是类别索引。RoadBEV-stereo的损失与之相同,但将\pmb{F}_{ele}替换为\pmb{F}'_{ele}

05 实验

在本节中,我们全面测试了所提出模型的性能,并验证其在实际RSR应用中的优越性。我们将RoadBEV-mono与现有的单目深度估计模型进行比较,将RoadBEV-stereo与公开的立体匹配方法进行比较。我们进行消融和比较研究,了解各种参数的影响。

5.1 实现细节

我们使用以下指标来评估模型的性能:绝对误差(abs. err.)和均方根误差(RMSE)。

我们在PyTorch平台上实现了这些模型,并在RTX 3090 GPU上进行训练。所有实验的批量大小为8。RoadBEV-mono的学习率设置为8e-4,而RoadBEV-stereo的学习率设置为5e-4。优化器采用AdamW,并设置权重衰减为1e-4。使用线性下降策略的OneCycle学习率调度程序。图像被裁剪为960*528以满足尺寸要求。

RoadBEV-mono训练了50个周期,而RoadBEV-stereo训练了40个周期。加载了在ImageNet上进行预训练的权重。表1中的比较模型也是在相同的周期内进行训练的,使用了提供的代码中的默认配置。

5.2 性能和比较

图9显示了两个提出模型的训练损失。它们在设定的训练周期内都达到了收敛,证实了模型结构和损失函数的有效性。在相同的GT标签和损失函数下,基于立体的模型具有较低的损失值,优于基于单目的模型。RoadBEV-stereo的收敛性更加稳定且更快。与RoadBEV-mono中不可解释的拟合相比,引入立体信息显著提供了更多有效学习垂直方向道路特征的线索。

图9 (a) RoadBEV-mono 和 (b) RoadBEV-stereo 的训练损失。

如表1所示,我们与在公共数据集上取得SOTA性能的深度估计和立体匹配方法进行了比较。由于比较的模型最终提供的是相机坐标系下的深度信息,我们将其转换为BEV并生成与GT标签相同风格的高程图。

对于基于单目的道路重建,我们的模型在主要指标上具有显著优势。绝对高程误差和RMSE分别比AdaBins改善了23.3%和25.8%。在BEV中进行直接高程估计通过在垂直方向上均匀提取和聚合特征发挥作用。

1.83厘米的误差水平能够捕捉到破坏车辆行驶舒适性的最严重的道路不平坦,但对于较轻微的道路起伏来说可能不足够。此外,AdaBins通过直接回归实现了比其他方法更高的准确性,验证了对bins进行分类的必要性。

表1 与单目深度估计和立体匹配方法的性能比较。粗体:最佳结果

进一步地,表1中所有基于立体视觉的模型在性能上都远远优于基于单目视觉的模型。我们的RoadBEV-stereo在性能上也显著优于其他模型,并取得了显著的改进。所提出的差异体积和估计头共同作用,高效地识别BEV中的特征模式。搜索范围的约束简化了相似性测量和识别的过程,具有很好的效果。误差水平为5.6毫米几乎覆盖了导致车辆垂直振动的所有道路不平坦。

我们的模型在车载RSR中具有巨大的潜力,可辅助UGV的规划和控制系统。比较RoadBEV-mono(图5)和RoadBEV-stereo(图7)的架构,RoadBEV-stereo的主要改进在于利用了来自另一个视角(即立体图像)的额外信息。引入另一个视角使性能提升了两倍以上。因此,基于立体视觉的RSR无疑比基于单目视觉更有前景和可靠性。

为了更深入地了解,我们进一步在图10中可视化了距离绝对误差。整个网格沿纵向方向分为15个段,每个段代表一个长度为33cm的区域。段内网格的绝对高度误差取平均值。这种分析方法不同于全局粗略的评估,它深入到模型的性能并给出更全面的评价。我们的RoadBEV-mono在整个范围内明显优于其他对比的深度估计模型。与LapDepth相比,其优势在远距离更为显著,正如在第4.2节中所分析的。AdaBins表现良好,它定义了搜索区间而不是直接拟合,具有有效的约束条件。

我们的RoadBEV-stereo也优于对比的立体匹配模型,尤其是在远距离上。然而,与单目模型相比,改进并不那么显著。潜在的原因是这些模型已经达到了非常高的准确性,进一步提升变得具有挑战性。标签中的噪声可能也限制了进一步的提升。尽管如此,我们的模型的有效性得到了坚实的验证。

图10 在单目和立体两种方法中,与其他最先进模型相比,按距离划分的高度误差对比。

5.3 道路重建的可视化

RoadBEV-mono重建的道路高程图在图11中进行了可视化展示。路面的结构和趋势被准确地捕捉到,没有整体性偏差。

第一个样本的推断地图代表了平坦的路面,没有明显的不均匀性,显示出稳定的高程。这对于下游任务非常重要,因为错误的检测可能导致不必要的行动。第二个样本中的细长裂缝以及远处的突然隆起都被高精度地恢复,因为残差图中对应区域没有明显的错误。我们的模型还捕捉到了第三个样本中的车辙,验证了其在恢复全局结构和局部细微变化方面的能力。第四个样本中的直角减速带与GT非常吻合。尽管根据残差图显示,中间部分的振幅误差相对较大,但仍然可以清楚地识别为减速带。最大的绝对误差可以控制在2.5厘米以内。可以实施后处理方法来优化减速带的轮廓。

图11 RoadBEV-mono 重建的路面可视化。从左到右依次为:RGB 图像、真实高程图、估计高程图和残差图。红色边界框表示感兴趣区域(ROI)。残差图计算公式为\pmb{E}-\pmb{\hat{E}}。

图12展示了RoadBEV-stereo的重建结果。第二列展示了在BEV中使用立体匹配模型GwcNet获得的带有颜色的点云。最后一列可视化了重建的3D道路网格。与图11中的结果相比,恢复的高程图更加平滑,没有杂乱的噪声或意外的模式。RoadBEV-stereo能够比RoadBEV-mono保留更多的细节结构。第二个和最后一个样本中的坑洞的形状和边缘被精确地恢复了。正如3D网格所示,从坑洞边缘到中心的坡度也被准确地捕捉到。在第三个样本中,裂缝和平坦区域之间的陡峭过渡非常清晰可见。所有展示的样本都展示了我们的方法在处理复杂道路模式方面的能力。

图12 RoadBEV-stereo 重建的路面可视化。从左到右依次为:左图像、在BEV中具有颜色的恢复的道路点云、GT高程图、估计的高程图和估计的道路网格。

我们首先探索了类间隔对模型性能的影响,如表2所示。我们在0.4∼2cm之间设置了不同的类间隔,其中度量指标在0.5cm时达到最高。结果还显示,对于类分辨率{0.5, 0.8, 1.0, 1.6}的度量差异很小。潜在原因是我们使用软argmin来回归高度,而不是选择峰值类别。加权求和操作可以弥补由于离散类间隔导致的准确性降低。0.4cm的过高分辨率导致N_c-100,过于复杂,难以区分细微的差别。2.0cm的过低分辨率则过于稀疏,无法准确表示连续的高度。因此,提出的模型都将类间隔设定为0.5cm。

表2 类间间隔对RoadBEV-mono性能的影响。粗体:最佳结果

然后,我们进行了更多的比较实验,想要获得更有意义的启发,如表3所示。我们研究了不同的垂直体素分辨率和特征提取骨干的影响。当采用EfficientNet-B3作为骨干网络时,两个指标都会下降。充分的特征提取对于后续的估计头是至关重要的。与类别分辨率类似,体素分辨率在中等值(即1.0cm)处达到最佳。对于较大的垂直间隔,对搜索范围进行稀疏采样无法保留足够的信息特征。在0.5cm的更密集采样下,即最佳类别分辨率,性能反而下降。较小的间隔可能会由于透视效果而引入重复采样特征,特别是在远距离处,邻近体素会投影到同一像素上。

表3 RoadBEV-mono的消融和比较研究。粗体:最佳结果

5.4 RoadBEV-stereo的消融研究

如第4.3节所述,我们研究了体素构建的影响。表4中的前三个实验利用相关性来构建BEV体积。令人意外的是,无论其他参数如何,指标都下降到非常低的水平,与RoadBEV-mono的近似性能相当。很明显,逐点乘法无法为左右特征查询提供有效的相似度度量。估计头在几乎相同的相似度中难以识别实际的高度。通过减法而不是乘法进行的特征差异度量被证明对发挥立体信息带来的好处至关重要。

我们进一步比较了不同图像和垂直体素分辨率的设置。结果表明,在特定图像分辨率下,1.0cm体素分辨率可以实现最佳性能。这与RoadBEV-mono得出的结论一致。同时,结果还显示,在相同的体素分辨率下,具有1/2特征分辨率的模型更优。例如,当体素分辨率为0.5cm时,绝对误差从0.730cm降至0.584cm(即改善了20%)。另一个有价值的发现是,当体素分辨率为2.0cm时,性能也会崩溃。稀疏的特征查询完全破坏了高特征分辨率和差异度量带来的好处。

上述现象验证了第4.3节中分析的机制的合理性。在满足严格要求的情况下,立体匹配在BEV中发挥作用并表现更好。不恰当的设置可能会将RoadBEV-stereo降级为RoadBEV-mono。

表4 RoadBEV-stereo的消融和比较研究。粗体:最佳结果

06 局限性和前景

我们已经充分探讨了所提出的两个模型的性能和适用性。重建的路面高程在自动驾驶车辆的规划、控制和测试方面具有巨大潜力。然而,在实际的车载应用中还存在挑战。

图10中的可视化结果显示,无论是单目还是立体视觉模型,相对于纵向距离,误差仍然呈增长趋势。这是透视相机的固有缺点,近距离能够保留纹理和结构细节,而远距离则丢失。虽然BEV范式通过自顶向下的方式直接重建路面,但特征仍然是从透视图像中提取的。BEV是抑制这种现象的一种很有潜力的方法,但仍需要进一步的努力和更先进的策略。

在我们的实现中,我们只采用当前时间的帧。RoadBEV-stereo表明,引入其他视角的信息能够深入提升模型性能。因此,利用序列图像有望带来进一步的改进。在视角转换中,我们将体素中心投影到图像平面,并索引相应的像素特征。为了更准确地查询特征,投影多个体素位置并融合附近的像素特征值得关注。

我们研究了相同水平分辨率下(即164*64网格)的模型性能。与立体匹配类似,BEV体积可以首先以较低分辨率构建,然后插值到完整分辨率,从而有效减少计算量。在本文中,我们仅关注重建道路几何结构,即高程。对于未来的研究,可以探索几何结构和纹理重建的联合,利用近期的技术如NeRF [52]和3DGS[53]。

数据规模和多样性是实际场景应用中必须考虑的最重要问题。我们利用我们先前的工作RSRD来生成这个算法和应用原型。虽然典型的道路条件已经涵盖在内,但多样性仍然不足,特别是各种边界情况。应该努力贡献更多高质量的路面数据。

07 结论

在本文中,我们首次针对鸟瞰图中的路面高度进行了重建。我们分别提出并分析了两个模型,分别是基于单目图像的RoadBEV-mono和基于立体图像的RoadBEV-stereo。

我们揭示了在鸟瞰图中,单目估计和立体匹配与透视视图中的机制相同,但通过缩小搜索范围和直接挖掘高度方向的特征而得到改进。对真实数据集进行的全面实验验证了所提出的BEV体积、估计头和参数设置的可行性和优越性。对于单目摄像头,与透视视图相比,BEV中的重建性能提升了50%。

与此同时,在BEV中,使用立体摄像头的性能是单目摄像头的三倍。我们提供了深入的分析和模型说明。我们的开拓性探索还为与BEV感知、3D重建和3D检测相关的进一步研究和应用提供了有价值的参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1615984.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线程池多线程在项目中的实际应用

一.发短信 发短信的场景有很多,比如手机号验证码登录注册,电影票买完之后会发送取票码,发货之后会有物流信息,支付之后银行发的付款信息,电力系统的电费预警信息等等 在这些业务场景中,有一个特征&#x…

Linux 网络编程项目--简易ftp

主要代码 config.h #define LS 0 #define GET 1 #define PWD 2#define IFGO 3#define LCD 4 #define LLS 5 #define CD 6 #define PUT 7#define QUIT 8 #define DOFILE 9struct Msg {int type;char data[1024];char secondBuf[128]; }; 服务器: #i…

231 基于matlab的北斗信号数据解析

基于matlab的北斗信号数据解析,多通道和单通道接收到的北斗信号数据,利用接收到的北斗数据(.dat .txt文件),进行解析,得到初始伪距,平滑伪距,载波相位,并计算其标准差&am…

洛谷 -P1007 独木桥(模拟,思维)

独木桥 题目背景 战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒&#xf…

双线性插值计算手动实现以及原理

双线性插值计算手动实现以及原理 代码原理 代码 先贴代码吧,原理其实也比较简单,看代码基本也就理解了,时间太晚了,原理后续再补吧。 import torch from torch.nn import functional as F import numpy as np from itertools im…

苍穹外卖开发笔记(6.缓存商品,购物车)

目录 一、缓存商品2、缓存菜品(redis)1.问题说明2.实现思路3.代码开发 2、缓存套餐(spring cache)1.实现思路2.代码实现 3、测试 二、购物车功能1、添加购物车1.需求分析设计2.代码开发3.测试 2、查看购物车1.需求分析设计2.代码开…

基于TSM模块的打架斗殴识别技术

目 录 1 引言.... 4 1.1 研究背景与意义.... 4 1.2 研究现状综述.... 5 1.3 研究内容.... 6 1.3.1 图像预处理的优化.... 6 1.3.2 TSM模块的应用.... 6 1.3.3 视频分类的设计与实现.... 6 2 关键技术与方法.... 8 2.1 TSM算法与模型选择.... 8 2.1.1 TSM算法原理.... 8 2.1.2 …

用python做傅里叶变换和系统辨识

一、原始信号 1、理想数据 (1)系统参数 参数类型数值J0.5 k g ∗ m 2 kg*m^2 kg∗m2K0.2b5 (2)激励曲线 import matplotlib.pyplot as plt import numpy as np# 生成数据 x np.linspace(0, 10, 1000) # 生成0到10之间的100…

下列程序定义了NxN的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int n),该函数的功能是:使数组右上半三角元素中的值乘以m。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 下列…

从0到1:社区论坛小程序开发笔记

背景 论坛小程序:为用户提供了一个社交互动的平台,使用户可以分享经验、交流观点、解决问题,促进社区成员之间的互动和交流。 用户可以在论坛小程序上发布有关各种话题的帖子,分享自己的知识、经验和见解,帮助其他用户…

mysql基础14——视图

视图 视图是一种虚拟表 可以把一段查询语句作为视图存储在数据库中 需要的时候把视图看作一个表,对里面的数据进行查询 视图并没有真正存储数据 避免了数据存储过程中可能产生的冗余 提高了存储的效率 子查询 嵌套在另一个查询中的查询 派生表 如果在查询中…

【MySQL 数据宝典】【内存结构】- 003 Change Buffer 详解

一、 Change Buffer基本概念 Change Buffer:写缓冲区,是针对二级索引(辅助索引) 页的更新优化措施。 作用: 在进行DML操作时,如果请求的是 辅助索引(非唯一键索引)没有在缓冲池 中时,并不会立刻将磁盘页加载到缓冲池…

游戏AI智能体模仿学习技术方案揭秘(二)(附方案详情),沉浸式玩家体验秘诀,看《梦三国2》游戏AI智能体!

接上篇内容,小智发现内容非常受游戏开发者们的欢迎,今天给大家带来方案(二)内容,没看过第一篇的伙伴可以戳以下链接查看~~码住! 游戏AI智能体模仿学习技术方案(附方案详情),沉浸式玩…

AQS(AbstractQueuedSynchronizer)队列同步器源码解读

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 1. 前言 2. AOS、AQS、AQLS的区别 3. AQS的底层原理 3.1. 核心思想 3.2. 数…

PyQt介绍——动画使用详解之QPropertyAnimation

一、继承关系 PyQt5的动画框架是QAbstractAnimation,它是一个抽象类,不能直接使用,需要使用它的子类。它的类结构如下: QAbstractAnimation:抽象动画,是所有动画的基类,不能直接使用。 QVariant…

基于postCSS手写postcss-px-to-vewiport插件实现移动端适配

🌟前言 目前前端实现移动端适配方案千千万,眼花缭乱各有有缺,但目前来说postcss-px-to-vewiport是一种非常合适的实现方案,postcss-px-to-vewiport是一个基于postCss开发的插件,其原理就是将项目中的px单位转换为vw(视…

【极速前进】20240422:预训练RHO-1、合成数据CodecLM、网页到HTML数据集、MLLM消融实验MM1、Branch-Train-Mix

一、RHO-1:不是所有的token都是必须的 论文地址:https://arxiv.org/pdf/2404.07965.pdf 1. 不是所有token均相等:token损失值的训练动态。 ​ 使用来自OpenWebMath的15B token来持续预训练Tinyllama-1B,每1B token保存一个che…

配置nodejs的俩小脚本

介绍:共两个脚本。 脚本1,用来配置环境变量,生成环境变量所需的配置信息,然后自己添加到系统环境变量里去 特别注意:该脚本需要放到nodejs目录下面,如果不是,则无法生成环境变量配置文本内容 另…

【STL概念】

STL STL(Standard Template Library),即标准模板库从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。STL的目的是标准化组件&#xff0…

找不到msvcp140dll,无法继续执行代码的详细解决方法

在我们日常使用计算机进行各类工作任务的过程中,时常会遭遇一些突发的技术问题。比如,有时在运行某个重要程序或应用软件时,系统会突然弹出一个令人困扰的错误提示:“电脑提示找不到msvcp140.dll文件,因此无法继续执行…