R-CNN文献阅读笔记

Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation

一、摘要

在标准的PASCAL VOC数据集上进行的目标检测性能,在近些年已经陷入了停滞。过往,性能最佳的方法是将多个低级图像特征(SIFT、HOG)与高级上下文相结合的复杂集合系统,精度在20%多左右。而本文提出了一种基于CNN特征和区域提议的简单且可拓展的检测算法,相较于VOC 2012数据集上之前的最佳结果,该算法将平均精度均值(mAP)提升了30%以上,最终达到了53.3%。

论文的方法包含两个核心要点:(1)将大容量卷积神经网络(CNNs,论文使用的是AlexNet)应用于自下而上的区域提议,以实现目标的定位与分割;(2)当带有标签的训练数据稀缺时,可以先针对辅助任务进行有监督预训练,再进行特定领域的微调,但是预训练的数据应该要与测试集数据保持较低的重合度,实验也表明这种方式能够显著提升模型性能。

由于论文方法结合了区域提议与卷积神经网络,因此,作者将其命名为R-CNN(基于CNN特征的区域检测算法)。作者将R-CNN与近期提出的OverFeat算法(一种基于类似CNN架构的滑动窗口检测器)进行了对比,实验结果表明,在包含200个类别的ILSVRC 2013检测数据集上,R-CNN的性能大幅优于OverFeat。

二、引言

各方面已经证明,对于视觉识别任务,特征是尤其重要。过去十年间,各类视觉识别任务的进展在很大程度上依赖于SIFT和HOG特征的应用。而SIFT和HOG均属于块方向直方图,这种特征表示大致可对应灵长类视觉通路中初级皮质区(V1区)的复杂细胞功能。但是,灵长类的视觉识别任务发生在视觉通路的下游多个阶段,这意味着可能存在层级化、多阶段的特征计算过程,而这种层级化、多阶段的特征计算过程能够生成对视觉识别更具信息量的特征。这种更具信息量的特征在视觉识别任务中作用可能要比SIFT、HOG特征更大。同时,考虑到PASCAL VOC目标检测在2010-2012年间的进展缓慢,仅通过构建集成系统或对现有成功方法进行小幅改良,并没有实现所基于特征的修改,因此将传统的SIFT和HOG特征替换为更具信息量的特征是论文的核心创新点之一。

提取更具信息量的特征在近些年早已有研究。福岛邦彦提出的“新认知机”就是早期提取更具信息量特征的尝试,它是一种受生物启发、具有层级结构和位移不变性的模式识别模型。但该模型缺乏有监督训练算法(即没有类似CNN中SGD的训练方法)。而杨立昆提出的卷积神经网络(LeNet-5)是新认知机的扩展形式,可以通过反向传播实现的随机梯度下降算法,能够有效训练卷积神经网络(Le-Net5)。卷积神经网络因为其能够实现训练,并能提取出更具信息量的特征,具备大规模使用的潜力。

卷积神经网络在20世纪90年代曾被广泛应用,但随着支持向量机的兴起,同时受限于当时的计算机算力水平,其热度逐渐消退。2012年,Krizhevsky等人提出的AlexNet在ImageNet大规模视觉识别挑战赛中,凭借大幅提升的图像分类准确率一举夺冠,重新点燃了人们对卷积神经网络的关注。他们的成功得益于在120万张带标注图像上训练的大型卷积神经网络,同时对杨立昆提出的卷积神经网络进行了若干改进(例如采用ReLU激活函数和Dropout技术)。

而AlexNet的重要性在2012年ILSVRC研讨会期间引发了激烈争论。核心问题可以概括为,ImageNet数据集上的CNN分类结果,能在多大程度上推广到PASCAL VOC挑战赛的目标检测任务中?

而本论文通过弥合图像分类与目标检测之间的鸿沟解答了这一问题。论文首次证明,与基于HOG等简单特征的系统相比,CNN特征能显著提升PASCAL VOC数据集上的目标检测性能。为实现这一成果,作者重点解决了两个问题:一是利用深度网络进行目标定位,二是在标注检测数据有限的情况下训练大容量模型。

接下来,介绍下目前目标检测任务的实现思路。与图像分类不同,检测任务需要在单张图像中定位(可能多个)目标。一种思路是将定位视为回归问题,但Szegedy等人与作者同期开展的研究表明,这种策略在实际应用中效果欠佳,他们在VOC 2007数据集上仅取得30.5%的mAP,而作者的方法达到了58.5%。另一种思路是构建滑动窗口检测器,CNN特征以这种方式应用于目标检测已有至少二十年历史,通常用于人脸、行人等特定目标类别。这类CNN为保持高空间分辨率,通常仅包含两层卷积层和池化层。

论文所提出的目标检测方法范式与前面所提到的两种思路均不同,作者采用了“基于区域的识别”范式来解决CNN定位问题,该范式在目标检测和语义分割任务中均已取得成功。测试阶段,论文的方法首先为输入图像生成约2000个类别无关的区域提议(类别无关是指,生成的区域提议的类别可能是任意类别,不与某一类别绑定),随后利用CNN为每个区域提议提取固定长度的特征向量,最后通过类别特异性SVM(类别特异性指为每个类别单独训练一个SVM)对每个区域进行分类。由于生成的区域提议的尺寸不一定能够符合本文所采用的CNN(AlexNet)的输入尺寸要求(227×227),因此论文采用了一种简单的仿射图像扭曲技术,无论区域形状如何,均能将其转换为固定尺寸的CNN输入。

