1.Introduction

1.1 RCNN 和SPPnet

RCNN有几个显著的问题:1.训练的时候是多阶段的训练,分别分三个阶段训练卷积层、SVM、边框回归矩阵。2.训练很耗时。3.目标定位非常慢。它慢主要是因为它没有共享计算,而SPPnet通过共享计算比RCNN快了很多,SPPnet对整张图片做一次卷积提取特征,对比RCNN对每个区域提案单独卷积就快了很多。但是SPPnet也有不足的地方,它和RCNN一样是多阶段训练,并且它的微调无法更新前面的网络。

1.2 fast RCNN的贡献

四个优点:1.比RCNN和SPPnet更高的检测精度。2.训练过程是单阶段的,使用多任务损失函数。3.训练的时候可以更新所有的网络层。4.不需要用硬盘来存储特征缓存。

2.Fast RCNN的架构和训练

2个输入,一是一张完整的图片,二是划定的区域提案。经过ROI pooling和全连接层之后又有两个输出,一是softmax的分类结果(所有类别+背景类),二是边框回归值。

2.1ROI pooling层

使用最大池化将任意大小的感兴趣区域映射到一个固定大小H*W,H和W是提前设定好的超参数,每一个ROI使用一个长度为4的元组来描述它的位置,包括左上角坐标和长宽。ROI pooling是SPPnet的一个变种。过滤器的窗口大小和步长的计算和SPPnet里描述的一样。

2.2预训练网络的初始化

选用了3种预训练好的ImageNet,并对它们进行了三个改变来形成fast RCNN。1.将最后一个最大池化层替换成设定好适应全连接层的H和W的ROI池化。2.最后一层全连接层换成两个并行的结构,一是用于分类的全连接层,二是使目标定位变得准确的边框回归结构。3.可以接受两个输入,一是图片二是该图片的ROI。

2.3对检测的微调

Fast RCNN使用反向传播算法更新所有隐藏层的权重。SPPnet不能更新金字塔池化层后面的网络的权重的原因:根本原因是训练的时候样本来自不同的图片导致了SPP层的低效率,这是由它的训练过程导致的(RCNN也是这样)。这会导致每一个ROI都有一个很大的感受野,通常是跨越整张图片的,前传需要处理整个感受野,所以训练的时候的输入是巨大的。

RCNN和SPPnet是对R个来自不同图片的ROI进行随机梯度下降计算,而Fast RCNN是对来自N张图片,每张图片取N/R个ROI进行处理。这样的处理方法可能导致较低的训练融合速度,因为来自一张图片的ROI是有关联的,但是用N=2和R=128实验时得出了比较好的结果。

多任务损失函数

Fast RCNN有两个输出,一个是经过了softmax层的全连接层的输出,即每个ROI是这K+1种类别的概率p。第二个输出是对每一个概率的边框回归值

u是GT框的种类,v是GT框的位置。

小批样本

每个SGD的mini batch来自于随机的两张图片(N=2),每张图片取64个ROI(N/R),像RCNN一样取25%个IOU超过0.5的ROI为正样本,它们的u>=1,再取等量IOU在0.1到0.5之间的ROI表示背景样本,u=0。

在ROI层之后的反向传播

超参数SCD

将分类模块和边框回归模块使用中心化高斯分布使他们的标准差为分别为0.01和0.001,偏移量为0.所有网络层的单层权重学习率为1,偏差学习率为2,全局学习率为0.001 。

2.4尺度不变性

用两种方法达到了再目标检测中的尺度不变性:1.使用brute force 。将图片预先处理成固定大小。2.使用图片金字塔。

因为GPU容量的限制多尺度训练只在小网络上。

3.将fast RCNN用于检测

4.主要结果

5.设计评估

5.1多任务训练带来的提升

从该对比试验可以看出多任务训练是可以带来mAP的提升的

5.2为了达到尺度不变应该用brute force还是finesse

BF算法是单尺度的,图片金字塔算法是多尺度的。试验中单尺度限制边长为600,多尺度选了5个尺度分别是{480,576,688,864,1200}。

