【论文笔记】OverFeat - Integrated Recognition, Localization and Detection using Convolutional Networks

一、论文概要

OverFeat是在R-CNN之前利用CNN网络进行目标检测的方法。OverFeat在卷积神经网络中使用多尺度滑动窗口,通过深度学习预测目标框的定位。边界框被累积而不是被抑制以增加检测置信度。在ILSVRC2013中取得了最好的表现。

二、核心思想

本文提出了一种在卷积神经网络里同时分类,定位和检测的方法,这种方法能够提高分类定位和检测的准确度。我们同时介绍了一种累计预测框来定位检测的新方法。我们认为通过组合多个定位预测,检测可以无需在负样本上训练,避免时间消耗和复杂的训练过程。不在负样本上训练也可以让网络完全的专注于正样本来达到更高的准确率。
最初对于定位的三个思路为:1.对图片用多个尺寸的滑动窗口得到多个位置后应用卷积网络。(应用这种方法,很多窗口可能会包含目标可辨别的一部分而不是完整的目标,比如一只狗的脑袋。这样可能得到合适的分类但是定位和检测的效果并不是很好)2.所以第二个思路是训练网络预测每个窗口的分类和定位以及目标框的尺寸。3.第三个想法是累积每个分类的位置和大小。

一些作者提出以卷积网络为基础的分割来进行目标定位。最简单的方法包括训练 ConvNet 将其视窗的中心像素分类为区域之间的边界或不分类 。 但是当必须对区域进行分类时,最好进行语义分割。 主要思想是训练 ConvNet 将视窗的中心像素与它所属的对象的类别进行分类,使用该窗口作为决策的上下文。这种方法的优势在于边界框无需是矩形,候选目标也无需是界限分明的目标。缺点是需要密集的像素级别的标注标签来训练。这种分割的预处理和候选目标步骤近期在传统视觉里减少位置、尺寸和纵横比的搜索空间上获得了比较流行。这种通过运用昂贵的分类方法来提供识别精确度,并且这种方法是通过大幅减少不太可能的候选区域来增加精确的,从而减少FP。

我们的任务分为分类/定位/检测。分类任务中,每张图返回5个猜测。定位任务每张图也返回5个猜测,但是每个猜测IoU需要大于50%。检测任务中,检测数量每张图不受限制。

【分类】
数据:ImageNet 2012 —— 1.2m images & 1000 class
图片处理:下采样到256 * 256 => 5 random crop 221 * 221
batch-size: 128
优化:sgd, momentum 0.6, l2权重衰减10^-5
初始学习率:5 * 10^ -2 (30,50,60,70,80)/epochs * 0.5
结构:

image.png

【multi-scale & offset pooling & slide window】
我们在每个位置用多个尺度的滑动窗口探索图像。总下采样的倍数是232*3,36倍。也就是输入图片上每36个像素才能产生一个向量,这种松散的分布会降低模型表现因为窗口不能很好的对图片进行居中。所以我们在每个偏移处应用最后一个子采样操作。将总下采样率从36变到了12。
我们使用6个输入图像的不同尺寸在layer 5 得到不同的特征输出,然后通过以下过程池化送到分类器里:

  1. 对一个给定尺寸的图片,首先得到layer 5 非池化层的特征输出
  2. 每个特征进行3*3最大池化操作,池化区域不重叠,边界空出像素x,y方向从{0,1,2}各取1个值组合
  3. 上述步骤中可以得到9个池化特征
  4. 分类器采取滑动窗口的方式,池化特征每5*5个像素送入分类器,每个滑动窗口得到一个C class的输出特征
  5. 将9个不同组合的所有分类器(不同滑动窗口)的输出重新塑造成xyC的输出
image.png

上图是以1维输入举例的过程,layer 5 得到20个像素的特征。

(?)这个流程会在原始图片的不同尺度上执行,最终的分类结果通过:1.在每个尺度的每个类中取最大值 2.平均不同尺度最后的C维输出 3.从平均类向量取top1 / top5
网络的两部分:1-5层的特征提取层 和 6-output的分类层 使用的方式相反。特征提取部分对整个图片卷积一次。分类阶段则用5*5的固定输入通过不同的位置在layer 5 找不同的表达。

【结果】


image.png

相比较其他每个窗口都需要计算完整的pipeline的滑动窗口的方法,overFeat是更有效率的,因为每个窗口重复区域共享相同的计算。

【定位】
根据上述方法,一张图片每个尺寸,每个位置都会经过最后一层全连接层输出每个分类的置信度,即每个bounding box 都有一个置信度。

回归训练
回归网络使用layer 5的池化特征,拥有2个通道数分别为4096和1024的全连接隐藏层。最后的输出层有4个单元代表了bbox的坐标。

image.png

最后一个回归层是分类相关的,每个分类有自己的一个不同的版本。这个回归网络和分类网络一样,使用了不用尺度不同偏移的版本,然后计算每个窗口预测出来的空间位置与gt做比较。如果样本和真实标签的重叠小于50%,则样本不参与回归器的训练。

【组合预测】
因为multi-scale & offset pooling 策略,一张图我们可以得到多个分类预测结果和bbox回归预测结果。通过以下方式处理多个结果:

  1. s个尺度中,选出每个尺度top k个分类结果,计作Cs
  2. Cs中的每个分类,从对应尺度中找到每个对应分类的全部bbox预测结果,计作Bs
  3. 全部尺度的Bs结果,计作B
  4. 重复以下步骤,直到满足6
  5. 对B中任意两个bbox预测结果计算中心点距离,取最小值
  6. 任意两个bbox中心点最小值>t时,停止重复
  7. 否则,合并最小的两个bbox为一个,(取四个坐标平均值)

三、总结

  1. multi-scale
  2. multi-view / offset-pooling
  3. slide window
  4. combine prediction

你可能感兴趣的:(【论文笔记】OverFeat - Integrated Recognition, Localization and Detection using Convolutional Networks)