后续,作者通过在包含200个类别的ILSVRC 2013检测数据集上运行R-CNN,与近期提到的OverFeat(OverFeat采用滑动窗口CNN进行检测,此前一直是ILSVRC 2013检测任务的性能最优方法)检测系统进行了直接对比。实验结果表明,R-CNN的性能显著优于OverFeat,mAP分别为31.4%和24.3%,这证明了论文提出的架构设计的优秀。

目标检测任务面临的第二个挑战是标注数据稀缺,现有数据量不足以训练大型CNN。传统解决方案是先进行无监督预训练,再进行有监督微调。本论文的第二项核心贡献是证实:当数据稀缺时,在大型辅助数据集(ILSVRC)上进行有监督预训练,再在小型目标检测(PASCAL)上进行特定领域微调,是训练大容量CNN的有效范式。实验中,针对检测任务的微调使mAP提升了8个百分点。微调后,系统在VOC 2010数据集上达到了54%的mAP,而经过高度优化、基于HOG特征的可变形部件模型(DPM)仅为33%。

此外,论文的系统还具备较高的效率,仅有的类别特异性计算(将会大量耗费的步骤)包括规模适中的矩阵-向量乘积和贪心非极大值抑制。这一计算特性源于所有类别共享的特征,且这些特征的维度比以往使用的区域特征低两个数量级。

作者也采用了Hoiem等人的检测分析工具报告了误差模式和微调对误差类型的影响。最终,也根据误差模式设计了一种简单的边界框回归方法,显著减少了定位错误,降低了误差。

在展开具体技术细节之前,需要指出,由于R-CNN基于区域进行操作,其自然可扩展至语义分割任务。经过少量修改,在PASCAL VOC分割任务中也取得了具有竞争力的结果,在VOC 2011测试集上的平均分割准确率达到47.9%。

三、基于R-CNN的目标检测

论文的目标检测系统由三大模块构成。第一个模块生成类别无关的区域提议,这些提议定义了检测器可使用的候选检测区域集合;第二个模块是大型卷积神经网络,负责从每个区域中提取固定长度的特征向量;第三个模块是一组类别特异性线性支持向量机(SVM)。本节将介绍每个模块的设计决策、训练策略、测试阶段的使用方式、参数学习细节,并展示在PASCAL VOC 2010-2012数据集和ILSVRC 2013数据集的检测结果。

3.1 模块设计

3.1.1 区域提议

近年来已有多种生成类别无关区域提议的方法,例如:目标性检测、选择性搜索、类别无关目标提议、约束参数化最小割、多尺度组合分组以及西雷桑等人提出的方法—他们通过将卷积神经网络应用于规则间隔的方形裁剪区域(区域提议的一种特殊形式)来检测有丝分裂细胞。

实际上,R-CNN对具体的区域提议方法不敏感,但为了能与以往的检测工作进行可控对比,论文采用了选择性搜索方法。

3.1.2 特征提取

论文借助Krizhevsky提出的卷积神经网络(AlexNet)实现,从每个区域提议中提取4096维的特征向量(FC7层的特征输出)。特征计算过程为:将经过均值减法处理(预处理,每个图像的每个像素减去全部图像计算出的像素均值)的227×227像素RGB图像,通过五层卷积层和两层全连接层进行前向传播。

正如我们前面说的,区域提议生成的候选区域大小不一定符合CNN输入尺寸,因此需要将候选区域扭曲变换到227×227的像素大小。具体步骤:

  1. 对每个通过选择性搜索生成的区域提议,先提取其紧密边界框(即刚好包围该候选区域生成的原始范围);
  2. 为避免扭曲后目标边缘信息丢失,对紧密边界框进行扩张,在原始边界框的上下左右各增加p个像素(论文中p=16),形成新的扩大边界框。若扩张后的边界框超出图像范围,超出部分用整体图像均值填充;
  3. 采用仿射图像扭曲将扩大后的边界框映射为227×227像素,不管扩大边界框的宽高比,直接将其拉伸/压缩至227×227,不保持原比例;
  4. 对扭曲后的227×227图像进行预处理,执行均值减法,之后输入到CNN中进行特征提取。

3.2 测试阶段的检测流程

首先,在介绍测试阶段之前,我们需要明确R-CNN架构,其实质包括三大模块:区域提议、特征提取、分类(后续又加入了边界框回归),每个模块是分离的(分开训练,运行之后的结果输入到下一个模块),并非端到端的结构,无法实现端到端训练,这也是续作(Fast R-CNN、Faster R-CNN)的重点优化方向。

