paper: https://arxiv.org/abs/2103.14030
code: https://github.com/microsoft/Swin-Transformer
将Transformer从NLP领域迁移到CV领域面临两个挑战:
1.与文本相比图像中的视觉实体尺度变化剧烈,NLP的scale是标准固定的,而CV的scale变换范围非常大。
2.图像分辨率高,带来了多尺度建模与计算量巨大的问题,CV中使用Transformer的计算复杂度是图像尺度的平方。
因为存在这两个问题,所以iGPT和ViT都将Transformer用在了图像分类领域,本文
Swin Transformer解决了这两个问题,并且在分类,检测,分割任务上都取得了SOTA的效果。
1.引入CNN中常用的层次化构建方式构建层次化Transformer
2.引入局部思想,对无重合的window区域内进行self-attention计算。
3.SwinTransformer采用了一种Shift-Windows的方法,来引入不同Windows之间的关系。
Swin Transformer的最大贡献是提出了一个可以广泛应用到所有计算机视觉领域的backbone,并且大多数在CNN网络中常见的超参数在Swin Transformer中也是可以人工调整的,例如可以调整的网络块数,每一块的层数,输入图像的大小等等。