专栏名称: 智驾实验室
欢迎关注“智驾实验室”!本公众号专注于自动驾驶领域,为您带来世界模型的最新研究,多模态大模型的深入解析,以及多模态大模型在自动驾驶领域的应用与落地。在这里,您可以了解到自动驾驶技术的最新动态,洞察行业趋势,与我们一起探索未来出行的无限可能。
目录
相关文章推荐
51好读  ›  专栏  ›  智驾实验室

500帧/秒 !SmallDepth 基于稀疏性的高效场景深度预测模型,性能SOTA !

智驾实验室  · 公众号  ·  · 2024-08-25 08:00

正文

ADAS Laboratory




点击上方 蓝字 关注 智驾实验室

加入【 智驾实验室 】交流群, 获取更多内容和资料

大多数现有方法通常依赖于复杂的模型来高精度地预测场景深度,这导致推理速度缓慢,不利于部署。为了更好地平衡精度和速度,作者首先基于稀疏性设计了SmallDepth。

其次,在推理时复杂度相同的情况下,为了增强SmallDepth在训练过程中的特征表示能力,作者提出了一个等价变换模块(ETM)。

第三,为了在固定SmallDepth的情况下提高每一层感知不同上下文信息的能力,并提高SmallDepth对左右方向和光照变化的鲁棒性,作者提出了金字塔损失。

第四,为了进一步提高SmallDepth的准确性,作者使用了所提出的函数近似损失(APX)将之前通过优化HQDec以解决某些区域网格伪影而得到的预训练HQDecv2的知识转移到SmallDepth中。

广泛的实验表明,每个提出的组件都提高了SmallDepth的精度,同时没有改变SmallDepth在推理过程中的复杂度,并且在KITTI上的方法以超过500帧每秒的推理速度和大约2M个参数取得了最先进的结果。

1 Introduction

场景深度不仅在机器人学[1],自动驾驶[2]和增强现实中起着重要作用,也可以作为辅助信息帮助改进其他任务(例如,目标检测[3, 4])。尽管现有方法在密集深度估计中已经取得了竞争性的性能,但这些方法依赖于大规模的逐像素密集深度标注的可用性,甚至需要立体视频[5]序列进行网络训练。

然而,大量高质量标注数据获取成本高昂且不切实际。相反,自监督的单目深度估计方法越来越受到研究者的青睐。为了提高自监督单目深度估计的准确性,更多的先验知识,多帧输入,或语义信息被采用以为更新模型参数提供更准确的指导。

还设计了更先进的网络架构以提高DepthNet的特征表示能力。

然而,现有方法仍有许多不足之处。

首先,在大多数先前的工作中,通常利用复杂度高的DepthNet以获得更高的准确度,导致在推理时速度缓慢。

尽管也有少量工作[43, 44, 45, 46]设计了轻量级的DepthNet以提高推理速度,但这伴随着大幅减少特征图或阶段的数量。为此,作者基于稀疏性设计了SmallDepth以更好地平衡精度和速度。

第二,在训练和推理过程中,与现有工作一样,采用了相同的网络架构,导致在相同复杂度条件下训练时模型特征表示能力受限。为此,作者提出了ETM。

第三,在训练期间的每次迭代更新中,上述方法只能使用源图像中包含的信息来计算监督信号,以指导模型权重的更新。为此,作者提出了金字塔损失。

第四,尽管之前的工作[31]已经取得了优异的性能,但在预测深度图的某些区域存在网格状伪影。为此,作者改进了HQDec[31],产生了一个新的版本,名为HQDecv2。

最后,(a)在之前的工作[47, 48, 27, 49, 50]中,仅将伪深度作为轻量级模型的监督信号。(b)在上述工作中,要么默认假设基于自监督学习预训练的大型模型生成的伪深度是正确的[27],要么仅过滤掉由遮挡区域引起的错误预测深度图[47],要么通过使用地面姿态处理由反射表面引起的错误预测[49],要么使用基于地面真相的预训练网络生成伪深度[48]。为此,作者提出了APX。

