目标检测--RCNN论文笔记(翻译+理解)

论文地址:https://arxiv.org/abs/1311.2524

摘要

过去几年里,在经典的PASCAL VOC数据集上的目标检测性能已经达到瓶颈。取得最佳性能的方法一般是复杂的集成方法,通常是将多个低级图像特征与高级语义上下文相结合。本文提出了一种简单且可扩展的检测算法,相对于VOC 2012上的SOTA算法,平均精度(mean average precision, mAP)提高了30%以上,达到了53.3%。我们的方法结合了两个关键点:(1)将大容量(high-capacity)卷积神经网络应用于自下而上的候选区,以定位和分割对象;(2)带标签的训练数据稀缺时,针对辅助任务进行监督预训练,然后再进行特定领域的微调,能够显著提高性能。由于我们结合了候选区提取与CNN,我们的方法称为R-CNN:Regions with CNN features。我们还展示了一些实验,揭示了网络学到的内容,包括丰富的图像特征层次结构。代码网址:http://www.cs.berkeley.edu/˜rbg/rcnn。

1 引言

特征至关重要。过去十年在各种视觉识别任务上的进展很大程度上基于SIFT[26]和HOG[7]。但是,在经典的视觉识别任务PASCAL VOC目标检测[12]数据集上,不得不承认在2010年至2012年间进展缓慢,仅通过构建集成方法和采用已有成功方法的微小变体带来小幅增长。

SIFT和HOG是分块方向直方图(像素级的),这种表示大致可以与灵长类动物视觉通路中的V1区的复杂细胞类似。但我们也知道识别发生在下游的几个阶段,这表明可能存在分层的、多阶段的处理过程,来计算信息更丰富的特征进行视觉识别。

Fukushima的神经认知机(neocognitron)[16]是一种受生物启发的分层的和平移不变性的模型,用于模式识别,是早期对这种过程的尝试。然而,神经认知机缺乏监督训练算法。LeCun等人[23]弥补了这一缺口,通过随机梯度下降和反向传播训练卷积神经网络,扩展了神经认知机模型。

卷积神经网络在上世纪90年代得到了广泛应用(例如,[24]),但随后又逐渐衰落,特别是在计算机视觉领域,同时支持向量机兴起。2012年,Krizhevsky等人[22]通过在ImageNet大规模视觉识别挑战(ILSVRC)[9, 10]上展示了超高的图像分类准确性,重新点燃了人们对CNN的兴趣。他们利用120万张带标签的图像训练了一个大型CNN,并对LeCun的CNN进行一些小的改进(例如,Relu激活函数和dropout正则化等)。

在ILSVRC 2012研讨会上,ImageNet这一结果的意义引发了激烈的讨论。核心问题可以概括为:CNN在ImageNet上的分类结果在多大程度上可以推广到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从每个候选区域中提取固定长度的特征向量,然后使用特定类别的线性SVM对每个区域进行分类。我们不考虑区域的形状,使用简单的图像仿射变换为每个候选区生成固定大小向量作为CNN的输入。图1概述了我们的方法,并突出显示了一些结果。由于我们的系统将候选区与CNN相结合,我们将该方法称为R-CNN:具有CNN特征的区域(Regions with CNN features)。

目标检测中面临的第二个挑战是标签样本数据稀缺,目前可用的数量不足以训练大型CNN。这个问题的传统解决方案是使用无监督预训练,然后进行监督微调(例如,[29])。本文的第二个主要贡献是,在数据稀缺的情况下,对大型辅助数据集(ILSVRC)进行监督预训练,然后在小数据集(PASCAL)上进行特定领域微调,是学习大型CNN的有效范式。在我们的实验中,针对目标检测的微调将mAP性能提高了8个百分点。微调后,相比经过高度调优的基于HOG的DPM算法的mAP值33%,我们的系统在VOC 2010上实现了54%的mAP。

我们的系统也非常高效。唯一的与类别相关的计算是一个合理的较小的矩阵向量乘积和贪婪非极大值抑制。所有类别计算共享相同的特征,并且这些特征的维度比之前使用的区域特征低两个数量级(参见[32])。