在测试阶段,先输入一张图像,系统对输入的测试图像运行选择性搜索算法,提取约2000个区域提议(所有实验均使用选择性搜索的快速模式)。将每个区域提议进行扭曲变换并预处理后,输入卷积神经网络进行前向传播,以此计算每个区域的特征向量(计算出的特征向量会在这一步进行存储,存储Fc7的特征向量用于SVM分类,后续加入边界框回归模块后,还会存储Pool5的特征向量,输入到边界框回归模块用于修改与真实边界框的偏差,使用Pool5特征向量的原因,是卷积神经网络的卷积层一般学习提取的是更具空间属性的通用特征,而后续的全连接层更偏向于高级语义属性,减弱了空间属性。修改与真实边界框的偏差更需要空间属性,因此采用Pool5的特征向量)

随后,在计算并保存所有区域提议的Fc7层特征向量后,针对每个目标类别,使用为该类别专门训练的SVM,对所有区域提议的特征向量进行打分(衡量该区域是否属于这个类别)。得到一张图像中所有区域的类别得分后,对每个类别独立执行贪心非极大值抑制(NMS):如果某个区域与同类别中得分更高的已选区域的交并比(IoU)大于一个预学习的阈值,就舍弃该区域。

具体来说是,在计算得到所有区域提议(约2000多个,但是为了后面说明方便,简化为2000个)的Fc7层特征向量后,拼成一个2000×4096维矩阵(4096是Fc7层的特征输出向量长度),然后每个类别训练好的SVM的权重组成一个4096×N的矩阵,两个矩阵相乘就得到一个2000×N的得分矩阵,其中第i行第j列就表示第i区域提议的类别是第j类的得分。这样就将“特征向量和SVM权重的点积运算”这个需要针对每个类别单独执行的计算快速完成了,即使目标类别数量高达10万个,在现代多核CPU上完成以此矩阵乘法运算也仅需10秒。之后对2000×N的得分矩阵,针对每个类别,根据得分阈值划分出那些区域为正例(如果出现一个区域提议通过了多个类别的得分阈值,那么可将该区域判定为多标签,如需避免多标签,可以使用最大得分的类别去覆盖其他类别,但其实这并不合理,只是受限于SVM的设计并不具有类别间互斥性的妥协,后续的Fast R-CNN、Faster R-CNN都对这一问题进行了修改)。在对每一类都进行正负例划分后,对每一类都进行NMS:以汽车类为例,在得到所有被划分为汽车类的区域提议后,将这些区域提议按照得分高低排序,比如排序为A、B、C、……、Z,A与B、C、……、Z的每一个做交并比计算,舍弃那些交并比大于预学习阈值的区域提议(比如A与B的交并比大于阈值,那么就舍弃B),舍弃后结果为A、C、……、Z,那么C继续对D、……、Z做交并比计算并舍弃那么交并比大于预学习阈值的区域,得到舍弃后的结果,之后继续重复直到Z为止。其他类别也是与汽车类一样。最终得到最后的划分结果(后续加入边界框回归后,在NMS之前,对每个判定为正例的区域提议做边界框修改,之后再做NMS)。

R-CNN不仅在精度极具优势,其检测效率也十分高效,这得益于两个核心特性:(1)跨类别共享CNN参数:因为使用的是通用特征,以此,CNN的所有参数在所有目标类别之间共享,无需为每个类别单独训练一套提取网络;(2)低维度特征向量:与其他主流方法相比,CNN提取的特征向量维度极低,只有4096维度,而其他检测系统维度高达数十万。这两种特性使得生成区域提议和计算特征的耗时,可以平摊在所有类别上。因此R-CNN十分高效。

3.3 训练过程

3.3.1 CNN预训练和微调

有监督预训练:仅利用图像级标注(该数据集无边界框标注),在大型辅助数据集(ILSVRC 2012分类数据集)上对卷积神经网络进行判别式预训练(即图像分类训练)。训练细节与过程与AlexNet论文中基本一致,最终得到的CNN性能与Krizhevsky等人的模型几乎持平。

微调:为了使CNN适配新任务(目标检测)和新领域(扭曲后的提议窗口),仅使用扭曲后的区域提议,继续通过随机梯度下降优化CNN参数。训练所有数据来源于对PASCAL VOC训练数据进行选择性搜索生成的区域提议分类后得来,具体为:对PASCAL VOC所有训练数据进行选择性搜索生成区域提议,然后计算每个区域提议与对应图像中所有类别真实边界框的交并比,将与任意类别真实边界框交并比大于等于0.5(包括训练数据集中标注的真实边界框,因为其交并比为1)的区域提议标注为对应类别的正样本(如果出现一个区域提议与多个类别的真实边界框交并比都大于等于0.5,就用交并比最大的类别覆盖其他类别作为标签),将与所有类别真实边界框的交并比小于0.5的标注为负样本。此外,还需要将CNN中针对ImageNet数据集的1000分类输出层替换为随机初始化的(N+1)分类层(N为目标类别数,额外加1类背景),除此以外,CNN的网络架构保持不变。微调时,SGD的初始学习率设为0.001(为预训练初始学习率的1/10),这一设置既能让微调有效更新参数,又能避免破坏预训练得到的初始参数。在每次SGD迭代中,从所有类别中均匀采样32个正样本窗口和96个背景样本窗口,构建大小为128的迷你批次。由于正样本数量远少于背景样本,这种采样方式会向正样本倾斜,以缓解类别不平衡问题。

3.3.2 目标类别分类器(SVM)

