Swin transformer讲解

基于自注意力机制的Transformer模型在自然语言处理领域的成功引起了计算机视觉研究者的注意。近年来,有越来越多的研究者正试图将Transformer应用于视觉领域。但Transformer终究还是为了解决NLP领域的问题而设计的,将其应用到视觉领域会遇到两个需要解决的问题:

  1. 在NLP领域,具有完整语义信息的一个个体通常仅为一个单词或几个词元的组合体,尺度较小且较为固定,而视觉领域中,一个完整的带有独立语义信息的物体在图片中可大可小,尺寸变化较大

  2. NLP领域中,一个句子或一个段落被分割成token后得到的序列长度仍然在几十至几百不等,而视觉任务所处理的图片数据通常拥有成千上万甚至百万个像素,简单地将图像中的像素展平成一个向量会导致巨大的序列长度,这对于计算复杂度与序列长度的平方成正比的Transformer来说是不可接受的。

 ViT并非十全十美。首先,由于完全采用原始Transformer架构,几乎不含任何与视觉任务相关的先验信息,因此需要在大量数据的训练下才能表现出良好的性能。其次,ViT通过分割图片块的方式缩短了序列长度,但自注意力操作仍需在整张图片上的所有图片块之间进行,计算复杂度仍与图片面积的平方成正比。最后,ViT论文中仅仅对Transformer应用于图像分类任务进行了尝试,这仅需单一尺寸的图片特征即可完成。而许多其他的视觉任务(尤其是密集预测性任务,如目标检测和语义、实例分割)都需要模型输出多尺寸的特征,这恰是ViT所不能提供的。

为了获得一个能够作为视觉任务通用骨干网络的基于Transformer架构的视觉模型,本文的作者提出了"使用移动窗口注意力的层级式Vision Transformer",简称Swin Transformer。通过基于ViT的一系列改进,Swin做到了正比于图像面积的计算复杂度多尺寸特征输出,为Transformer在视觉领域应用于更大的图片和更多的任务铺平了道路。

模型架构

认识swin transformer

 

整个模型采取层次化的设计,一共包含4个Stage,每个stage都会缩小输入特征图的分辨率,像CNN一样逐层扩大感受野。

具体步骤:

首先将图片输入到Patch Partition模块中进行分块,即每4x4相邻的像素为一个Patch,然后在channel方向展平࿰

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值