Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
会议:2021 IEEE/CVF International Conference on Computer Vision (ICCV)
收录时间:2021-10-01
这篇论文的研究背景是针对将 Transformer 模型从语言领域应用到计算机视觉领域所面临的挑战,
如视觉实体的度变化和像素分辨率高于文本中的单词等问题。为了解决这些问题,作者提了一种
名为 Swin Transformer 的层次化视觉 Transformer 模型,并用了 Shifted window 方法计算其表示。
该模型具有灵活性,可以在不同尺度下进行建模,并且与广泛的视觉任务兼容,包括图像、目标
检测和语义分割等。Shifted window 方法的优势在于其计算效率高,而且于所有的 MLP 架构都有
益。
它首先通过补丁分割模块(Patch Partition)将输入的 RGB 图像分割成不重叠的 patch。每个 patch 都被视为一个
“token”,其特征被设置为原始像素 RGB 值的串联。在我们的实现中,我们使用 4 × 4 的 patch size,因此
每个 patch 的特征维度为 4 × 4 × 3 = 48。在这个原始值特征上应用线性嵌入层,将其投影到任意维度(表示
为 C)。Transformer 块保持 token 的数量 (H/4 × W/4 ),以及线性嵌入称为“阶段 1”。
Patch Merging:在每个 Stage 中首先要通过一个 Patch Merging 层进行下采样(Stage1 除外)。例如输入 Patch
Merging 的是一个 4x4 大小的单通道特征图(feature map),Patch Merging 会将每个 2x2 的相邻像素划分为一个
patch,然后将每个 patch 中相同位置(同一颜色)像素给拼在一起就得到了 4 个 feature map。接着将这四个 feature
map 在深度方向进行 concat 拼接,然后在通过一个 LayerNorm 层。最后通过一个全连接层在 feature map 的深
度方向做线性变化,将 feature map 的深度由 C 变成 C/2。通过这个简单的例子可以看出,通过 Patch Merging 层
后,feature map 的高和宽会减半,深度会翻倍。