图1:目标检测系统概述。
算法流程:
(1)接收输入图像;
(2)使用Selective Search算法,在输入图像上提取大约2000个自底向上的候选区;
(3)将这些候选区缩放至合适的大小,并使用CNN计算每个区域的特征;
(4)使用特定类别的线性SVM对每个区域进行分类;
(5)使用边界框回归方法精修候选框的位置。

R-CNN在PASCAL VOC 2010上实现了53.7%的mAP。作为比较,[32]使用相同的候选区方法,结合空间金字塔和视觉词袋方法mAP为35.1%。而流行的DPM模型为33.4%。

HOG之类的特征的一个优点是简单:更容易理解它们所携带的信息(尽管[34]表明我们的直觉可能会产生误导)。我们是否能洞悉CNN学到的特征表示,超过5400万参数的密集连接层(全连接层)是不是关键呢?它们其实不是。我们解剖了CNN,发现居然94%参数可以移除,而仅仅会导致检测准确率的小幅下降。相反,通过探测网络中的单元,我们发现卷积层学习到了多样化丰富的特征(见图3)。

搞清楚我们方法的失败的案例对于改进它也至关重要,因此我们使用Hoiem等人提出的检测分析工具分析了结果[20]。由于这项分析的直接结果,我们展示了一个简单的边界框回归方法可以显著减少定位错误,这也是主要错误。

在开发技术细节之前,我们注意到,由于R-CNN是基于区域的,将其扩展到语义分割任务是很自然的。经过微改,我们还在PASCAL VOC分割任务上取得了SOTA结果,在VOC 2011测试集上平均分割准确率为47.9%。

2 R-CNN目标检测

我们的目标检测系统由三个模块组成。第一个模块生成类别无关的候选区。这些区域定义了我们检测器可用的候选检测集合。第二个模块是一个大型卷积神经网络,从每个区域中提取一个固定长度的特征向量。第三个模块是一组特定类别的线性SVM。在本节中,我们介绍了每个模块的设计决策,描述了它们在测试时的使用情况,详细说明了它们的参数是如何学习的,并展示了在PASCAL VOC 2010~12上的结果。

2.1 模型设计

提取候选区域。近期的一系列论文提出了生成类别无关的候选区的方法。例如:objectness[1], selective search[32], category-independent object proposals[11], constrained parametric min-cuts (CPMC) [5], multi-scale combinatorial grouping [3], 以及Cires¸an等人[6]通过将CNN应用于等间距的方形图像块来检测有丝分裂细胞,这是候选区的一种特殊情况。虽然R-CNN对于用哪一种候选区提取方法并不关心,但我们使用选择性搜索(selective search)来实现与先前的检测工作(例如[32,35])的可控比较。


补充材料:
在这里插入图片描述


特征提取。我们使用由Krizhevsky等人提出的CNN的Caffe [21]实现,从每个候选区中提取一个4096维的特征向量。特征是通过将一个227×227的RGB图像(该图像输入CNN前减去了像素均值)通过五个卷积层和两个全连接层进行前向传播来计算的。关于更多网络架构细节,我们参考[21, 22]。

为了计算候选区的特征,我们必须先将该区域中的图像数据转换为与CNN兼容的形式(其架构需要固定大小的227×227像素的输入)。将任意形状的区域转换为固定尺寸的图像有许变换方式,我们选择了最简单的方式。无论候选区的大小或长宽比如何,我们都将其周围的所有像素框起来变形到所需大小。在进行变形之前,我们将边界框外扩了p个像素(我们使用p=16)。图2显示了一组变形训练区域的随机样本。补充材料讨论了变形的替代方法。
在这里插入图片描述

2.2 测试阶段

在测试时,我们对输入图像用selective search算法提取约2000个候选区(在所有实验中我们使用selective search的“快速模式”)。我们对每个区域变形,并通过CNN进行前向传播提取所需特征。然后,对于每个类别,我们使用为该类别训练的SVM对每个提取的特征向量进行评分。给定图像中所有区域的评分,我们对于每个类别独立地应用贪婪非极大值抑制算法,如果两个区域的交并比(IoU)重叠超过学习到的阈值,则去掉得分低的区域。

