AI学习者 · 2022年06月22日

源于 PvT又高于PvT,解决小目标问题的ViT方法

image.png

最近的 Vision Transformer (ViT) 模型在各种计算机视觉任务中都展示了不错的性能,这要归功于其通过Self-Attention对图像块或Token的远程依赖关系进行建模的能力。然而,这些模型通常指定每一层内每个Token特征的相似感受野。这种约束不可避免地限制了每个Self-Attention层捕获多尺度特征的能力,从而导致在处理具有不同尺度的多个对象的图像时性能下降。

为了解决这个问题,本文提出了一种新颖的通用策略,称为Shunted Self-Attention(SSA),它允许 ViT 在每个注意力层的混合尺度上对注意力进行建模。SSA 的关键思想是将异构感受野大小注入到Token中:在计算Self-Attention矩阵之前,它选择性地合并Token以表示更大的对象特征,同时保留某些Token以保留细粒度的特征。这种新颖的合并方案使Self-Attention能够学习不同大小目标之间的关系,同时减少Token数量和计算成本。

image.png

各种任务的广泛实验证明了 SSA 的优越性。具体来说,基于 SSATransformer 实现了 84.0% 的 Top-1 准确率,并在 ImageNet 上以只有一半的模型大小和计算成本超过了最先进的 Focal Transformer,并且在 COCO 上以相似的参数和计算成本下超过了 Focal Transformer 1.3 mAP,ADE20K 超越了 2.9 mIOU。

1简介

最近的Vision Transformer (ViT) 模型在各种计算机视觉任务(例如分类、目标检测、语义分割和视频动作识别)中展示了卓越的性能。与专注于局部建模的卷积神经网络不同,ViT 将输入图像划分为一系列PatchToken),并通过全局 Self-Attention 逐步更新Token特征。Self-Attention 可以有效地模拟Token的长期依赖关系,并通过聚合来自其他Token的信息逐渐扩大其感受野的大小,这在很大程度上是 ViT 成功的原因。

然而,Self-Attention 机制也带来了昂贵的内存消耗成本。因此,最先进的 Transformer 模型具有采用各种下采样策略来减少特征大小和内存消耗。例如,ViT 在第一层进行 16×16 的下采样投影,并在生成的粗粒度和单尺度特征图上计算 Self-Attention;因此,所产生的特征信息丢失不可避免地会降低模型性能。其他方法努力计算高分辨率特征的 Self-Attention,并通过将TokenToken的空间缩减合并来降低成本。然而,这些方法往往会在一个Self-Attention中合并太多的Token,从而导致来自小物体和背景噪声的Token混合在一起。反过来,这种行为也使模型在捕获小目标方面的效率降低。

此外,先前的 Transformer 模型在很大程度上忽略了注意力层内场景目标的多尺度性质,使得它们在涉及不同大小目标的野外场景中变得脆难以检测。从技术上讲,这种低效率归因于它们潜在的注意力机制:现有方法仅依赖于Token的静态感受野和一个注意力层内的统一信息粒度,因此无法同时捕获不同尺度的特征。

为了解决这个限制,作者引入了一种新颖的通用Self-Attention方案,称为Shunted Self-Attention(SSA),它明确允许同一层内的Self-Attention Head分别解释粗粒度和细粒度特征。与合并太多Token或捕获失败的先前方法不同小物体,SSA 有效地在同一层内的不同注意力头上同时对各种尺度的物体进行建模,使其具有良好的计算效率以及保留细粒度细节的能力。

image.png

图 2

在图 2 中展示了标准 Self-Attention(来自 ViT)、下采样辅助注意力(来自 PVT)和提议的 SSA 之间的定性比较。当对相同大小的特征图应用不同的注意力时,ViT 可以捕获到细粒度的小目标,但计算成本非常高(图2(a));PVT 降低了计算成本,但它的注意力仅限于到粗粒度的较大目标(图2(b))。

