DepthFormer论文详解

摘要

在这里插入图片描述

本文旨在解决有监督单目深度估计的问题,我们从一项细致的试点研究开始,以证明远程相关性对于准确的深度估计至关重要。我们建议使用Transformer以有效地注意力机制对这种全局上下文进行建模。我们还采用一个额外的卷积分支来保留局部信息,因为Transformer在对局部信息进行建模时缺乏空间归纳偏差。然而,独立的分支导致特征之间的连接不足。为了弥补这一差距,我们设计了一个分层聚合和异构交互模块,通过元素交互来增强Transformer的特征,并以集合到集合的传递方式对Transformer和CNN特征之间的亲和力进行建模。
由于全局关注在高分辨率特征图上引起的不可承受的内存成本,我们引入了可变形注意力机制来降低复杂度。在KITTI,NYU的数据集上的大量实验表明,DepthFormer大大超过了最先进的单目深度估计方法。

介绍

单目深度估计在三维重建和感知中起着至关重要的作用,由于ResNet的开创性工作,CNN主导了深度估计的主要主力,设计了基于编码器-解码器的架构。尽管已经有大量的工作专注于解码器设计,但最近的研究表明编码器对于准确的深度估计更加关键。由于缺乏深度线索,充分利用长程相关性(即物体之间的距离关系)和局部信息(即同一物体的一致性)是有效编码器的关键能力。因此,当前深度估计方法的潜在瓶颈可能位于编码器中,因为卷积算子几乎无法在有限的感受野下对长程相关性进行建模
在CNN方面,已经付出了巨大的努力来克服上述限制,大致分为两类。操作卷积运算或者集成注意力机制。为了提高卷积算子的有效性,前者使用了先进的变形,包括多尺度融合、空洞卷积、特征金字塔。后者引入了注意力模块,来模拟特征图中所有像素的全局交互。还有一些通用方法,来探索这两种策略的组合,尽管性能有了显著提高,但困境仍然存在。
在CNN的替代方案中,ViT在图像识别方面取得了巨大成功,证明了作为深度估计编码器的优势。受益于注意力机制,Transformer在建模与全局感受野的远程相关性方面更加优秀。然而,我们的试点研究表明,由于对局部信息建模缺乏空间归纳偏差,ViT编码器无法产生令人满意的性能。

为了缓解这些问题,本文提出了一种新的单目深度估计框架DepthFormer。通过结合Transformer和CNN的优点,提高了模型的性能。DepthFormer的原理在于Transformer分支对长程相关性进行建模,而附加的卷积分支保留了局部信息。我们认为,这两种类型特征的集成可以帮助实现更准确的深度估计。然而,具有后期融合的独立分支导致解码器特征聚合不足。为了弥补这一差距,我们设计了分层聚合和异构交互模块来组合两个分支的最佳部分。具体来说,它由一个自注意力模块组成,通过元素之间的交互来增强Transformer分支层与层之间的特征信息,和一个交叉注意力模块以一种集合到几何的传递方式模拟异构特征之间的亲和力(Transformer和CNN特征)。由于对高分辨率特征图的全局关注导致难以承受的内存成本,我们建议使用可变形方案,它只以可学习的方式关注有限的关键采样向量集来缓解这个问题。文章的主要贡献如下:

  • 我们将Transformer作为图像编码器,利用长程相关性,并采用额外的卷积分支来保留局部信息。
  • 我们设计了HAHI通过元素交互来增强特征,并以集合到集合的传递方式对亲和力进行建模。

相关工作

