互联网技术 / 互联网资讯 · 2023年12月18日

Transformer在计算机视觉中的应用

提到Transformer,很多人首先想到的是自然语言处理模型。

然而,Transformer如今也能够在计算机视觉领域发挥重要作用,效果不容小觑。

例如,微软研究院最新提出的Swin Transformer,在COCO数据集的分割检测任务上实现了显著的提升,达到了最新的技术水平。

Transformer跨界超越CNN,还解决了计算复杂度难题

关注自然语言处理的朋友们可能会问,使用Transformer处理计算机视觉任务的想法早已有之,但并未对CNN的主导地位造成影响。Swin Transformer有何不同之处呢?

这里涉及到Transformer在计算机视觉应用中存在的两个主要挑战:

首先,基于Transformer的模型,Token的长度是固定的。这在自然语言处理中是可行的,但在计算机视觉中,由于视觉元素的大小各异,例如同一场景中可能存在不同尺寸的物体,这就带来了挑战。其次,图像中的像素对分辨率的要求更高,而传统自注意力的计算复杂度是图像大小的平方,这在进行像素级密集预测时产生了困难。

Swin Transformer旨在解决这些NLP与CV之间的差异所带来的问题。

通过移动窗口计算的分层Transformer
Transformer跨界超越CNN,还解决了计算复杂度难题

Swin Transformer的关键在于两个方面:

首先,基于分层特征图,采用特征金字塔网络(FPN)或U-Net等技术进行密集预测;其次,将自注意力计算限制在不重叠的局部窗口中,同时允许跨窗口连接,以提高效率。
Transformer跨界超越CNN,还解决了计算复杂度难题

第二个方面是基于移动窗口的自注意力:

在第l层,采用常规的窗口分区方案,在每个窗口内计算自注意力。

在下一层l+1,窗口分区会被移动,产生新的窗口。新窗口中的自注意力计算跨越了l层中窗口的边界,从而提供新的关联信息。

Transformer跨界超越CNN,还解决了计算复杂度难题

具体而言,Swin Transformer的整体架构如下:

  • 将RGB图像分割成不重叠的图像块(Token);
  • 应用多层感知机(MLP)将原始特征转化为任意维度;
  • 应用多个修改后的自注意力计算的Swin Transformer块,并保持Token的数量;
  • 下采样层:通过合并2×2窗口中的相邻图像块来减少Token的数量,同时将特征深度增加一倍。

实验结果显示,研究人员让Swin Transformer在imageNet-1K、COCO和ADE20K上进行图像分类、对象检测和语义分割任务。

其中,预训练使用的是imageNet-22K数据集,imageNet-1K数据集则用于微调。

结果表明,在COCO的分割和检测任务,以及ADE20K的语义分割任务上,Swin Transformer均超过了CNN,达到了最新的技术水平。

而在imageNet-1K的分类任务上,尽管未能超越EfficientNet,但表现相当且速度更快。

Transformer跨界超越CNN,还解决了计算复杂度难题

以上是论文笔记的分享,如需了解更多细节,请查看文末的链接。

期待你的读后感分享!

论文地址:
https://aRxiv.oRg/abs/2103.14030

开源地址:
https://Github.coM/MicRosoft/Swin-TRansfoRMeR