文章目录

  • 创新点
  • 算法
    • Patch Merging
    • W-MSA
    • SW-MSA
    • 位置偏置
    • 结构变体
  • 实验
    • ImageNet分类
    • COCO目标检测
    • ADE20K语义分割
    • 消融实验
  • 结论

论文: 《Swin Transformer: Hierarchical Vision Transformer using Shifted Windows》
代码: https://github.com/microsoft/Swin-Transformer

创新点

Transformer从语言应用到视觉,主要有两大挑战:
1、图像中目标尺寸变化大;
2、与文本中单词量相比,图像中像素数量更大;
为了解决这些差异,我们提出了一种分层Transformer,其特征是用 Shifted windows 计算的。移位窗口方案通过将 self-attention 计算限制在不重叠的本地窗口上,同时还允许跨窗口连接,从而带来更高的效率;与图像大小相关的的线性复杂度;
性能:
在分类任务ImageNet-1k上,top1 accuracy达到87.3%;在COCO test数据集上检测性能达到58.7AP,分割性能51.1AP;

算法

Swin Transformer结构如图3a所示,

Swin Transformer流程如下:
1、输入 ( N , 3 , 224 , 224 ) (N, 3, 224, 224) (N,3,224,224)图像,经过Patch Partition以及Linear Embedding输出为 ( N , 96 , 56 ∗ 56 ) (N, 96, 56*56) (N,96,5656,此处C=96,(该过程通过kernal为patch size=4卷积实现);
2、进入stage1,Swin Transformer Block结构如图3b,主要包括输入W-MSA及SW-MSA。首先进行进行归一化,window partition,window size=7,输出为维度为 ( 64 N , 7 , 7 , 96 ) (64N,7,7,96) (64N,7,7,96);该结果经过attention模块(W-MSA)+FFN;(64个window)(MSA结构可以参考之前文章Transformer结构解读)
3、上述输出经过归一化,x进行偏移window size//2大小,而后进行window partition,window size=7,以及attention模块(SW-MSA)+FFN;
4、上述输出经过patch merging降低分辨率;进入stage2阶段,以此类推;

Patch Merging

为了生成多级分辨率,随着网络加深,通过Patch Merging层实现;
第一个Patch Merging,stage2阶段,对于 ( C , W / 4 , H / 4 ) (C,W/4,H/4) (CW/4H/4)的输入,将2*2个patch归为一组,channel 变为4C,分辨率变为之前1/4,输出为 ( 4 C , W / 8 , H / 8 ) (4C,W/8,H/8) (4C,W/8,H/8),其过程类似feat reshape操作;而后降维为2C输出 ( 2 C , W / 8 , H / 8 ) (2C,W/8,H/8) (2C,W/8,H/8)
stage3、stage4输出分辨率分别为 ( 4 C , W / 16 , H / 16 ) , ( 8 C , W / 32 , H / 32 ) (4C,W/16,H/16),(8C,W/32,H/32) (4C,W/16,H/16),(8C,W/32,H/32).

W-MSA

全局self-attention计算成本高,使用window based self-attendtion可降低计算量。如式1为全局attention,式2为使用窗口attention计算复杂度;
self-attention的计算瓶颈在于全图匹配QK,改为窗口内,可大大降低计算量,如式2。

式1,MSA计算复杂度分析如下,
1、MSA生成三个特征向量Q,K,V过成: Q = x ∗ W Q , K = x ∗ W K , V = x ∗ W V Q=x*W^Q,K=x*W^K,V=x*W^V Q=xWQ,K=xWK,V=xWV 。x​的维度是 ( h w , C ) (hw,C) (hw,C),W​的维度是 ( C , C ) (C,C) (C,C)​,那么这三项的计算复杂度是​ 3 h w C 2 3hwC^2 3hwC2
2、Attention中计算 Q K T QK^T QKT:Q,K,V的维度是 ( h w , C ) (hw,C) (hw,C) ,因此该过程的复杂度是 ( h w ) 2 C (hw)^2C (hw)2C
3、Softmax之后乘V得到Z:因为 Q K T QK^T QKT的维度是 ( h w , h w ) (hw,hw) (hw,hw),所以该过程的复杂度是​ ( h w ) 2 C (hw)^2C (hw)2C;
4、 Z Z Z乘矩阵 W Z W^Z WZ​得到最终输出:它的复杂度是​ h w C 2 hwC^2 hwC2
因此MSA计算复杂度为 4 h w C 2 + 2 ( h w ) 2 C 4hwC^2+2(hw)^2C 4hwC2+2(hw)2C
式2,W-MSA计算复杂度分析如下,每个window有 M ∗ M M*M MM个Patch,
1、计算复杂度为, 3 ∗ ( h / M ) ∗ ( w / M ) ∗ M 2 ∗ C 2 = 3 h w C 2 3*(h/M)*(w/M)*M^2*C^2=3hwC^2 3(h/M)(w/M)M2C2=3hwC2;
2、计算复杂度为, ( h / M ) ∗ ( w / M ) ∗ ( M 2 ) ∗ ( M 2 ) ∗ C = h w M 2 C (h/M)*(w/M)*(M^2)*(M^2)*C=hwM^2C (h/M)(w/M)(M2)(M2)C=hwM2C
3、计算复杂度为, ( h / M ) ∗ ( w / M ) ∗ ( M 2 ) ∗ ( M 2 ) ∗ C = h w M 2 C (h/M)*(w/M)*(M^2)*(M^2)*C=hwM^2C (h/M)(w/M)(M2)(M2)C=hwM2C
4、计算复杂度为, ( h / M ) ∗ ( w / M ) ∗ M 2 C 2 = h w C 2 (h/M)*(w/M)*M^2C^2=hwC^2 (h/M)(w/M)M2C2=hwC2
因此W-MSA计算复杂度为 3 h w C 2 + 2 M 2 h w C 3hwC^2+2M^2hwC 3hwC2+2M2hwC

SW-MSA

固定窗口缺少窗口之间联系,限制模型表达能力。为此引入shifted window partition方法,如图2所示;

layer l使用均匀窗口分割(W-MSA),layer l+1使用shifted 窗口分割(SW-MSA),生成窗口穿过layer l窗口的边界。
使用shifted window partition将生成更多窗口,并且个别窗口比较小,如图2右侧红色窗口;
因此作者使用cyclic-shift,与常规窗口分割相比,窗口数量相等;如图4所示


但是如图4所示,经过shift后一些在特征图中本不相邻区域,出现在同一窗口,这些区域之间不应进行attention计算,因此作者引入mask机制;
如下图所示,源自issue38

左图为原图经过偏移后结果,以window1举例,QKV为区域1和区域2穿插,但区域1与区域2不想计算attention,区域2由左侧shift而来,因此对应attn_mask如右上角,0与-100如棋盘状穿插,attn_mask加入softmax计算,-100对应结果趋近于0,起到mask作用。

位置偏置

作者在计算Attention过程中增加位置相关偏置项,如式4,

结构变体

Swin结构变体包括以下几种:

Window大小默认M=7,MSA中每个head的序列维度d=32,C表示stage1中隐藏层channel数;layer numbers表示每个stage层数

实验

ImageNet分类

在ImageNet-1K数据上分类性能及计算量比较如表1所示,

COCO目标检测

图2a作者比较Swin-T与ResNet50在四个检测框架下性能;
图2b作者使用Cascade Mask R-CNN检测框架,比较不同模型容量的Swin Transformer与ResNe(X)t性能;在相似参数量、计算量、FPS下Swin Transformer均取得不错性能;
图2c最好结果与之前SOTA进行对比;

ADE20K语义分割

如表3

消融实验

如表4,在分类、检测、分割任务上,作者进行如下比较试验;

  1. 是否使用shift window,结果表明shift window性能优于固定窗口;
  2. 不同位置编码方式比较实验,不使用位置编码、ViT中绝对位置编码、式4中增加位置相关偏置项,结果表明增加位置相关偏置项性能提升;式4中去掉 √ d \surd d d项,性能下降;

    作者比较不同attention方法,耗时情况,如表5

    Swin Transformer略快于Performer,同时性能优于Performer,如表6,

结论

作者提出一种视觉Transformer,Swin Trnsformer,通过W-MSA及SW-MSA降低计算复杂度,生成多层级特征,证明SW-MSA有效性;在COCO目标检测及ADE20K语义分割任务上均取得SOTA性能;

Swin Transformer论文解读相关推荐

  1. Transformer论文解读

    简介 近年来,注意力(Attention)机制被广泛应用于计算机视觉和自然语言处理领域,仅 CVPR2020 接收的论文中,使用到 Attention 的文章达到 60 篇.随着 Attention ...

  2. Swin Transformer全方位解读【ICCV2021马尔奖】

    前言 前言就是唠唠嗑,想看干货的可以直接看下一节. 今年ICCV的最佳论文还是给到了刷榜各大CV竞赛榜的模型Swin Transformer,研究团队来自MSRA(你大爷还是你大爷啊). 自从ViT. ...

  3. transformer论文解读_一文读懂transformer(CV专享)

    导言: transformer在这两年大火,CV界广泛应用transformer模型,充分吸收其idea到自己的领域.考虑到transformer本是应用于NLP的论文,其中很多内容都形成了共识,因此 ...

  4. SwinIR: Image Restoration Using Swin Transformer论文笔记

    前言 该算法将Swin Transformer应用于图像复原的领域,主要网络结构分为三个部分:①浅层特征提取 ②深层特征提取 ③高质量图像重建.主要应用于图像复原的三个方向,图像超分辨.图像降噪.由于 ...

  5. Swin Transformer 论文精读,并解析其模型结构

    计算机视觉的建模从AlexNet在ImageNet分类挑战的良好表现开始,然后到目标检测的SSD.RCNN.YOLO等模型,一直由CNN主导.直到NLP领域中Transformer的崛起,并经ViT应 ...

  6. transformer论文解读_【论文解读】ICLR2020 | 深度自适应Transformer

    作者 | kaiyuan   整理 | NewBeeNLP 一篇来自ICLR2020,facebook人工智能实验室的论文,关于改进Transformer推理速度的.论文地址:https://arxi ...

  7. Transformer论文解读一(Transformer)

    最近Transformer在CV领域很火,Transformer是2017年Google发表的Attention Is All You Need,主要是针对自然语言处理领域提出的.本系列文章介绍Tra ...

  8. Vision Transformer 论文解读

    原文链接:https://blog.csdn.net/qq_16236875/article/details/108964948 扩展阅读:吸取CNN优点!LeViT:用于快速推理的视觉Transfo ...

  9. 【Transformer论文解读】TRAR: Routing the Attention Spans in Transformer for Visual Question Answering

    TRAR: Routing the Attention Spans in Transformer for Visual Question Answering 一.Background With its ...

最新文章

  1. 使用回调函数实现图像阈值分析。程序运行后在屏幕中输入阈值,通过改变滑动条实现不同类型的二值化图。
  2. Windows下Qt程序打包
  3. Oracle 11.2 安装Oracle 11.1的HR schoma
  4. java getclass 相等_Java判断2个List集合是否相等(不考虑元素的顺序)
  5. 边缘检测后去除噪点_修图前vs修图后,原来那些网红“照骗”都是这样修出来的!...
  6. mysql上一条语句成功_mysql : 获取上一条insert语句
  7. 小程序支付一定要后台服务器,2.字节跳动小程序支付配置
  8. python 英语翻译 excel_Excel自动翻译
  9. html中if判断鼠标,怎样在网页里面检测鼠标
  10. Vc++安装包_Visual C++ 6.0中文版安装包下载及win11安装教程
  11. php表格中的caption,HTML中的caption属性是什么意思?caption标签在HTML中的用法(附实例)...
  12. 京东商城SPU、SKU是如何设计的
  13. 自主移动机器人模型制作
  14. String的底层分析 (学习笔记)
  15. Api --String知识点
  16. 极客大挑战 2021
  17. 用计算机实现的动画效果,运用PPT编辑动画效果
  18. 让 AE 输出 MPEG
  19. ABP VNext学习日记2
  20. 亚马逊、ebay、沃尔玛测评自养号大额,退款的卖家需要解决的那些技术原理

热门文章

  1. viper4android fx6.0,ViPer4android. FX顶级音效!
  2. Just move in!
  3. roaming文件夹是什么文件夹,roaming文件夹能删除么?
  4. vue+element-ui el-pagination 分页后 导出全部数据
  5. 数据分析:Numpy模块(一)
  6. MongoDBC++开发(四)bsoncxx::builder::stream::document的增删改查操作
  7. 【ROC包】分析与可视化ROC——plotROC、pROC
  8. 关于洛必达法则的一些验证
  9. 终于不用记英文邮箱名了
  10. java 插入到完整的classbody_java语法错误,将“}”插入到完整 MethodBody 中