R-CNN minus R
intro: BMVC 2015
arxiv: http://arxiv.org/abs/1506.06981
Abstract
深卷积神经网络在图像理解的大多数领域,包括对象类别检测,都会产生重大影响。在目标检测中,R-CNN等方法将CNN与选择搜索等区域建议生成算法相结合,取得了良好的效果。
在本文中,我们研究了提案生成在基于CNN的探测器中的作用,以确定它是否是一个必要的建模组件,携带CNN中不包含的基本几何信息,或者它是否仅仅是一种加速检测的方法。我们通过设计和评估一个检测器来实现这一点,该检测器使用一个小的区域生成方案,每个图像都是常量。结合SPP,这将产生一个优秀的和快速的检测器,不需要用CNN本身以外的算法处理图像。我们还通过将几个学习步骤集成到一个算法中,以及通过提出一些加速检测的改进,简化了基于CNN的检测器的训练。
Introduction
目标检测是当代理解的核心问题之一。直到最近,Pas-Cal VOC等标准基准中的最佳性能检测器都是基于手工制作的图像表示(如SIFT、HOG和Fisher矢量)和结构化输出回归(从滑动窗口到可变形零件模型)的组合。
然而,最近,基于深度学习(使用卷积神经网络(CNN)从数据中自动获取表示)的管道明显优于基于深度学习的管道。目前,最好的基于CNN的探测器是基于R-CNN构建的[9]。从概念上讲,R-CNN非常简单:它使用诸如选择性搜索(ss;[18])之类的建议机制对图像区域进行采样,并使用CNN将其分类为前场和背景。
然而,仔细观察,R-CNN留下了几个有趣的问题。
- 第一个问题是CNN是否包含足够的几何信息来定位对象,或者后者是否必须由外部机制(如区域建议生成)进行补充。
- 第二个问题是R-CNN管道是否可以简化
- 第三个问题是R-CNN是否可以加速。
通过认识到卷积特征可以在不同区域之间共享,而不是重新计算,空间金字塔池(spp)中的速度已经大大加快了[11]。然而,这并没有加速训练,在测试中,区域提案生成机制成为新的瓶颈。
CNN-based detectors
R-CNN detector
Region proposal generation
CNN-based features
CNN本身是从一个不同的问题转移过来的,通常是图像网络ILSVRC挑战中的图像分类。
SVM training
Bounding box regression
在删除了SPPCNN的公开实现中发现的20%的回归损失最严重的例子后,通过对其进行再训练,我们进一步证明了回归量。
Post-processing
CNN fine-tuning
SPP-CNN detector
通过将区域R划分为子区域R = R1 U R2 U :::RK],将SP算子应用于每一个,然后叠加得到的特征。
这样,输出可以与现有的fc布局器连接:φspp(x;r)=φfc spp(·;r)φcnv(x)。
Simplifying and streamlining R-CNN
Dropping region proposal generation
事实上,使用ss生成建议比SPP分类慢10倍。
在这里,我们建议完全丢弃R(x)并使用CNN本身来回归更好的对象位置a-posteriori,而是使用与图像无关的候选区域R0列表。
Streamlined detection pipeline
Experiments
首先,对于相同数量的候选框,选择性搜索比任何固定的提案集都要好得多;
不太可能的是,即使多了3个*的候选对象,性能也不会提高,这意味着即使提案的短名单中包含了紧凑的框,神经网络也无法更好地分辨哪些边界框。
Conclusions
我们最重要的发现是,尽管在卷积层而不是完全连接层中,当前CNN确实包含大量用于精确目标检测的几何信息。这一发现开启了建立完全依赖CNN的最先进的目标探测器的可能性,消除了区域建议生成方案,如选择性搜索,并导致集成、简单和更快的探测器。
我们目前的无提案探测器的实施已经比SPP-CNN快得多,而且在地图方面非常接近,但还不够好。然而,我们只是开始探索设计的可能性,我们相信在差距完全缩小之前是一个时间问题。特别是,我们当前的方案可能会错过图像中的小对象。这些可以通过其他搜索对象姿态空间的方法来保留,例如在卷积特征的基础上进行Hough投票,这将保持集成和流线型CNN探测器的计算优势和优雅性,同时允许彻底搜索图像中的对象出现。