参考:

1、目标检测

1.1 DETR

Carion, Nicolas, et al. “End-to-end object detection with transformers.“ European Conference on Computer Vision. Springer, Cham, 2020.

是第一篇用 Transformer 做目标检测的论文

1.2 Deformable-DETR

Zhu, Xizhou, et al. “Deformable DETR: Deformable Transformers for End-to-End Object Detection.“ arXiv preprint arXiv:2010.04159 (2020).

对 DETR 的改进,改变 Transformer 来迎合计算机视觉的任务的需求,而不是修改计算机视觉任务来强行使用 Transformer

1.3 多目标跟踪 MOT

Sun, Peize, et al. “TransTrack: Multiple-Object Tracking with Transformer.“ arXiv preprint arXiv:2012.15460 (2020).

第一次将 Transformer 引入到了 MOT 领域(Multiple-Object Tracking,多目标跟踪)

1.4 单目标跟踪 SOT

Wang, Ning, et al. “Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking.“ arXiv preprint arXiv:2103.11681 (2021).

将 Transformer 引入到了 SOT 领域(单目标跟踪)

2、图像分类

2.1 Vision Transformer(ViT)

Dosovitskiy, Alexey, et al. “An image is worth 16x16 words: Transformers for image recognition at scale.“ arXiv preprint arXiv:2010.11929 (2020).

