一般cnn的输入需要固定尺寸的image,往往通过裁剪crop和形变wrap来实现,
cnn可以分为两部分,前部分为卷积池化层提取特征,后部分为全连接层,前部分对输入图像size并没有固定要求,但是全连接层神经元个数要求与前部分生成feature map 相match,作者提出在前后部分之间增加SPP
SPP的训练方法:将不同size图像分为不同epoch,每个epoch输入一批相同size图像
作者说spp还能提高分类和物体识别准确率
在最后一层卷积层之后不使用pooling层,使用spp,如上图,经过卷积层生成feature map 256通道,再使用maxpooling分别生成16x256(相当于将特征图分成16x16,对其进行maxpooling), 4x256, 256维向量,拼接在一起,生成固定长度向量,导入全连接层。
特别的,最后一个pooling为global pooling,a global average pooling is used to reduce the model size and also reduce overfitting
假设 最后一层feature map 输出为axa=10x10
use win = (a/n)取上整 and str = (a/n) 取下整 to implement each pyramid pooling level