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. Filter 筛选器(二)之 ExceptionFilter

    public class MyExceptionFilter : IAsyncExceptionFilter { private readonly ILogger<MyExceptionFilt ...

  2. 洛谷P6060 [加油武汉]传染病研究

    一道不错的数学题 Solution 看到约数个数就想到枚举约数,但对于每个询问都枚举显然不现实,但是我们可以将大致的方向锁定在这方面,是否可以预处理出一定的东西,然后低复杂度询问呢? 我们想到预处理出 ...

  3. MasaFramework -- 缓存入门与设计

    概念 什么是缓存,在项目中,为了提高数据的读取速度,我们会对不经常变更但访问频繁的数据做缓存处理,我们常用的缓存有: 本地缓存 内存缓存:IMemoryCache 分布式缓存 Redis: Stack ...

  4. iptables和firewalld基础

    1.四表五链概念: filter表 过滤数据包 Nat表 用于网络地址转换(IP.端口) Mangle表 修改数据包的服务类型.TTL.并且可以配置路由实现QOS Raw表 决定数据包是否被状态跟踪机 ...

  5. JUC学习笔记——共享模型之内存

    JUC学习笔记--共享模型之内存 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的内存部分 我们会分为以下几部分进行介绍: Java内存模型 可见性 模式之两阶段终止 模式之Balk ...

  6. Installing ClickHouse-22.10.2.11 on openEuler

    一.Installing ClickHouse-22.10.2.11 on openEuler 1 地址 https://clickhouse.com https://packages.clickho ...

  7. Dive into TensorFlow系列(2)- 解析TF核心抽象op算子

    本文作者:李杰 TF计算图从逻辑层来讲,由op与tensor构成.op是项点代表计算单元,tensor是边代表op之间流动的数据内容,两者配合以数据流图的形式来表达计算图.那么op对应的物理层实现是什 ...

  8. 解决win7设置默认程序打开方式失效

    问题描述 我在设置一个文件(.ui)的默认程序打开,总是失效.设置不成功. 原因 正常这个程序应该用 designer.exe 打开,但是我之前设置过(.ui)默认程序打开程序为designer.ex ...

  9. Datawhale组队学习_Task01:概览西瓜书+南瓜书第1、2章

    第一章 绪论 1.1引言 打开书,五分钟后,合上书:嗯!学会了!如何判断一个好瓜 1.2基本术语 分类:对离散值进行预测的学习任务,是有监督学习的代表 回归:对连续值进行预测的学习任务,是有监督学习的 ...

  10. 【离线数仓】Day02-用户行为数据仓库:分层介绍、环境搭建(hive、tez)、LZO压缩、建表查询导入加索引、编写脚本

    一.数仓分层概念 1.为什么要分层 ODS:原始数据层 DWD层:明细数据层 DWS:服务数据层 ADS:数据应用层 2.数仓分层 3.数据集市与数据仓库概念 4.数仓命名规范 ODS层命名为odsD ...