从RGB图像中估计深度是一个不适定问题。缺乏线索、尺度歧义、半透明或反射材料都会导致外观无法推断空间结构的歧义情况。随着深度学习的快速发展,CNN已经成为从单个RGB输入提供合理深度图主流方法的关键组成部分。

  • 单目深度估计
    近年来,单目深度估计引起了很多关注。DPT提出利用ViT作为编码器,在大规模深度估计数据集上预训练;Adabins使用自适应bins,根据输入场景的表示,并提出以高分辨率嵌入mini-ViT;TransDepth在瓶颈处嵌入ViT,以避免Transformer丢失本地信息,并提出了一种注意力门解码器来融合多级特征。

  • 编码器解码器
    编码器解码器通常用于单目深度估计。在编码器方面,采用主流特征提取器,包括EfficientNet,ResNet,和DenseNet来学习表示。解码器通常采用连续的卷积和上采样算子,以后期融合的方式聚合编码器特征,恢复空间分辨率并估计深度。在本文中,我们采用基线解码器架构,它允许我们更明确的研究这项工作的主要贡献的性能归因,与解码器无关。

  • 颈部结构
    编码器和解码器之间的颈部结构被提出来用于增强特征,许多以前的方法只关注瓶颈特征,而忽略了较低级别(分辨率较高)的特征,限制了有效性。在这项工作中,我们提出了HAHI模块来增强所有多层次的层次特征。当另一个分支(CNN)可用时,它还可以对两个分支特征之间的亲和力进行建模,这有利于解码器聚合异构信息。

  • Transformer
    Transformer网络在计算机视觉邻域引起就更大的兴趣,随着最近应用Transformer解决计算机视觉任务的趋势的成功,我们建议利用Transformer作为编码器来模拟远程相关性。我们讨论了我们的方法和几个相关工作在单目深度估计中采用Transformer之间的差异。

方法

![[Pasted image 20240409094529.png]]

我们首先介绍了这项工作的动机,并介绍了DepthFormer的关键组件:

  • 由Transformer分支和卷积分支组成的编码器
  • 分层聚合和异构交互模块

诱因

为了表明这项工作的必要性,我们进行了一项细致的试点研究,以研究只使用纯CNN或ViT作为单目深度估计的编码器的局限性。

  • 试点研究
    我们首先在图3中的NYU数据集上展示了最先进的基于cnn的单目深度估计方法的几个失败案例。墙面上的装饰和地毯的深度结果,出乎意料的不正确。由于用于特征提取的纯卷积编码器很难对全局上下文进行建模,以及难以通过有限的感受野捕获对象之间的远程距离关系。这种大面积违反直觉的故障严重损害了模型的性能。
    为了解决上述问题,ViT可以作为一个合适的替代方案,它使用全局感受野建模长距离之间的联系。因此,我们尝试分析基于VIT和CNN的方法在KITTI数据集上的性能。基于DPT模型,我们采用VIT-Base和ResNet50作为编码器分别提取特征。发现基于VIT的模型在远距离处理上的性能更好,但是在近距离物体上效果不如ResNet网络。由于深度值表现出长尾分布,场景中物体越近,应用ViT的模型的总体结果明显较差

  • 分析
    一般来说,直接估计远处物体的深度时很困难的,得益于对长程相关性进行建模,基于ViT的模型可以通过全局上下文中的参考像素来更可靠的实现它。对象之间的距离关系的知识在远距离目标深度估计上具有更好的性能。至于近物体深度估计结果较差,有许多潜在的解释。

    • Transformer在建模局部信息时缺乏空间归纳偏差,对于深度估计,局部信息反映在详细的上下文中,这对于一致和清晰的估计结果至关重要,然而在Transformer的逐片交互过程中,这些详细的信息往往会丢失。由于出现在较近的物体具有更大的纹理质量,Transformer将在这些位置丢失更多的细节,这严重恶化了近范围内的模型性能,导致结果不理想。
    • 视觉元素的规模差异很大,一般来说U-Net形状的架构用于深度估计,其中多尺度跳跃连接对利用多级信息至关重要。由于ViT中的标记都是一个固定的尺度,连续的非层次前向传播使得多尺度属性模糊,这也可能会限制性能。

在这篇文章中,我们利用Transformer和卷积分支组成的编码器来利用远程相关性和局部信息。

  • 与直接利用ViT作为编码器的DPT不同,我们引入了一个卷积分支来弥补Transformer分支中空间归纳偏差的不足。
  • 我们将ViT替换为Swin Transformer,以便Transformer编码器可以提供分层特征,减少计算的复杂性。
  • 与以前将Transformer嵌入到CNN的方法不同,我们利用Transformer直接对图像进行编码,可以充分利用Transformer的优势并避免CNN在全局上下文建模之前丢弃关键信息。
  • 由于这两个分支的独立性,解码器的简单后期融合导致特征聚合不足,性能只能小幅度的提高。为了弥合这一差距,我们设计了HAHI模块,通过特征交互来增强特征和模型亲和力,缓解了不足,有助于结合两个分支的最佳部分。

Transformer和CNN特征提取

