Visual Saliency Transformer 读后感

最近一直在忙着搞各种杂活
好久没有认真的读文章了

之前做的是 SOD,因为transformer的兴起,就想试试它在SOD里的效果。因为论文审稿意见下来,拖了很久,一直没有实现,现在先读一下这篇paper,找找感觉。

paper: https://arxiv.org/pdf/2104.12099.pdf

摘要:近年来,基于CNN架构的海量显著性检测方法取得了很好的效果。或者,我们从无卷积的序列到序列的角度重新考虑这项任务,并通过对长期依赖关系进行建模来预测显著性,这不能通过卷积来实现。具体地说,我们开发了一种新的基于纯transformer的统一模型,即Visual Saliency Transformer(VST),用于RGB和RGB-D显著目标检测(SOD)。它将图像块作为输入,并利用transformer在图像块之间传播全局上下文。除了视觉 transformer(ViT)中使用的传统transformer架构之外,我们还利用多级令牌融合(multi-level token fusion),并在transformer框架下提出了一种新的令牌上采样方法(token upsample),以获得高分辨率的检测结果。通过引入与任务相关的令牌和一种新颖的补丁-任务注意机制,我们还开发了一个基于令牌的多任务解码器,可以同时执行显著性和边界检测。实验结果表明,我们的模型在RGB和RGB-D SOD基准数据集上的性能都优于现有的最新结果。最重要的是,我们的整个框架不仅为SOD领域提供了一个新的视角,而且为基于transformer器的密集预测模型提供了一个新的范例。
在这里插入图片描述

❀ 问题: 显著性检测需要全局信息,以往利用全连接层,全局池化层,非局部模块都只作用于某些特定的层,无法从根本上获得全局上下文和全局对比(因为CNN-based的结构没有改变)。
❀ 解决: 提出了一种新的基于纯transformer的RGB和RGB-D SOD的统一模型,称为可视化显著性transformer。将每个图像分割为patches。出现了两个问题:

  1. 如何基于纯transformer执行密集预测任务;
  2. VIT通常将图像标记为非常粗略的尺度。如何使vit适应SOD的高分辨率预测要求也是不清楚的。

Contributions:

  • 首次从序列到序列建模的新角度,设计了一种新的基于纯transformer架构的RGB和RGB-D SOD的统一模型;
  • 设计了一种多任务transformer解码器,通过引入与任务相关的标记和补丁-任务-注意,联合进行显著性和边界检测;
  • 提出了一种新的基于transformer框架的token上采样方法;
  • 提出的VST模型在RGB和RGB-D SOD基准数据集上都获得了最先进的结果,这证明了它的有效性和基于transformer的SOD模型的潜力。

二、Proposed Method

以 T2T-ViT作为backbone

---------------------------Encoder---------------------------

**T2T : **
❀ 有一个patch 标号的序列T’(长度为l,之前层的);
❀ T2T模块由两个步骤组成,重构(re-structurization)和软分割(soft split);
❀ 用T2T对T’进行局部结构信息建模,生成新的标号序列。

重构(re-structurization)
在这里插入图片描述
首先使用transformer层对T’0进行变换, 获得新的标号序列T;
用公式表示为:
T = M L P ( M S A ( T ′ ) )   . T=MLP(MSA(T'))\,. T=MLP(MSA(T)).
这里MSA和MLP分别代表来自原始transformer中的多头自注意力机制和多层感知器。然后,T被reshape成2D图像I。按照图,我理解的是,把patch都按原图的形状放置了,然后选了2*2的才尺寸来打开(接在一起,这属于soft split),再经过transformer layer。

软分割(soft split)
在重构步骤之后,I被分割成具有s个重叠的k×k块,也就是上图中reshape后的结果。然后,将图像补丁展开为一系列标号 T 0 T_0 T0,序列的长度 l 0 l_0 l0可以通过下列公式来计算:
在这里插入图片描述
T2T-VIT中采用的重叠块分割引入了相邻块之间的局部对应关系,从而带来了空间先验知识。

在经历了两个T2T module 之后,生成了 T 3 T_3 T3标记序列, T 3 T_3 T3和正弦位置编码相加。之后, L ε L^\varepsilon Lε transformer 层被用来建模长范围的依赖来获得更强大的 T ε T^\varepsilon Tε 标号嵌入序列。

---------------------------Convertor---------------------------
这个convertor的作用就是标号序列从encoder到decoder进行转换。

RGB-D convert
交叉通道转换器(CMT)被设计来融合 T r ε T^\varepsilon_r Trε T d ε T^\varepsilon_d Tdε, 由 L c L^c Lc交替的交叉通道关注层和自我关注层组成。

Cross-modality-attention

我们修改了标准的自我关注层,在图像和深度数据之间传播远距离的跨模态相关性,从而获得跨模态注意,具体如下。

分别获得RGB和Depth的Q、K、V三个值。
然后和标准一样计算注意力
在这里插入图片描述
其他结构也和original transformer一样。

在CMT之后,加一个标准的transformer层(RGB和Depth),进一步增强标号嵌入。

在交替使用CMT和Transform进行 L c L^c Lc次之后,我们通过串联的方式将获得的RGB标号和Depth标号融合,然后将它们投影到最终转换后的标号 T c T^c Tc,如结构图所示。

---------------------------Decoder---------------------------

提出了一种新的多级标号融合的标号上采样方法和基于标号的多任务解码器。

标号上采样(Token Upsampling)

通过标号上采样获得高分辨率的显著图(因为经过convert层之后获得的尺度是H/16,W/16)。所以在transformer框架下提出了一种新的标号上采样方法。

受到T2T聚合模块减少token长度的启发,提出了一个reverse T2T,和原始T2T结构相逆。再对多个子token进行上采样。
在这里插入图片描述
首先映射降维到64,然后,我们使用另一个线性投影将嵌入维数从c扩展到 c k 2 ck^2 ck2

下一步,类似于T2T中的软分割步骤,将每个token视为一个k×k图像块,并且相邻块有s个重叠。然后,我们可以使用p补零将token折叠为图像。

多级标号融合(Multi-level Token Fusion)

利用 T 1 T_1 T1, T 2 T_2 T2提供准确的本地结构信息。对于RGB和RGB-D SOD,我们只使用来自RGB transformer编码器的低级标号。具体地说,我们通过拼接和线性投影将 T 1 T_1 T1, T 2 T_2 T2与上采样的patch标记逐步融合。整个过程如下式所示:
在这里插入图片描述
基于标号的多任务预测(Token Based Multi-task Prediction)

在密集预测任务中,直接使用MLP是不可行的。所以提出在patch token和任务相关token之间执行patch-task-attention来执行SOD。

设计了两个token t s t_s ts, t b t_b tb,分别为了获得显著性检测和边界检测。然后用 L D L^D LDtransformer层来处理它们,获得更新后的 t s t_s ts, t b t_b tb。经过RT2T模块,获得 T i − 1 D T^D_{i-1} Ti1D。之后再进一步更新 t s t_s ts, t b t_b tb T i − 1 D T^D_{i-1} Ti1D,知道尺度编程原来的1/4。

显著性和边界预测通过下式来获得:
在这里插入图片描述
最后用sigmoid激活函数把它们映射到[0, 1],然后将它们重塑为2D显著图。

实验部分可以看原始paper。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值