PVTv2 论文笔记

PVTv2: Improved Baselines with Pyramid Vision Transformer

PVTv2

论文链接: https://arxiv.org/abs/2106.13797

一、 Problem Statement

PVTv1 有三个缺点:

  1. 把图片当成是non-overlapping patches的序列,一定程度上丢失了图像的局部联系。
  2. PVTv1的position encoding是固定大小的,对处理任意图片大小不灵活。
  3. 当处理大分辨率的输入图像时候,计算发杂度相对较高。

二、 Direction

根据上面的问题,提出了下列方法:

  1. Overlapping patch embedding
  2. Convolutional Feed-Forward
  3. Linear Spatial Reduction Attention

三、 Method

先来看一下整体的网络结构:

1. Overlapping patch embedding

PVTv2 论文笔记_第1张图片

作者扩大Patch window,使得调整后的窗口有半个区域的重叠,而且把特征图用zero-padding来保持分辨率大小。具体来说就是给定了一个输入大小为 h × w × c h \times w \times c h×w×c的特征图,把它输入到stride为 S S S,kernel size为 2 S − 1 2S-1 2S1,padding size为 S − 1 S-1 S1和通道数为 c ′ c' c的卷积中,得到输出大小为 h S × w s × C ′ \frac{h}{S} \times \frac{w}{s} \times C' Sh×sw×C

2. Convolutional Feed-Forward

把fixed-size position encoding去掉,使用zero-padding position encoding。

具体来说就是,添加一个3x3,padding size为1的depth-wise convolution在FC和GELU之间。

3. Linear Spatial Reduction Attention

PVTv1提出了SRA模块,但是计算量还是比较大。所以作者提出了Linear SRA,降低了内存消耗。 具体来说就是给定一个大小为 h × w × c h \times w \times c h×w×c的输入,经过Average Pooling,具体如下:

在这里插入图片描述

计算复杂度如下:
Ω ( S R A ) = 2 h 2 w 2 c R 2 + h w c 2 R 2 Ω ( L i n e a r S R A ) = 2 h w P 2 c \Omega(SRA) = \frac{2h^2w^2c}{R^2} + hwc^2R^2 \\ \Omega(Linear SRA) = 2hwP^2c Ω(SRA)=R22h2w2c+hwc2R2Ω(LinearSRA)=2hwP2c

4. 网络性能

在这里插入图片描述

四、 Conclusion

PVTv2 可以获得更多的图像或者特征图内数据的局部联系;也可以处理不同分辨率的输入,使得网络更加灵活。最后表现SOTA,是一个很好的backbone。

Reference

你可能感兴趣的:(Transformer,论文笔记,计算机视觉,深度学习,神经网络)