【目标检测 论文泛读】SSPnet (Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)

文章目录

R-CNN系列推演:

每一篇都是前一篇或者前几篇的改造版,所以按顺序看会比较好。

今天看一下SPPnet。

论文题目: Spatial Pyramid Pooling in Deep Convolutional
Networks for Visual Recognition

下载连接:https://arxiv.org/pdf/1406.4729.pdf

SSPnet这篇论文是针对R-CNN的缺点进行改造,文章内容不是特别多,所以泛读一下。

可以看一下我前两天整理的R-CNN精读

R-CNN模型回顾

R-CNN是首次提出两阶段目标检测的模型。

具体操作 先从图片中提取2000个候选框,然后每个候选框放到CNN里抽特征,然后再给SVM分类。

R-CNN模型要求输入尺寸必须固定为227 * 227。

为什么R-CNN要求固定输入?

卷积层对于输入没有要求,因为就是滑动嘛。但是全连接层就不一样了,全连接层的参数和输入图片大小有关,因为他要连接所有的像素点,所以要指定输入输出的神经元个数,规定输入的feature map大小。

SSPnet模型提出背景

因为R-CNN要求输入尺寸必须固定成227 * 227,但对于图片的无论是剪裁(crop)还是变形(warp),都会对识别精度产生影响,所以作者想提出一种方法解决从全连接层这个问题,让模型不再固定输入。

R-CNN模型的速度也很慢,主要是每一张提取了2000个候选框,每个候选框进行变形然后送给CNN。

作者改进的思路和方法

改进思路一

改进图片输入固定尺寸导致图片变形的问题。

作者提出了一种名为 空间金字塔池化(SSP)的模型,该模型应用于最后一个卷积层之后,全连接层之前,SSP将接受不同输入尺寸的feature map,转化成固定输出的尺寸。

两种模型的对比:

【目标检测 论文泛读】SSPnet (Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)

这就根本解决了R-CNN固定输出尺寸的问题,这里其实也是固定了输出尺寸,但与R-CNN根本区别是,R-CNN先将图片进行了扭曲或者裁剪,然后再给CNN,此时CNN的特征提取就是基于已经变形过的图片了,必然有失精度,而在SPP模型中,图片是原图输入给CNN进行特征提取,提取完特征之后再变形,这样在CNN这块就没有损失了。

改进思路二

改进R-CNN训练慢的问题。

因为需要提取2000个候选框放到CNN里所以导致R-CNN训练大幅减慢。
作者提出了一种思路方法,就是对每一个图片不进行候选框提取,而是将整个图片都放到CNN中去提取整个图片的feature map,然后通过选择性搜索(SS)得到候选区域,让候选区域和feature map直接映射,得到候选区域的映射特征向量。

; SPP为什么能输出固定的长度?

论文中给出了下面这张图:

【目标检测 论文泛读】SSPnet (Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)
最下面的黑色方框就是卷积层的最后一层输出的feature map。空间金字塔池化包含了很多金字塔层(上图中包含3层)只不过拆开放了,他们应该是叠在一起的,最左边是第一层。

实际上SSP结构就是多层最大池化层。设定的金字塔尺度为n×n bins(对于不同大小图片是固定的),上图三层左起分别是4 * 4,2 * 2,1 * 1,将这三张网格放到下面这张特征图上,就可以得到16+4+1=21种不同的块(Spatial bins),我们从这21个块中,每个块提取出一个特征,这样刚好就是我们要提取的21维特征向量,最终一共可以输出固定的(16+4+1)*256特征。

SPP模型训练过程

论文中说了两种训练方式,一种是single-size,一种是Multi-size。

single-size

单尺寸训练。

上面也说了SPP最大的优点就是不拘泥于输入的尺寸,但是由于硬件和框架方面的问题,这里使用了固定尺寸的输入进行了训练(输入为224 * 224)。

Multi-size

多尺寸训练。

实际上就是在当前固定输入尺寸的情况下模拟SPP的理论上不要求输入尺寸的情况。

使用两个尺度进行训练:224×224、180×180。训练时,224×224通过crop得到,180×180的通过缩放224×224得到。之后迭代训练,即用224的图片训练一个epoch,再用180的图片训练一个epoch,交替进行。

两种尺度下,在SPP后,输出特征维度都为 (9+4+1)x256,参数共享,后面跟全连接层,收敛速度和单尺度训练的相近。

小总结

这篇论文主要是对R-CNN的改进,所以用一张两模型的对比表格在好不过了。

R-CNNSPP一张图片提取2000个候选框 ,并强制缩放到固定尺寸后送给CNN整张图片直接送给CNNCNN提取每个候选框的feature mapCNN得到整张图的feature map,通过SS得到候选区域与feature map直接映射得到特征向量将CNN提取的feature map 送给SVM分类,送给BB回归进行定位修复映射的特征向量给SSP,SSP输出固定大小的特征向量,再给 FC,再SVM+回归

SPP相较于R-CNN,精度UP! 速度UP!

Original: https://blog.csdn.net/qq_38737428/article/details/124611934
Author: 深度不学习!!
Title: 【目标检测 论文泛读】SSPnet (Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/681504/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球