结果表明多尺度的训练并没有比单尺度的训练提升很多mAP。通过这个试验为平衡网络的速度与精度所需要做出的取舍带来了灵感。

5.3是否需要很多的训练数据

Zhu Xiangxin 发现当mAP达到一定数值的时候就饱和了,再增多数据它也不怎么提升,作者做了个和Zhu相似的实验,发现用fast RCNN,当数据量提升之后带来的mAP的提升还是很可观的(66.1%→68.8% 和 65.7%→68.4%)。

5.4SVMs会比softmax表现更好吗

那当然是softmax好一点啦。

5.5区域提案越多越好吗

两种划分RP的方法,一种是稀疏的划分一种是紧密的。

并不是越多越好,多到一定程度反而使mAP下降。

有些部分还没读懂所以没写上去 等之后学明白了再补上去

Fast RCNN论文阅读笔记的更多相关文章

  1. Fast R-CNN论文阅读笔记

    论文地址:Fast R-CNN R-CNN的缺陷 (1)训练是一个多级的流水线.R-CNN首先在候选目标上微调一个卷积神经网络,使用log loss.然后使用SVMs充当目标分类器,以取代softma ...

  2. Fast R-CNN论文阅读摘要

    论文链接: https://arxiv.org/pdf/1504.08083.pdf 代码下载: https://github.com/rbgirshick/fast-rcnn Abstract Co ...

  3. RCNN论文阅读笔记

    一摘要: 两个主要工作:1将cnn和自上而下的区域提案结合进行定位和对象分割:2当训练数据稀缺时,先预训练然后微调. rccn工作分为四步:1输入一张图片 2用selective search算法对每 ...

  4. [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximati

    [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximation 本文结构 解决问题 主要贡献 主要 ...

  5. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  6. 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  7. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

  8. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  9. [置顶] 人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)

    这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...

随机推荐

  1. DDD-领域驱动(四)-使用IMediator 实现领域事件

    领域事件是指:一个领域中出触发的 集成事件是指:多个微服务之前产生的事件 核心对象 IMediator INotification INotificationHandler 引入:IMediator ...

  2. 编写HelloWorld并运行

    1在任意地方右键点新建 2创建一个文本文档 3修改名字,改为HelloWorld.java 4打开文件扩展名,查看后缀 打开后再去看文件名后缀有没有.txt,如果有的话就不是java文件,把后缀的.t ...

  3. Vue中、参数传递以及重定向

    1.参数传递 关键部分代码 1.参数传递 <router-link :to="{name:'information',params:{id:1}}">用户信息</ ...

  4. AgileBoot - 如何集成内置数据库H2和内置Redis

    本项目地址: github: https://github.com/valarchie/AgileBoot-Back-End gitee: https://gitee.com/valarchie/Ag ...

  5. UEC 利用代理/委托写一个生命组件

    首先基于ActorComponent创建一个组件 HealthComponent,将需要的变量与函数创建 #include "CoreMinimal.h" #include &qu ...

  6. 一、Go语言开篇介绍

    Go语言开篇介绍 Go语言 是Google公司 在2007开发一种静态强类型.编译型语言,并在 2009 年正式对外发布. Go语言以其近C的执行性能和近解析型语言的开发效率,以及近乎于完美的编译速度 ...

  7. Java 编码那些事(二)

    建议先阅读:Java 编码那些事(一) 现在说说编码在Java中的实际运用.在使用tomcat的时候,绝大部分同学都会遇到乱码的问题,查查文档,google一下解决方案啥的,都是设置这里,设置那里,或 ...

  8. 常用CSS样式属性

    01.常用样式 1.1.background背景 设置元素背景的样式 background,更好的衬托内容. 属性 描述 值 background 背景属性简写.支持多组背景设置,逗号,隔开 back ...

  9. JS 可编辑表格的实现

    1.实现效果 用户点击语文,数学,英语部分的单元格,可以实现分数的编辑,总分也会随之变化.先看下效果,如图: 2.设计思路 先通过HTML5+CSS3绘制表格,添加input的样式和err提示动画. ...

  10. C#文件路径

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Run ...