【RCNN系列】R-CNN目标检测模型

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

        RCNN论文:https://arxiv.org/abs/1311.2524

        RCNN论文翻译:https://alvinzhu.xyz/2017/10/09/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物体检测系统由三个模块构成:

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

1、区域推荐(region proposal)

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

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

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

2、特征提取(Feature extraction)

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

AlexNet

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

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

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

4、技巧

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

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

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

三、创新与挑战

1、创新

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

2、挑战

  • 训练过程是多级流水线。R-CNN首先使用目标候选框对卷积神经网络使用log损失进行微调。然后,它将卷积神经网络得到的特征送入SVM。 这些SVM作为目标检测器,替代通过微调学习的softmax分类器。 在第三个训练阶段,学习检测框回归;
  • 训练在时间和空间上是的开销很大,目标检测速度很慢
  • 模型边框预测的准确性取决于区域提案模型的性能。(这是区域提案与提取特征分离的通病,也是制约模型精度的主要地方。RCNN、SPPNet、Fast RCNN都有这个情况。)

总结:在现在看来RCNN可能不是那么的惊艳,但是在当时RCNN确实引起了不小的关注。在目标检测两步走的时代,目标检测是由选择候选框和提取特征组成,在选定候选区域的算法中,Selective Search算法是比较出众的,而提取特征中AlexNet的突然问世,更是引起了一波躁动,之前的SIFT、HOG等靠人工标注特征已然没有靠数据驱动的CNN更有优势,毕竟数据量、硬件性能都上来了。RCNN本身并没有很有技巧的创新点,在目标检测性能停滞3年的时代,将两个领域优秀的性能结合的尝试有一定的偶然性,但是也是一种必然。

发布了31 篇原创文章 · 获赞 35 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/bingjia103126/article/details/103627215