​欢迎光临我的个人主页​

3分钟理解Spatial Pyramid Pooling层 (SPP层)_个人主页


直接使用SPPNet论文的原图,下面的变量均用上图中的表示,注意对应关系

不同size的图片(input image)经过’convolutional layers’后得到的feature map of conv5的size不同,ROI Pooling层的功能便是将不同size的feature map of conv5处理后得到相同长度的特征表示.(对应图中的大黑框部分)

具体流程:

假设输入ROI Pooling层的feature map of conv5的shape是(h,w,c)
一. 首先ROI Pooling层把feature map of conv5划分成4*4的小方块(对应图中蓝色矩形),每个小方块的宽高分别为w/4,h/4,通道数为c,不能整除时需要取整.针对feature map的每个通道,分别在这16个小方块进行最大池化(MaxPooling),也就是取出小方块里的最大值.每一个通道都能取出16个最大值,所以所有通道共有16c个值
二. 然后ROI Pooling层把feature map of conv5划分成2*2的小方块(对应图中绿色矩形),使用同样的方法得到4c个值
三. 接着ROI Pooling层把feature map of conv5划分成1*1的小方块(对应图中灰色矩形),得到c个值
四. 最后将上面三个值串联起来得到长度为16c+4c+c=21c的特征表示

显而易见,通过ROI Pooling层得到的特征表示是固定长度(21c)的, 与输入的h,w无关!