Transformer(三)搞懂Swin Transformer

Swin Transformer是微软提出的一种适用于计算机视觉任务的Transformer架构,通过滑窗操作解决了Transformer在CV领域的计算复杂度问题。文章详细介绍了Swin Transformer的总体结构、窗口注意力机制、实验结果以及存在的问题,展示了其在图像分类、目标检测和语义分割等任务上的优势。
摘要由CSDN通过智能技术生成

《Swin Transformer: Hierarchical Vision Transformer using Shifted Windows》
论文链接:https://arxiv.org/abs/2103.14030

目录

一、论文信息

二、总体结构

三、window attention 和 shift window attention

四、实验

五、存在的问题


一、论文信息

之前transformer主要用于NLP领域,现在也应用到了CV领域。Swin transformer是微软2021年3月月25日公布的一篇利用transformer架构处理计算机视觉任务的论文,它可以作为计算机视觉的通用backbone。源码仅仅公布两天就在github上收获了2.2k个stars,在图像分割、目标检测各个领域已经霸榜,让很多人看到了transformer完全替代卷积的可能。而且它的设计思想吸取了resnet的精华,从局部到全局,将transformer设计成逐步扩大感受野的工具,它的成功背后绝不是偶然,而是厚厚的积累与沉淀。

将Transformer从语言调整到视觉的挑战来自两个领域之间的差异:

1.视觉实体的大小差异很大,NLP对象的大小是标准固定的。
2.图像中的像素与文本中的单词相比具有很高的分辨率,而CV中使用Transformer的计算复杂度是图像尺度的平方,这会导致计算量过于庞大。

为了解决这两个问题,这篇文章提出了a hierarchical Transformer ,其表示是用滑窗操作计算的。滑窗操作方案通过将注意力计算限制到不重叠的局部窗口,同时还允许跨窗口连接,带来了更高的效率。(滑窗操作包括不重叠的local window,和重叠的cross-window。
这种分层体系结构可以灵活地在各种尺度上建模,并且在图像大小方面具有线性计算复杂性。Swin Transformer的这些品质使其能够兼容广泛的视觉任务。

​(a) 提出的Swin Transformer通过合并更深层的图像块(以灰色显示)来构建分层特征图,并且由于只在每个局部窗口(以红色显示)内计算注意力,因此对于输入图像大小具有线性计算复杂度。因此,它可以作为图像分类和密集识别任务的通用backbone。

(b) 相比之下,以前的Vison transformer产生单一低分辨率的特征图,并且由于计算全局的自我注意,对于输入图像大小具有二次计算复杂度。

二、总体结构

构建了4个stage,每个stage中都是类似的重复单元。

  • 和ViT类似,通过patch partition将输入图片 HxWx3 划分为不重合的patch集合,其中每个patch尺寸为 4x4,那么每个patch的特征维度为 4x4x3=48 ,patch块的数量为H/4 x W/4。以swin-s为例,输
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值