点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
作者:知乎博主LiteAI
整理编辑:深蓝AI
大家都知道,Transformer灵活且表示能力强大,但训练和推理开销更大,因此现在很多工作都在探索实时或slimming方法。本文探索了单图像深度估计应用中的Transformer实时设计方法。
SideRT:用于单幅图像深度估计的实时纯Transformer结构
文章标题:
SideRT: A Real-time Pure Transformer Architecture for Single Image Depth Estimation
作者及团队:
Chang Shu , Ziming Chen , Lei Chen , Kuan Ma , Minghui Wang and Haibing Ren
(Meituan Group)
一句话结论:
本文提出了两种简单而有效的机制,跨尺度注意力(CSA)、多尺度细化(MSR)来获得更好的全局上下文。基于这些技术,我们构建了一个轻量级的纯transformer架构,其中包含一些可学习的参数,而不需要卷积。我们的模型显示了强大的上下文建模能力,在两个具有挑战性的数据集上实现了SOTA性能。这项工作表明,纯Transformer架构能够在精度和运行时间效率之间实现良好的平衡。这些发现将为未来的研究提供见解,鼓励研究人员更加关注开发用于实际应用的实时Transformer架构。
以下为文章详细解读:
摘要
由于上下文建模对于从一幅图像中估计深度至关重要,研究人员投入了巨大的精力来获取全局上下文。许多全局操作是为传统的基于CNN的体系结构设计的,以克服卷积的局部性。注意力机制或transformer(最初设计用于捕获长距离依赖关系)可能是更好的选择,但通常会使结构复杂化,并可能导致推理速度降低。在本文工作中,我们提出了一种称为SideRT的纯Transformer架构,它可以实时实现出色的预测。为了更好地捕捉全局上下文,跨尺度注意力(CSA)和多尺度细化(MSR)模块协同工作,以有效地融合不同尺度的特征。CSA模块侧重于融合具有高语义相似性的特征,而MSR模块旨在融合相应位置的特征。这两个模块包含了一些可学习的参数,没有卷积,在此基础上建立了一个轻量级但有效的模型。这种结构实现了SOTA实时性能(51.3 FPS),并且在较小的主干Swin-T(83.1 FPS)上实现了合理的性能下降,从而变得更快。此外,它的性能大大超过了之前的SOTA水平,在KITTI和纽约大学分别提高了6.9%和9.7%。据我们所知,这是第一个证明基于Transformer的网络可以在单图像深度估计领域实时获得SOTA性能的作品。代码将很快发布。
1 引言
单图像深度估计(SIDE)在三维几何图形绘制中起着关键作用,三维几何图形具有广泛的实际应用,包括自动驾驶、机器人导航和增强现实。SIDE的主要困难在于:
与其他三维视觉问题不同,由于只能从单幅图像中挖掘三维几何线索,因此缺少多个视图来建立几何关系。
为了解决这一非正定问题,提取全局上下文的能力受到了极大的关注,这在很大程度上依赖于现代深层神经网络强大的学习能力。基于CNN的结构曾经主导着SIDE领域,由于卷积的内在复杂性,全局上下文只能在bottleneck附近获得。全局上下分通常在低分辨率特征图中保持。连续的卷积运算后,3D结构的基本线索(如局部细节)就会丢失。为了获得高分辨率的全局上下分,SIDE领域有一种趋势,即通过增大感受野、特征金字塔、空间金字塔池化和空洞卷积实现。
提取全局上下文的另一个范例是利用注意力机制的长期依赖建模能力。注意力模块通过估计所有位置的匹配分数并调整相应的嵌入,计算每个位置的响应,从而保证全局感受野。以注意力为主要组成部分,最初为自然语言处理设计的Transformer在计算机视觉领域的应用越来越多。由于能够建立注意力机制和Transformer的长距离依赖关系,并将其集成到全卷结构中,所以其能力非常强大,极大地推动了SOTA性能。
由于注意力机制通常很耗费时间和内存,因此在使用Transformer或注意力机制时,推理速度必须受到影响。许多工作都是为了实现更高效的结构,但类似的工作很少出现在SIDE领域。
本文探讨了在使用Transformer和注意力机制时,如何实现实时SOTA性能。我们介绍了一种基于编解码器结构的SIDE实时Transformer(SideRT)。SwinTransformer用作编码器,该解码器基于一种称为跨尺度注意力(CSA)的新型注意力机制和多尺度细化模块(MSR)。CSA和MSR模块都满足全局上下文属性,需要协同工作。在CSA模块中,根据语义相似性定义的注意力分数,更精细的分辨率特征会被更粗糙的分辨率特征所增强。在MSR模型中,更粗糙的分辨率特征被合并到空间位置上相应的更精细分辨率的特征中。由于所提出的模块使用了一些可学习的参数,因此不同尺度的特征图以适当的计算开销融合到一起。
基于CSA和MSR模块,我们构建了一个轻量级解码器,该解码器渐进地进行分层深度优化,以从粗到细的方式获得最终预测。此外,又了多阶段监督(MSS),以简化训练过程。
如图1所示,本文提出的SideRT以51.3 FPS的速度显著优于之前的SOTA算法。它将KITTI的AbsRel指标从0.058改进到0.054,NYU的AbsRel指标从0.103改进到0.093。此外,SideRT在KITTI上可以达到0.060 AbsRel,以较小的主干Swin-T在NYU上可以达到0.124 AbsRel,速度分别为83.1 FPS和84.4 FPS。据我们所知,这是首次证明基于Transformer的网络可以在单图像深度估计领域实现实时SOTA性能。
2 相关工作
SIDE是一项用于3D场景理解的视觉任务。由于单视图中3D映射的模糊性,SIDE是非正定的。然而,在深入学习的帮助下,SIDE取得了显著的进展。
基于CNN的方法。Eigen等人首先将CNN引入SIDE任务,随后的研究人员引入了更强大的网络,如ResNet和DenseNet,用于深度估计。他们目的使得网络更好地了解全局上下分,这有助于模型理解图像场景的深度分布,并得出更可靠的推断。许多全局操作,如空洞空间金字塔池模块(ASPP)、空间金字塔池化和特征金字塔被用于扩大感受野。
基于注意力的方法。注意力机制可以在所有像素之间建立关联,从而克服建立长期依赖关系的问题,这种能力在上下文知识提取方面受到了SIDE研究人员的青睐。Lee等人利用注意力机制对patch进行特征学习,以获得更高的预测精度。Xu等人设计了通道注意力和空间注意力模块,以进一步改善高层语义特征和底层空间特征。Huynh等人探索建立像素关联的自注意力机制,并将此信息视为深度先验信息。Aich等人、Hao等人应用注意力机制融合多层次特征。Jiao等人将重点放在了深度预测数据的分布上,设计了注意力驱动的loss,以改进长期深度估计预测的质量。
基于Transformer的方法。Transformer首次应用于NLP领域,是一种主要基于自注意力机制的深度神经网络。由于其强大的表现能力,研究人员正在寻求将transformer应用于SIDE任务。Yang等人将ViT架构引入该领域,以补偿卷积的固有局部性。Ranftl等人利用ViT代替卷积网络作为主干,并证明基于ViT的编码器比基于卷积的编码器更有效。Bhat等人利用ViT对场景信息进行全局处理,然后学习深度范围的自适应划分。
与之前使用全卷积网络或将CNN与Transformer或注意力机制相结合的工作不同,我们探索了构建无卷积结构的可能性。此外,我们证明,即使不使用卷积,也可以实现SOTA技术;我们还证明,即使使用像Swin-L这样的重主干,我们的模型仍然可以实时运行。
3 本文方法
在本节中,我们首先给出了网络的总体框架,然后详细介绍了我们网络的三个主要组成部分,即跨尺度注意力、多尺度细化和多阶段监督。图2展示了我们的SideRT架构。
3.1 概述
我们提出的SideRT有一个简单但高效的编码器和解码器架构,可以从单幅图像预测深度。我们采用Swin Transformers作为主干,每张图像被分成几个4×4的非重叠patch。该patch与相对位置嵌入一起由线性层映射嵌入,结果将由一系列基于移位窗口的Transformer块处理。解码期间将使用所有四个阶段的特征图。
解码器的输入是一组四个阶段的多尺度特征图:(I)阶段1,H/4×W/4×C,(II)阶段2,H/8×W/8×2C,(III)阶段3,H/16×W/16×4C和(IV)第4阶段,H/32×W/32×8C。HW分别表示输入图像的高度和宽度,C表示阶段1的特征通道数。与标准特征金字塔类似,解码器以从粗到精的方式逐步融合特征映射图。我们的解码器由两个基本模块组成:跨尺度注意力模块和多尺度细化模块(即图2中的CSA和MSR模块)。为了获得全局上下文,CSA模块的目标是在语义相似性的指导下融合特征图,而MSR模块的目标是根据空间对应关系融合特征图。融合操作以从粗到精的方式进行,以获得最终预测,从而保持与输入图像相同的分辨率。
3.2 跨尺度注意力
我们提出的CSA模块由两部分组成:一个线性层,用于将每个特征映射到相同数量的通道;一个基于注意力的融合模块,用于根据语义相似性从相邻尺度融合特征图。将输入特征图表示为
对于传统的基于CNN的方法,全局上下文信息只存在于编码器bottleneck附近,在解码器的分层上采样过程中会逐渐减弱。与它们不同的是,该CSA模块能够通过计算整个特征图的注意力分数
3.3 多尺度细化
一些多尺度精化(MSR)模块以自上而下的层级金字塔模式协同工作。来自更高MSR金字塔级别的更粗分辨率特征图和来自更低CSA金字塔级别的更精细分辨率特征图被送入MSR模块。MSR模块在低层语义的帮助下输出了一个细化的特征图,更准确地定位了CSA金字塔中的特征图。MSR模块的输出特征图和来自较低CSA特征金字塔层的下一个更精细分辨率特征图将被送入下一个MSR模块,直到生成最终特征图。总之,整个细化过程是以从粗到精的方式进行迭代的。
每个多尺度细化模块包括三个部分:从MSR金字塔的粗分辨率特征图上采样,从CSA金字塔上采样得到的特征图和精细分辨率特征图之间的元素添加;以及两个MLP层,以减少上采样的混叠效应,并在每个尺度生成深度图;最后两个MSR模块叠加,以生成具有输入分辨率的最终结果。特别是,与其他MSR模块不同,它们不接收来自CSA模块的输出。
与CSA模块根据语义相似性融合特征的融合方式不同,MSR模块利用上采样将特征与相应的空间位置融合。此外,MLP层的引入有助于信息全局流动。
3.4 多阶段监督
为了简化整个结构早期阶段的训练,我们提出了一个多阶段监督(MSS)策略来监督训练过程。在每个阶段,计算预测与相应GT之间的损失。最后,将多级损失加权相加。
由于3D传感器的局限性,近距离的深度数据密集,而远距离的深度数据非常稀疏。为了解决这个不平衡问题,我们采用了Song等人中引入的平方根损失函数。该损失计算了预测深度值和log空间GT之间的差异,如下所示:
4 实验
首先,我们将SideRT应用于两个具有挑战性的数据集:KITTI和NYU。对于这两个数据集,我们都表明,SideRT能够以更快的速度显著优于以前的SOTA方法。在本节的最后,我们对不同的组件进行全面的消融实验和详细的可视化,以验证我们方法的有效性。
4.2 基准数据集
两个流行的数据集(KITTI和NYU)用于性能评估。KITTI数据集包含自动驾驶场景中采集的道路环境,采集图像的分辨率为1242×375像素。我们采用Eigen等人引入的拆分策略进行性能比较。测试集包含29个场景的697幅图像,训练集包含32个场景的23488幅图像。预测深度的最大值为80米。
NYU数据集包含由微软Kinect摄像头获得的120K图像,包括464个室内场景,分辨率为640×480。我们还按照Eigen等人设置训练/测试分割,其中包括249个训练场景和654张来自其余215个场景的图像用于测试。在评估性能时,深度图被中心裁剪为561×427。
4.3 与SOTA方法比较
为了量化我们模型的性能,我们使用了Eigen等人提供的衡量指标,这些指标广泛应用于单目深度估计性能评估。这些指标的具体公式如表3所示。
我们将我们的方法与KITTI和NYU数据集上的SOTA方法在这些指标上进行了比较。如表1和表2所示,很明显我们的方法在所有指标上都达到了SOTA性能。在KITTI数据集上,与之前的SOTA相比,AbsRel下降了6.9%,SqRel下降了8.9%。在NYU数据集上,与之前的SOTA相比,AbsRel下降了9.7%,RMSE下降了8.0%。
我们的小型模型,如SideRT(Swin-T)和SideRT(Swin-S),在这两个具有挑战性的基准测试中,表现优于许多SOTA方法。此外我们发现,使用重主干(如Swin-L),大约2亿个参数不会减慢推理过程,并且与SideRT(Swin-B)和SideRT(Swin-S)等小模型的推理速度相似。
值得注意的是,在超越SOTA的同时,我们还以51.3 FPS的速度实现了实时预测。为了更好地了解我们的性能,我们分别在KITTI和NYU数据集中对预测的深度图进行可视化处理,如图3和图4所示。可以看出,我们的方法还可以成功地预测其他方法无法清楚预测的精细的对象边界。
4.4 消融实验
为了更好地理解文本使用组件对整体性能的贡献,表4展示了消融实验。所有的实验都是在KITTI数据集上进行的,并使用Swin-T作为主干。训练和测试策略与第4.3节保持一致。
跨尺度注意力。为了评估CSA模块的重要性,我们将其从总体架构中删除(表4中的第4行和第5行)。可以观察到,CSA模块以较小的计算量增加(+0.8M参数)和较小的速度下降(-12.0 FPS)来提高性能。表4中的第1、2行显示,CSA模块显著改善了直接从编码器Swin-T获得的深度预测。在进一步的可视化分析中,我们发现编码器的感受野相对较小,CSA模块将极大地扩大它。值得注意的是,比较表4中第2行和表1中第1、2行的性能,最简单的结构(Swin-T+CSA)与VNL(Yin等人的方法)的性能相似,并且优于DORN(Fu等人的方法)的一些指标。
多阶段监督。正如之前的工作所述,纯Transformer结构的训练比基于CNN的结构要困难得多。在使用多阶段监督(MSS)后,我们观察到训练损失曲线变得更平滑,模型更容易收敛。MSS带来了实质性的改进,包括所有指标,表明该方案非常适合于加速训练和提升纯Transformer结构的性能。
多尺度细化。如表4第3-5行所示,引入MSR模块明显提高了性能。从理论上讲,CSA和MSR模块以协作的方式从编码器中增强原始特征图。CSA聚焦于从全局角度融合具有高度相似性的特征,MSR的目标是在不同的金字塔层上融合具有相似位置的特征。
推理速度。如表4显示,大多数参数来自主干,因为我们的轻量级解码器只包含110万个参数。在加入本文提出的解码器后,AbsRel降低了74.9%,推理速度降低了20.4%。
可视化分析。为了观察我们提出的CSA模块是否真的扩大了主干的感受野,我们遵循常用做法,以可视化CSA模块的经验感受野大小,如图5所示。对于输入图像,我们选择一个参考像素(用红点表示),并计算其与所有其他位置的特征相似性。
很明显,在添加CSA后,参考像素在更大范围内得到更强的响应。我们发现,CSA模块使得像素的响应更高,这些像素不仅属于相似的类别,而且具有相似的特性深度。对于深度预测任务来说,这是一个非常有益的属性。

重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。
一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定激光/视觉SLAM自动驾驶)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
 圈里有高质量教程资料、答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~

继续阅读
阅读原文