0.论文摘要
在权威的的PASCAL VOC数据集上测量的目标检测性能在过去几年中已经稳定下来。性能最好的方法是复杂的集成系统,通常将多个低级图像特征与高级上下文相结合。在本文中,我们提出了一种简单且可扩展的检测算法,相对于之前在VOC 2012上的最佳结果,该算法将平均精度(mAP)提高了30%以上,实现了53.3%的mAP。我们的方法包涵了两个关键思想:(1)可以将高表达能力的卷积神经网络(CNN)应用于自下而上提取候选框的特征,以便定位和分割目标;(2)当标记的训练数据稀缺时,辅助任务的监督预训练,随后是特定领域的微调,产生了显著的性能提升。因为我们将候选框与CNN相结合,所以我们将我们的方法称为R-CNN:具有CNN特征的区域。我们还展示了一些实验,这些实验提供了对网络学习内容的洞察,揭示了图像特征的丰富层次。
1.研究背景
特征很重要。过去十年在各种视觉识别任务上的进展在很大程度上基于SIFT[26]和HOG[7]的使用。但是,如果我们看看权威的视觉识别任务PASCAL VOC目标检测[12]的表现,人们普遍认为,2010-2012年期间进展缓慢,通过建立集成系统和采用成功方法的微小变体获得的收益很小。
SIFT和HOG是块方向直方图,这种表示我们可以大致与V1的复杂细胞联系起来,V1细胞是灵长类视觉通路中的第一个皮层区域。但我们也知道,识别发生在下游的几个阶段,这表明可能存在分层、多阶段的过程来计算对视觉识别来说甚至更有用的特征。
福岛邦彦的神经认知机是对这一过程的早期尝试。然而,神经认知机缺乏监督训练算法。LeCun等[23]提供了缺失的算法,表明通过反向传播的随机梯度下降可以训练卷积神经网络(CNN),这是一类扩展神经认知机的模型。
CNN在20世纪90年代被大量使用(例如[24]),但随着支持向量机的兴起,CNN不再流行,特别是在计算机视觉领域。2012年,Krizhevsky等[22]通过在ImageNet大规模视觉识别挑战(ILSVRC)上显示出显著更高的图像分类准确性,重新点燃了对CNN的兴趣[9,10]。他们的成功源于在120万张标记图像上训练大型CNN,以及在LeCun的CNN上的一些调整(例如, m a x ( x , 0 ) max(x, 0) max(x,0)纠正非线性和“dropout”正则化)。
在ILSVRC 2012研讨会期间,对ImageNet结果的重要性进行了激烈的辩论。中心问题可以归结为以下一点:ImageNet上的CNN分类结果在多大程度上推广到PASCAL VOC挑战上的目标检测结果?
我们通过弥合图像分类和目标检测之间的鸿沟来决定性地回答这个问题。本文首次表明,与基于更简单的类HOG特征的系统相比,CNN可以在PASCAL VOC上带来更高的目标检测性能。实现这一结果需要解决两个问题:使用深度网络定位目标和仅使用少量带注释的检测数据训练高表示能力模型。
与图像分类不同,检测需要定位图像中的(可能是许多)目标。一种方法将定位框定为回归问题。然而,Szegedy等的工作[31],与我们自己的方法一致,表明这种策略在实践中可能不会很好(他们报告了VOC 2007的mAP为30.5%,而我们的方法实现了58.5%)。另一种方法是建造一个滑动窗检测器。CNN已经以这种方式使用了至少二十年,通常用于受约束的目标类别,如人脸[28,33]和行人[29]。为了保持高空间分辨率(特征图的长和宽),这些CNN通常只有两个卷积层和池化层(因为不能太深,太深了下采样次数多,要保留大的感受野)。我们还考虑采用滑动窗口方法。然而,在我们具有五个卷积层的网络中,高层单元在输入图像中具有非常大的感受野(195 × 195像素)和步长(32 × 32像素),这使得滑动窗口范例中的精确定位成为一个开放的技术挑战。
相反,我们通过在“使用区域的识别”范式中操作来解决CNN的定位问题,正如Gu等所主张的那样在[18]中。在测试时,我们的方法为输入图像生成大约2000个与类别无关的候选框,使用CNN从每个候选框中提取固定长度(4096维)的特征向量,然后使用类别特定的线性支持向量机对每个区域进行分类。我们使用一种简单的技术(仿射变形)来计算来自每个候选框的固定大小的CNN输入,而不管区域的形状如何。图1展示了我们方法的概述,并强调了我们的一些结果。由于我们的系统将候选框与CNN相结合,我们将该方法命名为R-CNN:具有CNN特征的候选框。
图1:目标检测系统概述。我们的系统(1)获取输入图像,(2)提取大约2000个自下而上的候选框,(3)使用大型卷积神经网络(CNN)计算每个建议的特征,然后(4)使用特定于类的线性支持向量机对每个区域进行分类。R-CNN在PASCAL VOC 2010上实现了53.7%的平均精度(mAP)。相比之下,[32]报告了35.1%的mAP使用相同的候选框,但采用了空间金字塔和视觉词袋方法。流行的DPM方法表现为33.4%。
检测中面临的第二个挑战是标记数据稀缺,当前可用的数量不足以训练大型CNN。该问题的常规解决方案是使用无监督的预训练,随后是有监督的微调(例如[29])。本文的第二个主要贡献是表明,在大型辅助数据集(ILSVRC)上进行监督预训练,然后在小型数据集(PASCAL)上进行特定领域的微调,是在数据稀缺时学习高表示能力CNN的有效范例。在我们的实验中,检测微调将mAP性能提高了8个百分点。微调后,我们的系统在VOC 2010上实现了54%的mAP,相比之下,DPM为33%[14,17]。
我们的系统也相当高效。唯一的类特定的计算是一个合理的小矩阵向量积和贪婪的非最大抑制。这种计算特性来自所有类别共享的特征,并且比以前使用的区域特征维度低两个数量级(参见[32])。类似HOG的特征的一个优点是它们的简单性:更容易理解它们携带的信息(尽管[34]表明我们的直觉可能会让我们失望)。我们能洞察CNN学到的表象吗?也许拥有超过5400万个参数的全连接层是关键?他们不是。我们对CNN进行了“脑叶切除”,发现其参数中令人惊讶的大比例(94%)可以被移除,而检测精度仅略有下降。相反,通过探测网络中的单元,我们看到卷积层学习了一组不同的丰富特征(图3)。
图3:六个pool5单元的顶部区域。感受野和激活值用白色绘制。有些单位与概念对齐,如人物(第1行)或文本(第4行)。其他单元捕捉纹理和材质属性,如点阵列(2)和镜面反射(6)。
理解我们方法的误差模式对于改进它也是至关重要的,因此我们报告了Hoiem等人的检测分析工具的结果[20]。作为这一分析的直接结果,我们证明了一个简单的边界框回归方法显著减少了错误定位,这是主要的错误形式。在开发技术细节之前,我们注意到,因为R-CNN对区域进行操作,所以很自然地将其扩展到语义分割的任务。稍加修改,我们还在PASCAL VOC分割任务上获得了最先进的结果,在VOC 2011测试集上的平均分割准确率为47.9%。
2.基于RCNN的目标检测
我们的目标检测系统由三个模块组成。第一个生成独立于类别的候选框。这些候选框定义了我们的检测器可用的候选检测集。第二个模块是一个大型卷积神经网络,从每个候选框提取固定长度的特征向量。第三个模块是一组特定于类的线性支持向量机。在本节中,我们将介绍每个模块的设计决策,描述它们的测试时间使用情况,详细说明它们的参数是如何学习的,并展示PASCAL VOC 2010-12的结果。
2.1 模型设计
2.1.1 候选框
各种最近的论文提供了生成类别独立的候选框的方法。例子包括:客观性[1],选择性搜索[32],类别无关的目标建议[11],约束参数最小分割(CPMC)[5],多尺度组合分组[3],以及Cireşan等[6],他们通过将CNN应用于规则间隔的方形作物来检测有丝分裂细胞,这是候选框的特例。虽然R-CNN对特定候选框方法不可知,但我们使用选择性搜索来实现与先前的检测工作比较。