【Rich feature hierarchies for accurate object detection and semantic segmentation】

Abstract    

论文的方法结合了两个关键的观察:1.可以通过hight-capacity CNN来进行bottom-up 区域提名以定位和划分对象;2.如果训练集不足,那监督预训练是个有用的方法,再经过fine-tuning,可以有很好的性能提升。R-CNN: Regions with CNN features。

整体结构:1. 输入一张图; 2.提取出2000左右的区域; 3.用一个CNN对每个区域进行特征提取; 4. 通过SVM来对每个区域分类

建立图像分类和识别的桥梁:用一个深网络来记性图像定位,只用少量的检测数据来训练high-capacity模型

检测任务的方法:把定位看成回归问题;建立滑动窗口检测器(一些特定的类别,如人脸、行人,形状是比较固定的)。

本文采用的方法:recognition using regions

检测的第二个问题:数据不足。解决方法:在一个大型的数据集ILSVRC上进行监督的预训练,然后在小数据集上进行domain-specific fine-tuing

R-CNN的三个模块

1. 生成category-independent的区域提名,按类别来做区域提名selective search

2. 大型的CNN网络,用来从每个区域提取出固定长度的特征向量

AlexNet,网络要求输入为227x227,所以对数据进行处理:把图片压缩到227x227的大小

3. 一系列的class-specific 线性SVM

训练过程

  • 在大数据集上进行预训练:在ILSVRC2012 classification上做预训练,只使用image-level标签,没有bounding box
  • Domain-specific fine-tuning:用提名的区域对模型进行fine-tuning。用warped region proposals来继续SGD训练。除了把分类层换成(N+1),就是类别数+1(背景),其他没有变。从lr=0.001(预训练的1/10)。每次SGD迭代使用生成32个正窗口(和ground truth IoU大等于0.5)以及96个bacground 窗口,构成128个
    • fine-tune时最后用的还是softmax层
    • fine-tune后就可以得到一个分类的网络,可以把conv层的部分固定,用于后续操作的特征提取
  • 用svm训练分类:为每个分类设计一个SVM分类器
  • bounding box回归:只对IoU大于阈值的框做为输入进行训练

测试    

SVM分类概率最大的为分类结果,SVM分类后执行非极大抑制保留概率极大的框,把这些做为输入进行bounding box调整,结果就是目标的位置

其它注意点    

1. 为什么SVM和fine-tune的参数不同(对positive example的定义) fine-tune:IOU>=0.5,SVM:只有ground-truth为真,IOU<0.3为假,其它 的忽略

原来的时候,是在预训练的feature map上做SVM,使用的参数和现在fine-tune是一样的。后来引入fine-tune后,两者使用相同参数,但是结果并不好 猜测是由于fine-tuning数据的限制导致,因为其中引入了很多overlap在0.5-1(但不是gr)的数据,这些数据是有必要的,可以防止过拟合。但是,他们会 导致结果变差,因为他们没有对精确的位置进行fine-tune 2. 为什么要SVM 如果只是使用fine-tune的softmax结果,mAP会下降

主要因素是因为在fine-tuning时没有强调精确的位置,而且negtive example是随机的,而不是har negtives

3. bounding box回归

正则化很重要

4. bounding box回归训练时对候选框P的选择(P,G)

如果P和G太远的话,那这个计算就没什么意义了。把一个P分配给某个G,如果P和G的IoU最大,且大于一个阈值,其它没有分配的就忽略。