以训练检测汽车的SVM为例:对所有训练数据进行选择性搜索生成区域提议,只将训练数据中标注为汽车的真实边界框作为正样本,之后,计算区域提议与对应图像中汽车类真实边界框的交并比,将与汽车类真实边界框交并比小于0.3(重叠阈值0.3是在验证集上通过对集合{0, 0.1, ……, 0.5}进行网格搜索确定的)的定义为负样本,其余的交并比位于[0.3, 1)的为忽略样本,不予采用。之后开始训练汽车的SVM。由于训练数据量过大无法全部载入内存,论文使用了标准的难负样本挖掘方法,具体为:对负样本进行随机抽样,然后将抽样得到的负样本和正样本组合对SVM进行简单训练,得到一个简单的SVM,之后利用该SVM对剩余难负样本进行检测,将错误划分为正样本的负样本以及得分接近正负类别阈值的负样本组成难负样本加入之前的训练样本中,再次进行训练,得到最终模型。难负样本挖掘收敛速度极快,实际训练中,仅需遍历所有图像一次,mAP便不再提升。

3.3.3 边界框回归模型

以训练修改汽车的边界框回归模型为例:对所有训练数据进行选择性搜索生成区域提议,计算区域提议P与对应图像中汽车类真实边界框的交并比,找到与区域提议交并比最大的真实边界框G,仅当两者的交并比大于阈值0.6(通过验证集确定为0.6),才将(P, G)作为训练样本对,所有未被匹配的区域提议均被舍弃。对每个区域提议均按照上述进行匹配,最终得到汽车训练样本对集。训练时需要输入区域提议边界框的中心像素坐标以及框的宽和高、配对的真实边界框的中心像素坐标以及框的宽和高以及该区域提议的Pool5特征。输入后,通过优化岭回归目标函数求解边界框回归模型的参数。边界框回归模型的训练是一个标准的带正则化最小二乘问题,可通过闭式解高效求解。

3.4 PASCAL VOC 2010-2012数据集上的实验结果

遵循PASCAL VOC官方的最优实验流程,作者在VOC 2007数据集上完成了所有模型设计决策与超参数的验证(详见 4.2 节)。为得到VOC 2010-2012数据集的最终结果,在VOC 2012训练集上对CNN进行微调,并在VOC 2012训练验证集(trainval)上优化检测专用SVM。针对两种核心算法变体(带边界框回归、不带边界框回归),作者仅向官方评估服务器提交了一次测试结果。

下表报告了在VOC 2010数据集上的完整实验结果,将论文所提方法与4个性能强劲的基线模型进行对比,其中包括SegDPM。相比之下,论文的方法实现了平均精度均值(mAP)的大幅提升,从35.1%提升至53.7%,同时速度远超该基线方法。在VOC 2011/2012测试集上,论文的方法也取得了相近的性能,mAP达到 53.3%。

image

3.5 ILSVRC 2013检测数据集上的实验结果

论文直接沿用在PASCAL VOC上使用的系统超参数,在ILSVRC 2013检测数据集(含200个目标类别)上部署了R-CNN模型。遵循与VOC实验一致的流程,仅向ILSVRC 2013官方评估服务器提交了两次测试结果,分别对应 “带边界框回归” 和 “不带边界框回归” 两种配置。

下图将R-CNN的性能与ILSVRC 2013竞赛的参赛模型、以及竞赛结束后发布的OverFeat模型进行了对比。结果显示,R-CNN取得了31.4%的mAP,显著领先于第二名OverFeat的24.3%。

image

值得注意的是,大多数参赛模型(包括OverFeat、NEC-MU、UvAEuvision、Toronto A、UIUC-IFP)均基于卷积神经网络构建。这一现象表明:将 CNN 应用于目标检测任务的具体方式存在显著差异,不同的算法设计选择会导致最终性能天差地别。在第5节中,将对ILSVRC2013检测数据集进行概述,并详细说明在该数据集上部署R-CNN时所做的关键决策。

四、特征可视化、消融实现与误差分析

4.1 学习特征的可视化

网络的第一层卷积层可以被直接可视化,且易于理解,它们主要捕捉图像中的方向边缘与对立色(如红- 绿、蓝-黄)。但要理解后续网络层学习到的特征,则难度大幅提升。

本文提出了一种简单且具有互补性的非参数化可视化方法,可直接展示网络学到的特征内容。其核心思路是:将网络中的某个神经元(特征单元,即某个卷积层/池化层输出的某个特征图中的某个像素)单独提取出来,把它当作一个独立的目标检测器使用。具体步骤如下:

  1. 选取网络中一个目标特征单元,可随机选取,比如论文就选择了Pool5层256个特征图中某几个特征图中[3,3]对应的像素;
  2. 将大规模的预留区域提议集(约1000万个区域)输入到CNN网络中,计算并提取出该特征单元对应的激活值(即像素值);
  3. 按照激活值从高到低对对应区域提议进行排序;
  4. 执行非极大值抑制(NMS)以剔除重叠区域;
  5. 展示激活值最高的若干区域。

