[论文阅读] Unifying Global-Local Representations in Salient Object Detection with Transformer

论文地址:https://arxiv.org/abs/2108.02759
代码:https://github.com/OliverRensu/GLSTR
发表于:Arxiv 2021.08

Abstract

全卷积网络(FCN)在很长一段时间内一直主导着显著目标检测。然而,CNN的局部性要求模型足够深,以拥有一个全局的感受野,而这样一个深的模型总是会导致局部细节的丢失。在本文中,我们将一个新的基于注意力的编码器–vision transformer引入到显著目标检测中,以确保从浅层到深层表征的全局化。由于在浅层中就能具有全局性,transformer编码器保留了更多的局部特征,以恢复最终显著图中的空间细节。此外,由于每一层都能捕捉到其上一层的全局视图,相邻层可以隐含地将表征差异最大化,并将冗余特征最小化,使得transformer层的每一个输出特征都能为最终预测做出独特的贡献。为了对transformer的特征进行解码,我们提出了一个简单而有效的深度转换解码器(deeply-transformed decoder)。该解码器对transformer的特征进行密集解码和上采样,生成最终的显著图,并减少噪声注入。实验结果表明,我们的方法在五项基准测试中明显优于其他基于FCN和基于transformer的方法,在平均绝对误差(MAE)方面平均提高了12.17%。代码将在https://github.com/OliverRensu/GLSTR公开。

I. Motivation

CNN本身是一种"局部"的模型,因此如果想获得全局表征,就需要对卷积层进行堆叠,以获得更大的感受野,但是这样就会损失局部细节,即全局表征与局部细节难以兼得。因此,本文的想法是,有没有办法在每一层都能同时学习全局特征与局部特征。

II. Network Architecture

本文所提出的GLSTR(Global-Local Saliency TRansfromer)网络结构如下所示:
在这里插入图片描述
不过本文似乎没有提所用的transformer backbone是哪个(疑似ViT)。接下来,我们将讨论几种可能的transformer decoder实现。

III. Naive Decoder

naive decoder就是下面这个东西:
在这里插入图片描述
这里的Transformer Layer 12th 指的是Encoder中的最后一个transformer层。也就是说,既然要预测saliency map,就首先将transformer得到的token seq给reshape为feature map的形式,然后走三个Conv-Bn-Relu进行特征的处理,再上采样回原尺寸(16x),最后接一个分类层(原文此处可能表述有误,应该不是分类层)。形式化地表述如下: Z = U p ( C B R ( F 12 ′ ; θ z ) ; 16 ) S ′ = σ ( Conv ⁡ ( Z ; θ s ) ) \begin{gathered} Z=U p\left(C B R\left(F_{12}^{\prime} ; \theta_{z}\right) ; 16\right) \\ S^{\prime}=\sigma\left(\operatorname{Conv}\left(Z ; \theta_{s}\right)\right) \end{gathered} Z=Up(CBR(F12;θz);16)S=σ(Conv(Z;θs))
其中,CBR表示Conv+BN+Relu,Up(x, s)表示对x使用双线性上采样s倍, σ \sigma σ为sigmoid函数,S’为预测显著图。

个人认为这个decoder过于naive了,哪怕是基于CNN的方法也不会直接上采样16倍去拿结果,空间细节会基本丢没。不过,文中放个这玩意的目的似乎是为了证明不是说Transformer随便插个decoder进去效果都能很好。

IV. Stage-by-Stage Decoder

在这里插入图片描述
这个东西就是CNN里用的非常多的decoder,每次经过若干个Conv,然后上采样2x(这里图似乎画的有点问题),逐步上采样回原始尺寸。形式化定义如下: Z 0 = C B R ( F 12 ′ ; θ 0 ) Z i = C B R ( U p ( Z i − 1 ; 2 ) ; θ i ) S ′ = σ ( Conv ⁡ ( Z 4 ; θ s ) ) \begin{aligned} Z_{0} &=C B R\left(F_{12}^{\prime} ; \theta_{0}\right) \\ Z_{i} &=C B R\left(U p\left(Z_{i-1} ; 2\right) ; \theta_{i}\right) \\ S^{\prime} &=\sigma\left(\operatorname{Conv}\left(Z_{4} ; \theta_{s}\right)\right) \end{aligned} Z0ZiS=CBR(F12;θ0)=CBR(Up(Zi1;2);θi)=σ(Conv(Z4;θs))

V. Multi-Level Feature Aggregation

这个东西单纯是文[1]提出的,其结构如下所示:
在这里插入图片描述
可以发现是一种金字塔结构…在CNN SOD中也是讨论的比较多的(实际上这也确实是一个卷积金字塔)。

VI. Deeply-Transformed Decoder

这个东西就是本文提出来的decoder,如下所示:
在这里插入图片描述
对于三层不同的Encoder Transformer Block,首先分别对其进行8x,4x,2x的上采样至同一尺寸,这里的上采样用的是pixel shuffle & bilinear upsampling。形式化的定义如下: Z i , j = { C B R ( Z i , j − 1 ⊕ U p ( F i ∗ 4 + j ′ ; 2 i ) ; θ i , j ) j = 1 , 2 , 3 C B R ( U p ( Z i − 1 , j ; 2 ) ⊕ U p ( F i ∗ 4 + j ′ ; 2 i ) ; θ i , j ) j = 4 Z_{i, j}=\left\{\begin{array}{l} C B R\left(Z_{i, j-1} \oplus U p\left(F_{i * 4+j}^{\prime} ; 2^{i}\right) ; \theta_{i, j}\right) \quad j=1,2,3 \\ C B R\left(U p\left(Z_{i-1, j} ; 2\right) \oplus U p\left(F_{i * 4+j}^{\prime} ; 2^{i}\right) ; \theta_{i, j}\right) \quad j=4 \end{array}\right. Zi,j={CBR(Zi,j1Up(Fi4+j;2i);θi,j)j=1,2,3CBR(Up(Zi1,j;2)Up(Fi4+j;2i);θi,j)j=4 S i , j ′ = σ ( Conv ⁡ ( U p ( Z i , j ; 2 ) ; θ s i , j ) ) S_{i, j}^{\prime}=\sigma\left(\operatorname{Conv}\left(U p\left(Z_{i, j} ; 2\right) ; \theta_{s_{i, j}}\right)\right) Si,j=σ(Conv(Up(Zi,j;2);θsi,j))

VII. Experiment

input 384×384
optimizer SGD
momentum 0.9
weight decay 0.0005
learing rate 0.001 ~ 1e-5
batch size 8
max epoch 40
data augmentation vertical & horizontal flipping

VIII. Summary

单纯从内容的角度讲…本文大体上只提出了一个decoder,大概占文中四分之一页不到…不过胜在结果好看。

Ref

[1] Sixiao Zheng, Jiachen Lu, Hengshuang Zhao, Xiatian Zhu, Zekun Luo, Yabiao Wang, Yanwei Fu, Jianfeng Feng, Tao
Xiang, Philip HS Torr, et al. Rethinking semantic segmentation from a sequence-to-sequence perspective with transformers. arXiv preprint arXiv:2012.15840, 2020. 3, 4, 5, 7, 8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值