我们建议通过由Transformer分支和轻量级卷积分支组成的编码器提取图像特征,从而充分利用远程相关性和局部信息。

  • Tranformer分支
    Transformer分支首先通过分割模块将输入图像I分割成不重叠的补丁。每个补丁的初始特征表示倍设置为像素RGB值的串联。
    之后,应用线性嵌入层将初始特征表示投影到任意维度,并且作为第一个Transformer层的输入,记为 z 0 z_0 z0。之后利用L个Transformer层结构用于提取特征。一般来说,每一层都由一个多头自注意力 (MSA) 模块组成,然后是一个多层感知器 (MLP)。在 MSA 和 MLP 之前应用 LayerNorm (LN),每个模块使用残差连接。第l层的过程可以用如下式子进行表述。 z ^ l = M S A ( L N ( z l − 1 ) ) + z l − 1 , z l = M L P ( L N ( z ^ l ) ) + z ^ l , \begin{aligned}\hat{\mathbf{z}}^l&=\mathrm{MSA}\left(\mathrm{LN}\left(\mathbf{z}^{l-1}\right)\right)+\mathbf{z}^{l-1},\\\mathbf{z}^l&=\mathrm{MLP}\left(\mathrm{LN}\left(\hat{\mathbf{z}}^l\right)\right)+\hat{\mathbf{z}}^l,\end{aligned} z^lzl=MSA(LN(zl1))+zl1,=MLP(LN(z^l))+z^l,
    我们从N个选取的Transformer层结构中采用并且重组N个特征图作为Transformer层结构的输出,并且将它们标记为 F = f n n = 1 N F={f^n}^N_{n=1} F=fnn=1N,其中 F n ∈ R C n × H n × W n F^n\in R^{C_n\times H_n \times W_n} FnRCn×Hn×Wn

    注意到我们的框架与各种Transformer架构兼容。在本文中,我们更喜欢利用Swin Transformer来提供分层表示并降低计算复杂度。与标准Transformer层的主要区别在于局部注意力机制,移位窗口方案和补丁合并策略。

  • 卷积分支
    卷积分支包含一个标准的ResNet编码器来提取局部信息,这在深度估计网络中常用。这里只使用ResNet的第一个块来利用局部信息,避免了连续乘法清洗低级特征,大大减少了计算时间。具有 C g C_g Cg个通道的特征图被输出为 G ∈ R C g × H g × W g G∈R^{C_g ×H_g ×W_g} GRCg×Hg×Wg
    在获取Transformer特征F和卷积特征G之后,我们将它们馈送到HAKI模块以供进一步处理。与 TransDepth 相比,我们采用一个额外的卷积分支来保留局部信息。它避免了CNN丢弃关键信息,使我们能够在没有伪影的情况下预测更清晰的深度图。

HAHI模块

![[Pasted image 20240315101115.png]]

为了缓解聚合不足的局限性,我们引入了HAHI模块来增强Transformer的特征,并以集合到集合的传递方式进一步对Transformer和CNN特征的亲和力进行建模

我们考虑一组分层特征 F = { f n } n = 1 N F=\{f^n\}^N_{n=1} F={fn}n=1N作为特征增强的输入,由于我们使用Swin Transformer 层提取特征,重组的特征图将表现出不同的大小和通道。许多以前的工作必须将多级特征下采样到瓶颈结构的分辨率,并且只能通过简单的连接或者潜在内核方式来增强瓶颈结构。相反,我们的目标是在不采用可能导致信息丢失的下采样算子的情况下增强所有特征。

具体来说,我们首先利用 1 × 1 1\times1 1×1的卷积将所有层级特征投影到一个通道 C h C_h Ch,表示为 F n = { F h n } n = 1 N F_n=\{F^n_h\}^N_{n=1} Fn={Fhn}n=1N。然后我们将特征图展开(即展平和连接)为二维矩阵X,其中的每一行是一个像素在 C h C_h Ch通道中的一个通道维度上对所有不同层级的特征图相乘拼接而成的。( C h C_h Ch行,且每行的元素是一个通道上所有层级展平相连接得到的结果)然后我们通过 X X X的线性投影计算 Q , K , V Q,K,V Q,K,V的值。
Q = X P Q , K = X P K , V = X P V Q = XP_Q, K = XP_K , V = XP_V Q=XPQ,K=XPK,V=XPV
其中 P Q , P K , P V P_Q,P_K,P_V PQ,PK,PV分别代表线性投影。我们尝试应用注意力模块能增强特征,然而,巨大的特征向量会导致难以承受的内存成本。为了缓解这个问题,我们建议采用可变形机制,该机制仅以可学习的方式关注有限的关键采样向量集。这适合用于深度估计任务,因为表示场景结构的几个关键点足以用于特征增强。另 q q q v v v分别索引具有表示特征 x q ∈ Q , x v ∈ V x_q\in Q,x_v \in V xqQ,xvV的元素, p q p_q pq表示查询向量 x q x_q xq的位置,这个过程可以被表示为