这种方法让选定的特征单元 “自我表达”,直观呈现哪些输入会触发该单元的高激活。整个过程不做均值化处理,以此保留特征的多种视觉模式,进而深入理解该单元学习到的特征不变性(如目标的尺度、角度、位置不变性)。论文选择可视化Pool5层的特征单元,该层是网络第五层(也是最后一层)卷积层的最大池化输出。在不考虑边界效应的情况下,Pool5的每个特征单元在原始227×227像素的输入图像上,拥有195×195像素的感受野,这意味着该层的特征单元能看到输入图像的绝大部分区域,能捕捉到目标的全局语义特征。

下图的每一行,展示了VOC 2007 trainval集上微调后的CNN中,单个Pool5特征单元激活值最高的16个区域。论文共可视化了256个功能独立单元中的 6 个(即256个通道中的6个),这些单元是为了呈现网络学习内容的代表性样本而选取的:

  • 第二行对应的特征单元,会对狗脸和点阵图案产生高激活;
  • 第三行对应的单元是一个红色团块检测器;
  • 此外,还存在针对人脸、以及更抽象的视觉模式(如文字、带窗口的三角形结构)的特征检测器。

image

实验结果表明:网络学习到的特征表示,是将少量类别特异性调谐特征,与目标的形状、纹理、颜色、材质属性的分布式表示相结合的产物。后续的全连接层Fc6,则具备对这些丰富特征进行多种组合建模的能力。

4.2 消融实验

消融实验的核心目的是量化CNN不同层特征对检测性能的贡献,以及微调对各层特征的提升效果,同时对比CNN特征与传统特征学习方法的性能差异。

4.2.1 未微调时的逐层性能分析(仅ImageNet预训练)

论文基于VOC 2007数据集,分析了网络最后三层的特征效果。Pool5层在4.1节已简要说明,最后两层结构如下:(1)Fc6层:与Pool5层全连接。计算特征时,先将 Pool5的6×6×256=9216维特征向量,与4096×9216的权重矩阵相乘,再加上偏置向量,最后对结果执行Softmax激活,输出 4096 维特征;(2)Fc7层:网络的最终全连接层。将Fc6输出的4096维特征,与4096×4096的权重矩阵相乘,同样加偏置并执行Softmax激活,输出4096维特征。

本部分实验的CNN未在PASCAL数据集上微调,所有参数仅在ILSVRC 2012上完成预训练。逐层性能分析结果(下表第1-3行)揭示了两个关键结论:(1)Fc7层特征的泛化性能弱于Fc6层特征:这意味着可以移除CNN中29%的参数(约1680万个),且不会降低平均精度均值(mAP);(2)即使同时移除Fc6和Fc7层,仅用Pool5层特征也能取得不错的检测效果,Pool5层的参数仅占CNN总参数的6%。

image

这一结果的核心启示:CNN 的表征能力主要来自卷积层,而非参数量更大的全连接层。这暗示了一种潜在应用方向,借鉴HOG特征的思路,仅使用CNN的卷积层,就能为任意尺寸的图像生成稠密特征图,进而在Pool5特征之上,尝试滑动窗口检测器(如 DPM 模型)的相关实验。

4.2.2 微调后的逐层性能分析(VOC 2007微调)

本部分实验使用的CNN,已在VOC 2007 trainval数据集上完成参数微调。实验结果的提升幅度十分显著(下表第4-6行),微调后,模型的mAP提升了8.0个百分点,最终达到54.2%,Fc6和Fc7层特征从微调中获得的性能增益远大于Pool5层。

image

这一现象的深层原因:从ImageNet预训练中学到的Pool5特征具有很强的通用性,而微调带来的性能提升,主要源于在通用卷积特征之上,学习到了适配检测任务的领域特异性非线性分类器(即全连接层的参数更新)。

4.2.3 与主流特征学习方法的性能对比

目前在PASCAL VOC检测任务上,尝试过的特征学习方法相对较少。作者选取了两种基于可变形部件模型(DPM)的改进方法进行对比,同时纳入传统的HOG特征DPM模型作为基线:(1)DPM ST方法:在HOG特征基础上,增加了“草图基元”概率直方图特征;(2)DPM HSC方法:用稀疏编码直方图(HSC)替代HOG特征。

对比结果表明(下表第8-10行),所有R-CNN变体的性能均显著优于上述三种DPM基线模型,包括两种引入特征学习的改进方法。

image

4.3 网络架构

本文的大部分实验结果,均基于Krizhevsky等人提出的网络架构(后文简称AlexNet)。但作者发现,网络架构的选择对R-CNN的检测性能影响显著。

下表展示了在VOC 2007测试集上,采用Simonyan与Zisserman近期提出的16层深度网络的实验结果。该网络是ILSVRC 2014图像分类挑战赛中的顶尖模型之一,其结构具有同构性:由13层3×3卷积核堆叠而成,中间穿插5层最大池化层,网络顶部接入3层全连接层。为方便区分,将该网络命名为VGG16,并将AlexNet作为基线模型。

image

VGG16没有自己进行预训练,而是在Caffe模型库下载公开的VGG16预训练权重(该权重基于ILSVRC数据集训练),微调过程采用与AlexNet完全一致的微调协议,仅调整一个参数:减小迷你批次的尺寸至24个样本。这是因为VGG16的参数量远大于AlexNet,减小批次尺寸是为了适配GPU的内存限制。

