论文地址:https://arxiv.org/abs/2104.10127
代码:https://github.com/fupiao1998/TrasformerSOD
发表于:Arxiv 2021.04
Abstract
源自机器翻译的transformer网络尤其擅长在长序列中建模远程依赖。 目前,transformer网络在各种视觉任务上取得了革命性的进展,从高级分类任务到低级密集预测任务。 本文主要研究Transformer网络在显著目标检测(SOD)中的应用。 具体来说,我们在统一框架内采用密集transformer主干(dense transformer backbone)进行基于全监督RGB图像的SOD、基于RGB-D图像对的SOD以及基于弱监督的SOD,基于transformer主干可以提供准确的结构建模, 这使得它在学习结构信息较少的弱标签时非常强大。 此外,我们发现vision transformer架构并没有提供直接的空间监督,而是将位置编码为一个特征。 因此,我们研究了两种策略通过我们统一框架中的transformer层提供更强的空间监督,即deep supervision和difficulty-aware learning。 我们发现,deep supervision可以使梯度回到更高层次的特征,从而使得在同一语义对象内做到统一激活。 另一方面,difficulty-aware learning能够识别hard pixel,从而实现有效的hard negative mining。 对传统backbone与transformer backbone在SOD上finetune前后的特征进行可视化,发现transformer backbone在较低层次特征和较高层次特征中分别编码了更准确的对象结构信息和更清晰的语义信息。 作为扩展,我们还将我们的模型应用于伪装目标检测(COD),并获得与上述三个SOD相关任务相似的观测结果。 在各种SOD和COD任务上的大量实验结果表明,transformer网络可以改变显著目标检测和伪装目标检测,为每个相关任务提供新的基准。 源代码和实验结果可以在我们的项目页面https://github.com/fupiao1998/TrasformerSOD找到。
I. Motivation
CNN存在的问题:深层网络的大感受野是通过牺牲结构信息来获得的,因此需要设计复杂的decoder来"尝试"恢复。
而对于Vision Transformer而言,位置编码在建模准确的空间信息方面存在局限,不适合密集预测任务。
II. Network Architecture
III. Transformer Encoder
Encoder所用的backbone为Swin Transformer。类似于CNN中的backbone,其也可以生成五个尺度下的特征,记做 E θ ( x ) = { t l } l = 1 5 E_{\theta}(x)=\left\{t_{l}\right\}_{l=1}^{5} Eθ(x)={tl}l=15,其通道数分别为 128 , 256 , 512 , 1024 , 1024 128,256,512,1024,1024 128,256,512,1024,1024。
IV. Deep Supervision
其实把swin transformer拿来后,一种直接的做法就是把CNN中原来的decoder给直接接到transformer backbone上去。本文基本上也是这么做的,不过文中的将这一操作称为deep supervision,其结构如下所示:
其实这个deep supervision就是decoder。可以看到encoder最底层特征t5在和t4 concat之后,逐步继续与t3进行向上融合,与传统CNN中decoder的思路比较类似。
具体来说的话,对于encoder所提取的各级特征 { t l } l = 1 5 \left\{t_{l}\right\}_{l=1}^{5} {tl}l=15,首先利用3×3卷积将其降维至32通道(即上图中的BC),得到特征图 { d l } l = 1 5 \left\{d_{l}\right\}_{l=1}^{5} {dl}l=15。接下来做的就是相邻特征的融合,有: b l = C a ( [ d l , con v 3 × 3 ( b l + 1 ) ] ) , l = 1 , … , 4 b_{l}=C^{a}\left(\left[d_{l}, \operatorname{con} v_{3 \times 3}\left(b_{l+1}\right)\right]\right), l=1, \ldots, 4 bl=Ca([dl,conv3×3(bl+1)]),l=1,…,4 其中 C a C^{a} Ca代表残差通道注意力模块(上图中的RCAB),用于提取各通道中有区分性的信息; [ , ] [,] [,]代表channel wise concat(上图中的C)。在concat之前,上采样所使用的方法为双线性上采样。
将各级decoder特征通过DASPP模块处理后,可以得到相应的单通道预测结果: { s l = D m ( b l ) } l = 1 5 \left\{s_{l}=D_{m}\left(b_{l}\right)\right\}_{l=1}^{5} {sl=Dm(bl)}l=15
V. Discriminator
判别器 R γ R_{\gamma} Rγ的结构较为简单,由五个3×3卷积层组成,其输入为原始图像 x x x与预测结果 s l s_{l} sl进行concat,输出为单通道的置信图 c l c_{l} cl。这里重点讲下文中所提到的Difficulty-aware learning。这个东西的作用类似于hard negative mining,用来强化对hard sample的训练。
那么对于SOD这种密集预测任务来说,hard sample自然就是那些容易预测出错的像素,例如边缘处的像素。本文对于hard的定义也十分直观,对于预测错的像素,我们就认为其hard。形式化地,有: c l = sigmoid ( R γ ( s l , x ) ) c_{l}=\operatorname{sigmoid}\left(R_{\gamma}\left(s_{l}, x\right)\right) cl=sigmoid(Rγ(sl,x))
VI. Summary
将transformer引入了SOD任务中。不过有意思的一点是,这里除了backbone换成了transformer,其余部分的组件仍使用了CNN中的习惯设计,在一定程度上可以认为是backbone替换所带来的性能提升。