SPP-Net

引言

该方法由Kaiming He提出,主要目的是解决RBG提出的R-CNN网络的几个缺点。

与R-CNN的对比

SPP-Net

R-CNN的问题

  • R-CNN需要保证所有的图片尺寸是相同的。主要原因在于:R-CNN在全连接层的输入要求是固定尺寸,这就要求保证CNN网络的输入尺寸相同才能满足。R-CNN为了保证图片尺度相同,对图片进行裁剪/扭曲操作,但是这样的变型操作会丢失信息。如图1左侧,由于裁剪,导致关注的目标不完整。
  • R-CNN首先对输入的图像进行ROI提取,然后对每一个ROI进行CNN特征提取。显然,这是十分耗时的!!!

主要贡献

本文提出了Spatial Pyramid Pooling(SPP)Layer,如下图所示。该结构在R-CNN的基础上,在Conv5之后,FC层之前增加了SPP层。具体做法是:
1. 取3个框框对Feature Map进行采样。大小分别是1*1,2*2,4*4,按照这样的规格对Feature Map进行划分,在每一个小格格里进行MaxPooling。
2. 假设Feature Map是13*13*256,那么通过SPP下采样得到的尺度是(16+4+1)*256。
3. 通过这样的方式,不管输入图像的大小是多大,即便Feature Map的尺度不一样(主要是W*H不同,feature map的深度由filter的个数决定,因此深度相同),这样就能保证SPP采样之后的尺度相同,进一步送入FC层。
SPP-Net

SPP-Net目标检测算法

利用Selective Search方法对原始输入图像提取2000个ROI。对于每一个候选窗口,使用4级空间金字塔(1*1,2*2,3*3,6*6),共50个bins,然后每一个窗口输出一个265*50的向量送入FC层。

数据的标注

  • 正例:ground truth;
  • 反例:和ground truth IOU超过30%的窗口。

ROI窗口到Feature Map的映射

可以参考原文以及下面的博文链接,暂时还没有理解透彻。
SPP-Net
检测窗口到Feature Map的映射