作者:PCIPG-logic | 来源:3D视觉工坊
在公众号「3D视觉工坊」后台,回复「原论文」可获取论文pdf和代码链接。
添加微信:dddvisiona,备注:三维重建,拉你入群。文末附行业细分群。
近期 Vision Transformer (ViT) 模型在各种计算机视觉任务中表现出了令人鼓舞的结果,这要归功于它通过自注意力对Token的长距离依赖关系进行建模的能力。然而,这些模型通常指定每层内每个Token特征都拥有相似感受野。这种约束不可避免地限制了每个自注意力层捕获多尺度特征的能力,从而导致处理具有不同尺度的多个对象的图像时的性能下降。为了解决这个问题,本文提出了一种新颖且通用的策略,称为分流自注意力(SSA),它允许 ViT 对每个注意力层的混合尺度的注意力进行建模。SSA的关键思想是将异构感受野大小注入到Token中:在计算自注意力矩阵之前,它有选择地合并Token以表示更大的对象特征,同时保留某些Token以保留细粒度特征。这种新颖的合并方案使自注意力能够学习不同大小的对象之间的关系,同时减少Token数量和计算成本。
本文提出了一种新颖且通用的自注意力方案,称为分流自注意力(SSA),它明确允许同一层内的自注意力头分别考虑粗粒度和细粒度特征。与合并过多标记或无法捕获小对象的先前方法不同,SSA 可以在同一层内的不同注意头上同时有效地对各种尺度的对象进行建模,从而提供良好的计算效率以及保留细粒度细节的能力。主要贡献点如下:
提出了分流自注意力(SSA),它通过多尺度Token聚合将多尺度特征提取统一在一个自注意力层内。SSA 自适应地合并大型对象上的Token以确保计算效率并保留小对象的Token。
基于 SSA,构建了分流Transformer(Shunted Transformer),它能够有效地捕获多尺度物体,特别是小型和远程孤立的物体。
在分类、目标检测和分割等各种任务中评估提出的分流Transformer。实验结果表明,在相似的模型尺寸下,分流Transformer始终优于以前的Vision Transformer。这里也推荐「3D视觉工坊」新课程《国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程》。
应用于图像任务的神经网络架构,在先前的时间里,CNN一直占据主导地位。Vision Transformer (ViT)借助Transformer强大的长距离依赖信息建模能力,也在各种视觉任务中崭露头角。基于Vit,许多变种的视觉Transformer研究工作涌现而出,包括PVT、Swin Transformer等。这些方法的性能已经在大多数视觉任务中,效果要优于纯CNN模型。另外,还有许多研究者尝试将CNN与Transformer结合,也开发出了许多性能优越的模型。
图1 Shunted Transformer整体架构流程图
Shunted Transformer整体架构如图1所示。它建立在新颖的分流自注意力 (SSA) 块之上。SSA块与ViT中的传统自注意力块有两个主要区别:1)SSA为每个自注意力层引入了分流注意力机制,以捕获多粒度信息并更好地模型不同尺寸的对象,尤其是小对象;2)通过增强跨Token交互,增强了逐点前馈层提取局部信息的能力。此外,Shunted Transformer部署了一种新的补丁嵌入(Patch Embedding)方法以获得更好的输入特征。
在Shunted Transformer的第阶段中,有个Transformer层。每个Transformer层包含一个自注意力层和一个前馈层。为了降低处理高分辨率特征图时的计算成本,PVT引入了空间缩减注意力(SRA)来代替原来的多头自注意力(MSA)。然而,SRA 倾向于在一个自注意力层中合并过多的 Token,并且只提供单一规模的 Token 特征。这些限制阻碍了模型捕获多尺度物体尤其是小尺寸物体的能力。因此,Shunted Transformer引入了分流自注意力,并在一个自注意力层中并行学习多粒度。
图2 Vit、Swin Transformer、PVT与SSA注意力计算方式比较
定义输入序列为,首先映射为。然后多头自注意力采用H个独立注意力头并行计算自注意力。为了降低计算成本,本方法遵循 PVT并减少和的长度,而不是像Swin Transformer那样将分割为区域。
如图2所示,SSA 与 PVT 的 SRA 不同之处在于,同一自注意力层的各个注意力头中 K、V 的长度不相同。相反,不同头的长度不同,以捕获不同粒度的信息。称之为多尺度Token聚合(multi-scale token aggregation,MTA)。具体来说,对于由 i 索引的不同头,键 K 和值 V 被下采样到不同的大小:
其中,表示第 i 个头中的多尺度Token聚合层,下采样率为。在实践中,采用核大小和步长为的卷积层来实现下采样。是第 个头中的线性投影的参数。注意力头的一层中有不同大小的。因此,key和value可以在一个self-attention中捕获不同的尺度。是 MTA 通过深度卷积对 V 进行局部增强的部分。与空间缩减相比,保留了更多细粒度和低级细节。
然后分流的自注意力计算如下:
其中是维度。由于多尺度的键和值,分流自注意力在捕获多尺度对象方面更加强大。计算成本的降低可能取决于的值,因此,可以很好地定义模型和来权衡计算成本和模型性能。当变大时,中的Token被合并,的长度更短,因此计算成本较低,但仍然保留了捕获大对象的能力。相反,当变小时,保留了更多细节,但带来了更多计算成本。将各种集成到一个自注意力层中使其能够捕获多粒度特征。
图3 本文方法与Vit、PVT前馈层计算比较
在传统的前馈层中,全连接层是逐点的,无法学习交叉Token信息。本节的目标是通过指定前馈层中的细节来补充局部信息。如图3所示,通过在前馈层中的两个全连接层之间添加数据特定层来补充前馈层中的局部细节:
其中是具有参数 的细节特定层,在实践中通过深度卷积实现。
Transformer 首先是为处理序列数据而设计的。如何将图像映射到序列对于模型的性能很重要。ViT 直接将输入图像分割成16×16不重叠的块。最近有研究发现,在补丁嵌入中使用卷积可以提供更高质量的标记序列,并帮助 Transformer 比传统的大步长非重叠补丁嵌入“看的更多更好”。因此,一些工作使用 7 × 7 卷积一样进行重叠补丁嵌入。在本方法的模型中,根据模型大小采用不同的重叠卷积层。采用步幅为 2 且零填充的 7 × 7 卷积层作为 patch 嵌入中的第一层,并根据模型大小添加额外的步幅为 1 的 3 × 3 卷积层。最后,步幅为 2 的非重叠投影层生成大小为 的输入序列。
给定大小为的输入图像,采用上述补丁嵌入方案来获得长度为,通道数为的Token序列。模型有四个阶段,每个阶段包含多个Shunted Transformer块。在每个阶段,每个块输出相同大小的特征图。模型采用步幅为 2(线性嵌入)的卷积层来连接不同的阶段,特征图的大小在输入到下一个阶段之前将减半,但通道数将增加一倍。因此,本模型四层的输出分别为。每一层的输出的大小为。本方法提供了模型的三种不同配置,以便在相似的参数和计算成本下进行公平比较。如表1所示,和表示一个块中的头数和一个阶段中的块数。变体仅来自不同阶段的层数。具体地,每个块的头数设置为2、4、8、16。patch 嵌入中的卷积范围为 1 到 3。表格1 Shunted Transformer的不同参数配置
为了评估Shunted Transformer的有效性,模型应用于 ImageNet-1K 分类、COCO 对象检测和实例分割、ADE20K语义分割。此外,本章还通过消融研究评估模型不同组成部分的效果。
表2 ImageNet-1K分类性能比较
首先将Shunted Transformer与 ImageNet1K 上最新的 SOTA CNN 和基于 Transformer 的模型进行比较。为了公平比较,遵循 DeiT和 PVT相同的训练策略。具体来说,采用 AdamW 作为优化器,权重衰减为 0.05。整个训练周期为 300,输入大小为 224×224,批量大小为 1024。在余弦学习率衰减后,学习率设置为 。数据增强和正则化方法遵循 DeiT,包括随机裁剪、随机翻转、标签平滑、Mixup、CutMix和随机擦除。
如表 2 所示,通过与相似参数和计算成本下的其他 CNN 主干网络进行比较,Shunted Transformer是第一个基于 Transformer 的模型并且结果与使用更大输入分辨率的 EfficientNet 相当。值得注意的是,虽然 RegNet 和 EfficientNet 来自神经架构搜索,但手动设计的Shunted Transformer仍然优于它们。
然后Shunted Transformer与 Transformer 主干进行比较。Shunted Transformer的微型模型在一半参数规模的设定吓实现了类似的性能。当Shunted Transformer大小增长到与 DeiT-S 相似时,它的性能优于 DeiT-S 3%。与 Swin 和 Twin 等最新的 SOTA 模型相比,Shunted Transformer终优于它们。具体来说,Shunted Transformer的小尺寸模型比现有最先进的 Focal Transformer Tiny 性能提高了 0.7%,同时模型尺寸减小了 20%。当模型尺寸变大时,与 Focal Transformer 相比,Shunted Transformer模型仅用一半的参数和计算成本即可实现最先进的性能。本方法在 384×384 的尺寸上进一步对模型进行了 30 个 epoch 的微调,无论模型尺寸是小尺寸还是基本尺寸,Shunted Transformer都比 Swin Transformer 表现出更多的优越性。这里也推荐「3D视觉工坊」新课程《国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程》。
表3 COCO 上使用 Mask R-CNN 进行对象检测和实例分割性能比较表4 COCO 上使用 RetinaNet 进行物体检测
本节在 COCO 2017上评估了物体检测和实例分割。本节以Shunted Transformer作为骨干并将其插入 Mask RCNN。将其与其他 SOTA 主干网络进行比较,包括 ResNet、Swin Transformer、Pyramid Vision Transformer、Twin 和 Focal Transformer。遵循与 Swin 相同的设置:在 ImageNet-1K 上预训练并在 COCO 上微调。以权重衰减为0.05的AdamW作为优化器。批量大小为 16,初始学习率为 10-4。性能表现如表格3与表格4所示,Shunted Transformer性能表现优于所有对比方法。
表5 Semantic FPN 和 UpperNet 框架在 ADE20K 上不同主干网的分割性能比较。表6 Ade20K 上 Segformer 框架中不同主干的比较
本节评估了Shunted Transformer在 ADE20K数据集上的语义分割性能。有 20,210 张图像用于训练,2,000 张图像用于验证,3,352 张图像用于测试,具有 150 个细粒度语义类别。本节报告了经过和不经过多尺度测试的 mIOU。以UperNet和Semantic FPN为主要框架,并以不同的架构为骨干。遵循 Focal Transformer 和 mmsegmentation的默认设置。对于 UpperNet,采用权重衰减为 0.01 的 AdamW 作为 160K 次迭代的优化器。学习率为 6 × 10-5,在训练开始时进行 1500 次迭代预热,并线性学习率衰减。增强功能包括随机翻转、随机缩放和随机光度失真。训练时输入尺寸为512×512,单尺度和多尺度(MS)测试时输入尺寸为512×512。对于 SemanticFPN,采用权重衰减为 0.0001 的 AdamW 作为优化器,80K 次迭代的学习率也为 0.0001。
结果如表 5 所示。Shunted Transformer的性能优于以前的最先进技术,参数也更少。具体来说,当使用语义 FPN 时,Shunted Transformer比 Swin Transformer 的性能高出 6.7 mIOU,模型大小减少了 20%。当框架是UpperNet时,Shunted Transformer比focal Transformer高3.1%和2.9%。分割结果显示了Shunted Transformer的优越性。本文还以 SegFormer作为框架,并将Shunted Transformer的主干网与 SegFormer 中的 MiT 进行比较。结果如表 6 所示。使用较少的参数,我们的方法比 SegFormer 实现了 1.8 mIoU 的改进。
表格7 不同补丁嵌入头在 ImageNet 上的 Top-1 准确度。
本文的补丁嵌入需要稍多的计算成本,但性能提升是显着的Patch Embedding 最近的许多工作研究了图像到标记映射的功能,即补丁嵌入头。他们发现精心设计的头部为变压器模型提供了更好的输入序列。我们在Vit、Swin、PVT中评估了带有非重叠头的补丁嵌入的影响。结果如表 7 所示。对于更复杂的头部(例如重叠或我们的补丁嵌入),计算成本和模型大小仅略有增加,但性能提高相对显着。具体来说,在附加参数有限的情况下,从传统的非重叠头或重叠头到补丁嵌入,模型分别实现了 1.4% 和 0.3% 的性能增益。表8 不同Token聚合函数在 ImageNet 上的 Top-1 准确度
Token Aggregation Function 本文提出了一种新的Token聚合函数来合并多尺度对象的令牌并同时保留全局和局部信息。从表 8 可以看出,本文的Token聚合函数具有与卷积空间缩减类似的计算,但获得了更多改进。表9 在参数数量和 FLOP 相似的情况下,Detail Specific 前馈层在 ImageNet 上提供比传统前馈层更高的 top-1 精度。
Detail-specific Feed-Forward 在前馈层中,所有操作都是逐点的,不存在交叉标记操作,因此,补充交叉标记和局部信息将显着提高前馈层的学习能力。在表 9 中,比较了 ViT 和本文的模型中新的特定细节前馈层、传统前馈层和卷积前馈层。与传统前馈层相比,特定于细节的前馈始终带来性能增益,这表明补充前馈层中的局部细节的效用。
在本文中,提出了一种新颖的分流自注意力(SSA)方案来明确考虑多尺度特征。与之前仅关注一个注意力层中的静态特征图的工作相比,本文方法在一个自注意力层中维护了关注多尺度对象的各种尺度的特征图。大量的实验表明本文的模型作为各种下游任务的骨干的有效性。具体来说,所提出的模型优于之前的 Transformer,并在分类、检测和分割任务上实现了最先进的结果。
3D视觉细分群成立啦!
目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向。
细分群包括:
[工业方向]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;
[SLAM方向]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;
[自动驾驶方向]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等。
[三维重建方向]NeRF、colmap、OpenMVS、MVSNet等。
[无人机方向]四旋翼建模、无人机飞控等。
除了这些,还有求职、硬件选型、视觉产品落地等交流群。
大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群