关于Swin Transformer的一些知识


利用移位窗口的分层视觉Transformer)

文章介绍

在transformer创始文章《attention is all you need》的结尾提到transformer可以应用于除NLP以外的更多领域,比如图像、音频和视频。
在这里插入图片描述
在视觉领域,出现了ViT(vision transformer),ViT是2020年Google团队提出的将Transformer应用在图像分类的模型,虽然不是第一篇将transformer应用在视觉任务的论文,但是因为其模型“简单”且效果好,可扩展性强(scalable,模型越大效果越好),成为了transformer在CV领域应用的里程碑著作,也引爆了后续相关研究。
ViT将输入图片分为多个patch(16x16),再将每个patch投影为固定长度的向量送入一个和原始Transformer相同的encoder。但是因为对图片分类,因此在输入序列中加入一个特殊的token,该token对应的输出即为最后的类别预测。

Transformer应用到图像领域主要有两大挑战,也是ViT可改进的地方

1)视觉实体变化大,在不同场景下视觉Transformer性能未必很好。
2)图像分辨率高,像素点多,Transformer基于全局自注意力的计算导致计算量较大。

针对上述两个问题,swin transformer提出了一种包含滑窗操作,具有层级设计的Swin Transformer。证明了Transformer可以在视觉领域取得更广泛应用。

  • 1)利用分层可以使得Transformer可以有类似CNN的感受野,做到多尺度的特征提取
  • 2)利用窗口和分层的形式来替代图像高分辨率带来的超长序列

于是本文获得ICCV2021最佳论文奖本文获得ICCV2021最佳论文奖
在这里插入图片描述
Swin Transformer(a)通过合并更深层次的patch(灰色)来构建分层特征,并且仅在每个window(红色)计算自注意力,因此对输入图像大小具有线性计算复杂度。因此,它可以作为图像分类和密集识别任务的通用骨干。相比之下,ViT(b)产生单一大小的特征图,由于全局自注意力的计算,有二次的计算复杂度。

Swin transformer在很多类型的视觉任务上都有很好的表现,包括图像分类(ImageNet-1K上的精度为87.3top-1)和密集预测任务,如目标检测(COCO数据集上58.7 box AP and 51.1 mask AP)和语义分割(ADE20K上有53.5mIoU),显示了基于transformer的模型作为视觉骨干的潜力。层次化设计和移位窗口方法也被证明对nlp任务有用。

模型架构

整个模型采取层次化的设计,一共包含4个阶段,每个阶段都会缩小特征图的分辨率,像CNN一样逐层扩大感受野
在这里插入图片描述
在输入开始的时候,将图片切成一个个图块。
在每个阶段中,由Patch Merging和多个Block组成,其中:
Patch Merging模块主要在每个阶段一开始降低图片分辨率(下采样)。每个Block为自注意力计算模块,分为窗口自注意力模块和滑窗自注意力模块。

Patch Partition

将原始图片裁成一个个大小为4X4的patch。
输入一个图片(H,W,3),输出一系列特征图(H/4,W/4,3X4X4)。
在这里插入图片描述

Linear Embedding

将上一步输出的特征图,转换成Transformer能够处理的序列。
输入特征图(H/4,W/4,344),输出一个序列(H/4*W/4,C),文章中C=96,为超参数。

patch Merging(下采样)

该模块的作用是在每个阶段开始前做降采样,用于缩小分辨率,调整通道数进而形成层次化的设计,同时也能节省一定运算量。
在这里插入图片描述
在这里插入图片描述

  1. 每次降采样是两倍,因此在行方向和列方向上,间隔2选取元素。
  2. 拼接在一起,此时通道维度会变成原先的4倍。(H/8xW/8,4C)
  3. 此时再通过一个全连接层再调整通道维度为原来的2倍。(H/8xW/8,2C)
    输入(H/4xW/4,C),输出(H/8xW/8,2C)

Swin Transformer Block*2

实际上是一个win Transformer和一个Swin Transformer成对出现。
在这里插入图片描述

在这里插入图片描述

W-MSA:基于窗口的多头自注意力机制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SW-MSA:基于滑动窗口的多头自注意力机制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结构变体

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值