深度篇——目标检测史(三) 细说 SPP-Net 目标检测

返回主目录

返回 目标检测史 目录

上一章:深度篇——目标检测史(二) 细说 R-CNN 目标检测

下一章:深度篇——目标检测史(四) 细说 从 Fast R-CNN 到 Faster R-CNN 目标检测

 

论文地址:《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》

 

本小节,细说 SPP-Net 目标检测,下一小节细说 从 Fast R-CNN 到 Faster R-CNN 目标检测

 

三. SPP-Net 目标检测 (2014 年)

1. SPP-Net 是 MSRA 何恺明 等人提出的,其主要思想是去掉了原始图像上的 crop/warp 等操作,换成了在卷积特征上的空间金字塔池化层 (Spatial Pyramid Pooling, SPP)。引入 SPP 层,主要是因为 CNN 的全连接层要求输入图像是大小一致的,而实际中的输入图像往往大小不一,如果直接缩放到同一尺寸,很可能有的物体会充满整个图像,而有的物体可能只能占到图像的一角。传统的解决方案是进行不同位置的 crop,但这些 crop 技术都可能会导致一些问题的出现,如 crop 会导致物体不全,warp 导致物体被拉伸后变形严重。SPP 就是为了解决这个问题的。SPP 对整图提取固定维度的特征,再把图像 均分成 4 份,每份提取相同维度的特征,再把图像均分为 16 份,以此类推。可以看出,无论图像大小如何,提取出来的维度都是一致的,这样就可以统一送至全连接层。

 

2. SPP-Net 的主要流程

   (1). 区域提名 region proposal

         用 selective search 从原图像中生成  2k 个左右的候选框。

   (2). 区域大小缩放

         SPP-Net 不再做区域大小归一化,而是缩放到 min(w, h) = s,即统一长宽的最短边长度,s 选自 {480, 576, 688, 864, 1200} 中的一个,选择的标准是使得缩放后的 bounding boxes 大小与 224 x 224 最接近。

   (3). 特征提取

         SPP-Net 网络结构提取特征,SPP 层在 conv 与 全连接层 之间

   (4). 分类与回归

         类似 R-CNN,利用 SVM 基于上面的特征训练分类模型,用边框回归来微调 bounding boxes 的位置。

    SPP-Net 解决了 R-CNN 区域提名时 crop/warp 带来的偏差问题,提出了 SPP 层,使得输入的候选框可大可小,但其他方面依然和 R-CNN 一样,因而依然存在不少问题。

深度篇——目标检测史(三) 细说 SPP-Net 目标检测_第1张图片

 

3. SPP-Net 流程图

深度篇——目标检测史(三) 细说 SPP-Net 目标检测_第2张图片

深度篇——目标检测史(三) 细说 SPP-Net 目标检测_第3张图片

 

     

       为了更好的描述 SPP 层,我用了 两 张图像来说明。SPP 是对 feature maps 上的 ROI 进行 多尺度(金字塔形状) 池化操作,而得到 固定的 feature maps ,然后 reshape ,之后才灌入 全连接层。

        论文中的图像如下:

深度篇——目标检测史(三) 细说 SPP-Net 目标检测_第4张图片

 

4.  在 R-CNN 中,bounding boxes 大小不一,而图像输入 CNN 后经过卷积,还需要进行全连接,很显然,输入不同大小的图像将会导致全连接层无法进行工作。所以,所有的 bounding boxes 在输入 CNN 之前都要经过 crop (裁剪) 或 warp (拉伸扭曲),以固定的大小输入,虽然 R-CNN 的作者尝试了使用不同的变形操作从而使精度较高,但,不管怎么样都不可否认的是图像确实变形了,在一定程度使得图像失真,从而影响到了最终的效果。而 SPP-Net 的思想便是无论输入的图像大小是多少,使用不同尺度的 pooling 层 将其变为固定大小的特征。SPP-Net 的做法就是将整张图像输入 CNN 网络中,得到一整张 feature maps,然后再将 selective search 得到的 bounding boxes (这些 bounding boxes 其实就是 ROI ) 映射到 feature maps 上,对映射得到的区域进行 SPP 操作,得到的结果进行 FC 操作,最后再进行 分类 和 回归 操作 以得到结果。

 

5.  SPP-Net 是对 input image 一次性 conv 操作,相对于 R-CNN 大大提升了效率。SPP-Net 的亮点 就是 SPP 层,它可以让不同输入的 image,最后都得到相同的 feature maps,让网络多尺度训练和测试更便捷。SPP-Net 虽然解决了 R-CNN 许多大量冗余的问题,但是,由于还沿用了 R-CNN 的结构 和 SVM 分类器,只能单独进行 bbox regression。

 

6. 论文中,目标检测的效果

 

 

                  

 

返回主目录

返回 目标检测史 目录

上一章:深度篇——目标检测史(二) 细说 R-CNN 目标检测

下一章:深度篇——目标检测史(四) 细说 从 Fast R-CNN 到 Faster R-CNN 目标检测

你可能感兴趣的:(AI章,深度学习)