在计算机视觉领域,CNN自2012年以来已经成为视觉任务的主导模型。随着出现了越来越高效的结构,计算机视觉和自然语言处理越来越收敛到一起,使用Transformer来完成视觉任务成为了一个新的研究方向,以降低结构的复杂性,探索可扩展性和训练效率。
视觉应用
虽然Transformer
结构在NLP
领域得到了广泛的应用,但是在视觉领域的应用仍然有限。在视觉领域,attention
或者是和CNN
网络共同使用或者是代替CNN
中特定的组件。想要将 Transformer
应用到视觉任务中,我们首先需要构建一些类似于VGG
、ResNet
之类的backbone
。
以下是几个在相关工作中比较知名的项目:
- DETR(End-to-End Object Detection with Transformers),使用Transformers进行物体检测和分割。
- Vision Transformer (AN IMAGE IS WORTH 16X16 WORDS: Transformer FOR IMAGE RECOGNITION AT SCALE),使用Transformer 进行图像分类。
- Image GPT(Generative Pretraining from Pixels),使用Transformer进行像素级图像补全,就像其他GPT文本补全一样。
- End-to-end Lane Shape Prediction with Transformers,在自动驾驶中使用Transformer进行车道标记检测
结构
总的来说,在CV中采用Transformer的相关工作中主要有两种模型架构。一种是纯Transformer结构,另一种是将CNNs/主干网与Transformer相结合的混合结构。
- 纯Transformer
- 混合型:(CNNs+ Transformer)
Vision Transformer是基于完整的自注意力的Transformer结构没有使用CNN,而DETR是使用混合模型结构的一个例子,它结合了卷积神经网络(CNNs)和Transformer。
Vision Transformer
Vision Transformer(ViT)将纯Transformer架构直接应用到一系列图像块上进行分类任务,可以取得优异的结果。它在许多图像分类任务上也优于最先进的卷积网络,同时所需的预训练计算资源大大减少(至少减少了4倍)。