实验结果表明,基于VGG16的R-CNN性能显著优于基于AlexNet的版本,mAP从58.5%提升至66.0%,这证明更深的卷积网络能学习到更具判别性的特征,对目标检测任务的增益明显。但是性能提升的代价是推理速度大幅下降,VGG16单次前向传播耗时约AlexNet的7倍,这是VGG16更深的网络层数,更多参数量导致的必然结果。

4.4 检测误差分析

为揭示本方法的误差模式、分析微调对误差类型的影响、并对比本方法与可变形部件模型(DPM)的误差差异,作者采用了Hoiem等人提出的优秀检测误差分析工具。

误差模式分析结果如下图,与DPM模型的结果相比,论文的方法产生的误差中,定位误差占比显著更高,而背景误检和其他类别混淆的占比则更低,这表明CNN特征的判别能力远优于HOG特征。定位精度不足的原因,很可能是采用了自下而上的区域提议算法,且CNN在全图像分类预训练过程中学习到了位置不变性。为了改善误差,作者训练了边界框回归模型,对边界框坐标偏差进行修改。图中第三列的结果则显示,提出的简单边界框回归方法,能够修复大量的定位误差。

image

微调对误差类型的影响分析结果如下图,结果表明,微调并不会降低模型的敏感性(即表现最优子集与最差子集的性能差距),但对几乎所有目标特性,微调都能显著提升最优子集和最差子集的精度。这表明,微调的作用远不止于提升“长宽比”和“边界框面积”这类特性下的低性能子集,而人们可能会根据“将区域提议扭曲为固定尺寸输入”的操作,推测微调仅对这两类特性有效。相反,微调对所有目标特性的检测鲁棒性都有提升,包括遮挡、截断、视角变化和部件可见度等。

image

4.5 边界框回归

基于前文的误差分析结果,作者设计了一种简单的方法来降低定位误差。该方法的设计灵感来源于可变形部件模型(DPM)中使用的边界框回归技术:对于每个由选择性搜索生成的区域提议,利用其Pool5层特征,训练一个线性回归模型,用于预测更精准的检测窗口坐标。这种简单的方法能够修正大量定位不准的检测结果,使模型的平均精度均值(mAP)提升3~4个百分点。

五、ILSVRC 2013检测数据集

在第3节中,展示了模型在ILSVRC2013 检测数据集上的实验结果。该数据集的分布特性与PASCAL VOC数据集存在差异,这使得在使用该数据集时需要制定特定的策略。由于这些策略的选择并非显而易见,作者在本节详细阐述了相关细节。

5.1 数据集概述

ILSVRC 2013目标检测数据集被划分为三个子集,训练集(train)有395918张图像,验证集(val)有20121张图像,测试集(test)有40152张图像。验证集和测试集图像为场景类图像,复杂度(目标数量、背景杂乱程度、目标姿态多样性等)与PASCAL VOC图像相近,两个子集图像分布完全一致,每张图像中,200个目标类别下的所有目标实例都会被标注边界框,而训练集图像来源于ILSVRC 2013分类任务数据集,复杂度差异较大,且倾向于包含单一居中目标的图像,由于图像数量庞大,并非所有200类目标的实例都会被标注,部分图像中可能仅标注了部分类别目标,甚至无标注,所以无法使用生成区域提议,并计算交并比来划分正负样本的方法,因为部分图像无标注,可能生成的区域提议是这个类别,但是由于没有真实边界框,计算出来的交并比仍然低于阈值,导致正负样本的划分出现问题。此外,数据集为每个类别都额外提供了负样本图像集,这些图像经过人工校验,确保不包含对应类别的任何目标实例。但在本文的研究工作中,并未使用该负样本图像集。

该数据集的划分方式,给R-CNN的训练带来了两个核心问题:(1)难负样本挖掘的样本来源问题:训练集的标注是非穷尽式的,无法确定未标注区域是否为背景,因此不能用于难负样本挖掘,这就需要明确负样本的替代来源;(2)训练集与验证 / 测试集的分布差异问题:训练集的图像分布(以单一居中目标为主)与val/test集(场景类图像)存在显著差异,需要确定是否使用训练集,以及如果使用,应该如何控制其使用程度。

本文并未对所有可能的策略进行全面评估,而是基于已有经验,选择了一套最直观可行的方案。核心思路是以验证集为主要训练与验证数据源,同时将训练集作为正样本的辅助补充来源。为了同时满足训练和验证的需求,将val集进一步划分为两个规模近似的子集(必须要将val集划分成两个规模近似的子集,因此,目标检测实验中遵循“训练、验证、测试”三个环节的严格分离原则,如果将val集全部用来训练,就会失去验证集这个监控器,无法判断模型在未见过的数据上的表现,只能得到训练集上的拟合结果,最终用test集测试得到的mAP很可能是虚高的,因为模型可能过拟合了val集的分布)\(val_{1}\) (训练子集)和 \(val_2\) (验证子集)。由于val集中部分类别的样本数量极少(最少的类别仅31个样本,半数类别的样本数不足110个),若随机划分会导致类别分布失衡,影响模型训练与评估的公平性。因此划分必须保证类别分布平衡,首先,以图像中的类别计数为特征,对val集的所有图像进行聚类;然后,通过随机局部搜索算法优化划分方案,筛选出类别分布不平衡程度最小的划分结果。