RCNN论文学习的更多相关文章

  1. Faster RCNN论文学习

    Faster R-CNN在Fast R-CNN的基础上的改进就是不再使用选择性搜索方法来提取框,效率慢,而是使用RPN网络来取代选择性搜索方法,不仅提高了速度,精确度也更高了 Faster R-CNN ...

  2. R-CNN论文学习

    Rich feature hierarchies for accurate object detection and semantic segmentation Tech report (v5) pr ...

  3. Fast RCNN论文学习

    Fast RCNN建立在以前使用深度卷积网络有效分类目标proposals的工作的基础上.使用了几个创新点来改善训练和测试的速度,同时还能增加检测的精确度.Fast RCNN训练VGG16网络的速度是 ...

  4. Make R-CNN论文学习

    在论文是在Faster R-CNN的基础上的改进 ,实现的效果有: 目标检测:能够在输入图像中绘制出目标的边界框,预测目标位置 目标分类:判别出该划定边界的目标的类别是什么,如人.车.猫和狗等类别 像 ...

  5. R-CNN论文翻译

    R-CNN论文翻译 Rich feature hierarchies for accurate object detection and semantic segmentation 用于精确物体定位和 ...

  6. CVPR2019 | Mask Scoring R-CNN 论文解读

    Mask Scoring R-CNN CVPR2019 | Mask Scoring R-CNN 论文解读 作者 | 文永亮 研究方向 | 目标检测.GAN 推荐理由: 本文解读的是一篇发表于CVPR ...

  7. [Network Architecture]Mask R-CNN论文解析(转)

    前言 最近有一个idea需要去验证,比较忙,看完Mask R-CNN论文了,最近会去研究Mask R-CNN的代码,论文解析转载网上的两篇博客 技术挖掘者 remanented 文章1 论文题目:Ma ...

  8. Mesh R-CNN 论文翻译(实验部分)

    本文为 Mesh R-CNN 论文翻译(原理部分)的后续.Mesh R-CNN 原论文. 4 实验   我们在ShapeNet上对网格预测分支进行基准测试,并与最先进的方法相比较.然后,我们在野生的有 ...

  9. [原创]Faster R-CNN论文翻译

    Faster R-CNN论文翻译   Faster R-CNN是互怼完了的好基友一起合作出来的巅峰之作,本文翻译的比例比较小,主要因为本paper是前述paper的一个简单改进,方法清晰,想法自然.什 ...

随机推荐

  1. fuser:command not found

    yum 安装fuser命令 yum install -y psmisc

  2. MySQL——合并查询结果

    利用  UNION 关键字,可以给出多条  SELECT  语句,并将它们的结果组合成一个结果集.合并时,两个表对应的列数和数据类型必须相同.SELECT 语句之间使用  UNION  或  UNIO ...

  3. React笔记:组件(3)

    1. 组件定义 组件是React的核心概念,组件将应用的UI拆分成独立的.可复用的模块. 定义组件的两种方式: (1)类组件:使用ES6 class (2)函数组件:使用函数 使用class定义组件的 ...

  4. ES6 对象增强

    对象字面量语法扩展: 1, 属性初始化语法简写:给一个属性赋一个变量值,如果变量名和属性名相同,可以省略变量名和冒号,直接写属性名,js引擎在执行代码的时候,自动查找 和属性命名相同的变量并赋值. l ...

  5. QProcess与外部程序的调用

    项目做到一定阶段,常常须要在原来的project上调用外部程序. Qt为此提供了QProcess类,QProcess可用于完毕启动外部程序,并与之交互通信. 一.启动外部程序的两种方式:(1)一体式: ...

  6. js 替换所有指定的字符串

    js 的replace方法只替换第一个匹配到的的字符 如果要全局替换,使用以下方法(g为全局标志) str.replace(/需要替换的字符串/g,"新字符串") //如果有特殊符 ...

  7. net core swagger接口

    net swagger接口 引用NuGet包 Install-Package Swashbuckle.AspNetCore //控制台 Microsoft.Extensions.PlatformAbs ...

  8. Cucumber语法格式

    @login Feature: Login @T1 Scenario: Login with correct credentail Given I open login page When I ent ...

  9. 详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解

    转载声明:本文为转载文章,发表于nebulaf91的csdn博客.欢迎转载,但请务必保留本信息,注明文章出处. 原文作者: nebulaf91 原文原始地址:http://blog.csdn.net/ ...

  10. tensorflow Pipeline 之TextLineReader 和decode_csv多分割替代方案

    1.TextLineReader reader = tf.TextLineReader() key, value = reader.read(filename_queue) record_defaul ...