DAttn ( x q , x v , p q ) = ∑ k ∈ Ω k A q k ⋅ x v ( p q + Δ p q k ) \begin{aligned}\text{DAttn}(x_q,x_v,p_q)&=\sum_{k\in\Omega_k}A_{qk}\cdot x_v\left(p_q+\Delta p_{qk}\right)\end{aligned} DAttn(xq,xv,pq)=kΩkAqkxv(pq+Δpqk)

其中第 k k k个采样点的注意力权重 A q k A_{qk} Aqk和第 k k k个采样点的采样偏移量 ∆ p q k ∆p_{qk} pqk是通过查询特征 x q x_q xq上的线性投影得到的。由于 p q p_q pq + ∆ p q k ∆p_{qk} pqk 是分数的,因此在计算 x v x_v xv ( p q p_q pq + ∆ p q k ∆p_{qk} pqk ) 时应用双线性插值,我们还添加了一个层次嵌入来识别每个查询向量所处的特征级别。将表示为 X ^ \hat X X^ 的输出折叠(即拆分和重塑)回原始分辨率以获得分层增强特征 F e n h F_{enh} Fenh,通过通道连接和1x1卷积融合 F e n h F_{enh} Fenh F F F后,我们得到输出 F O = f o n n = 1 N F_O={f^n_o}^N_{n=1} FO=fonn=1N,并实现特征增强。

当额外的卷积分支可用时,我们将特征图 G G G视为HAHI的第二个输入以进行亲和力建模。与第一个输入 F F F表示类似, G G G可以是任何其他类型的表示,我们利用 1 × 1 1\times1 1×1卷积将 G G G投影到通道维数为 C h C_h Ch G h G_h Gh,然后将 G h G_h Gh展平为二维查询矩阵 Q Q Q。将 X ^ \hat X X^ 应用为 K K K V V V,我们计算交叉注意力来模拟亲和力。同样,不可承受的内存成本仍然持续存在,我们应用可变形注意力模块缓解这种现象。其中参考点位置 p q p_q pq通过可学习的线性投影和sigmoid函数从亲和查询嵌入动态预测。在讲结果重塑为原始分辨率以形成注意力表示 G a t t G_{att} Gatt之后,我们通过通道级联和 1 × 1 1\times1 1×1卷积融合 G a t t G_{att} Gatt G G G,得到HAHI的另一个输出表示为 G o G_o Go。该过程实现了Transformer和CNN分支之间的亲和力建模和特征交互。HAHI的所有输出( F o F_o Fo G o G_o Go)被发送到基线解码器进行深度估计。

网络损失从如下公式中进行优化。 L p i x e l = α 1 T ∑ i h i 2 − λ T 2 ( ∑ i h i ) 2 , \mathcal{L}_{pixel}=\alpha\sqrt{\frac1T\sum_ih_i^2-\frac\lambda{T^2}(\sum_ih_i)^2}, Lpixel=αT1ihi2T2λ(ihi)2 ,其中 h i = l o g d i ^ − l o g d i h_i=log\hat{d_i}-log d_i hi=logdi^logdi d i d_i di是地面实况, d i ^ \hat{d_i} di^是预测深度,T表示具有有效地面实况值的像素数量,我们在实验中使用 λ = 0.85 , α = 10 \lambda=0.85, \alpha=10 λ=0.85,α=10

结论

我们提出了DepthFormer,这是一个用于精确单目深度估计的新框架,我们的方法通过由Transformer分支和CNN分支组成的编码器充分利用远程相关性和局部信息。由于具有后期融合的独立分支导致解码器特征聚合不足,我们提出了分层聚合和异构交互模块来增强多级特征并进一步对特征亲和力进行建模。在大多数流行和具有挑战性的数据集中,DepthFormer比最先进的方法取得了显著的改进。我们希望我们的研究能够鼓励更多的工作将Transformer架构应用于深度估计,并启发其他任务的框架设计。

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值