具体来说,根据公式(1)对模型复杂度指标影响因素的分析,作者重新设计了DepthNet的三个主要组成部分(下采样、特征编码和上采样),并获得了SmallDepth。其次,在提出的ETM中,作者在训练期间并行使用不同形状的随机丢弃滤波器来模拟不同的上下文信息,而在推理期间仅使用单一形状的滤波器来传播信息流。

第三,作者使用提出的金字塔损失来:

(a)强制固定模型架构的每一层一致地感知不同的上下文信息;

(b)通过同时测量源图像及其相应变换(例如,缩放、翻转、色彩增强)图像的光度差异,并强制它们之间对应的特征/深度图的一致性,提高模型对左右和光照变化的鲁棒性。

第四,作者将原来的模块[31]替换为相应的改进版本(见第三节-D),以解决网格状伪影并降低复杂性。最后,为了进一步提高SmallDepth的准确性,作者使用小模型和大模型(分别)输出的掩蔽概率分布差异(例如,特征/视差图)作为额外的监督信号,引导小模型(例如,SmallDepth)的更新,使其分布特征与大型模型(例如,HQDecv2)相似。

作者的主要贡献总结如下:

  1. 为了更好地平衡精确度和速度,作者基于稀疏性设计了SmallDepth。
  2. 为了在不改变模型推理过程中的复杂性的情况下提高模型的特征表达能力,作者提出了ETM。
  3. 为了在固定SmallDepth的情况下提高每一层感知不同上下文信息的能力,并提高SmallDepth对左右方向和光照变化的鲁棒性,作者提出了金字塔损失。
  4. 为了进一步提高SmallDepth的准确性,作者利用所提出的APX将预训练的HQDecv2中的知识转移到SmallDepth中,该HQDecv2是通过优化之前的HQDec来处理某些区域中的网格伪影而得到的。

II Related work

Supervised Depth Estimation

监督深度估计算法依赖于手动标记的稀疏3D点云来训练DepthNet。2014年,Eigen等人[6]首次通过堆叠粗尺度网络和细尺度网络从单张图像预测深度图。随后,深度估计被表述为深度连续条件随机场(CRFs)的学习问题,但忽略了几何先验[7]。为了简化CRFs,提出了神经窗口全连接CRFs[8]以减少计算复杂性。为了消除大深度值对训练过程的影响,通过在对数空间中将连续深度离散化为许多区间[9],或者利用带上下文信息的序数回归来捕捉精细深度特征[51],将深度估计任务视为序数回归问题。为了建模更长的上下文信息范围,还使用了注意力机制[52],特别是视觉 Transformer (ViT)[53],以实现改进的深度估计[10, 11]。例如,Ranft等人[10]使用ViT替代卷积神经网络(CNNs)作为编码器,以获得更细粒度和更全局一致性的预测,取得了实质性改进。Bhat等人[11]通过使用基于 Transformer 的架构块替换将深度范围划分为固定数量区间的方案[9]来计算自适应区间,从而得到全局深度图。

此外,还利用了各种先验知识(例如,平面先验[2, 12], Heatmap 像[13],多线索融合[14],地面先验[15],虚拟法线方向[16])或多任务学习[17]来改进预测的深度。

Self-supervised Depth Estimation

尽管监督模型取得了优异的性能,但它们并不普遍适用,且严重依赖于获得的 GT 数据。此外,数据标注过程通常既缓慢又昂贵。获得的标注还受到结构伪影的影响,尤其是在反射性、透明性和暗表面或输出无限值的非反射性传感器存在时。所有这些挑战都强烈激励作者以无监督的方式推理深度。基于光度差异,深度图首次在无监督的方式下从单一视角成功恢复[25],但需要知道相机姿态。为了解除这一限制,周等[26]首次提出了一种完全无监督的单目估计方法。然而,这些估计的深度图远不如基于监督方法得到的深度图。

