paper链接:Rich feature hierarchies for accurate object detection and semantic segmentation


目录

Abstract

Introduction

Object detection with R-CNN

 Module design

Region proposals

Feature extraction

Test-time detection

Training

Visualization, ablation, and modes of error

Visualizing learned features

 Ablation studies

Network architecture

Detection error analysis

Bounding-box regression

The ILSVRC2013 detection dataset

Dataset overview

Region proposal

Training data

Validation and evaluation

Ablation study

Semantic segmentation

CNN features for segmentation

Results on VOC 2011

Appendix

Object proposal transformations

将object proposal转换为有效CNN输入的两种方法(227 × 227 pixels):

Positive vs. negative examples and softmax

Bounding-box regression


Abstract

  1. 相对于之前PASCAL VOC 2012的最佳结果而言,平均精度(mAP)超过30%,R-CNN的mAP为53.3%。
  2. 大容量的神经网络应用在自底向上的候选区域(region proposals)中,这样就可以进行目标分割和目标定位。
  3. 训练时的标记数据稀缺时,监督学习下的预训练,加上特定领域的微调(fine-tuning),效果提升显著。

附:PASCAL VOC介绍

  • PASCAL VOC挑战赛 (The PASCAL​ Visual Object Classes )是一个世界级的计算机视觉挑战赛, PASCAL全称:Pattern Analysis, Statical Modeling and Computational Learning,是一个由欧盟资助的网络组织。
  • 很多优秀的计算机视觉模型比如分类,定位,检测,分割,动作识别等模型都是基于PASCAL VOC挑战赛及其数据集上推出的,尤其是一些目标检测模型(比如大名鼎鼎的R-CNN系列,以及后面的YOLO,SSD等)。
  • PASCAL VOC从2005年开始举办挑战赛,每年的内容都有所不同,从最开始的分类,到后面逐渐增加检测,分割,人体布局,动作识别(Object Classification 、Object Detection、Object Segmentation、Human Layout、Action Classification)等内容,数据集的容量以及种类也在不断的增加和改善。该项挑战赛催生出了一大批优秀的计算机视觉模型(尤其是以深度学习技术为主的)。


R-CNN论文解读_数据集



R-CNN论文解读_搜索_02



R-CNN论文解读_数据_03


Introduction

  1. VOC的目标检测在2010 - 2012年期间进展缓慢,大多通过建立联合系统、采用成功方法的微小变体才能获得提升。
  2. 解决问题:深层网络实现目标定位+用少量注释数据训练一个大容量的模型。
  3. 通过“借助区域识别(Recognition using Regions​)”来解决CNN目标定位问题,该范例已成功应用于目标检测和语义分割。
  4. 不管区域的形状如何,都使用仿射图像变形来计算来自每个固定大小的候选区域(region proposal)的CNN结果。

R-CNN论文解读_数据集_04

                       Figure 1: Object detection system overview 

先通过无监督学习(ILSVRC​的数据集)进行预训练CNN,再用特定领域的PASCAL数据进行fine-tuning,效果很好。 唯一的类特定计算是相当小的矩阵向量乘积和非最大抑制。 这个计算属性遵循所有类别共享的特征,并且比先前使用的区域特征的维度低两个数量级。 通过微小的修改,还在PASCAL VOC的分割任务上取得了竞争优势,在VOC 2011测试集中的mAP为47.9%。

Object detection with R-CNN

目标检测系统由三个模块组成:

  • 第一个生成与类别无关的候选区域。
  • 第二个模块是一个大型卷积神经网络,从每个区域提取固定长度的特征向量。
  • 第三个模块是一组用于分类的线性SVM。

 Module design

Region proposals

虽然R-CNN与特定区域提议方法无关,但我们使用选择性搜索(selective search)来实现region proposals。

Selective Search方法简介

  1. 使用Efficient GraphBased Image Segmentation中的方法来得到region
  2. 得到所有region之间两两的相似度
  3. 合并最像的两个region
  4. 重新计算新合并region与其他region的相似度
  5. 重复上述过程直到整张图片都聚合成一个大的region
  6. 使用一种随机的计分方式给每个region打分,按照分数进行ranking,取出top k的子集,就是selective search的结果

Feature extraction


R-CNN论文解读_数据_05


  1. 输入为227×227 RGB图像,通过五个卷积层和两个完全连接层,采取均值减法,从每个候选区域中提取4096维特征向量。
  2. 因为CNN输入维度固定,训练图片(见Figure 2)是warp到固定大小的(文中pixel=16)。

Test-time detection

  1. CNN的网络参数是所有类别共享的且特征向量的维度较低,因此计算时间较少。(13s/image on a GPU or 53s/image on a CPU)
  2. 唯一的类特定计算是特征与SVM权重和非最大抑制之间的点积,图像的所有点积都被分批到单个矩阵 - 矩阵输出中。 特征矩阵通常为2000×4096,SVM权重矩阵为4096×N,其中N是类的数量。
  3. 类别预测的拓展性强,存储数据占空间较少。

