第十五章 Swin-Transformer网络详解

 系列文章目录


第一章 AlexNet网络详解

第二章 VGG网络详解

第三章 GoogLeNet网络详解 

第四章 ResNet网络详解 

第五章 ResNeXt网络详解 

第六章 MobileNetv1网络详解 

第七章 MobileNetv2网络详解 

第八章 MobileNetv3网络详解 

第九章 ShuffleNetv1网络详解 

第十章 ShuffleNetv2网络详解 

第十一章 EfficientNetv1网络详解 

第十二章 EfficientNetv2网络详解 

第十三章 Transformer注意力机制

第十四章 Vision Transformer网络详解 

第十五章 Swin-Transformer网络详解 

第十六章 ConvNeXt网络详解 

第十七章 RepVGG网络详解 

第十八章 MobileViT网络详解 

文章目录

  • 0. 摘要
  • 1. 前言
  • 2.   
    • 1.  
    • 2.
  • 总结


0、摘要

本文介绍了一种新的视觉Transformer,称为Swin Transformer,它具备作为计算机视觉通用骨干网的能力。将Transformer从语言领域转换到视觉领域面临的挑战来自两个领域的差异,如视觉实体的尺度变化较大以及图像中像素的分辨率相对于文本中的单词高得多。为了解决这些差异,我们提出了一种分层Transformer,其表示是通过Shifted 窗口计算得出的。该Shifted 窗口方案通过将自注意计算限制在非重叠的本地窗口上,同时允许窗口连接,从而带来更高的效率。这种分层架构具有在不同尺度下建模的灵活性,并且与图像尺寸呈线性计算复杂度。Swin Transformer的这些品质使其适用于广泛的视觉任务,包括图像分类(在ImageNet-1K上的87.3 top-1准确率)以及密集预测任务,例如目标检测(在COCO testdev上的58.7 box AP和51.1 mask AP)和语义分割(在ADE20K val上的53.5 mIoU)。其性能大大超过了以前的技术水平,COCO上的+2.7 box AP和+2.6 mask AP以及ADE20K上的+3.2 mIoU,这证明了基于Transformer的模型作为视觉骨干网的潜力。分层设计和Shifted 窗口方法对于所有MLP体系结构也是有利的。代码和模型可在<a href="https://github.com/microsoft/Swin-Transformer%E5%85%AC%E5%BC%80%E8%8E%B7%E5%BE%97%E3%80%82">https://github.com/microsoft/Swin-Transformer公开获得。</a></p>

1、前言

1.引言 在计算机视觉中,建模一直由卷积神经网络(CNNs)主导。从AlexNet [39]开始,通过*等量贡献。†在MSRA的实习生。‡联系人。图1。(a)提出的Swin Transformer通过合并更深层次的图像块(显示为灰色),建立分层特征映射,并且由于只计算每个局部窗口内的自我关注而对输入图像大小具有线性计算复杂度。因此,它可以成为图像分类和密集识别任务的通用骨干。(b)相比之下,以前的视觉Transformer [20]产生单个低分辨率的特征图,并且由于全局自我注意力计算而对输入图像大小具有二次计算复杂度。更大规模[30,76],更广泛的连接[34]和更复杂的卷积形式[70,18,84]的使用。随着CNN作为各种视觉任务的骨干网络,这些架构进步已经带来了广泛提高整个领域的性能改进。另一方面,自然语言处理(NLP)中的网络架构演变经历了不同的路径,今天普遍的架构是Transformer [64]。Transformer专为序列建模和变换任务设计,其注意力机制可以对数据中的长距离依赖进行建模。它在语言领域的巨大成功促使研究人员研究其在计算机视觉中的适应性,在某些任务中最近展示了有希望的结果,特别是图像分类[20]和联合视觉语言建模[47]。

"Transformer efficient in handling high-resolution images.' 在本文中,我们试图扩展Transformer的适用性,使其能够像NLP一样为计算机视觉提供通用骨干支持,就像CNN在视觉中做的那样。我们观察到,在将其在语言领域的高性能转移到视觉领域方面存在重大挑战,这可以通过两种模式的差异来解释。其中之一是规模的差异。不像在语言Transformer中用作处理基本元素的单词标记,视觉元素可以在规模上大相径庭,这是在任务如目标检测中得到关注的问题。在现有的基于Transformer的模型中,标记都是固定规模的属性,这对于这些视觉应用是不合适的。另一个差异是图像中像素的分辨率比文本段落中的单词高得多。存在许多视觉任务(例如语义分割),需要在像素级进行密集预测,这对于高分辨率图像上的Transformer来说是不可行的,因为其自我关注的计算复杂性与图像大小的平方成正比。为了克服这些问题,我们提出了一个通用的Transformer骨干,称为Swin Transformer,它构建了分层特征图,并具有图像大小的线性计算复杂性。如图1(a)所示,Swin Transformer通过从小的补丁(用灰色轮廓)开始并逐渐在更深的Transformer层中合并相邻的补丁来构建分层表示。有了这些分层特征图,Swin Transformer模型可以方便地利用用于密集预测的先进技术,如特征金字塔网络(FPN)[42]或U-Net [51]。通过在非重叠窗口内计算自我注意力来实现线性计算复杂度,这些窗口将图像分成分区(用红线轮廓)。每个窗口中的补丁数量是固定的,因此复杂度与图像大小成线性关系。这些优点使Swin Transformer在处理高分辨率图像方面非常有效。