为了进一步提高基于无监督方案的深度图质量,挖掘了更多的先验知识。例如,Bian等[19]采用了几何一致性约束,明确地加强不同样本之间的尺度一致性。Godard等[18]利用自动 Mask 让网络忽略与相机以相同速度移动的物体。Wang等[20]利用双向相机流处理动态物体和遮挡,并采用特征感知损失来增强DepthNet在无需增加开销的情况下感知无纹理区域的能力。Bello等[21]通过置信度引导的数据增强进一步细化了估计的深度图。此外,还考虑了垂直面和地面平面[22],以获得地面区域更平滑的深度,并协助识别可行驶区域。与[21]相比,Bangunharcana等[23]利用对极几何约束迭代地细化估计的深度图。He等[24]通过显式学习源图像和增强图像之间的尺度不变性,提高了对不同分辨率的鲁棒性。

与监督方法类似,更先进的DepthNets也被设计出来。例如,设计不同 Level 的低层和高层特征之间的密集连接方案,以获得具有锐利细节的深度图。引入了注意力机制/ViT来提高DepthNet的长距离建模能力。为了减少下采样过程造成的信息丢失并恢复重要的空间信息,开发了打包-解包块[28]和基于注意力的采样模块[31]。

与[18, 19, 20]不同,为了明确处理动态物体和遮挡,引入了附加子网络(例如,分割网络[33, 34], Mask 网络[35])。Wang等[36]没有利用这些方法来处理动态场景,而是利用一个(即判别器)来强制真实视图和重建视图之间的潜在表示一致性,从而产生准确的深度和自我运动估计。

此外,还利用了多帧或语义信息来获得改进的深度图。

Lightweight Model for Depth Estimation

尽管基于深度学习的深度估计性能在近年来得到了显著提升,但大多数方法存在推理速度慢和复杂度高的缺点,这使得它们难以在现实场景中部署。

为了应对这些挑战,轻量级模型吸引了研究者的关注。为了更好地平衡可用资源和执行时间,Poggi等人[43]设计了一个小型的金字塔编码器,通过减少特征图的数量以牺牲多个解码器为代价,旨在减少内存占用和运行时间,同时不降低整体准确性。

基于[43],Peluso等人[44]通过缩放分辨率并使用更浅的金字塔架构来最大化节省资源,以满足微控制器的需求。尽管其速度提高了,但其准确性过低。随后,合理地将注意力机制与CNN结合,以更好地平衡速度和精度[54, 45]。例如,直接将较小卷积核与较少的 Transformer 块结合,以降低计算复杂度。

Knowledge Distillation for Depth Estimation

为了在不增加复杂性的情况下进一步提升小模型的性能,作者采用了基于知识蒸馏的方案,将大型模型中的知识(具有高精度但推理速度慢)转移到小型模型中(精度较低但推理速度快),从而提高了准确度。Lyu等人[27]直接使用高性能网络获得的伪深度来训练轻量级模型。基于由监督训练生成的伪深度数据,Sun等人通过将任意两个像素之间的排序关系建模为动态和静态区域之间估计深度的远近关系,来处理动态区域。Petrovai等人[47]直接利用预训练模型和真实相机高度获得的绝对伪深度来训练更轻量级的网络。为了在不增加计算成本的情况下提高反射表面的深度预测精度,Shi等人[49]利用由预训练模型预测的深度图和基于真实姿态的投影深度图融合生成的伪标签作为监督信号来训练网络。与不同,Li等人利用自我演化的伪标签,这些标签可以通过循环迭代的形式迭代更新,逐步提高自监督单目深度估计的性能。

然而,上述方法在训练网络时需要真实信息,辅助网络,语义信息,或者在推理过程中甚至需要多帧输入。更重要的是,上述方法要么复杂性高,导致推理速度慢,要么通过大幅减少特征图或阶段数量来提高推理速度,导致深度估计精度低。

其次,在上述方法中,在训练和推理期间使用了相同的网络架构,在相同复杂度的推理条件下,模型在训练期间的特征表示能力受限。

