1. Motivation
ViT输出的feature map是single-scale和low-resolution的,难以用于pixel-level dense prediction任务中(比如目标检测和分割)。对于常用的图像输入大小(COCO中的800 shorter edge),ViT的计算量和占用内存很大。
2. Contribution
提出PVT, 可以代替CNN用于很多下游任务中,包括image-level和pixel-level prediction,是第一个纯transformer的backbone。1)PVT能输入很小的image patch(4*4),以学习高分辨率的特征。2)为了减小计算量,引入逐渐缩小的金字塔结构,即随着网络加深,减少sequence length。3)采用spatial-reduction attention (SRA) 进一步减少资源消耗。
3. Methods
3.1 Overall Architecture
Patch embedding:将图像划分为4*4大小的patch,拉成向量,经过linear projection,得到patch embedding(疑问:本文声称没有卷积层,但这不就是核为4*4,stride为4的卷积层吗?)。
加上position embedding后输入至transformer encoder block。一共四个block,将feature map大小逐渐降4,8,16,32倍(相对于原图大小)。
3.2 Feature Pyramid for Transformer
CNN中使用stride得到multi-scale feature map,本文首先将第i个stage的feature map划分为Pi * Pi大小的patch,每个patch拉成向量,映射成Ci维度的embedding,最后得到H_{i-1}/Pi * W_{i-1}/Pi * Ci 大小的feature map 。(其实就是带