用于精确目标检测和语义分割的丰富特征层次结构 技术报告(v5)

发布时间:2026/7/1 3:15:00

用于精确目标检测和语义分割的丰富特征层次结构 技术报告(v5) 摘要过去几年在标准PASCAL VOC数据集上的目标检测性能已经进入瓶颈期当时性能最好的方法都是复杂的集成系统通常会结合多个底层图像特征与高层上下文信息。本文提出了一种简单、可扩展的检测算法相比VOC 2012数据集上当时最优结果将平均精度均值(mAP)提升了超过30%最终达到了53.3%的mAP。该方法结合了两个核心观点可以将高容量卷积神经网络(CNN)应用于自底向上的候选区域完成目标的定位与分割在标注训练数据不足的情况下先通过辅助任务做有监督预训练再进行领域特定微调可以显著提升模型性能由于该方法将候选区域与CNN相结合作者将其命名为R-CNNRegions with CNN features。作者同时将R-CNN与基于类似CNN架构的滑动窗口检测器OverFeat进行了对比实验表明R-CNN在ILSVRC2013检测数据集200类别上大幅领先OverFeat。该完整系统的源代码可在 http://www.cs.berkeley.edu/~rbg/rcnn 获取。1. 引言特征很重要。过去十年在各类视觉识别任务上的进展在很大程度上依赖于 SIFT [29] 和 HOG [7] 的使用。但是如果我们审视标准的视觉识别任务——PASCAL VOC 目标检测 [15] 的性能普遍认为在 2010 年至 2012 年间进展缓慢仅通过构建集成系统和对成功方法采用微小变体获得了小幅提升。SIFT 和 HOG 是基于分块的方向直方图这种表示我们可以大致将其与灵长类视觉通路中第一个皮层区域 V1 的复杂细胞相关联。但我们也知道识别发生在下游的几个阶段这表明可能存在用于计算特征的层次化、多阶段过程这些特征对视觉识别更具信息量。Fukushima 的 “neocognitron”新认知机[19] 是一个受生物启发的、用于模式识别的层次化和平移不变模型是这种过程的早期尝试。然而neocognitron 缺乏有监督的训练算法。在 Rumelhart 等人 [33] 的工作基础上LeCun 等人 [26] 表明通过反向传播进行随机梯度下降对于训练卷积神经网络CNN非常有效CNN 是一类扩展了 neocognitron 的模型。CNN 在 1990 年代被广泛使用例如[27]但随后随着支持向量机的兴起而不再流行。2012 年Krizhevsky 等人 [25] 通过在 ImageNet 大规模视觉识别挑战赛ILSVRC[9, 10] 上展示大幅提高的图像分类精度重新点燃了人们对 CNN 的兴趣。他们的成功源于在 120 万张带标签图像上训练了一个大型 CNN并对 LeCun 的 CNN 进行了一些改进例如max⁡(,0)修正非线性激活和 “dropout” 正则化。ImageNet 结果的意义在 ILSVRC 2012 研讨会上引起了激烈辩论。核心问题可以归结为ImageNet 上的 CNN 分类结果在多大程度上可以推广到 PASCAL VOC 挑战赛的目标检测结果我们通过弥合图像分类和目标检测之间的差距来回答这个问题。本文首次表明与基于更简单的类 HOG 特征的系统相比CNN 可以在 PASCAL VOC 上带来显著更高的目标检测性能。为了取得这一成果我们专注于两个问题使用深度网络定位目标以及仅使用少量带注释的检测数据训练高容量模型。与图像分类不同检测需要在图像内定位可能很多目标。一种方法将定位视为回归问题。然而与我们自己的工作同时进行的 Szegedy 等人 [38] 的工作表明这种策略在实践中可能效果不佳他们报告称在 VOC 2007 上的 mAP 为 30.5%而我们的方法达到了 58.5%。另一种方法是构建滑动窗口检测器。CNN 以这种方式被使用了至少二十年通常用于受限制的目标类别如人脸 [32, 40] 和行人 [35]。为了保持高空间分辨率这些 CNN 通常只有两个卷积层和池化层。我们也考虑过采用滑动窗口方法。然而我们的网络具有五个卷积层中高层的单元在输入图像中具有非常大的感受野195×195像素和步长32×32像素这使得在滑动窗口范式内进行精确定位成为一个未解决的技术挑战。相反我们通过在 “使用区域进行识别” 的范式 [21] 内操作来解决 CNN 定位问题该范式在目标检测 [39] 和语义分割 [5] 方面都取得了成功。在测试时我们的方法为输入图像生成约 2000 个与类别无关的区域提议使用 CNN 从每个提议中提取一个固定长度的特征向量然后使用类别特定的线性 SVM 对每个区域进行分类。我们使用一种简单的技术仿射图像变形将每个区域提议转换为 CNN 所需的固定大小输入而不论区域的形状如何。图 1 展示了我们方法的概述并突出显示了我们的一些结果。由于我们的系统将区域提议与 CNN 相结合我们将其命名为 R-CNN具有 CNN 特征的区域。在本论文的更新版本中我们通过在 200 类的 ILSVRC2013 检测数据集上运行 R-CNN提供了 R-CNN 与最近提出的 OverFeat [34] 检测系统的正面比较。OverFeat 使用滑动窗口 CNN 进行检测直到现在仍是 ILSVRC2013 检测上表现最好的方法。我们展示了 R-CNN 显著优于 OverFeatmAP 为 31.4% 对比 24.3%。检测面临的第二个挑战是标记数据稀缺目前可用的数量不足以训练大型 CNN。传统的解决方法是使用无监督预训练然后进行有监督微调例如[35]。本文的第二个主要贡献是表明在大型辅助数据集ILSVRC上进行有监督预训练然后在小数据集PASCAL上进行特定领域的微调是在数据稀缺时学习高容量 CNN 的有效范式。在我们的实验中为检测而进行的微调将 mAP 性能提高了 8 个百分点。微调后我们的系统在 VOC 2010 上达到了 54% 的 mAP而基于 HOG 的高度调优的可变形部件模型DPM[17, 20] 仅为 33%。我们还请读者关注 Donahue 等人 [12] 同期的工作他们表明 Krizhevsky 的 CNN 可以作为黑盒特征提取器使用无需微调在场景分类、细粒度子类别划分和领域适应等多个识别任务上取得了优异性能。我们的系统也相当高效。唯一与类别相关的计算是规模合理的矩阵-向量乘积和贪婪的非极大值抑制。这种计算特性源于特征在所有类别间共享并且其维度比以前使用的区域特征参见 [39]低两个数量级。理解我们方法的失败模式对于改进它也至关重要因此我们报告了 Hoiem 等人 [23] 的检测分析工具的结果。作为该分析的直接结果我们证明了简单的边界框回归方法显著减少了误定位这是主要的误差模式。在深入技术细节之前我们注意到由于 R-CNN 在区域上操作将其扩展到语义分割任务是很自然的。经过微小的修改我们也在 PASCAL VOC 分割任务上取得了有竞争力的结果在 VOC 2011 测试集上的平均分割精度达到 47.9%。2. 使用 R-CNN 进行目标检测我们的目标检测系统由三个模块组成。第一个模块生成与类别无关的区域提议。这些提议定义了我们检测器可用的候选检测集。第二个模块是一个大型卷积神经网络用于从每个区域提取固定长度的特征向量。第三个模块是一组类别特定的线性 SVM。在本节中我们将介绍每个模块的设计决策描述它们的测试时用法详细说明它们参数的训练方式并展示在 PASCAL VOC 2010-12 和 ILSVRC2013 上的检测结果。2.1. 模块设计区域提议。 最近的一些论文提供了生成与类别无关的区域提议的方法。例如objectness [1]selective search [39]与类别无关的目标提议 [14]约束参数最小割CPMC[5]多尺度组合分组 [3]以及 Ciresan 等人 [6] 通过在规则间隔的方形作物上应用 CNN 来检测有丝分裂细胞这是区域提议的一个特例。虽然 R-CNN 对特定的区域提议方法不可知但我们使用 selective search 以便与先前的检测工作例如[39, 41]进行受控比较。特征提取。 我们使用 Caffe [24] 实现的 Krizhevsky 等人 [25] 描述的 CNN从每个区域提议中提取一个 4096 维的特征向量。特征是通过将均值减去的227×227RGB 图像前向传播通过五个卷积层和两个全连接层来计算的。更多网络架构细节请读者参考 [24, 25]。为了计算区域提议的特征我们必须首先将该区域中的图像数据转换为与 CNN 兼容的形式其架构需要固定227×227像素大小的输入。在我们任意形状的区域的众多可能变换中我们选择最简单的。无论候选区域的大小或纵横比如何我们将围绕它的紧密边界框中的所有像素变形到所需大小。在变形之前我们扩大紧密边界框使得在变形后的大小下原始框周围恰好有个像素的变形图像上下文我们使用16。图 2 显示了一组随机采样的变形训练区域。替代变形方案在附录 A 中讨论。图 2来自 VOC 2007 训练集的变形训练样本。2.2. 测试时检测在测试时我们在测试图像上运行 selective search 以提取约 2000 个区域提议在所有实验中我们使用 selective search 的 “快速模式”。我们变形每个提议并将其前向传播通过 CNN 以计算特征。然后对于每个类别我们使用为该类别训练的 SVM 对每个提取的特征向量进行评分。在图像中所有被评分的区域中我们应用贪婪的非极大值抑制对每个类别独立进行如果某个区域与一个得分更高且被选中的区域的交并比IoU重叠大于一个学习到的阈值则拒绝该区域。运行时间分析。 两个特性使检测高效。首先所有 CNN 参数在所有类别间共享。其次CNN 计算出的特征向量与其他常见方法如空间金字塔和词袋视觉词编码相比是低维的。例如UVA 检测系统 [39] 使用的特征比我们的大两个数量级360k 维对比 4k 维。这种共享的结果是用于计算区域提议和特征的时间在 GPU 上为 13 秒/图像在 CPU 上为 53 秒/图像在所有类别上被分摊。唯一与类别相关的计算是特征与 SVM 权重的点积以及非极大值抑制。在实践中一幅图像的所有点积被组合成一个单一的矩阵-矩阵乘积。特征矩阵通常是200×409SVM 权重矩阵是4096×其中是类别数量。这个分析表明 R-CNN 可以扩展到数千个目标类别而无需诉诸近似技术如哈希。即使有 10 万个类别所得到的矩阵乘法在现代多核 CPU 上也只需 10 秒。这种效率不仅仅是使用区域提议和共享特征的结果。UVA 系统由于其高维特征速度会慢两个数量级同时需要 134GB 内存来存储 10 万个线性预测器而我们的低维特征仅需 1.5GB。将 R-CNN 与 Dean 等人最近关于使用 DPM 和哈希进行可扩展检测的工作 [8] 进行对比也很有趣。他们报告称在引入 1 万个干扰类别时VOC 2007 上的 mAP 约为 16%运行时间为每张图像 5 分钟。使用我们的方法1 万个检测器在 CPU 上运行大约需要一分钟并且由于没有进行近似处理mAP 将保持在 59%第 3.2 节。2.3. 训练有监督预训练。 我们仅使用图像级别的标注该数据没有边界框标签在大型辅助数据集ILSVRC2012 分类上对 CNN 进行判别性预训练。预训练是使用开源的 Caffe CNN 库 [24] 进行的。简而言之我们的 CNN 几乎达到了 Krizhevsky 等人 [25] 的性能在 ILSVRC2012 分类验证集上的 top-1 错误率比他们高 2.2 个百分点。这种差异是由于训练过程的简化造成的。领域特定微调。 为了使我们的 CNN 适应新任务检测和新领域变形的提议窗口我们仅使用变形的区域提议继续对 CNN 参数进行随机梯度下降SGD训练。除了将 CNN 的 ImageNet 特定的 1000 路分类层替换为随机初始化的(1)路分类层其中是目标类别数加 1 表示背景外CNN 架构保持不变。对于 VOC20对于 ILSVRC2013200。我们将所有与真实边界框的 IoU 重叠大于等于 0.5 的区域提议视为该框类别的正样本其余为负样本。我们以 0.001 的学习率开始 SGD初始预训练学习率的 1/10这允许微调取得进展同时不会破坏初始化。在每次 SGD 迭代中我们均匀采样 32 个正窗口覆盖所有类别和 96 个背景窗口以构建一个大小为 128 的小批量。我们偏向于采样正窗口因为它们相对于背景极为稀少。目标类别分类器。 考虑训练一个二元分类器来检测汽车。很明显紧密包围一辆汽车的图像区域应该是正样本。同样与汽车无关的背景区域应该是负样本。不太清楚的是如何标记一个与汽车部分重叠的区域。我们使用 IoU 重叠阈值来解决这个问题低于该阈值的区域被定义为负样本。重叠阈值 0.3 是通过在验证集上对{0,0.1,…,0.5}进行网格搜索选择的。我们发现仔细选择这个阈值很重要。将其设置为 0.5如 [39] 中会使 mAP 下降 5 个点。同样将其设置为 0 会使 mAP 下降 4 个点。正样本被简单地定义为每个类别的真实边界框。一旦提取了特征并应用了训练标签我们为每个类别优化一个线性 SVM。由于训练数据太大而无法放入内存我们采用了标准的难负样本挖掘方法 [17, 37]。难负样本挖掘收敛很快在实践中mAP 在仅对所有图像进行一次遍历后就停止增加了。在附录 B 中我们讨论了为什么在微调和 SVM 训练中正负样本的定义不同。我们还讨论了训练检测 SVM 而非直接使用微调后 CNN 的最终 softmax 层输出的权衡。2.4. 在 PASCAL VOC 2010-12 上的结果遵循 PASCAL VOC 的最佳实践 [15]我们在 VOC 2007 数据集上验证了所有设计决策和超参数第 3.2 节。为了在 VOC 2010-12 数据集上获得最终结果我们在 VOC 2012 train 上微调了 CNN并在 VOC 2012 trainval 上优化了我们的检测 SVM。我们对两个主要算法变体有和没有边界框回归各只向评估服务器提交了一次测试结果。表 1 显示了 VOC 2010 的完整结果。我们将我们的方法与四个强基线进行了比较包括 SegDPM [18]它结合了 DPM 检测器和语义分割系统的输出 [4]并使用了额外的检测器间上下文和图像分类器重评分。最相关的比较是与 Uijlings 等人 [39] 的 UVA 系统因为我们的系统使用了相同的区域提议算法。为了对区域进行分类他们的方法构建了一个四级空间金字塔并用密集采样的 SIFT、Extended OpponentSIFT 和 RGB-SIFT 描述符填充每个描述符用 4000 词的码本进行向量量化。分类是使用直方图交核 SVM 进行的。与他们多特征、非线性核 SVM 的方法相比我们在 mAP 上取得了大幅提升从 35.1% 提高到 53.7%同时速度也快得多第 2.2 节。我们的方法在 VOC 2011/12 测试上取得了相似的性能53.3% mAP。2.5. 在 ILSVRC2013 检测上的结果我们使用与 PASCAL VOC 相同的系统超参数在 200 类的 ILSVRC2013 检测数据集上运行了 R-CNN。我们遵循相同的协议仅向 ILSVRC2013 评估服务器提交了两次测试结果一次有边界框回归一次没有。图 3 将 R-CNN 与 ILSVRC 2013 竞赛的参赛作品以及赛后 OverFeat 结果 [34] 进行了比较。R-CNN 取得了 31.4% 的 mAP显著领先于 OverFeat 的第二好成绩 24.3%。为了说明各类别 AP 的分布情况还展示了箱线图论文末尾的表 8 给出了每个类别的 AP 列表。大多数竞争提交OverFeat, NEC-MU, UvA-Euvision, Toronto A, 和 UIUC-IFP都使用了卷积神经网络这表明在如何将 CNN 应用于目标检测方面存在显著的细微差别导致了结果差异很大。在第 4 节中我们概述了 ILSVRC2013 检测数据集并详细介绍了我们在其上运行 R-CNN 时所做的选择。3. 可视化、消融研究和误差模式3.1. 可视化学习到的特征第一层滤波器可以直接可视化并且易于理解 [25]。它们捕捉到了定向边缘和对抗色。理解后续层则更具挑战性。Zeiler 和 Fergus 在 [42] 中提出了一种视觉上有吸引力的反卷积方法。我们提出了一种简单的且互补的非参数方法直接展示了网络学到了什么。其想法是挑出网络中的某个特定单元特征并将其本身视为一个目标检测器。也就是说我们在一组留出的区域提议约 1000 万个上计算该单元的激活值从最高激活值到最低激活值对提议进行排序执行非极大值抑制然后显示得分最高的区域。我们的方法让选定的单元 “自己说话”通过精确展示它激活在哪些输入上。我们避免使用平均以便看到不同的视觉模式并获得对单元所计算的不变性的洞察。图 4六个 pool5 单元的顶级区域。感受野和激活值以白色绘制。一些单元与概念对齐如人物第 1 行或文本第 4 行。其他单元捕捉纹理和材料属性如点阵第 2 行和镜面反射第 6 行。我们从层 pool5 可视化单元这是网络第五个也是最后一个卷积层的最大池化输出。pool5 特征图是6×6×2569216维。忽略边界效应每个 pool5 单元在原始227×227像素输入中具有195×195像素的感受野。中心的 pool5 单元具有近乎全局的视野而靠近边缘的单元则具有较小、受限的支持区域。图 4 中的每一行显示了一个 pool5 单元的前 16 个激活该 CNN 在 VOC 2007 trainval 上进行了微调。可视化了 256 个功能上独特的单元中的六个附录 D 包含更多。选择这些单元是为了展示网络学习内容的代表性样本。在第二行我们看到一个对狗脸和点阵有反应的单元。第三行对应的单元是一个红色斑点检测器。还有人脸检测器和更抽象的模式如文本和带窗户的三角形结构。网络似乎学习了一种表示该表示结合了少量的类别调优特征以及形状、纹理、颜色和材料属性的分布式表示。随后的全连接层 fc6 能够对这些丰富特征的大量组合进行建模。3.2. 消融研究逐层性能无微调。 为了理解哪些层对检测性能至关重要我们分析了 CNN 最后三层在 VOC 2007 数据集上的结果。Layer pool5 在第 3.1 节中简要描述。最后两层总结如下。Layer fc6 全连接到 pool5。为了计算特征它将一个409×921的权重矩阵乘以 pool5 特征图重塑为 9216 维向量然后加上一个偏置向量。这个中间向量进行按元素的半波整流(←max⁡(0,))。Layer fc7 是网络的最后一层。它通过将 fc6 计算的特征乘以一个409×409的权重矩阵类似地加上偏置向量并应用半波整流来实现。我们首先查看未在 PASCAL 上微调的 CNN 的结果即所有 CNN 参数仅在 ILSVRC 2012 上预训练。逐层分析性能表 2 第 1-3 行表明来自 fc7 的特征泛化能力比来自 fc6 的特征差。这意味着可以移除29%或大约 1680 万个 CNN 参数而不会降低 mAP。更令人惊讶的是同时移除 fc7 和 fc6 也能产生相当好的结果尽管 pool5 特征仅使用 CNN 参数的6%计算。CNN 的大部分表示能力来自其卷积层而不是大得多的全连接层。这一发现表明仅使用 CNN 的卷积层来计算任意大小图像的密集特征图类似于 HOG具有潜在用途。这种表示将支持在 pool5 特征之上进行滑动窗口检测器包括 DPM的实验。逐层性能有微调。 我们现在看我们的 CNN 在 VOC 2007 trainval 上微调参数后的结果。改进是显著的表 2 第 4-6 行微调将 mAP 提高了 8.0 个百分点达到 54.2%。微调带来的提升对于fc6和fc7要比pool5大得多这表明从 ImageNet 学到的pool5特征是通用的大部分改进来自于在它们之上学习领域特定的非线性分类器。与最近的特征学习方法比较。 在 PASCAL VOC 检测上尝试的特征学习方法相对较少。我们考察了两种建立在可变形部件模型之上的近期方法。作为参考我们也包括了基于标准 HOG 的 DPM [20] 的结果。第一种 DPM 特征学习方法DPM ST [28]用 “草图标记” 概率直方图增强 HOG 特征。直观地说一个草图标记是穿过图像块中心的轮廓的紧致分布。草图标记概率是通过一个随机森林在每个像素上计算的该随机森林被训练用于将35×35像素的图像块分类为 150 个草图标记之一或背景。第二种方法DPM HSC [31]用稀疏编码直方图HSC替换 HOG。为了计算 HSC使用一个学习到的100×7像素灰度原子的字典在每个像素上求解稀疏编码激活值。得到的激活值以三种方式完整和两个半波进行修正、空间池化、单位ℓ2归一化然后进行幂变换(←sign()∣∣)。所有 R-CNN 变体都显著优于三个 DPM 基线表 2 第 8-10 行包括两个使用了特征学习的基线。与仅使用 HOG 特征的最新版 DPM 相比我们的 mAP 高出 20 多个百分点54.2% 对比 33.7%——相对提升了 61%。HOG 与草图标记的组合比单独使用 HOG 提高了 2.5 个 mAP 点而 HSC 比 HOG 提高了 4 个 mAP 点当与它们内部的私有 DPM 基线比较时——两者都使用了性能不如开源版本 [20] 的非公开 DPM 实现。这些方法的 mAP 分别为 29.1% 和 34.3%。3.3. 网络架构本文中的大多数结果使用了 Krizhevsky 等人 [25] 的网络架构。然而我们发现架构的选择对 R-CNN 检测性能有很大影响。在表 3 中我们展示了使用 Simonyan 和 Zisserman [43] 最近提出的 16 层深度网络在 VOC 2007 测试上的结果。该网络是近期 ILSVRC 2014 分类挑战赛中表现最好的网络之一。该网络具有同质结构由 13 层3×3卷积核组成其间穿插了 5 个最大池化层并顶部带有三个全连接层。我们将此网络称为 “O-Net”OxfordNet将基线称为 “T-Net”TorontoNet。为了在 R-CNN 中使用 O-Net我们从 Caffe Model Zoo 下载了公开可用的预训练网络权重 VGG_ILSVRC_16_layers 模型。然后我们使用与 T-Net 相同的协议微调该网络。唯一的区别是使用更小的 mini-batch24 个样本以适应 GPU 内存。表 3 中的结果显示使用 O-Net 的 R-CNN 显著优于使用 T-Net 的 R-CNN将 mAP 从 58.5% 提高到 66.0%。然而在计算时间方面存在相当大的缺点O-Net 的前向传播大约比 T-Net 慢 7 倍。3.4. 检测错误分析我们应用了 Hoiem 等人 [23] 优秀的检测分析工具以揭示我们方法的错误模式理解微调如何改变它们并了解我们的错误类型与 DPM 相比如何。对分析工具的完整总结超出了本文的范围我们鼓励读者查阅 [23] 以理解一些更精细的细节如 “归一化 AP”。由于该分析最好在相关图的背景下理解我们在图 5 和图 6 的标题中呈现了讨论。图 6对目标特征的敏感性。每个图显示了六个不同目标特征遮挡、截断、边界框面积、纵横比、视角、部件可见性内最高和最低性能子集的平均跨类别归一化 AP见 [23]。我们展示了我们的方法R-CNN在有和没有微调FT和边界框回归BB以及 DPM voc-release5 的结果。总体而言微调不会降低敏感性最大值和最小值之间的差异但确实显著提高了几乎所有特征的最高和最低性能子集。这表明微调不仅仅是改善了纵横比和边界框面积的最低性能子集正如人们可能根据我们变形网络输入的方式所推测的那样。相反微调提高了对所有特征的鲁棒性包括遮挡、截断、视角和部件可见性。center图 5排名靠前的假阳性FP类型分布。每个图显示了随着更多 FP 按得分递减顺序被考虑时FP 类型的演变分布。每个 FP 被归类为 4 种类型之一Loc——定位差检测与正确类别的 IoU 重叠在 0.1 和 0.5 之间或是重复检测Sim——与相似类别混淆Oth——与不相似目标类别混淆BG——在背景上触发的 FP。与 DPM 相比见 [23]我们的错误中显著更多是由于定位差而不是与背景或其他目标类别混淆这表明 CNN 特征比 HOG 具有更强的判别力。定位松散可能是由于我们使用了自底向上的区域提议以及从预训练 CNN 进行整图分类中学到的位置不变性。第三列显示了我们简单的边界框回归方法如何修复了许多定位错误。/center3.5. 边界框回归基于错误分析我们实现了一种简单的方法来减少定位错误。受 DPM [17] 中采用的边界框回归的启发我们训练了一个线性回归模型给定选择性搜索区域提议的 pool5 特征来预测一个新的检测窗口。完整细节在附录 C 中给出。表 1、表 2 和图 5 中的结果表明这种简单方法修复了大量定位错误的检测将 mAP 提高了 3 到 4 个点。3.6. 定性结果ILSVRC2013 上的定性检测结果在文末的图 8 和图 9 中展示。每张图像从验证集中随机采样并显示了所有精度大于 0.5 的检测结果。请注意这些图像未经筛选真实反映了检测器的实际表现。更多的定性结果在图 10 和图 11 中展示但这些是经过筛选的。我们选择每张图像是因为它包含了有趣、令人惊讶或好玩的结果。这里同样显示了所有精度大于 0.5 的检测结果。4. ILSVRC2013 检测数据集在第 2 节中我们展示了在 ILSVRC2013 检测数据集上的结果。这个数据集不如 PASCAL VOC 同质需要对如何使用它做出选择。由于这些决策并非微不足道我们将在本节中详细介绍。4.1. 数据集概述ILSVRC2013 检测数据集分为三个集合train (395,918)、val (20,121) 和 test (40,152)括号内为每个集合的图像数量。val 和 test 分割来自相同的图像分布。这些图像具有场景感并且在复杂性目标数量、杂波量、姿态变异性等上与 PASCAL VOC 图像相似。val 和 test 分割是穷尽注释的这意味着在每张图像中所有 200 个类别的所有实例都用边界框进行了标记。相比之下train 集来自 ILSVRC2013 分类图像分布。这些图像的复杂性变化更大偏向于包含单个居中目标的图像。与 val 和 test 不同train 图像由于其数量庞大没有穷尽注释。在任何给定的 train 图像中200 个类别的实例可能被标记也可能没有。除了这些图像集每个类别还有一组额外的负样本图像。负样本图像经过人工检查以验证它们不包含任何相关类别的实例。本工作中未使用负样本图像集。关于 ILSVRC 如何收集和注释的更多信息可以在 [11, 36] 中找到。这些分割的性质为训练 R-CNN 带来了许多选择。train 图像不能用于难负样本挖掘因为注释不是穷尽的。那么负样本应该从哪里来此外train 图像的统计特性与 val 和 test 不同。是否应该使用 train 图像如果使用使用到什么程度虽然我们没有彻底评估大量选择但我们根据以往经验提出了看似最明显的路径。我们的一般策略是严重依赖 val 集并将一些 train 图像用作正样本的辅助来源。为了将 val 同时用于训练和验证我们将其分割为大致相等大小的 “val1” 和 “val2” 集。由于某些类别在 val 中的样本非常少最少的只有 31 个一半的类别少于 110 个因此产生一个近似类别平衡的分割很重要。为此生成了大量候选分割并选择了具有最小最大相对不平衡度的那个。4.2. 区域提议我们遵循与 PASCAL 检测相同的区域提议方法。在val1、val2和 test 的每张图像上以 “快速模式” 运行 Selective search [39]但不在 train 图像上。由于 Selective search 不是尺度不变的产生的区域数量取决于图像分辨率因此需要进行一个小的修改。ILSVRC 图像大小范围从非常小到少数几兆像素不等因此我们在运行 Selective search 之前将每张图像调整为固定宽度500 像素。在 val 上Selective search 平均每张图像产生 2403 个区域提议所有真实边界框的召回率在 0.5 IoU 阈值下为 91.6%。这个召回率明显低于 PASCAL约为 98%表明区域提议阶段有显著的改进空间。4.3. 训练数据对于训练数据我们形成了一个图像和框的集合其中包括来自val1的所有 Selective search 和真实边界框以及来自 train 的每个类别最多个真实边界框如果某个类别在 train 中的真实边界框少于个则取全部。我们将这个图像和框的数据集称为val1train。在消融研究中我们展示了∈{0,500,1000}时在val2上的 mAP第 4.5 节。R-CNN 中的三个过程需要训练数据(1) CNN 微调(2) 检测器 SVM 训练以及 (3) 边界框回归器训练。CNN 微调在val1train上运行了 50k 次 SGD 迭代使用了与 PASCAL 完全相同的设置。使用 Caffe 在单个 NVIDIA Tesla K20 上进行微调耗时 13 小时。对于 SVM 训练来自val1train的所有真实边界框被用作各自类别的正样本。难负样本挖掘是在从val1中随机选择的 5000 张图像子集上进行的。初步实验表明从所有val1中挖掘负样本与从 5000 张图像子集大约占一半中挖掘相比mAP 仅下降 0.5 个百分点同时将 SVM 训练时间减半。没有从 train 中取负样本因为注释不是穷尽的。也未使用额外的经过验证的负样本图像集。边界框回归器在val1上训练。4.4. 验证和评估在向评估服务器提交结果之前我们使用上述训练数据在val2集上验证了数据使用选择以及微调和边界框回归的效果。所有系统超参数例如SVM C 超参数、区域变形中使用的填充、NMS 阈值、边界框回归超参数都固定为与 PASCAL 相同的值。毫无疑问其中一些超参数选择对于 ILSVRC 来说略次优然而本工作的目标是在没有大量数据集调优的情况下在 ILSVRC 上产生初步的 R-CNN 结果。在val2上选择最佳方案后我们向 ILSVRC2013 评估服务器提交了恰好两个结果文件。第一个提交没有边界框回归第二个提交有边界框回归。对于这些提交我们将 SVM 和边界框回归器的训练集分别扩展为使用valtrain1k和val。我们使用了在val1train1k上微调的 CNN以避免重新运行微调和特征计算。4.5. 消融研究表 4 显示了不同数量的训练数据、微调和边界框回归效果的消融研究。首先观察到val2上的 mAP 与 test 上的 mAP 非常接近。这让我们相信val2上的 mAP 是测试集性能的良好指标。第一个结果为 20.9%是 R-CNN 使用在 ILSVRC2012 分类数据集上预训练的 CNN无微调并访问val1中少量训练数据时取得的回想一下val1中一半类别的样本在 15 到 55 个之间。将训练集扩展到val1train将性能提高到 24.1%500和1000之间几乎没有差异。仅使用val1的样本微调 CNN 有适度改进达到 26.5%但由于正训练样本数量少可能存在显著的过拟合。将微调集扩展到val1train1k每类从 train 集添加最多 1000 个正样本帮助显著将 mAP 提升到 29.7%。边界框回归将结果提高到 31.0%这比在 PASCAL 上观察到的相对增益要小。4.6. 与 OverFeat 的关系R-CNN 和 OverFeat 之间存在有趣的关系OverFeat 可以粗略地看作是 R-CNN 的一个特例。如果我们将 Selective search 区域提议替换为多尺度规则方形区域金字塔并将每个类别的边界框回归器改为单一的边界框回归器那么这两个系统将非常相似除了可能在训练方式上存在一些显著差异CNN 检测微调、使用 SVM 等。值得注意的是OverFeat 在速度上比 R-CNN 有显著优势根据 [34] 引用的每张图像 2 秒的数据它大约快 9 倍。这种速度源于 OverFeat 的滑动窗口即区域提议在图像级别没有变形因此计算可以在重叠窗口之间轻松共享。共享是通过以卷积方式在整个网络上运行任意大小的输入来实现的。加速 R-CNN 应该有多种可能的方式这仍将是未来的工作。5. 语义分割区域分类是语义分割的标准技术使我们能够轻松地将 R-CNN 应用于 PASCAL VOC 分割挑战赛。为了便于与当前领先的语义分割系统称为O2P即 “二阶池化”[4] 进行直接比较我们在其开源框架内工作。O2P使用 CPMC 为每张图像生成 150 个区域提议然后使用支持向量回归SVR为每个类别预测每个区域的质量。其方法的高性能归功于 CPMC 区域的质量以及对多种特征类型SIFT 和 LBP 的丰富变体进行强大的二阶池化。我们还注意到Farabet 等人 [16] 最近展示了使用 CNN 作为多尺度逐像素分类器在几个密集场景标记数据集不包括 PASCAL上取得了良好结果。我们遵循 [2, 4]将 PASCAL 分割训练集扩展到包括 Hariharan 等人 [22] 提供的额外注释。设计决策和超参数在 VOC 2011 验证集上进行了交叉验证。最终测试结果仅评估了一次。用于分割的 CNN 特征。 我们评估了在 CPMC 区域上计算特征的三种策略所有这些策略都从将区域周围的矩形窗口变形到227×227开始。第一种策略full忽略区域的形状直接在变形的窗口上计算 CNN 特征与我们在检测中做的完全相同。然而这些特征忽略了区域的非矩形形状。两个区域可能具有非常相似的边界框但重叠却很少。因此第二种策略仅在区域的前景掩码上计算 CNN 特征。我们用平均输入替换背景使得背景区域在均值相减后为零。第三种策略fullfg简单地拼接 full 和特征我们的实验验证了它们的互补性。表 5VOC 2011 验证集上的分割平均精度%。第 1 列展示了O2P第 2-7 列使用了我们在 ILSVRC 2012 上预训练的 CNN。在 VOC 2011 上的结果。 表 5 总结了我们在 VOC 2011 验证集上与O2P比较的结果完整的每类别结果见附录 E。在每种特征计算策略中层fc6总是优于fc7以下讨论指的是fc6特征。策略略优于 full表明掩码区域形状提供了更强的信号符合我们的直觉。然而fullfg 达到了 47.9% 的平均精度这是我们最好的结果高出 4.2 个百分点也略优于O2P表明即使在已有特征的情况下full 特征提供的上下文信息也非常丰富。值得注意的是在我们的 fullfg 特征上训练 20 个 SVR 在单核上花费一小时而在O2P特征上训练则需要 10 多个小时。在表 6 中我们展示了 VOC 2011 测试集上的结果将我们性能最佳的方法fc6(fullfg) 与两个强基线进行了比较。我们的方法在 21 个类别中的 11 个类别上取得了最高的分割精度并且取得了最高的总体分割精度 47.9%跨类别平均但在任何合理的误差范围内可能与O2P的结果持平。通过微调可能仍能获得更好的性能。6. 结论近年来目标检测性能停滞不前。表现最好的系统是复杂的集成系统结合了多种低级图像特征以及来自目标检测器和场景分类器的高级上下文信息。本文提出了一种简单且可扩展的目标检测算法在 PASCAL VOC 2012 上相比之前的最佳结果有 30% 的相对提升。我们通过两个见解实现了这一性能。第一个是将高容量卷积神经网络应用于自底向上的区域提议以定位和分割目标。第二个是在标记训练数据稀缺时训练大型 CNN 的一种范式。我们表明在具有丰富数据的辅助任务图像分类上使用监督信息预训练网络然后在数据稀缺的目标任务检测上微调网络是非常有效的。我们推测“监督预训练/领域特定微调”范式将对各种数据稀缺的视觉问题非常有效。最后我们注意到我们通过结合计算机视觉和深度学习的经典工具自底向上的区域提议和卷积神经网络取得了这些成果这一点意义重大。这两者并非对立的研究方向而是自然而然的、不可避免的合作伙伴。

相关新闻