PVT的提出背景和目标
为了克服传统Transformer在计算机视觉任务中的一些局限性,本文提出了一种纯粹的Transformer骨干网络,称为Pyramid Vision Transformer (PVT)。这个网络旨在替代传统的卷积神经网络(CNN)骨干,应用于各种下游任务,包括图像级预测和像素级密集预测任务。
主要设计特点
PVT克服了传统Transformer的一些困难,具体通过以下三点实现:
- 高分辨率特征表示:PVT使用细粒度的图像块(即每块4×4像素)作为输入,从而能够学习高分辨率的表示,这对于密集预测任务(如目标检测和语义分割)至关重要。
- 逐渐缩小的金字塔结构:PVT引入了一个逐渐缩小的金字塔结构,随着网络的加深,逐渐减少Transformer的序列长度,从而显著降低计算成本。
- 空间缩减注意力机制(SRA):PVT采用了一种空间缩减注意力机制,在学习高分辨率特征时进一步减少资源消耗。
PVT的优势
- 全局感受野:相比传统的CNN骨干(图1(a)),它们的局部感受野随着网络深度增加,PVT始终生成全局感受野,这使其更适合于检测和分割任务。
- 金字塔结构的灵活性:相比于Vision Transformer (ViT)(图1(b)),由于PVT的先进金字塔结构,它可以更容易地插入到许多代表性的密集预测管道中,例如RetinaNet和Mask R-CNN。
- 完全无卷积的管道:通过将PVT与其他特定任务的Transformer解码器(如PVT+DETR)结合,可以构建一个完全无卷积的对象检测管道。根据作者的说法,这是第一个完全无卷积的对象检测管道。
总结
通过以上设计,PVT不仅能够替代CNN骨干,还能在各种视觉任务中提供更好的性能,特别是在需要高分辨率和多尺度特征的任务中。
主要贡献
-
提出Pyramid Vision Transformer (PVT):
- PVT是第一个专门为各种像素级密集预测任务设计的纯Transformer骨干网络。
- 通过将PVT与DETR(Deformable DETR)结合,可以构建一个端到端的对象检测系统,不需要卷积操作和手工设计的组件(如密集锚点和非极大值抑制(NMS))。
-
克服Transformer在密集预测中的困难:
- 通过设计逐渐缩小的金字塔结构和空间缩减注意力机制(SRA),解决了将Transformer用于密集预测任务时的许多困难。
- 这些设计减少了Transformer的资源消耗,使PVT能够灵活地学习多尺度和高分辨率的特征。
-
在多种任务上的评估:
- 评估了PVT在多个不同任务上的表现,包括图像分类、目标检测、实例分割和语义分割,并与流行的ResNet和ResNeXt模型进行了比较。
- 实验结果表明,在相似参数数量下,PVT在多个任务中表现优于现有的先进方法。例如,在使用RetinaNet进行目标检测时,PVT-Small在COCO val2017数据集上取得了40.4的平均精度(AP),比ResNet50高出4.1个百分点(40.4 vs. 36.3)。此外,PVT-Large取得了42.6的AP,比ResNeXt101-64x4d高出1.6个百分点,且参数量减少了30%。
总结
通过以上贡献,PVT不仅解决了传统Transformer在密集预测任务中的困难,还在多个任务中展现出优越的性能,证明了其作为新型视觉骨干网络的潜力。PVT的设计使得其在资源消耗、灵活性和性能方面均具有显著优势。
整体架构概述
PVT模型被分为四个阶段,每个阶段由一个补丁嵌入层和若干个Transformer编码器层组成。通过逐级缩小的金字塔结构,输出分辨率从高(4-stride)逐步缩小到低(32-stride)。
输入
输入是一张尺寸为 H × W × 3 H \times W \times 3 H×W×3的图像。首先,图像被分割成小块,每块的尺寸为 4×4 像素。
第一个阶段
-
Patch Embedding(补丁嵌入):
- 输入图像被分割成 H 4 × W 4 \frac{H}{4} \times \frac{W}{4} 4H×4W个补丁,每个补丁的尺寸为4×4像素。
- 每个补丁被展平为一维向量,并通过一个线性层转换为维度为 C 1 C_1 C1的嵌入向量。
- 补丁嵌入层输出的特征图大小为 H 4 × W 4 × C 1 \frac{H}{4} \times \frac{W}{4} \times C_1 4H×4W×C1。
-
Transformer Encoder(Transformer编码器):
- 补丁嵌入输出的特征图被传递给Transformer编码器,编码器包含若干层,每层包括一个空间缩减注意力机制(SRA)和一个前馈神经网络。
- SRA机制通过减少空间维度,降低了计算和内存开销,使得处理高分辨率特征图成为可能。
后续阶段
第二到第四个阶段的操作类似,每个阶段的输入是前一阶段的输出特征图,经过补丁嵌入和Transformer编码器处理后,输出更低分辨率但更高层次的特征图:
- Stage 2:输入特征图大小为 H 4 × W 4 × C 1 \frac{H}{4} \times \frac{W}{4} \times C_1 4H×4W×C1,输出大小为 H 8 × W 8 × C 2 \frac{H}{8} \times \frac{W}{8} \times C_2 8H×8W×C2。
- Stage 3:输入特征图大小为 H 8 × W 8 × C 2 \frac{H}{8} \times \frac{W}{8} \times C_2 8H×8W×C2,输出大小为 H 16 × W 16 × C 3 \frac{H}{16} \times \frac{W}{16} \times C_3 16H×16W×C3。
- Stage 4:输入特征图大小为 H 16 × W 16 × C 3 \frac{H}{16} \times \frac{W}{16} \times C_3 16H×16W×C3,输出大小为 H 32 × W 32 × C 4 \frac{H}{32} \times \frac{W}{32} \times C_4 32H×32W×C4。
关键组件解释
- Patch Embedding(补丁嵌入):将图像分割成小块,并将每个小块嵌入到高维空间中。
- Transformer Encoder(Transformer编码器):包括多头注意力机制和前馈神经网络,通过自注意力机制捕捉全局信息。
- Spatial-Reduction Attention(空间缩减注意力机制,SRA):在注意力机制之前先进行空间维度的缩减,降低计算复杂度。
- Progressive Shrinking Pyramid(逐渐缩小的金字塔结构):随着网络深度的增加逐渐减少特征图的分辨率,从而减少计算量。
总结
PVT通过引入逐渐缩小的金字塔结构和空间缩减注意力机制,克服了传统Transformer在处理高分辨率特征图时的计算和内存瓶颈,使其能够灵活地学习多尺度和高分辨率特征,适用于目标检测、语义分割等密集预测任务。
这张图展示了多头注意力机制(Multi-Head Attention, MHA)和空间缩减注意力机制(Spatial-Reduction Attention, SRA)的对比。具体如下:
多头注意力机制(MHA)
左侧的图表示传统的多头注意力机制。MHA的操作流程如下:
- 输入:包括查询(Q)、键(K)和值(V)。
- 计算注意力:每个注意力头分别计算查询和键的点积,再通过softmax函数计算注意力权重,然后用这个权重对值进行加权求和,得到输出。
- 输出:将各个注意力头的输出进行拼接并通过线性变换得到最终的多头注意力输出。
空间缩减注意力机制(SRA)
右侧的图表示PVT中提出的空间缩减注意力机制。SRA的操作流程如下:
- 输入:包括查询(Q)、键(K)和值(V)。
- 空间缩减:在进行多头注意力计算之前,对键(K)和值(V)进行空间缩减操作。这一操作将键和值的空间维度( H i × W i H_i \times W_i Hi×Wi )缩减到 H i W i R i 2 \frac{H_iW_i}{R_i^2} Ri2HiWi,其中 R i R_i Ri 是缩减比例。
- 计算注意力:与MHA类似,每个注意力头分别计算缩减后的查询和键的点积,再通过softmax函数计算注意力权重,然后用这个权重对缩减后的值进行加权求和,得到输出。
- 输出:将各个注意力头的输出进行拼接并通过线性变换得到最终的SRA输出。
图中的标注解释
- Multi-Head Attention (MHA):表示传统的多头注意力机制,不进行空间缩减操作。
- Spatial-Reduction Attention (SRA):表示 PVT 中引入的空间缩减注意力机制,对键 K K K 和值 V V V 进行空间缩减操作,从而降低计算和内存开销。
- Q , K , V Q, K, V Q,K,V:分别表示查询、键和值。
- ( H i , W i ) × C i (H_i, W_i) \times C_i (Hi,Wi)×Ci:表示键和值的初始维度。
- H i W i R i 2 × C i \frac{H_iW_i}{R_i^2} \times C_i Ri2HiWi×Ci:表示经过空间缩减后的键和值的维度。
主要优势
通过空间缩减操作,SRA大大降低了计算和内存成本,使得PVT在处理高分辨率特征图时更加高效,特别适用于需要多尺度和高分辨率特征的任务。
总结
这张图清晰地对比了MHA和SRA的计算流程和资源消耗,展示了SRA在降低计算复杂度和内存开销方面的优势。