运行时间分析。检测方法的两个特性使之高效。首先,所有的CNN参数在所有类别之间是共享的。其次,与其他常见方法(例如,空间金字塔和视觉词袋编码方法)相比,CNN计算的特征向量是低维的。例如,UVA检测系统中使用的特征比我们的大两个数量级(360k vs. 4k)。

这种共享的结果是,计算候选区和特征时所花费的时间(在GPU上每张图像13秒,CPU上每张图像53秒)被分摊到所有类别。唯一的类别相关计算是特征和SVM权重的点积以及非最极大值抑制。在实践中,图像的所有点积都被批处理成一个矩阵乘法。特征矩阵通常是2000×4096,SVM权重矩阵是4096×N,其中N是类别数。

这个分析表明,R-CNN可以扩展到数千个目标类别,而无需使用近似技术,比如哈希。即使有10万个类别,矩阵乘法也只需要在现代多核CPU上花费10秒。这种效率不仅仅是借助候选区和共享特征得出的结果。UVA系统由于其高维特征慢两个数量级,同时需要134GB的内存来存储10万个线性预测器,而我们的低维特征仅需1.5GB。

将R-CNN与Dean等人最近使用的DPM和哈希技术进行可扩展检测的工作进行对比也是很有意思的。当引入10k个干扰类别时,他们在VOC 2007数据集上的运行效率为每张图像5分钟,平均精度为约16%。而采用我们的方法,10k个检测器在CPU上运行约一分钟,由于不进行近似处理,平均精度仍将保持在59%(参见第3.2节)。

2.3 训练阶段

监督预训练。我们在一个大型辅助数据集(ILSVRC 2012)上对CNN进行了有判别力的预训练,该数据集只有图像级别的注释(即为图像分类,没有边界框标签)。预训练是使用开源的Caffe CNN库进行的[21]。简而言之,我们的CNN几乎与Krizhevsky等人[22]的性能相当,在ILSVRC 2012验证集上的top-1错误率只高出2.2个百分点。这种差异是由于训练过程中的简化造成的。

特定领域微调。为了使预训练的CNN适应新任务(检测)和新领域(变形的VOC窗口),我们对VOC的变形候选区利用随机梯度下降(SGD)继续训练CNN参数。除了用随机初始化的21路分类层(20个VOC类别加上背景)替换CNN的ImageNet特定的1000路分类层外,CNN的架构保持不变。我们将与GT框的IoU重叠≥0.5的候选区视为该框该类别的正样本,其余的则视为负样本。我们以学习率0.001(初始预训练学习率的1/10)使用SGD训练,这样可以在不破坏预训练权重的情况下进行微调。在每个SGD迭代中,我们均匀地从所有类别中抽样32个正样本窗口和96个背景窗口,构建大小为128的批。我们倾向于对正样本窗口进行采样,因为它们与背景相比数量较少。(正负样本不均衡问题,本文比例正1负3)

目标类别分类器。考虑训练一个用于检测汽车的二元分类器。很明显,紧密包围汽车的图像区域应该是正样本。同样,与汽车无关的背景区域应该是负样本。但是,部分重叠汽车的区域如何认定则不太清楚。我们通过IoU(交并比)重叠阈值来解决这个问题,在该阈值以下的区域被定义为负样本。重叠阈值0.3是通过在验证集上进行0、0.1、…、0.5的网格搜索选择的。我们发现选择这个阈值很重要。将其设置为0.5(与[32]中相同)会使mAP降低5个点。类似地,将其设置为0会使mAP降低4个点。正样本简单地被定义为每个类别的GT框。

在特征提取且分配了训练标签后,我们为每个类别优化一个线性SVM。由于训练数据过大无法一次性载入内存,我们采用标准的难例挖掘方法。难例挖掘迅速收敛,在实践中,经过一次遍历所有图像后,mAP的增长就会停止。


补充材料:难例挖掘(hard negative mining method)
当把背景误分为某类时,把该背景样本添加到训练集样本。(错题本)


在本文的补充材料中,我们讨论了为什么在微调和SVM训练中正负样本的定义方式不同。我们还讨论了为什么需要训练检测分类器,而不仅仅是使用微调CNN的最后一层(fc8)的输出。