5.2 区域提议

在ILSVRC数据集上,采用了与PASCAL VOC数据集检测任务完全相同的区域提议方法,即选择性搜索。具体操作细节为:仅对 \(val_1\)\(val_2\)\(test\) 的图像,以快速模式运行选择性搜索;未对train集图像生成区域提议,原因是train集仅作为正样本辅助来源,且标注非穷尽,无需为其生成大量候选区域。同时,需要注意,ILSVRC数据集的图像尺寸差异极大,既有极小分辨率图像,也有若干百万像素级的大图。而选择性搜索本身不具有尺度不变性,生成的区域数量会随图像分辨率变化而大幅波动。为了统一区域提议的生成规则,作者在运行选择性搜索前,将所有图像的宽度调整为固定值 500 像素(高度按比例缩放),以此消除分辨率差异对区域数量的影响。

最终,在val集上的统计结果显示,每张图像平均生成2403个区域提议。当IoU阈值取0.5时,对所有真实框的召回率为91.6%。需要注意的是,这个召回率显著低于PASCAL VOC数据集上约98%的召回率,这表明,在区域提议阶段仍存在很大的优化空间(后续Faster R-CNN用RPN替代选择性搜索,正是为了解决这一短板)。

5.3 训练数据

在训练数据的构建上,作者整合了两类图像与边界框数据:(1)来自 \(val_1\) 子集的所有选择性搜索候选框与真实标注框;(2)来自 \(train\) 集的真实标注框,对每个类别,最多选取N个真实标注框;若某类别在 \(train\) 集中的真实标注框数量不足N,则将该类别的所有标注框全部纳入。将这个整合后的图像与边界框数据集命名为 \(val_1+train_n\) 。在后续消融实验中,测试了N取0、500、1000三种取值时,模型在 \(val_2\) 子集上的平均精度均值(mAP)表现。

R-CNN的训练流程包含三个核心环节,每个环节对训练数据的需求与使用方式如下:

CNN微调:基于 \(val_1+train_n\) 数据集,正负样本的划分依照前面所说,真实标注框统一划分为正样本, \(val_1\) 上生成的区域提议按照与对应图像中所有类别的真实边界框的交并比进行划分(依照是否大于阈值划分),采用随机梯度下降(SGD)优化器训练50000轮。微调过程中的所有超参数设置,均与PASCAL数据集上的实验保持完全一致。在单块NVIDIA Tesla K20显卡上,基于Caffe框架完成一次完整微调的耗时约为13小时。

检测器SVM训练:以汽车类为例,选取 \(val_1+train_n\) 数据集中,所有汽车类的真实标注框作为正样本。在 \(val_1\) 的全部图像上随机选取5000张,约占 \(val_1\) 的总图像数的一半(只选取5000张,是因为,若在 \(val_1\) 的全部图像上进行难负样本挖掘,模型的mAP仅提升0.5个百分点,但SVM训练耗时会增加一倍,因此,选用5000张图像的方案实现精度与效率的平衡),并采用选择性搜索为5000张图像生成区域提议,并计算区域提议与对应图像中所有汽车类的真实边界框的交并比,将低于0.3的划分为负样本,之后从负样本中随机抽取与正样本等量的负样本,与正样本组成训练样本,训练得到一个简单的SVM,之后利用这个简单的SVM对剩余的负样本进行检测,将误判为正样本的负样本以及得分接近正负样本分界阈值的负样本作为难负样本,加入训练样本,继续对简单SVM进行训练。

边界框回归模型训练:边界框回归模型的训练数据仅采用 \(val_1\) 子集,未引入 \(train\) 集的数据。具体的正负样本划分过程与3.3.3节一致。

5.4 验证与评估

在向官方评估服务器提交实验结果之前,作者基于前文所述的训练数据,在 \(val_2\) 子集上完成了两项核心验证工作:(1)验证数据集使用策略的合理性(如 \(val_1+train_n\) 中N的取值选择);(2)验证微调与边界框回归这两个核心模块对模型性能的影响。

模型的所有系统超参数(例如SVM的惩罚系数C、区域扭曲时的填充策略、非极大值抑制(NMS)的阈值、边界框回归的超参数等),均直接沿用PASCAL数据集上的最优取值。诚然,这些超参数设置对于ILSVRC数据集而言,可能存在一定的次优性;但本研究的核心目标是在不进行大量数据集专属调参的前提下,得到R-CNN模型在ILSVRC上的初步检测结果。

\(val_2\) 子集上确定最优实验方案后,作者仅向ILSVRC 2013官方评估服务器提交了两组实验结果:(1)第一组结果:未使用边界框回归的模型检测结果;(2)第二组结果:使用边界框回归的模型检测结果。为了生成这两组提交结果,作者对训练数据做了针对性扩展:训练SVM分类器时,将训练集扩展为 \(val+train_{1k}\) (即完整验证集+每个类别1000个样本的训练集);训练边界框回归器时,将训练集扩展为 完整的 \(val\) 集;卷积神经网络(CNN)则直接使用在 \(val_1+train_{1k}\) 上微调好的模型,避免了重复执行微调与特征提取的耗时操作。将训练集从 \(val_1\) 拓展为 \(val\) ,是因为已经在 \(val_2\) 上完成了监测,确定了最优方案,后续应用最优方案即可,而提交时再将训练集拓展为完整的 \(val\) 集,可以最大化训练数据量,提升模型在测试集上的表现。

