参考:
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。
输入:
- ViT 将输入图像拆分成 patches 序列,每个 patch 大小为 P × P 像素,每个 pathch 就相当于一个 token。使用 patch 避免了像素级 self-attention 的运算,否则直接让每个像素都关注其它所有像素,复杂度是像素平方级别的,代价太高,实际不可行。
- 一张原始图像
,H 是图像的高,W 是图像的宽,C 是图像的通道数
- 转换成 patchs 序列
,P 是 patch 大小(边长),每个 patch 维度
,
是 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:
%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 代码实现
- 论文开源代码(TensorFlow):google-research / vision_transformer
- Pytorch 实现:lucidrains / vit-pytorch,分析参考博文:Vision transformer-CSDN,【解析】Vision Transformer 在图像分类中的应用(ICLR 2021)
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
分别利用两个 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
