A Survey on Vision Transformer(1/2)

摘要

Transformer是一种基于自注意力机制的深度神经网络,最初被用于NLP,后逐步被应用于计算机视觉任务中去。论文探讨了Transformer的主干网络、高/中级视觉处理、低级视觉处理及视频处理,对高效Transformer、实际部署和其核心机制self-attention进行了探讨。最后对Transformer存在的挑战和未来方向进行了展望。
论文地址:A Survey on Vision Transformer

介绍

Transformer的主要特点是使用了自注意力机制,最先用于NLP领域的机器翻译、文本解析等任务,后逐渐用于CV领域。Transformer的结构决定了其天然适合处理序列数据。
transformer几个关键的里程碑式研究如图1所示,其中红色的是视觉Transformer相关。
Alt

图1

Transformer

Transformer的一般处理流程如图2所示,包含encoder和decoder部分,每一个encoder模块中都包含self-attention层和一个前馈神经网络,在decoder模块中则是self-attention层和cross attention层以及前馈网络。
Alt

图2

具体结构如图3。每一层decoder与encoder之间的残差连接,这样增强了他们之间的信息流。每一次self-attention层后都会跟一个FFN前馈神经网络,主要包括含两层线性变换和一层非线性变换
。Decoder的最后一层包含线性层和softmax层,会将堆叠的特征向量转换回单词,获得最终的概率输出。
Alt

图3

Multi-head Attenion

在self-attention层,输入向量首先被转换成三类向量:q,k,v,不同输入得到的是不同的q,k,v,随后会经过以下步骤计算self-attention:

在这里插入图片描述
每个注意力头会关注一个特定的位置,而多头注意力可以在不同的子空间内计算attention,使得网络能够同时注意多个不同的位置,从而进一步提升self-attention的性能。

Transformer in CV

Backbone

Transformer可以作为分类网络的backbone。使用CNN和attention作为主干网络,有如图4中的网络。
Alt

图4

Pure Transformer

ViT(Vision Transformer)是纯粹使用Transformer来做图像分类任务。结构如图5。输入图像被reshape成一系列patch连接而成的序列,patch维度 ( p , p ) (p,p) (p,p),有效序列长度则是原始图像的 h w / p 2 hw/p^2 hw/p2。因为Transformer每层输出宽度都一样,可以训练一个线性层用于将提取到的向量映射到维度d,这样就类似输出了word embedding的结果。之后的输入做embeeding,迁入之后的结果作为图像的表征。


在这里插入图片描述

图5

Shuffle Transformer则是使用shuffle的方式替换shift window;DeepViT提出多头交互从而丰富attention map;KVT则是基于knn的思想来聚合attention从而抑制一些噪声等。

Transformer with Convolution

纯Transformer在局部信息提取方面上存在不足,因此可以结合卷积操作,形成互补-conventional transformer。
CVPT提出使用条件位置编码,编码会考虑自己临近的信息;CvT等则是分析了直接从NLP借鉴Transformer的局限性,提出与卷积操作结合在一起,即在每一个FFN层结合一个卷积层,这样可以融合临近的信息;BoTNet则是将空间卷积替换成了global self-attention,在实例分割和目标检测任务中均取得了优异的性能。

Self-supervised Representation Learning

代表模型有

iGPT,包含一个预训练阶段和一个微调阶段,预训练结算,探索了自回归和BERT;然后采用transformer序列因为要完成像素级别的预测。


GPT-2中则是使用了Transformer的decoder模块,一些细节改变是在atention和FFN之间进行的LN,以及引入残差连接。


基于对比学习的方法有MoCo v3,在随机数据增强下对每张图像进行两次裁剪。 他们由两个编码器 fq 和 fk 编码,带有输出向量q 和 k。


# High/Mid-level Vision


## 目标检测
主要利用transformer的自注意力机制增模块的检测能力。

基于Transformer做目标检测在精度和速度上均优于CNN。
DETR将目标检测任务视作一系列预测任务,摒弃了传统目标检测中的锚框、非极大值抑制等需人工干预的步骤。DETR还存在一定的问题:训练时间冗长、对小物体检测效果不佳。
Deformable DETR使用了deformable attention模块来改善以上问题,主要会关注参考点周围的图像特征,而原始的self-attention会关注图像上的所有空间位置的图像特征。
除了可以

用Transformer解决一系列预测任务,也可以将Transformer作为目标检测的通用框架,如ViT-FRCNN。

目标分割

Max-DeepLab直接使用一个mask transformer进行全景分割。


VisTR是基于Transformer进行视频实例分割的模型,通过输入图像序列获得预测的实例。
SETR是基于transformer用于语义分割的模型,使用了ViT类似的encoder结构,随后使用多级特征聚合模块(multi-level feature aggregation)进行像素级别的分割。
Swin-Unet是一个像UNet的纯Transformer用于医学图像分割的网络模型。

姿态识别

Huang等人提出了基于Transformer的3D手势姿态估计网络。
METRO首先通过一个CNN提取图像特征然后将特征图谱与人体mesh信息结合并进行位置信息的编码;随后送入到多层Transformer中的encoder进行下采样,降低维度,最终生成人体关节的坐标。

其他任务

行人检测
方面的模型有PED,中使用了Dense Queries Rectified Attention filed缓解噪声、narrow attention造成的性能衰减。



车道线检测类模型称为:LSTR,通过Transformer学习全局特征结合细粒度特征可以更好的对弯曲的车道进行检测



# 基础视觉任务



## 图像生成
Image Transformer:第一个将Transformer用于图像生成的模型,encoder负责提取图像特征,decoder负责逐点生成像素,通过计算输入像素与前序生成像素的self-attention。



## 图像处理



TTSR在超分辨率的参考图像部分使用了Transformer,目的是将LR图像的纹理信息进行迁移,因此是将LR图像和参考图像分别作为Q,K,然后计算每个patch中q,k之间的相关性。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值