微调时的正负样本定义:
-----正样本:与GT IoU最大且≥0.5的候选区
-----负样本:其余候选区
-----正样本+负样本=候选区个数
SVM训练时的正负样本定义:
-----正样本:GT框
-----负样本:与GT IoU<0.3的候选区
-----忽略样本:其余候选区

2.4 在PASCAL VOC 2010-12 上的结果

遵循PASCAL VOC的最佳实践[12],我们在VOC 2007数据集上验证了所有设计决策和超参数(请参阅第 3.2 节)。对于VOC 2010~12数据集的最终结果,我们在VOC 2012训练集上对CNN进行了微调,并在VOC 2012训练验证集上优化了SVM。我们仅为每种主要算法变体(带有和不带有边界框回归)向评估服务器提交了一次测试结果。

表1显示了在VOC 2010上的完整结果。我们将提出方法与四种最好的基线模型进行了比较,包括 SegDPM [15],它将DPM检测器与语义分割系统的输出结合起来,并使用额外的检测器间上下文和图像分类器重新评分。与Uijlings等人[32]提出的UVA系统的比较相关度最高,因为我们的系统使用相同的候选区提取算法。为了分类区域,他们的方法构建了四级空间金字塔,并使用密集采样的SIFT、扩展OpponentSIFT和RGBSIFT描述符,每个向量使用4000词的代码本进行量化。分类是通过直方图交集核SVM完成的。与他们的多特征、非线性核SVM方法相比,我们在mAP上取得了很大的提升,从35.1%提高到53.7%,同时速度更快(请参见第2.2节)。我们的方法在VOC 2011/12测试上实现了类似的性能(53.3% mAP)。
在这里插入图片描述
表1:在VOC 2010测试集上的检测平均精度(%)。R-CNN最直接的比较是UVA和Regionlets,因为它们都使用selective search提取候选区。边界框回归(BB)在第3.4节中描述。在出版时,SegDPM是 PASCAL VOC排行榜上表现最好的方法。DPM和SegDPM使用了其他方法未使用的上下文重新评分。

3 可视化、消融和错误模式

3.1 可视化学习到的特征

第一层卷积核可以直接可视化,并且很容易理解[22]。它们捕捉到了边缘特征和颜色块。理解后续层比较困难。Zeiler和Fergus在[36]中提出了一种视觉上吸引人的反卷积方法。我们提出了一种简单(且互补的)非参数方法,直接展示网络学习到的内容。

具体想法是挑选网络中某个特定单元(特征),并将其作为某种目标检测器。也就是说,我们将候选区(约1000万个)输入网络计算某个单元的激活值,将激活值从高到低进行排序,执行非极大值抑制,然后显示得分最高的候选区。我们的方法让所选的单元“自己发声”,准确显示它在哪些输入上发生了激活。我们避免对整个特征图求平均以查看不同的视觉模式,并洞察单元计算的不变性。

我们可视化的单元来自pool5层,它是网络第五个也是最后一个卷积层的最大池化输出结果。pool5特征图的维度为6 × 6 × 256 = 9216。忽略边界效应,每个pool5单元在原始的227×227图像输入中具有一个195×195像素的感受野。中心的pool5单元几乎能看到全局图像,而靠近边缘的单元则看到更小的、截断的图像。
在这里插入图片描述

图3中的每一行显示了在VOC 2007 trainval上对CNN进行微调后,pool5的某个单元的最高的前16个激活值。我们展示了256个通道中的六个特定单元(补充资料中包含更多)。选择这些单元来展示网络学习到的代表性样本。在第二行中的单元能够在狗脸和点阵上激活。第三行对应的单元是一个红色块检测器。还有人脸检测器以及更抽象的模式,如文本和带有窗户的三角形结构。网络似乎学习到了一种表示形式,将数量较少的经过训练微调的特定类别的特征与形状、纹理、颜色和材料属性等分散的表示结合在一起。随后的全连接层fc6具有对这些丰富特征的多种组合进行建模的能力。
在这里插入图片描述
图3:六个pool5单元的高激活值候选区。感受野和激活值用白色绘制。一些单元与认识是吻合的,比如人物(第一行)或文本(第四行)。其他单元捕捉纹理和材质特性,比如点阵(第二行)和镜面反射(第六行)。