第三,在训练期间的每次迭代更新中,上述方法只采用了从源样本计算出的监督信号来指导模型权重的更新。第四,尽管之前的工作[31]取得了优异的性能,但在预测深度图的某些区域存在网格状伪影。最终,(a)在之前的工作中仅将伪深度作为轻量级模型的监督信号。(b)默认认为伪深度是正确的[27],只过滤由遮挡区域引起的错误预测深度图[47],由反射表面引起的错误预测通过使用地面姿态处理[49],或使用基于真实值的预训练网络生成伪深度[48]。

为了应对这些挑战,在本文中,作者(a)基于稀疏性设计了SmallDepth,(b)提出了ETM,(c)提出了金字塔损失,(d)改进了HQDec,以及(e)提出了APX。

III Method

SmallDepth Design

给定一个卷积层,其复杂度如公式(1)所示,其中 分别是输入和输出通道的滤波器数量, 是输入和输出特征图的高度和宽度, 指示滤波器的高度和宽度,而 是组数。

(1b)

根据公式(1),通道稀疏连接,使用较小的核以及减少网络宽度可以帮助降低模型复杂度。然而,通道稀疏连接阻碍了不同通道之间的信息交互,减小滤波器尺寸不利于建模像素上下文信息,减少网络宽度可能会降低特征的多样性。为了更好地平衡准确性和复杂度,作者基于稀疏性设计了SmallDepth。

稀疏下采样与大多数DepthNets [26, 18, 29, 34, 19]中使用的标准下采样操作相比,后者同时建模像素上下文信息以及不同通道之间的依赖关系,作者采用了分而治之的策略,在这种策略中,这两种信息分别被编码然后融合在一起再传递到下一层,如公式(2)所示。去除了不同通道之间的连接,同时通过利用 提取像素上下文信息。在通道交互中,只允许每个通道中特定距离间隔的像素连接,与标准步距下采样操作相比,参数和FLOPs可以减少 倍。

其中 表示核大小和组数大于/等于一的滤波器, 是在公式(4)中具有下降率 的下降函数。

双尺度稀疏残差模块尽管近年来提出的各种深度网络提高了深度估计的准确性,但实际推理速度[31]却比算法[18]慢,这可以归因于使用了高效的基本块[57]。然而,相应的参数和计算复杂度相对较高。为了设计一个更轻量级、更快速的模型,作者重新审视了网络架构[18, 57],并提出了双尺度稀疏残差模块。

与[58, 18]中直接堆叠两个密集滤波器形成基本残差块[18]的网络不同,作者直接堆叠更多块以增加模型的感受野和特征提取能力[58, 18],并通过减少网络宽度来控制模型的参数[58]。

作者通过增加宽度减少深度的策略设计特征编码模块,以充分利用GPU的并行计算能力。

具体来说,对于给定的特征图 ,作者首先通过一个学习函数 的滤波器将其转换到高维空间,根据公式(3a)。一方面,作者通过消除了正方形滤波器通道间连接的稀疏通道函数 来模拟每个通道的局部上下文信息,如公式(3b)所示。与密集滤波器相比,参数数量和FLOPs可以减少 倍。另一方面,为了在不显著增加复杂性的情况下增加感受野,作者使用与 相同的滤波器形状和复杂度(例如,参数、FLOPs、MAC)的稀疏通道滤波器,通过建立当前像素与非相邻周围像素之间的关系,来模拟比 更远的信息,如公式(3c)所示。为了减少因切断通道间连接而造成的信息损失,作者在通道转换之前,将包含在每个通道中像素与其他通道像素相关联的 的信息与 进行融合,它们以丢弃率 随机丢弃,以增加训练期间模型的鲁棒性,如公式(3d)所示。

中间变量

其中 、pb、 分别表示伯努利采样、批量维度上的丢弃概率、训练期间的总迭代次数和最大丢弃概率。

