论文阅读笔记 之 SPP-Net

Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition视觉识别空间金字塔池化深度卷积网络

    • 本文解决的问题
    • 解决方法
      • 问题①
      • 问题②
    • 训练策略
    • 实验结果

视觉识别空间金字塔池化深度卷积网络

本文解决的问题

① 已有的卷积神经网络的输入都要求大小固定(例如R-CNN等),因此需要对输入进行强行裁剪或者放缩,这会导致目标信息的损失以及额外的图像预处理时间。
原因:
因为卷积神经层后都添加了全连接层,而全连接层的神经元数量是固定的,即这对卷积层的输出的大小要求固定,因而要求网络的输入固定。
② R-CNN中需要对2000个region proposals 都逐一进行卷积运算得到特征,计算量过大且速度过于慢

解决方法

问题①

SPP-Net网络结构设计:
论文阅读笔记 之 SPP-Net_第1张图片
SPP(Spatial pyramid pooling,空间金字塔池化)也称为spatial pyramid matching,是Bag-of-Words模型的一个拓展,有以下特点:
① 对于任何尺寸大小的输入能够生成一个固定长度的输出
② SPP中使用了多尺度的运算窗口,相比于固定窗口更具有鲁棒性
③ 因为输入尺度比较灵活,SPP可以汇集不同尺度所提取的特征
因此在CNN中引入SPP,就可以有效地解决输入大小固定导致的问题。

问题②

SPP-Net中将SPP位置放置在卷积层后,仅对原始输入图片进行卷积处理,而后在卷积后的特征图上利用selective search提取出2000多个region proposals文中称为(window),再逐一各个proposal进行SPP池化提取对应的特征向量,再通过两层全连接层得到用于分类的特征向量,再利用SVM进行分类,这部分与R-CNN相似。

在这里插入图片描述
图中第一个为R-CNN结构,第二个结构为SPP-Net结构

直接在特征图上提取推荐区域,可以充分利用共同计算资源,避免重复运算,从而提高速度,其结构示意图如下图:
论文阅读笔记 之 SPP-Net_第2张图片
论文中的空间金字塔池化采用了三个尺度进行池化,分别为1×1,2×2,4×4,即将proposals划分为1、4、16个区域,对每个区域分别进行池化, 对于一个proposal,能够分别得到N×16,N×4,N×1的向量,即能够得到长度21×N长的特征向量。其中N为最后一层卷积层的维数。

训练策略

因为Caffe等GPU平台更适合固定尺寸的输入进行训练,所以本文在训练的时候还是固定尺寸输入的。
论文中首先使用固定输入尺寸224×224训练了一个SPP-Net网络并测试了其性能;而后为了达到在训练中使用不同尺寸的输入,作者又构建了一个输入尺寸为180×180的网络,网络结构与224×224输入的网络完全相同,并且180×180的图片是由224×224图片缩放得到的,因此两个网络除了输入尺寸,参数数量等等完全相同。在训练时作者使用交替训练的方法,在224×224网络上训练一个epoch,然后再到180×180网络上训练一个epoch,再到224×224上训练…。两个网络参数是共享的,这样就相当于使用尺寸不同的输入训练一个网络,这样交替训练完全是因为当时Caffe等框架的限制。
SVM等分类器的训练与R-CNN中无异。

实验结果

在VOC2007数据集上的检测结果:
论文阅读笔记 之 SPP-Net_第3张图片
检测时间方面对比R-CNN如上图,提升了将近100倍,达到了每张图片处理时间为0.142s:
论文阅读笔记 之 SPP-Net_第4张图片
其它分类等的实验结果详情请见论文原文:论文地址。

你可能感兴趣的:(论文阅读笔记,网络,计算机视觉,深度学习,神经网络)