3.2 消融实验

无微调情况下逐层性能分析。为了理解哪些层对检测性能至关重要,我们逐层分析了VOC 2007数据集上CNN的最后三层的结果。pool5层在第3.1节中简要描述过。最后两层如下所述。

fc6层是pool5后跟着的全连接层。为了计算特征,它将一个4096×9216的权重矩阵与pool5特征图相乘(6 × 6 × 256 = 9216,重塑为9216维向量),然后加上一个偏置向量。该中间向量进行逐元素的半波整流(x <- max(0, x),就是Relu函数)。

fc7层是网络的最后一层。它将fc6计算得到的特征与一个4096 × 4096的权重矩阵相乘,类似地加上偏置向量,并应用半波整流。

我们首先查看了在PASCAL上没有进行微调的CNN的结果,即所有CNN参数仅在ILSVRC 2012上进行了预训练。逐层分析性能(表2的第1-3行)显示,fc7的特征结果比fc6差。这意味着可以移除29%,约1680万个CNN参数不会降低mAP。更令人惊讶的是,尽管pool5特征仅用了网络6%的参数,即使去除fc7和fc6,也能产生相当不错的结果。CNN的大部分表征能力来自卷积层,而不是参数较多的全连接层。这一发现表明,仅使用CNN的卷积层可以计算任意大小图像的密集特征图,类似于HOG。这种表示法将使得可以在pool5特征图的基础上尝试滑动窗口检测器(包括DPM)的实验。

微调情况下逐层性能分析。我们再来看一下在VOC 2007 trainval数据集对参数微调后的结果。改善显著(表2的第4-6行):微调将mAP提高了8.0个百分点,达到了54.2%。微调对于fc6和fc7的提升比pool5要大得多,这表明从ImageNet学到的pool5是通用特征,而大部分的改善来自于在其之上学习到的特定领域的非线性分类器。(即迁移学习时,CNN提取通用特征,FC完成特定领域任务)

与最近的特征学习方法比较。在PASCAL VOC数据集上的特征学习方法相对较少。我们对比了两种最近的方法,这些方法建立在DPM模型之上。为了参考,我们还包括了基于标准HOG的DPM [17]的结果。

第一个DPM特征学习方法是DPM ST [25],它通过“sketch token”概率的直方图来增强HOG特征。直观地说,sketch token是轮廓线的紧密分布,这些轮廓线位于图像中心。利用随机森林法在每个像素进行计算它属于某个sketch token的概率,该随机森林通过将35×35像素的图像块分类为150个sketch token或背景来训练。

第二种方法是DPM HSC [27],它用稀疏编码直方图(HSC)替换HOG特征。为了计算HSC,利用一个可学习的包含100个7×7像素(灰度)原子的字典,在每个像素上计算稀疏编码激活来求解。得到的激活通过三种方式进行修正(全波和两个半波),空间池化,单元L2正则化,然后进行幂变换。

所有的R-CNN变体都比三种DPM基线效果好得多(表2行8-10),包括使用特征学习的两种方法。与仅使用HOG特征的最新版本的DPM相比,我们的mAP高出20个百分点以上:54.2% vs. 33.7% – 相对提高了61%。HOG和sketch token的组合比单独使用HOG提高了2.5个mAP点,而HSC相对HOG提高了4个mAP点(与他们私有的DPM基线内部比较–两者都使用DPM的非公开实现,而非开源版本[17])。这些方法的mAP分别为29.1%和34.3%。

3.3 检测错误分析