稀疏上采样模块 在先前的作品[18, 20]中,使用密集的正方形滤波器将高级信息与低级信息融合,并在执行插值操作之前获得期望的通道数,然后细化插值后的特征图。根据公式(1),复杂度与滤波器大小正相关,与组数负相关。在一定的参数数量、组数和滤波器大小的条件下,当 时,MAC 有最小值,如公式(7)所示,根据均值不等式。因此,作者首先通过使用最小的滤波器将求和后的特征图转换为期望的通道数,然后通过使用 关注像素上下文信息。此外,插值后的特征图首先通过 (例如, 滤波器)在通道间连接,然后通过 进行细化。

SmallDepth 为了进一步减少推理时间,作者没有在编码和解码特征图之间建立密集连接[31],而是仅在编码的对应解码特征图之间建立连接,如公式(10)所示,这些解码特征图与编码的特征图具有相同的分辨率,以更好地平衡速度和准确度。

其中 表示在第 阶段的编码/解码特征图。 是第III-A0c节中的稀疏上采样模块。 是第III-A0b节中在第 阶段的 的数量。 是第III-A0a节中的稀疏下采样模块。 表示由间隔为 个元素之间的核元素滤波器组成的视差回归模块,其后跟一个sigmoid函数。

Equivalent Transformation

给定特征图 中的像素 ,可以通过使用不同形状的滤波器来关注不同的上下文信息,根据公式(13)获得具有不同尺度信息的相应输出像素。

其中 , , , , 且 对应于 , 分别表示第 个形状的滤波器的高度和宽度。 表示不同形状的滤波器的总数。 表示向下/向上取整。 表示这些滤波器中的最大高度/宽度。

基于多形状滤波器的上述策略,可以同时融合不同的上下文信息,通常用于提高模型的性能。然而,与单一形状的滤波器相比,这种结构有许多缺点:

a) 参数数量、FLOPs和MAC都较大。b) 推理速度较慢。c) 内存占用的峰值较大。

为了既享受多形状滤波器带来的性能提升,又保持单一形状滤波器的速度更快、复杂度更低的优势,作者在训练期间并行使用多形状滤波器来模拟不同的上下文信息,而在推理期间仅使用单一形状滤波器来传播信息流,其高度/宽度是多形状滤波器的最大高度/宽度,其权重是多形状滤波器的等效权重。为了模拟更多形状的滤波器,作者提出了名为dropconv的丢弃卷积,其中权重在元素 Level 被丢弃,如公式(14)所示。

其中 表示元素级乘积。 分别是输入/输出通道的数量和滤波器的高度/宽度。 表示通过伯努利抽样在 空间中获得的随机张量,其丢弃概率

不同于公式(13),在训练期间,作者随机丢弃第 个( )分支的滤波器的权重,每个分支对应于一个形状的滤波器,其概率为 ,如公式(15a)所示。t=0的分支对应于恒等映射,可以看作是中心位置权重为1,其余位置为0的常数滤波器。在 个分支上使用了 的滤波器,而 分支在分支 Level 按公式(4)的 丢弃,在元素 Level 按(14)的 丢弃,而 个分支的滤波器用作标准滤波器。为了便于描述,权重矩阵与特征图中的相应区域之积定义为公式(15c)所示。

(15b)

其中 分别表示学习到的参数和估计的方差。 表示t分支上的滤波器权重通过公式(4)中的 随机丢弃。

基于加法准则和乘法分布律,公式(15a)可以重写为公式(16)。因此,不仅因为每个滤波器以不同的方向更新其权重,如公式(17)所示,保证了不同滤波器提取信息的多样性,而且因为特征图的大小远大于滤波器的大小,从而降低了训练成本。

其中 表示学习率。 表示通过填充零将 对齐得到的权重。

训练完成后,可以根据公式(18)从学习到的权重 得到相应的等效权重 。在推理过程中,只使用了多形状滤波器中的最大滤波器,如公式(19)所示,这比多形状滤波器更快,复杂度更低,因为信息在单一形状滤波器中只向前传播一次。

Pyramid Loss

给定一个已设计好的网络和输入图像







请到「今天看啥」查看全文