原文链接
[1311.2524] Rich feature hierarchies for accurate object detection and semantic segmentation (arxiv.org)
在本文中,作者提出了一种简单的、可扩展的检测算法,来提高检测的mAP。
RCNN包括两个创新点:
当时的研究在PASCAL VOC目标检测这一经典视觉任务上遭遇瓶颈,在2010-2012年间进展缓慢。而不久前,卷积神经网络在ImageNet的分类任务中取得了优秀的表现,于是作者希望将卷积神经网络复刻到目标检测中来。
而想要在检测任务中复刻CNN在分类任务中的成功,需要解决两个问题:如何从深层网络中定位物体,以及如何仅使用有限的有标注检测数据训练出高性能的模型。
与同时期其他研究组的对比实验发现,将检测视为简单的回归问题是不合适的,一个可替换的方法是使用滑窗法。而滑窗法的问题在于,经过了卷积网络后,输出的数据单元有更大的感受野和步长,从而难以从中获得紧缺的位置信息。
RCNN中使用了“识别候选区”的方法来解决深层网络定位不精确的问题。在检测时,会从输入图像中生成2000个与分类无关的候选区,将候选区图片伸缩变化后再输入卷积层。
针对有标注的检测数据稀缺不足以训练大型CNN的问题,RCNN中创新地使用了预训练模型,并且证实了在辅助训练集(ILSVRC)下预训练模型,随后在较小数据集(PASCAL)下进行微调的方式是能够有效解决此问题。
RCNN很高效,它可以让卷积层的参数对所有的分类器共享,并且通过卷积大大下降计算时相乘向量的维度。
对卷积层中单元深入分析发现,卷积网络中的每个单元会学习不同的特征。
而简单的边框回归能显著降低定位的错误。
RCNN包括三个模块:
第一步产生于类别无关的物体候选区
第二步各个候选区分别通过同一个CNN获得定长的特征向量输出
第三步将输出通过一组线性SVM分类器
Region proposals 区域候选
有许多提供候选区的方法,RCNN中采用的是selective search选择性搜索
Feature extraction 特征提取
采用的AlexNet作为backbone,为了结局候选区尺寸不同的问题,在输入卷积网络前进行暴力伸缩变换
测试流程:先使用选择性搜索从输入图片中生成2000个候选区域,将各个候选区伸缩变换到相同的尺寸后输入CNN提取特征,对各个分类训练一个SVM进行打分,最后通过NMS对输出边框进行筛选。
Run-time analysis
RCNN能够更高效有两个原因:特征提取层CNN中的参数对每个类别共享,使用卷积可以降低点乘运算中向量的维度。
Supervised pre-training
RCNN在ILSVRC 2012的无边框数据集上进行了预训练
Domain-specific fine-tuning
在PASCAL数据集上进行微调时,认为与确知框IOU>0.5的候选框为正例,其余为负例,在随机梯度下降的每一代中输入32个正例与96个负例作为一个批次
研究发现谨慎选择合适的阈值很重要
网络的卷积层提取一系列能够表征物体类别的离散细节信息(如形状、解构、颜色、物质特性等),在全连接层将大量的特征信息进行整合
Performance layer-by-layer, without fine-tuning
为了理解那一层对检测是至关重要的,在没有进行微调前对模型逐层进行了消融实验。
试验结果表明,CNN的特征表示能力基本来自于卷积层,而不是含有更多参数的全连接层。
Performance layer-by-layer, with fine-tuning
微调时变化主要发生在后两个全连接层,这表示从ImageNet中卷积层学到的信息是泛用的,微调时获得的提升大多来自于对分类器的参数调整。
为了减少定位误差,作者训练了一个线性回归模型,利用卷积层的输出对选择性搜索给出的候选区进行校准。
两个创新点:
其一是采用了高性能的CNN和自底向上的候选区生成方式
其二提出预训练的方法解决了检测问题中有标注数据稀少的问题