5.5 消融实验

下表展示了一项消融实验,旨在探究训练数据量、网络微调、边界框回归这三个因素对模型性能的影响。

image

实验的核心观察结论如下:

  1. 验证集和测试集性能高度一致:模型在 \(val_2\) 子集上的平均精度均值(mAP)与在测试集上的mAP非常接近。这一结果证明, \(val_2\) 上的mAP可以作为衡量模型在测试集上性能的可靠指标。
  2. 基准模型性能(无微调+仅用 \(val_1\) 训练):当使用在ILSVRC 2012分类数据集上预训练的CNN(不进行微调),且仅以 \(val_1\) 作为训练数据时(需注意: \(val_2\) 中半数类别的正样本数量仅在 15~55 个之间),R-CNN取得的mAP为20.9%
  3. 扩展训练数据的增益:将训练集扩展为 \(val_1+train_n\) 后,模型mAP提升至24.1%。且实验表明,N取500和1000时,模型性能几乎没有差异,这说明当每类正样本达到500个后,继续增加样本数量对性能的提升作用已不明显。
  4. CNN微调的作用:仅基于 \(val_1\) 数据对CNN进行微调时,模型mAP小幅提升至26.5%。但由于 \(val_1\) 的正样本量过少,此时模型很可能存在严重的过拟合现象。而将微调数据集扩展为 \(val_1+train_{1k}\) (即每类从训练集补充最多1000个正样本)后,mAP显著提升至29.7%,这说明充足的正样本有效缓解了过拟合,充分发挥了微调对特征提取能力的优化作用。
  5. 边界框回归的增益:加入边界框回归模块后,模型mAP进一步提升至31.0%。但需要注意的是,相较于在PASCAL数据集上的性能提升幅度,ILSVRC数据集上的相对增益更小,这与两个数据集的复杂度差异、目标特性差异密切相关。

5.6 与OverFeat的关联

R-CNN与OverFeat之间存在一项有趣的关联:OverFeat可被粗略看作是R-CNN的一种特例。若将R-CNN中的选择性搜索区域提议替换为多尺度规则方形滑窗,同时将每类专属的边界框回归器修改为单一通用回归器,那么这两种检测系统的核心框架会变得十分相似(二者仍存在一些可能影响性能的训练细节差异,例如 CNN 检测微调策略、是否使用 SVM 分类器等)。

需要指出的是,OverFeat在检测速度上相比R-CNN具有显著优势:根据文献中给出的“每张图像耗时约2秒”的指标推算,OverFeat的检测速度约为R-CNN的9倍。这一速度优势的核心来源是:OverFeat的滑窗机制(即其区域提议方式)无需在图像层面对候选区域进行扭曲变换,且重叠滑窗之间的卷积计算可以高效共享。这种计算共享的实现方式是将整个网络以纯卷积的形式作用于任意尺寸的输入图像,从而避免了重复的特征提取操作。

提升R-CNN的检测速度存在多种可行方案,这一方向也被留作未来的研究工作(后续的Fast R-CNN、Faster R-CNN正是围绕这一目标展开的改进)。

六、结论

近年来,目标检测任务的性能增长陷入了停滞状态。此前性能表现最优的系统,均为结构复杂的集成模型,这类模型将多种底层图像特征,与来自目标检测器和场景分类器的高层上下文信息进行融合。本文提出了一种简洁且易于扩展的目标检测算法,在PASCAL VOC 2012数据集上,该算法的性能相较于此前的最优结果实现了30%的相对提升

能取得这一突破,源于两点核心洞见:第一,将大容量卷积神经网络应用于自底向上生成的候选区域,以此完成目标的定位与分割;第二,提出了一种在标注训练数据稀缺时,训练大型卷积神经网络的范式。实验证明,这一范式极具有效性:首先在数据充足的辅助任务(图像分类)上,通过监督学习对网络进行预训练;随后在数据稀缺的目标任务(目标检测)上,对预训练网络进行微调。作者推测,“监督预训练 + 特定领域微调”这一范式,将在解决各类数据稀缺的计算机视觉问题上发挥显著作用。

最后需要指出的是,本文的研究成果,是通过结合计算机视觉与深度学习领域的经典技术(自底向上的候选区域生成算法与卷积神经网络)实现的,这一点具有重要意义。这两个领域并非对立的科研方向,而是天然且必然的合作伙伴。

七、注意事项

本笔记省略了一些细节,比如省略了将R-CNN嫁接到语义分割领域,与语义分割领域其他模型进行性能对比的细节以及省略了附录(附录是作者对于论文的一些细节和方法取舍的详细描述),这些内容请详见原论文。

posted @ 2025-12-26 18:35  其柒  阅读(0)  评论(0)    收藏  举报