我们应用Hoiem等人提供的优秀检测分析工具来揭示我们方法的错误类型,了解微调如何改善它们,并查看我们的错误类型与DPM的比较情况。完整的分析工具摘要超出了本文的范围,我们鼓励读者参考[20]以了解更多细节(例如“归一化AP”)。图文结合的方式更利用理解分析,我们在图4和图5的标题中讨论。
在这里插入图片描述
图 4: 排名前列的假正例(FP)类型的分布。按照置信度递减的顺序,FP个数逐渐增多,每张图显示了各种类型的FP的分布情况。每个FP被分为以下4种类型:Loc-定位不准确(与正确类别之间的IoU在0.1到0.5之间,或重复检测);Sim-与相似类别混淆;Oth-与不相似对象类别混淆;BG-背景。与DPM(参见[20])相比,我们的错误中有很多都是由于定位不准确造成的,而不是与背景或其他对象类别混淆,这表明CNN特征比HOG更具有辨别能力。定位不准确可能是由于我们使用自下而上的区域建议,以及利用对整张图像分类的预训练模型学习到的位置不变性造成的。第三列显示了我们简单的边界框回归方法如何修复定位错误。

在这里插入图片描述
图 5: 对目标特性的敏感性。每张图显示了针对六种不同的目标特性(遮挡、截断、边界框面积、长宽比、视点、部件可见性)中表现最好和最差的子集的平均(对于所有类别)归一化AP(参见 [20])。我们展示了我们的方法(R-CNN),包括有无微调(FT)和边界框回归(BB),以及DPM voc-release5的图示。总体而言,微调并没有降低敏感性(最大值和最小值之间的差异),但确实显著改善了几乎所有特性的最高和最低性能子集。这表明微调不仅仅是改善了长宽比和边界框面积的最低性能子集,据推测这可能是因为我们对输入图像进行了统一尺寸变换。相反,微调提高了所有特性的鲁棒性,包括遮挡、截断、视点和部件可见性。

3.4 边界框回归

根据误差分析,我们实现了一种简单的方法来减少定位错误。受到DPM中使用的边界框回归的启发,我们训练了一个线性回归模型,在selective search候选区的pool5特征后,预测一个新的检测窗口。有关完整的细节,请参阅补充材料。表1、表2和图4的结果显示,这种简单的方法修正了大量不准的定位检测,将mAP提高了3到4个百分点。
在这里插入图片描述

4 语义分割

区域分类是语义分割的一种标准技术,使我们能够轻松地将R-CNN应用于PASCAL VOC语义分割挑战。为了与当前领先的语义分割系统(“二阶池化”,简称O2P)进行直接比较,我们在他们的开源框架内工作。O2P使用CPMC为每个图像生成150个候选区,然后使用支持向量回归(SVR)预测每个区域每个类别的质量。他们方法的高性能归因于CPMC区域的质量和强大的多种特征类型(SIFT和LBP的丰富变体)的二阶池化。我们还注意到,Farabet等人最近利用CNN作为多尺度逐像素分类器,在几个密集场景标注数据集上(不包括PASCAL)取得了良好的结果。

我们遵循[2, 4]的方法,并扩展了PASCAL分割的训练集,包括由Hariharan等人提供的额外注释。设计理念和超参数在VOC 2011验证集上进行了交叉验证。最终测试结果只评估一次。

CNN特征用于分割。我们评估了三种在CPMC区域上计算特征的策略,所有这些策略都将区域周围的矩形窗口变换为227×227。第一种策略(full)忽略区域形状,直接在变换后的窗口上计算CNN特征,就像我们对检测所做的那样。然而,这些特征忽略了区域的非矩形形状。两个区域可能具有非常相似的包围框,但实际重叠却很少。因此,第二种策略(fg)仅在区域的前景蒙版上计算CNN特征。我们用均值替换背景,使得在减去均值后背景区域为零。第三种策略(full+fg)将前两种方法结合起来;我们的实验验证了它们的互补性。

在VOC 2011的结果。表3展示了在VOC 2011验证集上与O2P比较的结果。(请参阅补充材料以获取完整的每个类别结果)在每种特征计算策略中,fc6始终优于fc7,以下讨论主要是fc6的特征。fg策略略优于full策略,表明掩膜区域形状提供了更强的信号,与我们的直觉一致。然而,full+fg实现了47.9%的平均准确率,是我们的最佳结果,优势为4.2%(也略优于O2P),表明即使已经有了前景特征,全景特征提供的上下文仍然具有很高的信息量。值得注意的是,对我们的full+fg特征进行20个SVR的训练仅需在单核CPU上跑一个小时,而对O2P特征的训练需要10多个小时。
在这里插入图片描述

