# Swin transformer: Hierarchical vision transformer using shifted windows

用了滑动窗口的层级transformer:Shift Windows

图1. Swin transformer和vit对比

  1. Liu, Ze, et al. "Swin transformer: Hierarchical vision transformer using shifted windows." Proceedings of the IEEE/CVF international conference on computer vision. 2021.APA
    1. 主要思想是想让cv像cnn一样,也将图片分成block,同时对其做层级的提取,从而使提取出的特征有多个尺度
    2. 将transformer直接从nlp用到cv中,有几个挑战,一是cv中物体间的方差很大,第二是图片有时候分辨率很大,如果每个像素用一个token表示,就太长了
    3. 因此作者使用滑动窗,一方面滑动窗只计算窗口内的self-attention,极大提高了效率,因为图片中某个物体的特征实际上一般就是局部的,在全局上做attention太浪费了;另一方面使用滑动窗,实现了相邻窗口位置间的信息交互,实现全局建模
    4. cnn中使用pooling捕捉多尺度的特征,每次pooling后就可以看到更大的范围,作者借鉴了这种思想,提出了patch merging,实际上就是将多个相邻的小patch打包成一个大patch,从而在不同层次中看到的范围更大,捕捉多尺度特征
    5. 如图2. 每次shift window滑动,跟上个时刻的窗口部分重叠,因此可以关注到相邻部分的patch信息;文本作者patchsize是4

图2. 滑动窗每次移动

图3. 架构图