ViT 是第一个将 Transformer 用于图像分类的模型,而且直接使用标准的纯 Transformer 完全取代 CNN,即模型中不包含 CNN。ViT 在设计时尽可能地遵循原始的 transformer 的设计,如下图所示,ViT 就相当于 Transformer 的 Encoder,这点和 BERT 很像。
总体而言,ViT 就是将图形分块(patchs),得到 patches 序列,将序列中的每个 patch 降维得到 D 维空间的 embeddings,再加上位置编码信息后,输入到 Transformer 的 Encoder
image.png
输入

  • ViT 将输入图像拆分成 patches 序列,每个 patch 大小为 P × P 像素,每个 pathch 就相当于一个 token。使用 patch 避免了像素级 self-attention 的运算,否则直接让每个像素都关注其它所有像素,复杂度是像素平方级别的,代价太高,实际不可行。
    • 一张原始图像 Transformer 在计算机视觉领域的应用 - 图2,H 是图像的高,W 是图像的宽,C 是图像的通道数
    • 转换成 patchs 序列 Transformer 在计算机视觉领域的应用 - 图3,P 是 patch 大小(边长),每个 patch 维度 Transformer 在计算机视觉领域的应用 - 图4Transformer 在计算机视觉领域的应用 - 图5 是 patches 个数,也是序列长度
  • 对每个 patch 做一次线性变换(投影)降维到 D 维,D 维是 Transformer 中各层的隐向量的维度。
    • 这个投影的输出就是 patch embeddings
    • 这个投影也可以通过 CNN 的特征图抽取
  • 将一个可学习的 **[class]** embedding 嵌入到 patch embedding 序列的开头(类似于 BERT 预训练方法二加入的 [CLS] token),这个 embedding 输入到 Transformer encoder 得到的输出 是包含了整个图像语义的 representation,后续输入到全连接层进行分类
  • 同时嵌入位置信息,将 position embeddings 加入到 patch embeddings 中
  • 最后将这些 embedding 向量序列输入给 Transformer Encoder:
    • Transformer 在计算机视觉领域的应用 - 图6%22%20aria-hidden%3D%22true%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-7A%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMAIN-30%22%20x%3D%22658%22%20y%3D%22-213%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-3D%22%20x%3D%221197%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-5B%22%20x%3D%222253%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(2531%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-78%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(572%2C-150)%22%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-63%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-6C%22%20x%3D%22433%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-61%22%20x%3D%22732%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-73%22%20x%3D%221261%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-73%22%20x%3D%221731%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-3B%22%20x%3D%224760%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(5205%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-78%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMAIN-31%22%20x%3D%22809%22%20y%3D%22488%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-70%22%20x%3D%22809%22%20y%3D%22-212%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-45%22%20x%3D%226234%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-3B%22%20x%3D%226998%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(7443%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-78%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMAIN-32%22%20x%3D%22809%22%20y%3D%22488%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-70%22%20x%3D%22809%22%20y%3D%22-212%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-45%22%20x%3D%228472%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-3B%22%20x%3D%229236%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2E%22%20x%3D%229682%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2E%22%20x%3D%2210127%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2E%22%20x%3D%2210572%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-3B%22%20x%3D%2211017%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(11462%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-78%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-4E%22%20x%3D%22809%22%20y%3D%22488%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-70%22%20x%3D%22809%22%20y%3D%22-212%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-45%22%20x%3D%2212763%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-5D%22%20x%3D%2213527%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2B%22%20x%3D%2214028%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(15029%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-45%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(738%2C-150)%22%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-70%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-6F%22%20x%3D%22503%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-73%22%20x%3D%22989%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E#card=math&code=z0%3D%5Bx%7Bclass%7D%3Bxp%5E1E%3Bx_p%5E2E%3B…%3Bx_p%5ENE%5D%2BE%7Bpos%7D&id=yUt1p)

性能表现

  • 当使用中小型数据集(eg. ImageNet)进行训练时,transformer 的性能不如同等规模的 ResNet(CNN 模型)
    • 原因:Transformer 缺少 CNN 固有的归纳偏置(inductive biases),eg. 翻译的等价性和局部性,因此当数据量不足时不能得到很好的性能
  • 但是使用大规模数据集(14M-300M images)进行训练,能胜过归纳偏置的影响,性能超过当前最先进的 CNN 模型,并且消耗更少的计算资源
    • 因此,通常使用充足的大规模数据集对 ViT 进行预训练,然后迁移到数据量较少的下游任务中进行微调(fine-tune)

2.1.1 ViT 代码实现

3、多任务

3.1 Image Processing Transformer(IPT)

Chen, Hanting, et al. “Pre-trained image processing transformer.“ arXiv preprint arXiv:2012.00364 (2020).

提出了名为 IPT 的预训练 Transformer 模型,用于完成超分、去噪、去雨等多项计算机视觉任务

4、图像生成

4.1 TransGAN

Jiang, Yifan, Shiyu Chang, and Zhangyang Wang. “Transgan: Two transformers can make one strong gan.“ arXiv preprint arXiv:2102.07074 (2021).

本文是第一个只用纯 Transformer 完全代替 CNN 构建的 GAN
image.png

分别利用两个 Transformer Encoder 构造生成器和判别器:

  • 生成器:借鉴了基于 CNN 的 GAN 的思想,在每个 stage 后插入一个上采样模块,逐渐增加序列的长度(相当于 token 的数量),并减少每个 token embedding 的维度
    • 论文中分为 3 个 stage,每个 stage 中包含的 Transformer Encoder Layer 数分别为 5,2,2
    • 上采样模块包含 reshaping 和 pixelshuffle 模块,将序列的长度变为 4 倍(也就是将图像的高、宽分别变为 2 倍),同时对应的将序列中每个 embedding 的维度变为四分之一(也就是将图像通道数变为四分之一)
  • 判别器:采用了 ViT 的分类思路,将图像拆分成 patches 序列,输入到 Transformer Encoder
    • 但实验表明,基于 Transformer 的生成器能力很强,超过了基于 CNN 的生成器的性能;但基于 Transformer 的判别器能力很差,远不如基于 CNN 的判别器的性能
    • 原因:由于 Transformer 移除了 CNN 中的归纳偏置,导致 Transformer 在中小数据集上训练得到的性能不如 CNN 模型。基于 Transformer 的分类器需要大规模的数据去预训练,才能得到很好的性能。

为了解决基于 Transformer 的判别器性能差的问题,论文使用了如下训练技巧加以改进:

  • 数据增强:使得可以进行数据充足的训练。非常重要,使得模型性能大幅提升。
  • 加入自监督辅助任务协同训练:有助于帮助 TransGAN 获取更多的图像先验知识
  • Locality-Aware Initialization for Self-Attention:自注意力的局部初始化。设置一个 mask,在训练的早期阶段,做自注意力时,只允许 query 和其未被屏蔽的相邻区域进行交互;但这种机制会损害后期训练的性能,因此在交互过程中,逐渐减少 mask 直到完全不用 mask,最终自注意力就变回全局的了
  • 更大的模型

4.2 GANsformer

Hudson, Drew A., and C. Lawrence Zitnick. “Generative adversarial transformers.“ arXiv preprint arXiv:2103.01209 (2021).

提供了另一种用 Transformer 做图像生成任务的思路。与其说是用 Transformer 做 GAN,本文更像是利用attention 机制来改善 StyleGAN 的问题:

  • CNN 没有双向交互
  • CNN 的局部感受野妨碍了长程依赖和全局理解
  • StyleGAN不能控制局部属性

4.3 VQGAN

Esser, Patrick, Robin Rombach, and Björn Ommer. “Taming Transformers for High-Resolution Image Synthesis.” arXiv preprint arXiv:2012.09841 (2020).

结合 CNN 和 Transformer