表4提供了在VOC 2011测试集上的结果,将我们的最佳方法fc6(full+fg)与两种最好的基线模型进行比较。我们的方法在21个类别中有11个类别实现了最高的分割准确率,并且在所有类别上的平均分割准确率为47.9%(但在任何合理误差范围内与O2P的结果相当)。通过微调可能会实现更好的性能。
在这里插入图片描述

5 结论

近年来,目标检测性能一直停滞不前。性能最好的系统是复杂的集成系统,通过将多个低级图像特征与来自目标检测器和场景分类器的高级上下文相结合。本文提出了一种简单且可扩展的目标检测算法,相对于PASCAL VOC 2012上的SOTA结果,提高了30%的相对性能。

我们通过两方面的创新实现了这一性能。第一个是将大规模卷积神经网络应用于自下而上的候选区,以定位和分割目标。第二个是在有标签的训练样本数据稀缺时训练大型CNN的范式。我们展示了先利用一个辅助任务(如图像分类)使用丰富数据对网络进行监督预训练,然后对数据稀缺的目标检测任务进行微调是非常有效的。我们推测,“监督预训练/特定领域微调”范式将对各种数据稀缺的视觉问题非常有效。

最后,有一点很重要,我们是通过结合计算机视觉和深度学习的经典工具(自下而上的候选区和卷积神经网络)取得了这些结果。两者不是对立的科学探究方向,而是自然和必然的合作伙伴。

6 补充材料

A. 候选区转换

在这里插入图片描述
图7: 不同的候选区变换策略。
A) 原始候选区;
B) 等比例缩放、连带邻近像素的正方形;
C) 等比例缩放、不连带邻近像素的正方形;
D) 非等比例缩放的变形的、不连带邻近像素的正方形。
在每一列候选区示例中,顶部行对应p = 0像素的上下文填充,底部行对应于p = 16像素的上下文填充。

B. 正负样本和候选区

有两处设计策略值得进一步讨论。首先是:为什么微调CNN和训练目标检测SVM时正负样本的定义不同?简要回顾一下这两个定义,微调CNN时,我们将每个候选区映射到与之具有最大IoU重叠的GT框(如果有的话),如果IoU大于0.5,则将其标记为匹配该GT框类别的正样本。所有其他候选区都标记为“背景”(即所有类别的负样本)。相比之下,对于SVM训练,我们将训练数据集的GT框作为各自类别的正样本,并将与该类别的所有实例的IoU重叠小于0.3的候选框记为该类别的负样本。落入“灰色区域”的候选框(IoU重叠在0.3到0.5之间,但不是GT框)在SVM训练过程中被忽略。

我们得出以上定义是因为我们一开始在ImageNet预训练的CNN上训练SVM,没有考虑微调。在这种情况下,我们发现用于训练SVM的正负样本定义与其它正负样本定义相比是最佳选择(其中包括我们现在用于微调的定义)。当我们开始使用微调时,最初我们使用的是与训练SVM相同的正负样本定义。然而,我们发现结果比使用当前的正负样本定义要差得多。

我们的假设是,对于这种差异的原因,正负样本的定义方式并不是最重要的,而是由于微调数据有限产生的。我们当前的方案(fine tuning 正负样本定义)引入了许多“有偏差的”样本(即那些在0.5到1之间有重叠但不是GT框的候选框),这种方案扩大了正样本的数量约30倍。我们推测,在微调整个网络时,需要这个大型数据集(正样本数量比较多)以避免过拟合。然而,我们也注意到,使用这些有偏差的样本可能是次优的,因为网络并没有进行精确定位的微调。

这引出了第二个问题:在微调之后,为什么还要训练SVM呢?最简单的做法是应用微调网络的最后一层,即一个21路softmax回归分类器,作为目标检测器。我们尝试过这样做,并发现在VOC 2007上的性能从54.2%下降到了50.9%的mAP。这种性能下降可能是由几个因素的组合引起的,其中包括微调中使用的正样本定义没有强调精确的定位,以及softmax分类器是在随机采样的负样本上训练的,而不是用于SVM训练的“困难负样本”的子集。