相比之下,所提出的 SSA 保持了比较小的计算成本,但同时考虑了混合尺度的注意力(图2(c))。实际上,SSA 不仅可以精确地处理粗粒度的大物体(例如沙发),还可以精确地处理细粒度的小物体(例如灯和风扇),甚至一些位于角落的物体,不幸的是 PVT 错过了这些物体。

image.png

图 3

在图 3 中显示了注意力图的视觉比较,以突出 SSA 的学习尺度自适应注意力。

SSA 的多尺度注意力机制是通过将多个注意力头分成几组来实现的。每个组占一个专门的注意力粒度。对于细粒度的组,SSA 会聚合很少的Token并保留更多的局部细节。对于剩余的粗粒度头部组,SSA 学习聚合大量的Token,从而降低计算成本,同时保留捕获大目标的能力。多粒度组共同学习多粒度信息,使模型能够有效地建模多尺度目标。

主要贡献

  • 提出了Shunted Self-Attention (SSA),它通过多尺度Token聚合在一个Self-Attention层内统一多尺度特征提取。SSA 自适应地合并大目标上的Token以提高计算效率,并保留小目标的Token
  • 基于 SSA 构建了Shunted Transformer,它能够有效地捕获多尺度物体,尤其是小型和远程孤立物体。
  • 在包括分类、目标检测和分割在内的各种研究中评估了Shunted Transformer。实验结果表明,Shunted Transformer在相似的模型尺寸下始终优于以前的Vision Transformer

2本文方法

image.png

图 4 Shunted Transformer & SSA

本文提出的Shunted Transformer的整体架构如图 4 所示。它建立在Shunted Self-Attention (SSA) 块之上。SSA 模块与 ViT 中的传统Self-Attention模块有2个主要区别:

  1. SSA 为每个self-attention层引入了分流注意力机制,以捕获多粒度信息,更好地建模不同大小的目标,尤其是小目标;
  2. 它通过增强跨Token交互来增强在逐点前馈层中提取局部信息的能力。

此外,还在的Shunted Transformer部署了一种新的Patch Embedding方法,以便为第一个注意块获得更好的输入特征图。

2.1 Shunted Transformer Block

image.png

1、Shunted Self-Attention

image.png

图5

如图 5 所示, SSAPVTSRA 不同之处在于,K、V 的长度在同一Self-Attention层的注意力Head上并不相同。取而代之的是,不同Head的长度不同,以捕获不同的粒度信息。这给出了Multi-scale Token Aggregation (MTA)。具体来说,对于由 i 索引的不同Head,Key K 和Value V 被下采样到不同的大小:

image.png

2、Detail-specific Feedforward Layers

在传统的前馈层中,全连接层是逐点的,无法学习到交叉token信息。在这里通过指定前馈层中的细节来补充局部信息。

image.png

图 6

如图 6 所示,通过在前馈层的2个全连接层之间添加数据特定层来补充前馈层中的局部细节:

image.png

2.2 Patch Embedding

Transformer 最初是为处理顺序数据而设计的。如何将图像映射到序列对于模型的性能很重要。ViT 直接将输入图像分割成 16 × 16 的非重叠Patches。最近的一项研究发现,在Patch Embedding中使用卷积可提供更高质量的Token序列,并帮助Transformer比传统的大步幅非重叠Patch Embedding“看得更清楚”。因此,一些作品像使用 7×7 卷积一样进行重叠块Embedding。

Shunted Transformer中,根据模型大小采用不同的卷积层重叠。将步长为 2 和零填充的 7×7 卷积层作为Patch Embedding的第1层,并根据模型大小添加额外的stride为 1 的 3×3 卷积层。最后,使用stride为 2 的非重叠投影层生成大小为 H/4×W/4 的输入序列。

2.3 模型架构与变体

image.png

3实验

3.1 分类实验

image.png
image.png

3.2 目标检测与实例分割

image.png

3.3 语义分割

image.png

原文:集智书童
作者:ChaucerG

推荐阅读

更多嵌入式AI相关技术干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
18838
内容数
1372
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息