题目
Deep Digging into the Generalization of Self-Supervised Monocular Depth Estimation
论文地址
https://arxiv.org/abs/2205.11083
GitHub
https://github.com/sjg02122/MonoFormer
abstract
自监督单目深度估计最近被广泛研究,大多数方法关注基准数据集的提升,比如KITTI ,提供了一些关于泛化性能的实验 。在这篇文章中,作者研究了向单目深度估计泛化的主干网络(CNNS,transformers,CNN-transformers混合模型)。作者首先评估了在不同公开数据集上最先进的模型,这在网络训练中是从未见过的;接下来,作者通过自己生成的各种纹理移位数据级调查了偏向纹理和偏向形状的影响,作者发现transformers表现出来很强的形状偏差,CNN表现出来很强的纹理偏差。作者还发现,与纹理偏置模型相比没偏向形状的模型在单目深度估计表现出了更好的泛化性能。基于这些观察,作者设计了一个带有多个层次的自适应特征融合模块的CNN-transformer混合模型,称为MonoFormer。这个模型的背后设计是为了通过使用transformers提升形状偏差,同时通过自适应融合多层次表示来补偿transformers的弱局部性偏差。通过实验表明这个方法在公共数据集上取得了先进的性能,也在竞争方法中显示出了最好的泛化能力。
introduction
CNN
如何从复杂场景中提取和识别信息?与纹理或者颜色等其他线索相比,生物视觉系统物体的形状是最重要的视觉线索。卷积神经网络CNN的设计灵感就来自于生物体中的生物神经网络。CNN提取简单的模式(比如边),然后通过连续组合的早期神经反应来够减复杂的模式。然而,近期的研究显示,CNN强烈倾向于纹理识别,而不是形状,这与人类的视觉表示相反。基于CNN的网络合理地对标签进行了分类,哪怕是在结构被破坏的图像中;另一方面,CNN模型无法正确地预测一个形状保存完好,删除了纹理的图像中的标签。
在前几十年,深度估计通过CNN取得了很大的进展,很多实验在KITTI数据集上取得了不错的效果,但是这些实验的通用性尚未得到深入研究。本文研究了现有方法的泛化性能,并且研究了偏向纹理的表示是如何影响单目深度估计的。本文使用6个公共深度数据集(SUN3D, RGBD, MVS, Scenes11, ETH3D, and Oxford Robotcar)评估在KITTI数据集上训练出来的模型;并且在三个不同的纹理位移数据集上进行实验,包括纹理平滑(watercolor)、没有纹理(pencil-sketch)、和纹理转移(style-transfer)图像。通过这些广泛的实验,作者确定了偏向纹理的模型在弹幕深度估计中容易受到一般性的影响。
transformers
尽管缺乏空间局部性偏差,transformer也受到了很多关注。transformers与CNN不同,具有强烈的形状偏差。作者通过做实验,发现形状偏差是深度估计泛化性的一个关键。
MonoFormer
所以,作者提出一个CNN和transformer混合的模型,它们是高度互补的。设计这个模型的目的就是利用transformers强大的形状偏差和由CNN特征投影初的低水平transformers特征的空间局部性偏差。
通过实现这个模型,作者设计了一个层级注意力连接模块ACM和一个特征融合解码器FFD:ACM测量形状偏差表示和局部细节,FFD自适应地融合它们进行深度预测。细节的消融实验表明这个形状偏置特征大部分取自与高层级transformers,局部细节是从底层级捕捉到的。
method
这个编码层是由CNN和transformers组成的。作者使用ResNet50作为CNN的backbone也就是这个 E ( ϕ ) E(\phi) E(ϕ),然后使用了4个transformers。
输入
输入图像I通过CNN编码器提取一个特征图 F ∈ R C × H × W F \in R^{C \times H \times W} F∈RC×H×W,H表示图像的宽,W表示图像的高,C表示图像通道数,然后这个图被分成了N(= H 16 × W 16 \frac{H}{16} \times \frac{W}{16} 16H×16W)个patches,这被用来作为transformers的输入的第一层。作者使用了一个特殊的标记 t s t_s ts。作者输入patch tokens和特殊token t s t_s ts和具有可学习的线性投影层E: Z 0 = [ t s ; p 1 E ; p 2 E ; . . . ; p N E ] Z_0 = [t_s;p_1E;p_2E;...;p_NE] Z0=[ts;p1E;p2E;...;pNE], Z 0 Z_0 Z0是潜在的嵌入向量。
transformer encoder
由一个多头自注意力层MSA、一个多层感知层MLP,归一化层LN组成。MLP采用GELU非线性结构;在每个块之前应用LN,在每个块之后应用残差连接。每层的自注意SA采用的权重矩阵{query,key,value}的可学习参数 W Q m , W K m , W V m ∈ R C × d W^m_Q,W^m_K,W^m_V \in R^{C \times d} WQm,WKm,WVm∈RC×d。给出的嵌入向量 Z l ∈ R N × C Z_l\in R^{N \times C} Zl∈RN×C如下:
M和d为SA块的数量和自注意力的维度,分别与权重矩阵的的维数相同。多头自注意力MAS由M个SA块、权重矩阵的可学习参数 W ∈ R M d × C W \in R^{Md \times C} W∈RMd×C组成。如下:
这个transformer 层以唯一的可学习参数重复L(也就是4)次。transformer的 { Z 1 , . . . , Z L } \{Z_1,...,Z_L\} {Z1,...,ZL}输出被用于ACM和FFD层。
ACM注意连接模块
作者设计了一种新的跳跃连接方法,ACM,产生了全局上下文注意机制和对于 Z l Z_l Zl的于一呈现。跳跃连接 被广泛用于密集预测任务,因为它通过直接转移空间信息到解码层,有助于保持细节。然而,据观察得到在naive 跳跃连接方法中,由于每个特征太简单所以无法保留局部细节,比如对象边界。为了解决这个问题,受到Fu等人的启发,作者引入了ACM,它从空间域和通道域产生注意权重。
它是由位置注意力、通道注意力和一个融合模块组成的,这个融合模块收集了两个注意力中重要的信息。
位置注意力模块生成了一个位置注意力图 A l p ∈ R C × N A^p_l \in R^{C \times N} Alp∈RC×N如下: A l p = s o f t m a x ( Q l p ( K l p ) T ) V l p A^p_l = softmax(Q^p_l(K^p_l)^T)V^p_l Alp=softmax(Qlp(Klp)T)Vlp
分别是query,key和通过传递单个卷积层出来的 Z l Z_l Zl计算出来的值矩阵。
通道注意力直接通过计算 Z l Z_l Zl组成的gram矩阵来计算通道注意图 A l c ∈ R C × N A^c_l \in R^{C \times N} Alc∈RC×N:
A l c = s o f t m a x ( Z l , Z l T ) A^c_l = softmax(Z_l,Z^T_l) Alc=softmax(Zl,ZlT)
位置注意图和注意力注意图分别通过捕获远程上下文和利用每个通道映射之间的相互依赖关系来增强特征表示能力。FFD将使用这两个注意力图。
FFD
FFD得到编码器的特征 Z l Z_l Zl、位置注意力图、通道注意力图、最后一个transformers层的输出特征通过一个残余卷积输出的特征 X L X_L XL。解码器融合了通过单个卷积层和使用可学习参数 α , β , γ \alpha,\beta,\gamma α,β,γ得出的特征 X L − l + 1 , l ∈ { 1 , . . . , l } X_{L-l+1},l \in \{1,...,l\} XL−l+1,l∈{1,...,l}:
其中, w p , w c w_p ,w_c wp,wc是决定位置和通道注意力重要性的可学习参数, α \alpha α使得每个通道可以独立地相互学习, γ , β \gamma,\beta γ,β控制channel-wisely激活。通过这个过程,FFD可以从融合地特征中生成一个深度图,以保持局部局部细节语义表示,同时保持全局特征上下文。