Abstract
单目几何场景理解结合了全景分割和自监督深度估计,专注于自动驾驶车辆的实时应用。我们提出了MGNiceNet,一种使用链接内核公式来进行全景分割和自监督深度估计的统一方法。MGNiceNet基于当前最先进的实时全景分割方法RT-K-Net,并扩展了其架构以涵盖全景分割和自监督的单目深度估计。为此,我们引入了一个紧密耦合的自监督深度估计预测器,该预测器明确地利用全景路径中的信息来进行深度预测。此外,我们提出了一种全景引导的运动遮蔽方法,以在不依赖视频全景分割注释的情况下改进深度估计。我们在两个流行的自动驾驶数据集Cityscapes和KITTI上评估了我们的方法。与其他实时方法相比,我们的模型显示出了最先进的结果,并缩小了与计算需求更高的方法的差距。
代码获取:https://github.com/markusschoen/MGNiceNet
欢迎加入自动驾驶实战群
Introduction
全景分割(Panoptic Segmentation)被提出以统一语义分割和实例分割的任务,通过同时分割不可计数的“背景区域”(如道路或植被)和可计数的“目标对象”(如行人或车辆)。这些信息对于例如规划车辆安全通过环境的轨迹规划等下游任务具有重要意义。
全景分割在自动驾驶系统中的主要缺点是其局限于二维图像平面。深度信息是将二维信息提升到三维世界的关键。因此,自然地将全景分割与单目深度估计结合起来,以恢复图像中每个像素到摄像机的距离。两个任务之间存在诸多相似性,例如在对象边界处的深度不连续性,这可以被利用。联合方法通常显示出相比单一任务方法更好的结果。然而,大多数这些方法在自动驾驶系统的广泛应用中面临两个主要限制:
(1) 深度估计通常通过使用立体视差或投影的激光雷达点作为真值进行监督训练。监督方法对不同的摄像机设置具有有限的泛化能力,而且大规模深度数据集的获取具有挑战性。它既耗时又需要精确校准的传感器。
(2) 大多数方法侧重于高精度,而非快速推理速度。方法需要具备合理的推理速度,以快速处理输入图像并降低自动驾驶系统的延迟。否则,系统将无法对车辆环境中的突发变化(例如行人过街)做出反应。
在我们之前的工作中,我们提出了单目几何场景理解,即全景分割和自监督单目深度估计的结合,以解决这些限制。自监督深度估计的方法通过图像到图像的合成公式缓解了逐像素真值深度获取的问题,这种方法在训练过程中仅需要捕获的视频序列。因此,自监督方法可以通过重新训练模型轻松适应新的摄像机。我们还提出了MGNet,这是一种专注于低延迟的实时应用的网络架构。尽管表现出合理的性能,MGNet有一个主要的局限性:任务组合仅通过共享编码器和独立的任务特定解码器隐式地处理。隐式公式限制了模型从全景分割和自监督深度估计之间的固有任务关系中获益,从而限制了模型性能。
受到这一局限性的启发,我们提出了MGNiceNet,这是一种统一的单目几何场景理解方法,可以明确利用两个任务之间的关系。MGNiceNet基于我们最先进的实时全景分割方法RT-K-Net,我们对其进行了扩展,使其还可以执行自监督深度估计任务。具体而言,我们引入了一组自监督深度内核,并采用类似于PolyphonicFormer的深度内核更新机制以生成实例级的深度预测。受最近分类-回归方法在深度估计中成功的启发,MGNiceNet也使用离散的逐箱深度表示。然而,与之前的研究相比,我们提出在全景掩码级别使用逐箱表示,从而实现全景分割与深度预测之间的更好对齐。
自监督深度学习的假设是相机在静态环境中移动且帧之间没有遮挡。因此,动态对象会打破这一假设,导致高光度误差和错误的深度预测。多种方法已成功将运动遮蔽技术整合到自监督训练中。然而,这些方法要么需要静态帧选择,要么需要视频全景注释。因此,我们提出了一种新颖的全景引导运动遮蔽方法,该方法使用全景预测而非视频全景注释。
3.Method
3.1 问题表述
给定一个批量大小为 BBB 的输入彩色图像 ,其中 t 为时间步长,H 和 W 为空间维度,单目几何场景理解的任务是推断全景预测 和深度预测 。全景预测为图像中的每个像素分配一个预定义类别数 中的唯一类别 ID,以及对应于目标类的每个像素的唯一实例 ID。深度预测为图像中的每个像素分配一个度量深度值,即到摄像头的度量距离。
全景分割可以被表述为一个掩码分类问题 。具体而言,需要预测一个固定数量的掩码预测 和对应的类别概率预测 。对于背景类(Stuff),每个类预测一个掩码,而每个目标类(Thing)可以根据输入图像中目标数量预测多个掩码。在训练过程中,概率-掩码对通过二分匹配分配给真实值。
深度估计可以以自监督的方式表述为图像到图像的合成问题,使用单目视频序列 。在训练中,以时间步 t 的参考帧 为基础,深度预测 与相机的相对位姿预测结合起来,将相邻的视频序列帧(即上下文帧 投影到参考帧中。优化过程使用一个光度图像重构损失,以最大化变换后的上下文帧与参考帧之间的相似性。
3.2 方法概述
图 1 展示了我们方法的概述。MGNiceNet 在统一框架下解决单目几何场景理解问题。网络架构基于 RT-K-Net ,并扩展以实现自监督深度估计。以下部分详细描述了网络架构的扩展、优化过程和所提出的全景引导运动遮蔽方法。
3.3 特征编码器
按照 RT-K-Net 的架构,RTFormer 用作特征编码器。RTFormer 使用输入图像批量生成一个高分辨率特征图 ,其中特征通道大小为 C,。对于 MGNiceNet,通过在最后一层编码器添加一个并行卷积阶段,生成第二个具有相同维度的特征图 。
3.4 核和掩码初始化
RT-K-Net 使用随机初始化的全景核 通过执行卷积 生成初始全景掩码预测,其中 FpF_pFp 是特征编码器生成的全景特征图。对于 MGNiceNet,自监督深度核 的初始化方式与全景核相同。然而,未初始化深度掩码预测 ,因为在链接的核更新头中,使用全景掩码来优化自监督深度核。
3.5 链接核更新头
初始核和掩码预测对于实现全景分割的判别能力不足。因此,RT-K-Net 通过四次迭代核更新来提高每个核的表示能力。同样,自监督深度核的更新也需要类似的过程。因此,RT-K-Net 的核更新头被扩展,以更新自监督深度核。每个链接核更新头 i 执行以下阶段,以从上一链接核更新头 i−1 更新核和掩码预测:
核链接 (KL):核链接用于通过重用全景核中的信息更新自监督深度核。链接是单向的,即信息仅从全景核传递到自监督深度核,公式为 。
分组特征组装 (GFA):用于减少噪声并加速学习过程 [52]。首先将全景掩码预测 转换为二值掩码预测 。然后,通过将全景特征图 FpF_pFp 与归一化后的二值掩码预测逐元素相乘,形成全景分组特征 。
使用 RT-K-Net 的归一化策略可以实现混合精度训练和推理,这已被证明可以减少推理时间。深度分组特征 通过类似公式(1)的方式生成,使用深度特征图 和归一化后的二值掩码预测 。这创建了从全景路径到深度路径的另一个链接。
自适应核更新 (AKU):通过使用学习到的门控 GF,GK 和线性变换 ψ1,ψ2 调整全景核和全景分组特征的影响。AKU 的计算成本较低,因为它独立于图像分辨率。因此,我们使用两个并行的 AKU 模块来更新全景核和自监督深度核。
核交互 (KI):用于建模核之间的关系,即不同像素组之间的关系。类似于 AKU,该操作计算成本较低,因此通过添加第二个并行 KI 模块扩展以更新自监督深度核。
使用多头自注意力机制 (MHSA),后接一个前馈神经网络 (FFN)。更新后的核 和 被分别输入到单独的 FFN 中。
从中生成优化的全景掩码预测 、自监督深度掩码预测 和类别概率预测 。
3.6 自监督深度预测器
我们引入了一个自监督深度预测器模块,用于基于深度掩码预测 和深度组特征 高效生成逆深度预测 。受最近方法的启发,我们将深度估计重新表述为分类-回归问题,并使用深度平面和深度中心的组合预测 个深度区间(depth bins)。与最近方法不同的是,我们直接利用模型中编码的全景信息,在全景掩码级别预测深度区间。图 2a 展示了自监督深度预测器模块的概述。
深度组特征 是基于深度特征图 和在链接核更新头的 GFA 阶段中生成的归一化二值全景掩码预测 计算得到的。因此,这些特征在全景掩码级别编码了对象特征,我们将其用于在全景掩码级别预测深度区间。为此,我们首先将深度组特征重塑为形状 ,然后通过一个简单的前馈神经网络(FFN)处理:
我们将预测的区间转换为区间中心 ,计算方式基于最小深度 dmin和最大深度 dmax:
深度掩码预测 通过对掩码预测进行 softmax 操作,转换为预测深度区间上的概率分布 :
最后,我们利用深度中心和 softmax 得分的线性组合计算逆深度预测 。在全景掩码级别进行区间化的优势有以下几点:第一,它有效利用了模型中现有的全景信息,无需依赖其他模块,后者在处理高分辨率图像时计算复杂度较高(。第二,生成的深度图与全景预测对齐,包含了细粒度的细节。
3.7 后处理
我们采用 RT-K-Net 中提出的后处理模块,基于更新的全景掩码 和类别概率预测 生成全景分割预测。对于深度估计,我们采用 MGNet中的后处理方法,其中使用全景道路预测作为地面掩码,通过基于地面像素的估计相机高度中值与校准相机高度的关系计算深度比例因子。
3.8 优化
对于全景分割,我们遵循 RT-K-Net 的方法,使用二分匹配(bipartite matching)将掩码预测与真实段进行匹配。匹配的段与辅助输出一起用于计算全景损失:
其中, 是二元交叉熵损失, 是 dice 损失 ,是分类的 focal 损失 , 是掩码 ID 的交叉熵损失, 是交叉熵损失,是实例区分损失。权重因子 和 是超参数,用于平衡不同的损失项。
对于自监督深度估计,我们遵循常见实践,使用光度损失和平滑损失的组合:
在每个链接核更新头中添加了一个自监督深度预测器模块,用于预测四个逆深度预测 ,这些预测用于计算损失。我们采用基于梯度的平滑损失:
其中,是预测的均值归一化逆深度, 是参考图像。
在光度损失计算中,我们使用一个独立的 Pose-CNN 预测相邻帧之间的 6 自由度(6 DOF)相机相对位姿。对于每个深度预测 ,预测的位姿用于将上下文帧 变换到参考帧 。对于每个变换后的图像 ,光度损失按照以下公式计算:
其中使用了结构相似性指数(SSIM)。按照常见实践,我们设置 α=0.85。此外,我们使用变换帧与未变换帧之间的最小重投影误差来掩盖静态像素,并引入的自动掩码策略。
最后,我们计算了一个全景引导的运动掩码,如下节所述,用于屏蔽可能属于动态对象的像素:
最终损失是全景分割和深度损失项的组合,权重因子 用于平衡这两部分损失:
3.9 全景引导的运动掩码计算
为了应对动态对象的问题,这些对象破坏了自监督训练目标中的静态场景假设,我们引入了全景引导的运动掩码,以从光度损失计算中屏蔽潜在的动态对象。图 2b 展示了运动掩码计算的概述。
首先,对上下文图像 IcI_cIc 进行模型的前向传递,以获得上下文图像的全景预测 。我们使用一个跟踪模块 来为三种全景预测 和获取一致的实例 ID。该模块的优点有两点:首先,它结合了基于外观的匹配和基于位置的匹配来实现实例跟踪;其次,该模块不需要一致实例 ID 的标注,这在实际应用中非常昂贵。
随后,将跟踪的全景分割预测根据预测的相机位姿和深度预测 D 变换到参考帧中。最后,计算所有段对应的动态对象(如汽车或行人)在变换和参考全景预测之间的交并比(IoU)。对于 IoU 低于阈值 T 的段,将其视为动态对象的一部分,并加入到运动掩码 中。我们在固定阈值 T=0.5 时获得了最佳结果。
此外,由于我们使用的是预测结果而不是真实分割图,初始预测包含大量噪声。因此,在前 k=1000 次训练迭代中,我们关闭运动掩码的计算,直到模型能够预测出合理的对象实例。
4.Experiment
4.1 实验结果
Cityscapes
表 1 展示了在 Cityscapes 数据集上的结果,并与当前最先进的方法进行了比较。表 1a 显示了与实时全景分割方法的比较,而表 1b 显示了与深度估计方法的比较。为了公平比较,我们报告了使用和不使用 Mapillary Vistas 预训练的结果,以及启用和不启用自动混合精度(分别表示为 FP16 和 FP32)的推理时间。
对于全景分割,MGNiceNet 在全景质量(PQ)方面优于所有其他实时方法。与我们之前的最先进方法 RT-K-Net 相比,在不使用额外数据时,PQ 提高了 1.5%;在使用 Mapillary Vistas 预训练时,提高了 3.8%。在运行时间方面,MGNiceNet 的运行时间为 42 毫秒,高于 RT-K-Net 的 32 毫秒。然而,由于 MGNiceNet 还执行了额外的自监督深度估计任务,因此计算开销可以忽略不计。与 MGNet 相比,MGNiceNet 的运行时间略高,但在精度方面的显著提升足以弥补更高的运行时间开销。MGNiceNet 与非实时全景分割方法的比较在本文补充材料中进行了说明。
对于深度估计,MGNiceNet 在使用 Mapillary Vistas 预训练时,在 RMSE 指标上优于所有其他方法。在不使用预训练的情况下,MGNiceNet 仍然比 MGNet 的 RMSE 指标低 1 米,并显著缩小了与监督方法 的差距,这些方法并不关注实时应用。
KITTI Eigen
表 2 展示了在 KITTI Eigen 分割上的结果,并与当前最先进的自监督深度估计方法进行了比较。MGNiceNet 大幅优于大多数方法 ,甚至超过了使用更复杂架构的 PackNet-SfM 。只有当前最先进的方法 MonoViT和 SQLdepth在大多数指标上略微优于 MGNiceNet。我们推测这是因为我们的方法专注于低延迟,而上述方法依赖于计算成本较高的层.
在推理时间比较中,这种差异更加明显。由于大多数方法未在论文中提供推理时间,我们使用作者的官方代码库(若可用)进行比较。MGNiceNet 在启用自动混合精度时的推理时间为 21 毫秒,比 SQLdepth 快约 75%,比 MonoViT 快 50%。因此,MGNiceNet 提供更优的精度-速度权衡。此外,MGNiceNet 还处理了额外的全景分割任务。与 MGNet 相比,我们观察到在 Cityscapes 和 KITTI 数据集上的结果类似,MGNet 在运行时间上略优于 MGNiceNet。本文补充材料中展示了 Cityscapes 和 KITTI 数据集的定性结果以及直接定性比较。
4.2 消融研究
多任务学习与单任务性能
我们通过分别去除深度估计或全景分割任务训练 MGNiceNet,与单任务基线进行了比较。正如表 3a 所示,我们的多任务方法在全景质量(PQ)方面表现相同,但在深度性能方面优于单任务基线。此外,我们的方法仅增加了极少的运行时间,却能够处理两个任务。我们认为这种改进的深度性能来源于我们的贡献,包括统一的 MGNiceNet 架构、自监督深度预测器以及全景引导的运动掩码策略。
损失平衡
我们比较了在不同深度损失权重 下训练的模型(表 3b)。如预期所示,深度估计性能随着 的增大而提高,但全景分割性能下降。因此,我们选择 ,在两个任务中实现了最佳性能。
运动掩码
我们通过训练不使用和使用所提运动掩码方法的模型,研究了全景引导运动掩码(第 3.9 节)的效果。表 3c 表明,加入全景引导运动掩码显著提高了深度估计性能,而全景质量几乎保持不变。图 3 展示了使用和不使用运动掩码方法训练的模型的深度预测结果。我们特别强调,即使未使用全景引导运动掩码的模型仍然使用 MonoDepth2的自动掩码策略,但这种策略在具有大量动态对象的数据集(如 Cityscapes)上表现不佳。
深度预测器的选择
我们比较了第 3.6 节中描述的自监督深度预测器与实例级深度预测器。实例级深度预测器使用深度掩码预测 和二值化的掩码预测 ,通过聚合 中 的所有像素生成深度预测。这种策略类似于 PolyphonicFormer,后者通过监督方式训练实例级深度预测。表 3d 表明,我们的自监督深度预测器在所有指标上优于实例级预测器。有趣的是,实例级预测器还会对全景分割性能产生负面影响。我们认为这是因为我们的方法缺乏具有真实深度标签的实例级监督。
局限性与未来工作
我们的方法针对快速推理速度下处理高分辨率图像进行了优化。如第 4.3 节所述,最新的最先进方法在某些情况下仍略优于我们的方法。在未来工作中,我们计划进一步提高性能,特别是在处理低分辨率输入图像(如 KITTI 数据集的图像)时。
结论
本文的主要贡献如下:
– 本文提出了MGNiceNet,这是一种单目几何场景理解的统一方法,扩展了最先进的实时全景分割方法RT-K-Net,通过明确的内核链接实现全景和深度内核间的结合。
– 本文提出了一种在全景掩码级别的逐箱深度表示,使用计算开销低的深度预测模块。
– 本文引入了一种基于跟踪实例的扭曲全景分割掩码的全景引导运动遮蔽技术,无需静态帧选择或视频全景注释。
– 本文在两个标准的自动驾驶基准数据集Cityscapes和KITTI上评估了本文的方法,并通过广泛的实验验证了本文贡献的有效性。
文章引用:MGNiceNet: Unified Monocular Geometric Scene Understanding
最后别忘了,帮忙点“在看”。
您的点赞,在看,是我创作的动力。
AiFighing是全网第一且唯一以代码、项目的形式讲解自动驾驶感知方向的关键技术。
长按扫描下面二维码,加入知识星球。