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. GMOJ5673 爬山法 题解

    Solution 显然先想到处理出每个点能看到的最高的顶点. 然后考虑模拟题目的过程,一段一段走时间复杂度显然不够优秀. 考虑我们要求什么,我们需要求出\(u\)到\(v\)的最近的一个点,使得这个点 ...

  2. python 运行错误收集

    目录 global全局声明错误 global全局声明错误 SyntaxError: name 'is_login' is used prior to global declaration 解决办法:g ...

  3. 搭建MyBatis

    一.引入依赖 <dependencies> <!-- Mybatis核心 --> <dependency> <groupId>org.mybatis&l ...

  4. 6.MongoDB系列之特殊索引和集合类型

    1. 地理空间索引及全文搜索 与Elasitcsearch一样,MongoDB同样支持地理空间索引及全文搜索,由于选型常用ES而非MongoDB此处略过 2. TTL索引 首先先了解下固定集合,其类似 ...

  5. 【题解】CF1720C

    题意简述 给你一个 01 矩阵,每一次你可以在这个矩阵中找到一个 \(L\) 型,将它全部变成 0.\(L\) 型的定义是在一个 \(2\times2\) 矩阵中,除开一个角之外的图形,其中必须包含至 ...

  6. LeetCode------合并两个有序数组(4)【数组】

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/merge-sorted-array 1.题目 给你两个按 非递减顺序 排列的整数数组 nums ...

  7. 支持JDK19虚拟线程的web框架,之一:体验

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于虚拟线程 随着JDK19 GA版本的发布,虚拟线程 ...

  8. windows下cmd补全键注册表修改

      1:使用win+r打开 运行 控制台 2:输入 regedit 打开注册表 3:进入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\ ...

  9. 十五、资源控制之Deployment

    资源控制器之Deployment Deployment 为 Pod 和 ReplicaSet 提供了一个声明式定义(declarative)方法,用来替代以前的ReplicationControlle ...

  10. Sublime Text 修改默认语言为Python

    Sublime Text 3 修改默认语言为Python 步骤如下 英文:Tools - Developer - New Plugin 中文:工具 - 插件开发 - 新建插件 清空原来内容,用下面的代 ...