SPP阅读重点
- Introduction
-
- The steps
- The architecture
- Single-size training
- Multi-size training
- Baseline network architectures
- Innovation
- Result
-
- Detection results on Pascal VOC 2007
- Detection results on Pascal VOC 2007, using the same pre-trained model of SPP(ZF-5)
- Comparisons of detection results on Pascal VOC 2007
- Dectection results on VOC 2007 using model combination
SPP原论文地址 https://arxiv.org/pdf/1406.4729.pdf
Introduction
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR9UNrdkYvB3MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwETM4IjN1kTM2EDNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
SPP较之前的目标检测算法提出了2点:
(1)不管输入的图片的大小尺度是怎样的,最后都能得到一个固定长度的向量。
(2)使用SPP,我们只需要从整张图片中计算一次feature map,然后再对任意的候选区域(子图片)进行空间金字塔池化,得到固定长度的表示(向量),这种方法能够避免像R-CNN一样重复计算卷积特征。
The steps
之前的算法输入一张图片后,通过裁剪或缩放操作得到统一的图片规格,然后再依次输入到卷积层、全连接层,最后再得到输出。
而SPP则是直接将图片输入到卷积层,再进行空间金字塔池化操作,再将得到的固定长度的向量输入到全连接层,最后再得到输出。
The architecture
SPP的网络结构如上图所示,输入一张图片经过一层层的卷积后,得到conv5的feature maps,将feature maps中对应的每个候选区域进行空间金字塔池化操作,然后每个区域得到相同长度的特征向量,再输入到fc6和fc7,最后再输入到SVM分类器中进行打分,并作非极大值抑制处理。
Single-size training
先进行单尺度训练,将图片裁剪成224224的大小,然后conv5层得到的是aa的feature maps,假设空间金字塔池化中池化的结果为n*n,则池化的窗口大小为win=[a/n](向上取整),步伐为str=[a/n](向下取整)。示例如左上图所示。【注:这块是根据分类任务写的,所以是直接将feature maps输入到空间金字塔池化层,针对检测应该是输入feature maps中的候选区域】
Multi-size training
多尺度训练时,先考虑180180和224224这两个尺寸。180180是通过缩放前述单尺度训练的224224的区域图像得到的。然后多级池化的几个池化窗口规格计算与单尺度训练中的计算过程一样。为了降低从一个网络到另一个网络切换的开销,在每个网络上训练一个完整的epoch,然后在下一个epoch再切换到另一个网络(权重保留)。上述的180和224只是举例子,实际训练时,在每个epoch上训练不同的s*s输入,s是从180到224之间均匀选取的。
注意:上述单尺度和多尺度只是用于训练,测试时,是直接对各种尺度的图像应用SPP-net的。
Baseline network architectures
由上图可见,SPP的优势与使用的卷积神经网络无关。论文里研究了四种不同的网络架构,对这些架构,SPP都提升了准确度。
Innovation
首先SPP能产生一个固定长度的输出向量不管输入的图像规格如何,这是之前的算法做不到的。
其次,SPP使用了多级空间箱,多级池化能提高对目标形变的鲁棒性。
并且,由于SPP对输入的灵活性,所以它能池化从各种尺度抽取出来的特征。
Result
Detection results on Pascal VOC 2007
上图SPP和R-CNN使用的预训练模型不同,但是不论是单尺度还是5尺度训练到的model在Pascal VOC上的检测精度都与R-CNN差不多,但耗费的时间要少很多,单尺度SPP的检测速度约是R-CNN的64倍,而5尺度的SPP检测速度约是R-CNN的24倍。
Detection results on Pascal VOC 2007, using the same pre-trained model of SPP(ZF-5)
上图所示,SPP和R-CNN用了同一个预训练模型,最终得到的精度仍然是差不多的,但SPP在检测速度上领先R-CNN更多了。
Comparisons of detection results on Pascal VOC 2007
如上图所示,在做了边界框回归之后,SPP的检测精度与RCNN是一样的,并且SPP在11个类别上的检测精度都要高于R-CNN。
Dectection results on VOC 2007 using model combination
上图所示,是先训练2个SPP模型,然后组合两个模型的检测结果作非极大值抑制处理,最终使得检测精度有了一定提升。
注:本页面绝大多数图片来自原论文,小部分图片来自网络博客,引用本博文请注明出处。