您的位置:首页 > 移动开发 > Objective-C

论文阅读笔记:R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation

2018-02-12 23:34 1081 查看

论文阅读笔记:R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation

本文主要包含如下内容:

  博客

论文阅读笔记R-CNNRich feature hierarchies for accurate object detection and semantic segmentation
主要思想

算法流程

网络结构介绍
特征提取

SVM分类器

bounding box回归

实验结果

IOU的定义

  这篇论文是基础的检测网络,之后才出现了 Fast RCNN 和 Fater RCNN。

主要思想

  本文预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上提取特征,进行判断。首先输入一张图片,我们先定位出2000个物体候选框,然后采用CNN提取每个候选框中图片的特征向量,特征向量的维度为4096维,接着采用svm算法对各个候选框中的物体进行分类识别。

  


  R-CNN概括起来就是 selective search + CNN + L-SVM 的检测器

4000

算法流程

  用 selective search 代替传统的滑动窗口,提取出2k个候选 region proposal

  对于每个region,用摘掉了最后一层softmax层的CNN来提取特征

  训练出来K个 L-SVM 作为分类器(每个目标类一个SVM分类器,K目标类个数),使用 CNN 提取出来的特征作为输出,得到每个 region 属于某一类的得分

  最后对每个类别用 NMS(non-maximum-suppression)来舍弃掉一部分 region,得到 detection 的结果;对得到的结果做针对 bounding box 回归,用来修正预测的 bounding box 的位置。

网络结构介绍

特征提取

  具体来说是 AlexNet 来提取特征,摘掉了最后一层 softmax,利用前面5个卷积层和2个全连接层来提取特征,得到一个4096维的特征。

  使用深度网络提取特征之前,首先把候选区域归一化成同一尺寸227×227。不管图片的长宽比例,管它是否扭曲,进行缩放就是了,全部缩放到CNN输入的大小227*227。

SVM分类器

  CNN 训练的时候,本来就是对 bounding box 的物体进行识别分类训练,是一个端到端的任务,在训练的时候最后一层 softmax 就是分类层,那么为什么作者闲着没事干要先用 CNN 做特征提取(提取fc7层数据),然后再把提取的特征用于训练 svm 分类器?这个是因为 svm 训练和 cnn 训练过程的正负样本定义方式各有不同,导致最后采用 CNN softmax 输出比采用 svm 精度还低。

  事情是这样的,cnn在训练的时候,对训练数据做了比较宽松的标注,比如一个 bounding box 可能只包含物体的一部分,那么我也把它标注为正样本,用于训练 cnn;采用这个方法的主要原因在于因为 CNN 容易过拟合,所以需要大量的训练数据,所以在 CNN 训练阶段我们是对 Bounding box 的位置限制条件限制的比较松(IOU只要大于0.5都被标注为正样本了);

  然而 svm 训练的时候,因为 svm 适用于少样本训练,所以对于训练样本数据的 IOU 要求比较严格,我们只有当 bounding box 把整个物体都包含进去了,我们才把它标注为物体类别,然后训练 svm,具体请看下文。

  这是一个二分类问题,我么假设我们要检测车辆。我们知道只有当 bounding box 把整量车都包含在内,那才叫正样本;如果 bounding box 没有包含到车辆,那么我们就可以把它当做负样本。但问题是当我们的检测窗口只有部分包好物体,那该怎么定义正负样本呢?作者测试了 IOU 阈值各种方案数值0,0.1,0.2,0.3,0.4,0.5。最后我们通过训练发现,如果选择IOU阈值为0.3效果最好(选择为0精度下降了4个百分点,选择0.5精度下降了5个百分点),即当重叠度小于0.3的时候,我们就把它标注为负样本。一旦CNN f7层特征被提取出来,那么我们将为每个物体累训练一个 svm 分类器。当我们用CNN提取2000个候选框,可以得到2000*4096这样的特征向量矩阵,然后我们只需要把这样的一个矩阵与 svm 权值矩阵 4096*N 点乘(N为分类类别数目,因为我们训练的 N 个 svm,每个 svm 包好了4096个 W),就可以得到结果了。

bounding box回归

  目标检测问题的衡量标准是重叠面积:许多看似准确的检测结果,往往因为候选框不够准确,重叠面积很小。故需要一个位置精修步骤。

实验结果

  


IOU的定义

  对于 bounding box 的定位精度,有一个很重要的概念,因为我们算法不可能百分百跟人工标注的数据完全匹配,因此就存在一个定位精度评价公式:IOU。

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