这一结果表明,在微调后不训练SVMs也可以获得接近相同水平的性能。我们推测,通过对微调进行一些额外调整,可能可以缩小剩余的性能差距。如果属实,这将简化和加快R-CNN的训练,而不会损失检测性能。

C. 边界框回归

我们使用简单的边界框回归来提高定位性能。在使用每一类的SVM对每个候选区进行评分后,我们使用类别相关的边界框回归器为预测一个新的边界框。这与DPM中使用的边界框回归类似。两种方法之间的主要区别在于,这里我们从CNN计算的特征中回归,而不是从DPM推断的几何特征。

边界框回归训练算法的输入是一组训练对 { ( P i , G i ) i = 1 , 2... N } \{(P_i, G_i)_ {i=1,2...N}\} {(Pi,Gi)i=1,2...N},其中 P i = ( P x i , P y i , P w i , P h i ) P_i = (P_x^i, P_y^i, P_w^i, P_h^i) Pi=(Pxi,Pyi,Pwi,Phi)指定了候选框中心点的像素坐标和宽高。后续省略上标i。每个GT框以相同的方式定义 G = ( G x , G y , G w , G h ) G = (G_x, G_y, G_w, G_h) G=(Gx,Gy,Gw,Gh) 。我们的目标是学习将候选框P映射到GT框的转换。

我们用四个函数 d x ( P ) d_x(P) dx(P) d y ( P ) d_y(P) dy(P) d w ( P ) d_w(P) dw(P) d h ( P ) d_h(P) dh(P)来参数化转换。前两个函数指定了边界框P中心点的尺度不变平移,后两个函数指定了边界框P宽度和高度的对数空间平移。在学习了这些函数后,我们可以通过转换函数将输入候选框P转换为预测框 G ^ \hat{G} G^
在这里插入图片描述
每个函数 d ∗ ( P ) d_*(P) d(P)(其中*是x、y、h、w)是候选框P的pool5特征的线性函数,用 φ 5 ( P ) φ_5(P) φ5(P)表示(隐含假设 φ 5 ( P ) φ_5(P) φ5(P)对图像数据的依赖)。因此,我们有 d ∗ ( P ) = w ∗ T φ 5 ( P ) d_*(P)= w_*^Tφ5(P) d(P)=wTφ5(P),其中 w ∗ T { w_*^T} wT是可学习的参数向量。我们通过优化正则化最小二乘目标(岭回归)来学习 w ∗ T { w_*^T} wT

在这里插入图片描述
其中,训练对(P; G)的回归目标 t ∗ t_* t定义为:(用函数 d ∗ ( P ) d_*(P) d(P)去拟合数值 t ∗ t_* t
在这里插入图片描述
作为标准的正则化最小二乘问题,这可以通过封闭形式高效地求解。

我们在实现边界框回归时发现了两个不太引人注意的问题。第一个问题是正则化很重要:我们基于验证集将λ设为1000。第二个问题是选择训练对(P, G)时必须小心。直觉上,如果P远离所有GT框,则将P转换为GT框的任务就没有意义。使用这样的P作为样本将导致无法学习。因此,我们仅当候选框P在至少一个GT框附近时才学习。我们这么定义“附近”的概念:将P分配给与其具有最大IoU重叠的GT框(如果重叠超过一个),且仅当重叠大于阈值时(我们使用验证集将阈值设置为0.6)。所有未分配的候选框都被丢弃。我们对每个类别执行一次此操作来学习特定类别的边界框回归器。

在测试时,我们仅对每个候选框进行一次评分并预测其新的检测边界框。原则上,我们可以迭代此过程(即重新评分新预测的边界框,然后从中再预测新的边界框,依此类推)。然而,我们发现迭代并不能改善结果。


参考文献:

  1. 【【精读AI论文】R-CNN深度学习目标检测算法】https://www.bilibili.com/video/BV1d64y1W74E?p=4&vd_source=55a12e2d0f3ca1229f1b61f52382b34e
  2. 【【精读RCNN】06可视化,RCNN可视化】https://www.bilibili.com/video/BV1XR4y1Q7v1?vd_source=55a12e2d0f3ca1229f1b61f52382b34e
  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值