R-CNN目标检测模型

       上篇文章大致介绍目标检测的发展以及众多的网络模型,后续的文章会主要针对经典的系列性网络模型进行详细的分析与解读。本篇文章会主要针对RCNN系列的R-CNN模型进行详细分析。

一、概述

        R-CNN(Regions with CNN features),把region proposal和CNNs结合起来,因此称为R-CNN。在数据集PASCAL VOC【1】上,物体检测效果较之VOC2012年的mAp提高了30%到达53.3%。(同期OverFeat也是利用CNN和滑动窗口进行目标检测的方法,结果发现RCNN在200类ILSVRC2013检测数据集上的性能明显优于OVerFeat)。

【Overfeat:改进了Alex-net,并用图像缩放和滑窗方法在test数据集上测试网络;提出了一种图像定位的方法;最后通过一个卷积网络来同时进行分类,定位和检测三个计算机视觉任务,并在ILSVRC2013中获得了很好的结果。】

二、R-CNN 网络结构

R-CNN目标检测模型

    R-CNN物体检测系统由三个模块构成:

  • 产生类别无关的region proposal,这些推荐定义了一个候选检测区域的集合,大约2000个;
  • 一个大型的卷积神经网络(AlexNet,5conv+2fc+1softmax总计约6000万的参数量,2013年),用于从每个区域抽取特定大小的特征向量;
  • 一个指定类别的线性SVM分类器。

1、区域推荐(region proposal)

    区域推荐就是通过算法在图片上产生一定数量的候选检测区域即bounding boxes,也就是目标检测常提到的bbox。区域选择的算法也较多,较经典的有滑窗法,以及R-CNN论文中使用到的选择搜索法(selective search)。

  • 滑窗法(Sliding Window):就是不同大小的窗口遍历整个图片。优点:操作简单;缺点:窗口尺寸难定义以及工作量太大,要保证足够的有效就要提供足够的窗口尺寸,以及一定的滑动步长,类似穷举所有情况。
R-CNN目标检测模型
滑窗法
  • 选择搜素法(Selective Search):就是对图像利用分割算法产生许多小的子区域,然后根据这些子区域之间的相似性(主要是颜色、纹理、大小等)进行区域合并,不断的迭代这个操作,每次迭代过程中对这些合并的子区域做外切矩形,最后形成候选框。优点:可以包含大小的疑似物体,合并区域相似性指标多样,提高了准确度;缺点:算法较复杂

 

R-CNN目标检测模型R-CNN目标检测模型

 

选择搜索算法中关于相似性的的计算可以参考别的文章,在此就不阐述了。

2、特征提取(Feature extraction)

   R-CNN的特征提取利用了2012年在ImageNet分类上拿到冠军的AlexNet。AlexNet 网络模型是基于早年间提出的LeNet网络,是由5层Conv + 2层Fc+1层softmax构成,12年在分类项目中的成功(拉开利用传统机器学习分类算法准确度很大),将人们的视线重新从SVM拉回到卷积神经网络乃至深度学习领域。

R-CNN目标检测模型
AlexNet

    AlexNet再此不做过多介绍,相对于后来的分类网络,这个网络已经比较简单和基础。后来的vgg、googlenet V系列、resnet残差网络等算法在模型复杂度、分类准确度以及鲁棒性都有了很大提高。

3、SVM(Support Vector Machine)线性分类器

    SVM是用来分类的,事先对每一个类都训练一个线性分类器,然后对每个region proposal通过CNN前向传播计算出的特征进行分类打分。注:SVM是一个很经典的分类算法,也是SVM一度将人们的视线从卷积神经网络拉到SVM传统机器学习分类算法。

4、技巧

  • NMS(non maximum suppression)非极大值抑制,就是不是局部的最大值的那些值都丢弃。作用:将经过SVM分类后的众多候选区域经过删选,选择某个目标重叠区域得分最高的一个,作为目标检测对该对象的检测结果。

R-CNN目标检测模型R-CNN目标检测模型

  • 交并比IOU,两个区域的交集和并集的比值。作用:在选取正负样本进行正式训练的时候需要利用IOU与设定的比值选定。

R-CNN目标检测模型

  • 预训练  CNN提取特征的参数,作者预先在ILSVRC2012分类数据集(没有约束框数据)上进行了预训练。方便在正式训练的时候参数拟合。

三、创新与挑战

1、创新

  • 准确度较之以往目标检测算法性能提升百分之50;
  • CNN网络提取图像特征改变了以往通过经验驱动的人造特征范式HOG、SIFT到数据驱动的表示学习凡是,提高特征对样本的表达能力;
  • 采用大样本下有监督预训练+小样本微调的方式解决了小样本难以训练甚至过拟合的问题。

2、挑战

  • 每张图片不同区域、重叠区域都需要进行CNN提取特征;
  • 通过selective search算法产生的候选区域,从产生到丢弃或者最后的使用都没有经历过修改。

总结:RCNN是RCNN系列的第一个模型,往后RCNN系列都是再次基础上进行的优化、改进,包括别的目标检测模型或多或少的都借鉴了RCNN的一些方法。