CVPR'2023 | Lite-Mono: 一种新的轻量级自监督单目深度估计方法

简介: CVPR'2023 | Lite-Mono: 一种新的轻量级自监督单目深度估计方法

640.png


Title: Lite-Mono: A Lightweight CNN and Transformer Architecture for Self-Supervised Monocular Depth Estimation

Paper: https://arxiv.org/pdf/2211.13202.pdf

Code: https://github.com/noahzn/Lite-Mono

导读

自监督单目深度估计近年来引起了人们的关注。设计轻量但有效的模型,使它们能够部署在边缘设备上是非常有趣的。许多现有的架构受益于使用heavier的backbones,为了深度性能而牺牲了模型的大小。在本文中,研究者使用一个轻量级的体系结构来实现了具有竞争力的结果。具体来说,论文研究了CNN和Transformer的有效组合,并设计了一个混合结构Lite-Mono。提出了一种连续扩张卷积(CDC)模块和一个局部-全局特征交互(LGFI)模块。前者用于提取丰富的多尺度局部特征,后者利用自注意机制将随机的全局信息编码到局部特征中。实验表明,论文的完整模型在精度上大大优于Monodepth2,模型参数减少了约80%。

动机

  • 由于缺乏大规模精确的ground truth深度数据集,从单目视频中寻找监督信号的自监督方法是有利的。
  • CNN中的卷积操作有一个局部接受域,不能捕获长期的全局信息,更深的主干或更复杂的架构导致更大的模型规模
  • 最近引入的Vision Transformer能够建模全局上下文进行单目深度估计,以获得更好的结果。然而,与CNN模型相比,Transformer中多头自注意力模块的昂贵计算阻碍了轻量级和快速推理模型的设计

贡献

本文提出了一个追求轻量级和高效的混合CNN和Transformer自监督单目深度估计模型。在该编码器的每个阶段,都采用了一个连续扩张卷积模块来捕获增强的多尺度局部特征。然后,论文使用一个局部-全局特征交互模块来计算多头注意力,并将全局上下文编码到特征中。为了降低计算复杂度,论文还计算了信道维数而不是空间维数上的交叉协方差注意。该方法的贡献可以分为三个方面:

  1. 论文提出了一种新的轻量级架构,称为Lite-mono,同时利用CNN和Transformer用于自监督单目深度估计。论文证明了它对模型大小和FLOPs的有效性。
  2. 与更大的模型相比,Lite-mono在KITTI数据集上显示出更高的精度。它以最少的可训练参数达到了最先进的水平。在Make3D数据集上进一步验证了该模型的泛化能力。论文还进行了额外的笑容实验来验证不同设计选择的有效性。
  3. 在Nvidia Titan XP和Jetson Xavier平台上测试了该方法的推理时间,证明了该方法在模型复杂性和推理速度之间的良好权衡

方法

640.png

Overview of the proposed Lite-Mono

上图显示了Lite-Mono的体系结构。它由一个encoder-decoder DepthNet和一个PoseNet组成。DepthNet估计输入图像的多尺度深度图,而PoseNet估计两个相邻帧之间的摄像机运动。然后,生成一个重建的目标图像,并计算损失以优化模型。

Low-computation global information

DepthNet

Depth encoder

表1 Three variants of our depth encoder

上图显示了本文提出的depth encoder的不同变体,Lite-Mono聚合了四个阶段的多尺度特征,意味着一个CDC块使用3×3内核大小来输出C通道,并重复N次

Consecutive Dilated Convolutions (CDC)

CDC & LGFI

浅层CNN的感受域非常有限,而使用扩张卷积有助于扩大感受域。如上图所示,通过叠加所提出的连续扩张卷积(CDC),网络能够在更大的区域内“观察”输入,而不引入额外的训练参数。

论文所提出的CDC模块利用扩张卷积来提取多尺度的局部特征,在每个阶段插入几个具有不同扩张率的连续扩张卷积,以实现足够的多尺度上下文聚合.

Local-Global Features Interaction (LGFI)

XCiT layer

论文选用Transformer进一步增强全局信息。但是原始的Transformer中的Attention是每个特征间做自相关,因此复杂度与特征数量的平方成正比,这样做会对使大图片显存消耗翻倍增加。论文所提出的局部-全局特征交互(LGFI)模块参照XCiT[1]的做法,不计算跨token的注意力,而是计算跨特征通道的注意力,其中交互基于KQ之间的交叉协方差矩阵,称为互协方差注意力(XCA,cross-covariance attention):

如上面的LGFI示意图所示,与原始的自注意力相比,它将空间复杂度从降低到,时间复杂度从降低到到,其中为注意头数量。

Depth decoder

Depth encoder and decoder

深度解码器部分,论文使用双线性上采样来增加空间维度,并使用卷积层来连接来自编码器的三个阶段的特征。每个上采样块跟着一个预测头,分别以全分辨率、 和的分辨率输出逆深度图。

PoseNet

论文使用一个预先训练过的ResNet18被用作姿态编码器,并且它接收一对彩色图像作为输入。利用具有四个卷积层的姿态解码器来估计相邻图像之间对应的6自由度相对姿态

Self-supervised learning

论文使用单目深度估计任务中常见的方法:将深度估计任务转换为图像重建的任务,学习目标被建模为最小化目标图像与重构目标图像之间的图像重建损失,以及约束在预测深度图上的边缘感知平滑损失。