Training

Supervised pre-training

  • 利用ILSVRC2012 classification的数据集预训练Caffe开源的CNN网络。

Domain-specific fine-tuning

  • 微调数据是上图的warped形式,SGD做梯度下降训练CNN参数, learning rate 为 0.001 (1/10th of the initial pre-training rate)
  • 在每次SGD迭代中,统一采样32个正窗口(在所有类别上)和96个背景窗口,构建一个size为128的mini-batch。

Object category classifiers

  • IoU通过网格搜索(grid search)设置最佳0.3
  • 采用标准的hard negative mining方法,收敛迅速

Visualization, ablation, and modes of error

Visualizing learned features


R-CNN论文解读_数据_06

                                                              Figure 4: Top regions for six pool5 units


  • 如上图所示,论文利用第五池化层(最大池化层)来进行激活,选择一个网络的特征单元,把它当作检测器来计算大量候选区域(约1000万)的单位,激活特征单元,借助激活得分,从最高到最低对候选区域进行排序,执行非最大抑制,然后显示得分最高的区域。

 Ablation studies


R-CNN论文解读_搜索_07

                                                 Table 2: Detection average precision (%) on VOC 2007 test


  • tabel中1-3行是在没有fine-tuning的情况下,逐层查看mAP,得出结论:全连接层的约29%的参数是无效的,特征提取主要发生在卷积层。
  • 该发现表明,通过仅使用CNN的卷积层,能在HOG的上计算任意大小的图像的密集特征,具有潜在效用。 这种表示可以在pool5特征之上实现滑动窗口检测器,包括DPM。
  • 同时证明了fine-tuning对其mAP的效果提升显著。
  • 该模型相比于同期的特征学习方法有更好的准确率。

Network architecture

  • 网络结构用的大多是AlexNet,尝试过T-Net和O-Net,后者准确率高前者8.5%但耗时多7倍。

Detection error analysis


R-CNN论文解读_数据_08

                    Figure 5: Distribution of top-ranked false positive (FP) types

 (R-CNN) with and without fine-tuning (FT) and bounding-box regression (BB)


  • FP被分为四类(分布情况如上图所示):
  1. Loc—poor localization(与正确类的IoU重叠在0.1-0.5之间或重复)
  2. Sim—confusion with a similar category
  3. Oth—confusion with a dissimilar object category
  4.  BG(在背景上被激活)
  • 与DPM相比,可以发现错误主要由于poor localization,而不是与背景或其他对象类的混淆,表明CNN特征比HOG更具有辨别力。 松散定位可能是由于使用自下而上的Region proposal以及从预训练CNN进行全图像分类所获得的位置不变性。 第三列显示了我们的bounding-box回归方法如何修复许多错误的定位。


R-CNN论文解读_数据_09

                                                                                            Figure 6:Sensitivity to object characteristics


  • 每个图显示六个不同物体的特征(遮挡(occlusion),截断( truncation,),边界框区域(bounding-box area),纵横比(aspect ratio),视点(viewpoint),部分可见性(part visibility))内的最高和最低的运行情况的均值(在类别上)归一化AP, 总的来说,fine-tuning不会降低灵敏度(最大值和最小值之间的差异),但可以显著改善几乎所有特性的最高和最低值。 这表明fine-tuning不仅仅是简单地改进宽高比和边界框区域中性能最低的子集,因为人们可能会根据我们如何扭曲网络输入进行猜测。 相反,fine-tuning可以提高所有特征的鲁棒性,包括遮挡,截断,视点和零件可见性。

Bounding-box regression

  • 受DPM 中使用的边界框回归的启发,我们训练线性回归模型以预测新的检测窗口,给出Selective Search候选区域的pool5特征。这种简单的方法修复了大量错误定位的检测,将mAP提高了3到4个点。

The ILSVRC2013 detection dataset

Dataset overview

  • ILSVRC2013检测数据集分为三组:train(395,918),val(20,121)和test(40,152),其中每组中的图像数量在括号中。通过使用类别计数特征对val图像进行聚类生成每个候选分割,然后进行随机局部搜索,可以改善分割平衡。 这里使用的特定分裂具有约11%的最大相对不平衡和4%的中值相对不平衡。 val1 / val2分裂和用于生成它们的代码将公开提供,以允许其他研究人员比较他们在这个报告中使用的val分裂的方法

Region proposal

  •  ILSVRC图像大小范围从非常小到几个几百万像素,因此在运行选择性搜索之前将每个图像调整为固定宽度(500像素)。 在val上,选择性搜索产生了平均每个图像产生2403个候选区域,所有边界框的召回率为91.6%(0.5 IoU阈值)。 此次召回明显低于PASCAL,其约为98%,表明该Region proposal阶段有很大的改进空间。