Swin Transformer的一个关键设计元素是其在连续的自注意力层之间移动窗口划分,如图2所示。移动的窗口桥接了前一层的窗口,提供了它们之间的连接,显著增强了建模能力(参见表4)。这种策略在实际世界的延迟方面也非常有效:窗口内的所有查询补丁共享相同的键集1,这有助于硬件中的内存访问。相比之下,早期基于滑动窗口的自注意力方法[33,50]由于不同查询像素的不同键集,在一般硬件上存在较低的延迟。我们的实验表明,所提出的移动窗口方法比滑动窗口方法具有更低的延迟,但建模能力相似(参见表5和表6)。移动窗口方法也对所有MLP架构[61]有益。

所提出的Swin Transformer在图像分类、目标检测和语义分割的识别任务上都取得了强大的表现。在三个任务上,它表现优于ViT /DeiT模型[20,63]和ResNe(X)t模型[30,70],并具有相似的延迟。在COCO测试集上,它的盒子AP和掩模AP分别为58.7和51.1,超过了以前的最新结果,盒子AP增加了2.7(Copy-paste [26]没有外部数据),而掩模AP增加了2.6(DetectoRS [46])。在ADE20K语义分割中,它在val集上获得了53.5 mIoU,较之前的最新成果(SETR [81])提高了3.2 mIoU。在ImageNet-1K的图像分类中,它也达到了87.3%的top-1准确率。我们相信,计算机视觉和自然语言处理领域的统一架构可以使两个领域受益,因为它将有助于视觉和文本信号的联合建模,两个领域的建模知识可以更深入地共享。我们希望Swin Transformer在各种视觉问题上的优异表现可以在社区中深化这种信念,并鼓励视觉和语言信号的统一建模。

 (图1.(a)所提出的Swin Transformer通过合并深层中的图像块(灰色部分),构建了分层的特征图,并由于仅在每个局部窗口(红色部分)内计算自注意力,因此具有线性计算复杂度,可用作图像分类和密集识别任务的通用骨干。(b)相比之下,之前的Vision Transformer [20]产生单个低分辨率的特征图,并且由于全局自注意力的计算而对输入图像大小具有二次计算复杂度)

 (图2.在提出的Swin Transformer体系结构中计算自注意力的移动窗口方法的图示。在层l(左侧),采用常规的窗口分割方案,在每个窗口内计算自注意力。在下一层l+1(右侧),窗口分割发生了移动,产生了新的窗口。新窗口中的自注意力计算跨越了层l中先前窗口的边界,提供了它们之间的连接)

2.正文分析

总结


http://www.niftyadmin.cn/n/468917.html

相关文章

Leetcode 13. 罗马数字转整数

Leetcode 13. 罗马数字转整数 一、题目描述&#xff1a; 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即为…

环境变量法来实现Docker中nginx配置文件参数的动态修改

背景&#xff1a; Docker进入大众的视野已经7个年头了&#xff08;国内火起来&#xff09;&#xff0c;可谓是经历了多次的大热大冷&#xff0c;走到今天我觉得它还是一个中小企业实现运维自动化的不二选择。18年接触Docker时根据公司业务制作了一系列的订制镜像&#xff0c;今…

elixir教程:递归和枚举

文章目录 递归递归实现循环列表和尾递归Enum模块 递归 由于在Elixir中&#xff0c;变量是不可变的&#xff0c;从而类似i这种自增指令是没法实现的&#xff0c;也就没法进行循环。但作为一种编程语言来说&#xff0c;循环又是必不可少的一种流程控制手段&#xff0c;而在elixi…

卫星地图应用经典实例项目(7个)

本文会介绍引用一些非常好的卫星地图等相关的应用,一方面给大家增加见识,另一方面会提供一些设计开发的思路以及代码。 文章目录 热气球追踪系统googlemap实现卫星轨迹satvis卫星Cesium系统NASA的worldview系统项目Esri-Satellite-Map基于leaflet的卫星轨迹绘制项目地球当前…

【Shell1】shell语法,ssh/build/scp/upgrade,环境变量

文章目录 1.shell语法&#xff1a;shell是用C语言编写的程序&#xff0c;是用户使用Linux的桥梁&#xff0c;硬件>内核(os)>shell>文件系统1.1 变量&#xff1a;readonly定义只读变量&#xff0c;unset删除变量1.2 函数&#xff1a;shell脚本传递的参数中包含空格&…

文献学习-联合抽取-Joint entity and relation extraction based on a hybrid neural network

目录 1、Introduction 2、Related works 2.1 Named entity recognition 2.2 Relation classification 2.3 Joint entity and relation extraction 2.4 LSTM and CNN models On NLP 3、Our method 3.1 Bidirectional LSTM encoding layer 3.2 Named entity recogniton …

基于 Redis 手写一个“秒杀”

博主介绍&#xff1a; ✌博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家✌ Java知识图谱点击链接&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; &#x1f495;&#x1f495; 感兴趣的同学可以收…

计算机图形学 期末复习 微课版 孔令德 八、真实感图形 期末复习

颜色模型 RGB颜色模型添加一个a(alpha)分量代表透明度&#xff0c;形成RGBA模型。 光照模型 简单光照模型 简单光照模型假定光源为点光源&#xff0c;入射关仅由红、绿、蓝3种不同波长的光组成&#xff1b;物体为非透明物体&#xff0c;物体表面所呈现的颜色仅由反射光决定&…