zoukankan      html  css  js  c++  java
  • <Rich feature hierarchies for accurate object detection and semantic segmentation> 学习笔记

    1.简介

    writers: Ross Girshick1 Jeff Donahue1,2 Trevor Darrell1,2 Jitendra Malik1

    这篇论文于2014年发布在计算机视觉顶会CVPR上,作者在这篇论文中提出了一种更加优秀的object detection算法,因为对图像中对象的提取使用了region proposal(推荐区域) 方法,以及在特征提取过程中使用了深度卷积神经网络(large convolutional neural network),所以,作者将这种目标检测算法命名为RCNN(Regions with CNN features)。到目前为止,RCNN算法已经不是解决object detection问题的最优方法,但是在这篇论文刚提出的时候,RCNN算法将mAP值在VOC-2012数据集上提高到了53.3%,较当时最好的算法提高了30%。

    这篇文章的主要贡献在于两点:
    (1) 将卷积神经网络应用到bottom-up区域候选方法上,用来定位图片中的对象
    (2) 在可供训练的数据量较小的情况下,可以将模型在其他相关数据集上进行大规模学习,然后再进行将输出明确化的调整工作,可以达到良好的训练结果。

    2.模型介绍

    作者提出的RCNN模型如图:其中主要包含了三个模块,并且解决了对象定位以及参数训练的问题。

    从图中可以看到,作者的模型主要分为三个部分:
    (1) 产生类别独立的region proposals
    (2) 使用CNNs对每个region提取出一个固定长度的feature
    (3) 使用class-specific linear SVM对提取的features 分类

    2.1产生region proposals

    作者使用selective search 算法产生2000个region proposals
    selective search 算法如下:

    (图片转自blog:https://blog.csdn.net/u011436429/article/details/80277633)

    产生initial region的方法可以参考论文《Efficient Graph-Based Image Segmentation》

    2.2提取定长features

    作者对每个region proposal,使用Caffe implementation of CNN 提取到4096-dimensional 向量,需要注意的是,CNN模型的输入需要固定大小的227227的图片,所以在region proposal 通过CNN 提取特征之前,对图片进行填充,已达到输入需要的227227pixel

    作者提取特征用的CNN的网络结构由5个卷积层以及2个全联接层构成

    2.3SVN分类

    在使用CNN提取到region proposals 的feature Vectors 后,对每个类使用SVM判断候选区域是否包含了目标检测对象,对每个region计算评分分值,利用这个分值作为该候选区域属于某个类别的可能性,采用非极大抑制,即如果两个scored regions 之间的intersection-over-union(IoU)值大于某个阈值时,丢弃分数小的region

    3.模型训练

    采用迁移学习
    作者在 ILSVRC 2012数据集上训练好的CNN模型,然后调整输出目标

    4.分类

    通常对待一个二值化的分类器,它的结果只要 2 中,Positive 和 Negetive。
    比如,有一个汽车分类器,它可以轻松地确认,一个方框里面包含了一辆汽车,那么它肯定就是 Positive。
    也可以很清楚地确认,如果一个背景方框中没有包含汽车,那么它就是 Negetive。
    但是,比较难确认的是,如果一个方框,只有一部分与汽车重叠,那么如何标注这个方框呢?
    R-CNN 采用的是 IoU 的阈值,这个 threshold 取 0.3,如果一个区域与 Ground tureth 的 IoU 值低于设定的阈值,那么可以讲它看成是 Negetive.
    IoU 的 threshold 它不是作者胡乱取值的,而是来自 {0,0.1,0.2,0.3,0.4,0.5} 的数值组合的。
    而且,这个数值至关重要,如果 threshold 取值为 0.5,mAP 指标直接下降 5 个点,如果取值为 0,mAP 下降 4 个点。一旦特征抽取成功,R-CNN 会用 SVM 去识别每个区域的类别

    论文没看完,因为理解偏差,很多地方觉得特别特别矛盾,写不下去了,等哪天懂了再补

  • 相关阅读:
    java中检测网络是否相通
    springBoot学习资料
    mybatis-Plus 增强版用法收藏
    idea生成springBoot 报错403
    java中所有开源注解收集
    JsonCpp操作数组对象
    第三方库 jsoncpp 读写json
    c++ 判断是64还是32位系统
    c++ 读写结构体到文件
    c/c++ 按照行读取文件
  • 原文地址:https://www.cnblogs.com/zhangyue123/p/13736924.html
Copyright © 2011-2022 走看看