Training data

  • 训练集主要用于:
  1.  CNN fine-tuning
  2. detector SVM training
  3. bounding-box regressor training
  • 对于SVM训练,来自val1 + trainN(如果一个类别在训练中的ground-truth框少于N,则全部采用,称之为 val1+trainN)的所有 ground-truth框都被用作各自类别的正例。 对来自val1的5000个图像的随机选择子集进行Hard negative mining。 最初的实验表明,从所有val1中挖掘negative样本而不是5000个图像子集(大约一半),导致mAP仅下降0.5个百分点,同时将SVM训练时间缩短一半。
  • 未使用额外的验证negative图像集。 边界框回归在val1上进行了训练。

Validation and evaluation

  • 在将结果提交给评估服务器之前,使用上述训练数据验证了数据使用选择以及微调和边界框回归对val2集的影响。所有系统超参数(例如,SVM C超参数,区域扭曲中使用的填充,NMS阈值,边界框回归超参数)被固定在用于PASCAL的相同值处。
  • 在val2上选择最佳选择后,作者将两个结果文件提交给ILSVRC2013评估服务器。第一次提交没有边界框回归,第二次提交是边界框回归。

Ablation study


R-CNN论文解读_搜索_10

            Table 4: ILSVRC2013 ablation study of data usage choices, fine-tuning, and bounding-box regression


Semantic segmentation

CNN features for segmentation

  1. 策略(full):与检测同样的方式进行计算特征,忽略region的形状,在warped窗口计算CNN的features。
  2. 策略(fg):仅在区域的前景掩码上计算CNN特征。 我们用平均输入替换背景,以便在平均减法后背景区域为零。
  3. 策略(full+fg):关注full和fg策略得到的features。

Results on VOC 2011


R-CNN论文解读_数据集_11

                                             Table 5: Segmentation mean accuracy (%) on VOC 2011 validation.

                                            Column 1 presents O2P; 2-7 use our CNN pre-trained on ILSVRC 2012.


Appendix

Object proposal transformations

将object proposal转换为有效CNN输入的两种方法(227 × 227 pixels):

  1. “tightest square with context”:将每个object proposal包含在最紧凑的正方形内,然后将该正方形中包含的图像(各向同性地)缩放到CNN输入大小。
  2. “warp”:各向异性地将每个object proposal缩放到CNN输入大小。
  • 在所有方法中,如果源矩形超出图像,则将缺失的数据替换为图像均值(然后在将图像输入CNN之前将其减去)。

Positive vs. negative examples and softmax

  • 为什么正面和负面的例子被定义为微调CNN而不是训练对象检测的SVM?

对于微调,将每个object proposal映射到具有最大IoU重叠(如果有的话)的ground-truth,并且如果IoU至少为0.5,则将其标记为匹配的ground-truth类的正样本, 所有其他proposal都标有“背景”(即所有类别的负样本)。 相比之下,对于训练SVM,我们仅将ground-truth框作为其各自类别的正面示例,并且标签proposal的重叠小于0.3 IoU,并且类的所有实例都为该类的负样本。 落入灰色区域的建议(超过0.3 IoU重叠,但不是ground-truth)将被忽略。

  • 经过微调后,为什么要训练SVM?

不训练之后mAP下降,这种性能下降可能源于几个因素的组合,包括微调中使用的正例的定义不强调精确定位,而softmax分类器是在随机抽样的负例上训练而不是在使用的“hard negatives”子集上 用于SVM训练。

Bounding-box regression

  • 我们的训练算法的输入是一组N训练对R-CNN论文解读_数据_12,其中R-CNN论文解读_数据_13,指定proposal R-CNN论文解读_数据_14 定位框的中心的像素坐标和长宽,每个ground-truth定位框G以相同的方式指定:R-CNN论文解读_数据集_15,目标是学习P到G的映射。
  • 我们根据四个函数对变换进行参数化:R-CNN论文解读_搜索_16

                                                   R-CNN论文解读_数据_17

  • 每个函数R-CNN论文解读_数据集_18被建模为P的pool5特征的线性函数,用R-CNN论文解读_搜索_19表示。因此我们有:R-CNN论文解读_数据_20,其中R-CNN论文解读_数据集_21是可学习模型参数的向量。因此只要优化正则化最小二乘目标(岭回归):R-CNN论文解读_搜索_22
  • 回归目标R-CNN论文解读_数据集_23 对于训练对(P,G)定义为(作为标准正则化最小二乘问题,这可以以封闭形式有效地解决):

                                                     R-CNN论文解读_数据集_24

  • 正则化很重要:作者根据验证集设置λ= 1000。
  • 选择使用哪些训练对(P,G)时必须小心。 直观地说,如果P远离所有ground-truth框,则将P转换为ground-truth框G的任务没有意义。 使用像P这样的例子会导致无望的学习问题。 因此,我们只从proposal P中学习它是否在至少一个ground-truth框附近。 当且仅当重叠大于阈值(我们根据验证集设置它为0.6)时,我们通过将P分配给具有最大IoU重叠的ground-truth框G(如果它重叠多于一个)来实现“接近度”)。 所有未分配的proposal都将被丢弃。 我们为每个对象类执行一次,以便学习一组特定于类的边界框回量。