0-Rich feature hierarchies for accurate object detection and semantic segmentation

基于区域的卷积神经网络 (R-CNN)

R-CNN

Rich feature hierarchies for accurate object detection and semantic segmentation

背景

​ 2013 年 11 月:R-CNN。给定输入图像,R-CNN 首先应用一种称为选择性搜索的机制来提取感兴趣区域(ROI),其中每个 ROI 是一个可以表示图像中对象边界的矩形。根据场景的不同,ROI 可能多达两千个。之后,每个 ROI 都会通过神经网络产生输出特征。对于每个 ROI 的输出特征,使用支持向量机分类器的集合来确定 ROI 中包含什么类型的对象(如果有)。

2013 年 11 月:R-CNN。给定输入图像,R-CNN 首先应用一种称为选择性搜索的机制来提取感兴趣区域(ROI),其中每个 ROI 是一个可以表示图像中对象边界的矩形。根据场景的不同,ROI 可能多达两千个。之后,每个 ROI 都会通过神经网络产生输出特征。对于每个 ROI 的输出特征,使用支持向量机分类器的集合来确定 ROI 中包含什么类型的对象(如果有)。
2015 年 4 月:Fast R-CNN。原始 R-CNN 在多达 2000 个感兴趣区域中独立计算神经网络特征,而 Fast R-CNN 在整个图像上运行一次神经网络。网络的末端是一种称为 ROIPooling 的新颖方法,它从网络的输出张量中切出每个 ROI,对其进行整形并进行分类。与原始 R-CNN 一样,Fast R-CNN 使用选择性搜索来生成其区域建议。
2015 年 6 月:Faster R-CNN。Fast R-CNN 使用选择性搜索来生成 ROI,而 Faster R-CNN 将 ROI 生成集成到神经网络本身中。
2017 年 3 月:Mask R-CNN。之前版本的 R-CNN 专注于对象检测,而 Mask R-CNN 添加了实例分割。Mask R-CNN 还用一种名为 ROIAlign 的新方法取代了 ROIPooling,该方法可以表示像素的分数。
2019 年 6 月:Mesh R-CNN增加了从 2D 图像生成 3D 网格的功能。

​ 在本论文研究之前的方法:SIFT和HOG是块方向直方图,但是效果并不好。论文作者通过连接图像分类和目标检测,主要关注了1.使用深度网络定位物体和在小规模的标注数据集上进行大型网络模型的训练。2.与图像分类不同的是检测需要定位一个图像内的许多物体;使用滑动窗口探测器,但是由于网络层次更深,输入图片有非常大的感受野和步长,使得滑动窗口的方法充满挑战,通过操作”recognition using regions”范式,解决了CNN的定位问题。

​ 由于结合了Region proposals和CNNs,所以起名R-CNN:Regions with CNN features。

​ 第二个挑战是标签数据太少,传统方法多是采用无监督与训练,再进行有监督调优,本论文使用了也就是第二个核心贡献是在辅助数据集(ILSVRC)上进行有监督预训练,再在小数据集上针对特定问题进行调优。这是在训练数据稀少的情况下一个非常有效的训练大型卷积神经网络的方法。

实验方法

模型设计

使用selective search进行Region proposals,使用AlexNet对每个region提取一个4096维的特征向量的特征提取,采用各向异性缩放变换。

模型设计

使用selective search(‘fast mode’模式)得到2000个左右的proposals,进行形状变换后传入CNN得到对应特征,然后将特征向量送入SVM中得到对应的类别。现在,我们得到图像中所有已经打分的region,应用greedy non-maximum suppression,去除重复框。

训练阶段

​ 在ImageNet数据集上对CNN进行预训练。

​ 为了将预训练的CNN迁移到本任务(warped proposal windows分类)上,在warped region proposals上使用SGD进行fine-tune,不改变整体的网络结构,只将最后的1000-way分类层改为(N+1)-way,其中N为物体类别数,1为背景类别。SGD的初始学习率为预训练的1/10,这样可以进行fine-tune,并且不破坏初始化。batch size为128,其中32个positive windows(所有类别,将IoU≥0.5的proposal视为该类别的positive,其他的为negative),96个背景windows。 并且,在采样时倾向于采样positive windows,因为与背景相比它们是罕见的。
对于R-CNN的分类器,正例就是每一类ground -truth bounding box,IoU小于0.3的作为负类,其他的全部丢弃,不考虑。再训练SVM过程中,为了加速收敛使用了”Hard Negative Mining”策略(将每次loss很大的样本继续送到下一次训练中)。
实验结果

可视化

​ 作者在这里提出了一个可视化的想法,核心思想就是让神经元”speak for itself”:挑选出网络中的某个特定uint(当做检测器),计算所有proposal在这个uint上的输出,按输出大小进行排序之后使用非极大值抑制(NNS)显示那些top-scoring区域。下图为关于CNN的池化层pool5的一个可视化效果。
可视化

消融研究

​ 证明CNN的表征能力基本来自卷积层

错误率分析

​ 引入Bounding Box Regression可以减少定位问题,fine-tuning可以提高模型的鲁棒性等

错误率分析

对物体特征的敏感性

结论:

​ 第一是应用了自底向上的候选框训练的高容量的卷积神经网络进行定位和分割物体。另外一个是使用在标签数据匮乏的情况下训练大规模神经网络的一个方法。论文展示了在有监督的情况下使用丰富的数据集(图片分类)预训练一个网络作为辅助性的工作是很有效的,然后采用稀少数据(检测)去调优定位任务的网络。猜测“有监督的预训练+特定领域的调优”这一范式对于数据稀少的视觉问题是很有效的。

​ 最后,论文能得到这些结果,将计算机视觉中经典的工具和深度学习(自底向上的区域候选框和卷积神经网络)组合是非常重要的。而不是违背科学探索的主线,这两个部分是自然而且必然的结合。