Image reconstruction loss

光度重投影损失的定义为:

上面公式相当于两个相机坐标系下的转换,即源图像(一般为前后帧)先用内参的逆转换到它的相机坐标系,再用旋转平移矩阵转到目标图像相机坐标系,再用内参转到目标图像的图像坐标系得到重构的目标图像,计算目标图像重构目标图像之间的损失:

Edge-aware smoothness loss

为了平滑生成的逆深度图,论文计算一个边缘感知的平滑损失

其中表示mean-normalized的逆深度。总损失可表示为:

其中s为深度解码器输出的不同比例输出。

实验

KITTI results

表2 comparison with other methods on KITTI

论文将所提出的框架与其他模型尺寸小于35M的代表性方法在KITTI benchmark进行了比较,结果如表2所示。完整模型的Lite-Mono效果最好,论文的其他两个较小的模型也取得了令人满意的结果。

Qualitative results on KITTI

上图显示,所提出的Lite-Mono取得了令人满意的结果,即使是在移动物体靠近相机的具有挑战性的图像上(列1)。

Make3D results

表3 comparison with other methods on Make3D

论文还在Make3D数据集上进行了评估,以显示所提方法在不同室外场景中的泛化能力。表3显示了Lite-Mono与其他三种方法的比较,其中Lite-Mono表现最好

Qualitative results on the Make3D dataset

上图显示了一些定性的结果。由于所提出的特征提取模块,Lite-Mono能够建模局部和全局上下文,并感知不同大小的对象。

Complexity and speed evaluation

表4 Model complexity and speed evaluation

论文在Nvidia Titan XP和Jetson Xavier上对该模型的参数、FLOPs(浮点运算)和推理时间进行了评估,并与Monodepth2和R-MSFM进行了比较。表4显示,Lite-Mono设计在模型尺寸和速度之间有很好的平衡。虽然R-MSFM是一个轻量级的模型,但它是最慢的。论文的模型还可以在Jetson Xavier快速推理,这使得将它们部署在边缘设备上成为可能。

消融实验

表5 Ablation study on model architectures

论文删除或调整了网络中的一些模块来进行消融实验,并在KITTI上报告了它们的结果,如表5所示。

总结

本文提出了一种新的轻量级单目自监督单目深度估计方法。设计了一种混合的    架构来建模多尺度增强局部特征全局上下文信息。在8个KITTI数据集上的实验结果证明了该方法的优越性。通过在提出的CDC块中设置优化的扩张率,并插入LGFI模块来获得局部-全局特征相关性,Lite-Mono可以感知不同尺度的物体,甚至是对靠近摄像机的移动物体。论文还验证了该模型在Make3D数据集上的泛化能力。此外,Lite-Mono在模型复杂性和推理速度之间实现了良好的权衡

目录
相关文章
|
存储 数据采集 传感器
一文多图搞懂KITTI数据集下载及解析
一文多图搞懂KITTI数据集下载及解析
15664 3
一文多图搞懂KITTI数据集下载及解析
|
开发工具 git
git,github,gitlab,码云的区别
码云https://gitee.com/enterprises?from=tg-6-7是开源中国社区推出的基于git的代码托管服务平台,基于gitlab。目前招商银行,中国科学技术大学,CSDN等多家企业和机构都在使用码云平台
574 0
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】MSFN(Multi-Scale Feed-Forward Network):多尺度前馈网络
**HCANet: 高光谱图像去噪新方法**\n混合卷积与注意力网络(Hybrid Convolutional and Attention Network)是针对HSI去噪的创新模型,结合CNN和Transformer,强化全局与局部特征。它使用卷积注意力融合模块捕获长距离依赖和局部光谱相关性,多尺度前馈网络提升多尺度信息聚合。代码可在[GitHub](https://github.com/summitgao/HCANet)获取。
|
机器学习/深度学习 计算机视觉 文件存储
【轻量化网络系列(3)】MobileNetV3论文超详细解读(翻译 +学习笔记+代码实现)
【轻量化网络系列(3)】MobileNetV3论文超详细解读(翻译 +学习笔记+代码实现)
6252 0
【轻量化网络系列(3)】MobileNetV3论文超详细解读(翻译 +学习笔记+代码实现)
|
机器学习/深度学习 数据采集
深度学习之脑电图信号解码
基于深度学习的脑电图(EEG)信号解码是一项重要的研究领域,旨在从脑电图信号中提取有用信息,用于脑-机接口、情绪识别、疾病诊断等应用。
435 5
|
安全
qt.qpa.xcb: could not connect to display 问题解决
【5月更文挑战第16天】qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. 问题解决
7375 1
|
计算机视觉 Python
【Python】已解决:ModuleNotFoundError: No module named ‘cv2’
【Python】已解决:ModuleNotFoundError: No module named ‘cv2’
6432 0
|
机器学习/深度学习 算法
全连接层那些事(Fully Connected Layer)
全连接层那些事(Fully Connected Layer)
|
传感器 机器人 C++
ROS 2机器人编程实战:基于现代C++和Python 3实现简单机器人项目
ROS 2机器人编程实战:基于现代C++和Python 3实现简单机器人项目
1496 0
|
机器学习/深度学习
原始SPP及在YOLO中的SPP/SPPF对比详解
原始SPP及在YOLO中的SPP/SPPF对比详解
1302 0