一摘要:

两个主要工作:1将cnn和自上而下的区域提案结合进行定位和对象分割;2当训练数据稀缺时,先预训练然后微调。

rccn工作分为四步:1输入一张图片

         2用selective search算法对每张图片产生2000张自下而上的候选目标区域

         3用cnn对每一个候选区域提取深度特征(因为候选区域大小形状不一致,而cnn输入大小要固定227*227,因此本文用affine image wrapping先把候选区域统一为227*227)

4用svm对每个区域进行分类

二使用rcnn进行对象检测:

对象检测主要有三个模块:1产生与类别无关的候选区域

2用卷积神经网络产生固定长度的特征向量

3使用线性svm进行分类

三Visualization, ablation, and modes of error

1可视化

其中第一层卷积提取的是图片的边缘和颜色特征,后面的特征难以理解。

文章中将池化层5进行了可视化,pool5的特征图为6*6*256=9216维,忽略边界效应,其感受野为195*195,一个中央pool5几乎具有全局感受野。、

256个特征中有6个是可视化的,如图,网络将特征与形状纹理颜色材质等结合在一起,最后的全连接fc6具有模拟大量丰富特征组合的能力

2.Ablation studies

逐层分析每层的作用,发现全连接层参数巨大而对于目标识别和分类影响比较小,删除fc6和fc7,网络依旧有较好的结果,虽然pool5的的特征值仅仅占6%,所以说cnn的识别能力主要来自卷积层。fine-tuning改善了准确率,微调的改进作用主要作用与fc6和fc7,说明pool5的学习具有一般性,大部分的改进是通过学习特定领域的非线性分类器得到的。

3.检测错位分析

没看太懂

4边框回归

使用线性回归模型来预测定位窗口

四语意分割

区域分类是语意分割的标准技术

分割的cnn特征有三种策略:1忽略区域形状,全部变形为227*227,计算cnn特征(full)

              2仅在区域前景计算cnn特征,用均值输入替换背景,使平均相减后背景区域为(fg)

                                             3full+fg

五总结

论文作者认为:自上而下的候选区域提案和卷积神经网络结合是自然而然的,能提高效率的。

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

学习感悟:

RCNN的训练方式很值得学习:目标检测的标注数据是比较少的,但是图片分类有着大量的标记数据,RCNN首先利用ILSVRC2012图片分类数据库进行预训练甚至可以直接使用AlexNet的参数,得到一个1000维的输出,然后用PASCAL VOC2007数据可进行训练,因为此数据只有20个类别,因此将网络最后的全连接层由1000换成21,20个种类加一个背景类,然后再使用PASCAL VOC2007对数据进行微调。这也印证了论文中说的,卷积层的特征参数具有一般性,用数据多的图片分类数据进行预训练,用数据少的识别数据进行微调,微调主要作用于后面的全连接层。

目标和背景通过候选框和标定框的IOU[(A∩B)/(A∪B)]来选取,重叠度大于0.5是,标记为目标,重叠度小于0.5时为北京,每个batch为32个正样本+96个背景。

RCNN优势:

      1相较于传统的识别方法如:sift、hog的优势在于,利用深度学习方法提取图片的深度特征,而不再利用人为设计的特征

2采用区域建议的方式,首先提取可能的目标,不再利用滑动窗口的方式,省去大量计算

3加入了边界框回归策略来进一步提升检测精度。

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. Nature/Science 论文阅读笔记

    Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...

  8. 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification

    Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...

  9. 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification

    论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...

随机推荐

  1. Java_图片转字符

    把高达头像转换成字符[-V-] 调节双循环里y与x的增量改变字符输出的细节.高和长 public class ImgToStr { public static void main(String arg ...

  2. [问题解决]Windows下python中pydoc命令提示“'pydoc' 不是内部或外部命令,也不是可运行的程序 或批处理文件。”

    解决方法:python -m pydoc 例:python -m pydoc print

  3. JSON类库Jackson优雅序列化Java枚举类

    1. 前言 在Java开发中我们为了避免过多的魔法值,使用枚举类来封装一些静态的状态代码.但是在将这些枚举的意思正确而全面的返回给前端却并不是那么顺利,我们通常会使用Jackson类库序列化对象为JS ...

  4. Java | 静态嵌套类(Static Nested Class)

    前言 本文内容主要来自 Java 官方教程中的<嵌套类>章节. 本文提供的是 JDK 14 的示例代码. 定义 静态嵌套类(Static Nested Class),是 Java 中对类的 ...

  5. android handle详解2 主线程给子线程发送消息

    按照android handler详解分析的原理我们可以知道,在主线程中创建handle对象的时候,主线程默认创建了一个loop对象使用threalocal函数将loop对象和主线程绑定. 我们能不能 ...

  6. android 抓取native层奔溃

    使用android的breakpad工具 使用这个工具需要下载Breakpad的源码,然后进行编译,编译之后会生成两个工具 我们使用这两个工具来解析奔溃的位置.这里我们可以下载已经编译好的工具 下载地 ...

  7. redis基础二----操作List类型

    1.lpush的使用方法 2.rpsuh的使用方法 3.删除元素 lrem中2值的是删除2个集合中的“b”元素 4. 通过上面的分析,redis中的list比较类型java的qunue队列

  8. 在树莓派上读取土壤湿度传感器读书-python代码实现及常见问题(全面简单易懂)

    本篇文章简单介绍了如何在树莓派上配置土壤湿度传感器以读取土壤湿度(以百分比的形式出现)及代码实现. 主要包含有以下4个模块: 一.土壤湿度传感器常见类型及介绍 二.实验所需设备 三.设备连线方式与代码 ...

  9. 使用Kubernetes、K3s和Traefik2进行本地开发

    作者简介 Vyacheslav,拥有运维和项目管理经验的软件工程师 这篇文章将承接我此前搭建的本地Docker开发环境,具体步骤已经放在在以下网址: https://github.com/Vorone ...

  10. 最短路之Floyd

    #include<bits/stdc++.h>using namespace std;const int maxn = 300+10;int n,m,f[maxn][maxn],t; in ...