SPPNet(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)

图一 SPPNet示意图

一般的网络(如AlexNet),由于全连接层的存在,要求输入图片的尺寸是固定大小的(如224 * 224),这就需要将原始图片裁剪或形变。但是裁剪出的区域可能不包含整个物体以及形变可能导致我们不想看到的几何失(如图一所示),识别准确率就可能因此下降。文中提出的SPP就是为了解决输入尺度固定的问题。

SPP

图二 SPP示意图

如图二所示,设特征映射m的尺度是a * a,将m分成单金字塔层次的n * n组, 则window = ceil(a / n),stride = floor(a / n)。对于多金字塔层次同理(如图二就是3层次金字塔—— 1 * 1, 2 * 2, 4* 4)。这样就能生成固定长度的表征。

多层次池化(multi-level pooling)对物体形变更鲁棒。

多尺度训练

文中多尺度训练采用的是在一个epoch内采用同一尺度(如224),在另一个epoch使用另外一个尺度(如180)。

图像识别实验


图三 ImageNet 2012 验证集在标准10-views下的错误率


可以看到SPP和多尺度训练是有助于提高识别准确率的。

图四 单视角下的ImageNet 2012 验证集错误率,crop用的是图片中心区域

结合图三、图四,可以看到多视角的结果比单视角的结果好。单视角下,全图比局部好。

目标检测实验

RCNN测试的时候对每个RP都提取特征,重复计算很多。使用SPPNet的话一次提取整张图片特征,将RP投影到pool5,提取对应的RP特征,极大地减少了计算量。

文中写到,为简化训练,只fine-tune全链接层。训练方式和RCNN一样。

图五 mAP on PASCAL VOC 2007


图六 mAP on PASCAL VOC 2007using the same pre-trained modelof SPP (ZF-5)

参考文献

1. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容