摘要
PVT是把金字塔结构引入到Transformer中,使得它可以像ResNet那样无缝接入到各种下游任务中(如:物体检测,语义分割),同时也取得了非常不错的效果。
论文地址:Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions
代码地址:PVT
论文结构
- 第一部分介绍了以CNN为backbone的ViT网络在像素级的密集任务上会遇到一些问题。为了解决这些问题提出了PVT,并取得了很好的效果。
- 第二部分介绍了计算机视觉中常用CNN作为backb、密集预测任务的种类和在计算机视觉中的自我感知和Transformer的相关说明。
- 第三部分开始介绍PVT的整体结构、Transformer特征金字塔、Transformer编码器和具体细节。
- 第四部分是如何把PVT应用于下游结构。
- 第五部分是实验及结果。
方法
CNN金字塔结构
CNN结构常用的是一种金字塔架构。
简单的概括就是:
1)feature map的分辨率随着网络加深,逐渐减小;
2)feature map的channel数随着网络加深,逐渐增大。
图1
如图1所示,CNN网络一般可以划分为不同的stage,在每个stage开始时,特征图的长和宽均减半,而特征维度(channel)扩宽2倍。一是采用stride=2的卷积或者池化层对特征降维可以增大感受野,另外也可以减少计算量,但同时空间上的损失用channel维度的增加来弥补。
PVT采用和CNN类似的架构,将网络分成不同的stages,每个stage相比之前的stage特征图的维度是减半的,这意味着tokens数量减少4倍,具体结构如图2。
图2 提出的金字塔视觉转换器(PVT)的总体结构。整个模型分为四个阶段,每个阶段由一个贴片嵌入层和一个Li层变压器编码器组成。按照金字塔结构,四个阶段的输出分辨率从4步逐步缩小到32步。
Transformer编码器
图4 Multi-head attention (MHA) vs. spatialreduction attention (SRA).
PVT为了进一步减少计算量,将常规的multi-head attention (MHA)用spatial-reduction attention (SRA)来替换。SRA的核心是减少attention层的key和value对的数量,常规的MHA在attention层计算时key和value对的数量为sequence的长度,但是SRA将其降低为原来的 1 / R 2 1/R^2 1/R2。SRA的具体结构如图3。
维度分析
每个stage的输入都是一个维度 的3-D特征图,对于第1个stage,输入就是RGB图像,对于其它stage可以将tokens重新reshape成3-D特征图。在每个stage开始,首先像ViT一样对输入图像进行token化,即进行patch embedding,patch大小均采用2x2大小(第1个stage的patch大小是4x4),该stage最终得到的特征图维度是减半的,tokens数量对应减少4倍。PVT共4个stage,和ResNet类似,4个stage得到的特征图相比原图大小分别是1/4,1/8,1/16和1/32。由于不同的stage的tokens数量不一样,所以每个stage采用不同的position embeddings,在patch embed之后加上各自的position embedding,当输入图像大小变化时,position embeddings也可以通过插值来自适应。
PVT为了减少计算量,不同的stages采用的网络参数是不同的。PVT不同系列的网络参数设置如图4所示,这里
P
P
P 为patch的size,
C
C
C为特征维度大小,
N
N
N为MHA(multi-head attention)的heads数量,
E
E
E为FFN的扩展系数,transformer中默认为4。
图4 PVT系列详细设置 本设计遵ResNet的两个原则:(1)随着网络发展的越深,隐维数逐渐增大,输出分辨率逐渐缩小;(2)计算量大资源集中在第三阶段。
实验及结果
主要是将PVT与两个被广泛用于许多下游任务的基准测试、最具代表性的CNN主干进行比较,即ResNet和ResNeXt。
图像分类
在ImageNet dataset进行了实验,使用ImageNet 2012数据集,包含128万个训练图像和来自1000个类别的50K验证图像。
结果如图5。
图5
在相同的参数数目和计算预算下,PVT模型优于传统的CNN主干模型。
目标检测
在COCO train2017(118k图片)上接受训练,并在val2017(5k图片)上接受测试。
结果如图6。
图6
使用RetinaNet进行目标检测时,当参数个数相当时,PVT变体明显优于其对应变体,表明PVT可以作为CNN主干的一个很好的目标检测替代方案。
其他
文章还在语义分割等方面做了实验,这里不再展开叙述。