小刘的深度学习---Faster RCNN
前言:
对于目标检测Faster RCNN有着广泛的应用,其性能更是远超传统的方法。
正文:
R-CNN(第一个成功在目标检测上应用的深度学习的算法)
从名字上可以看出R-CNN是 Faster RCNN 的基础。正是通过不断的改进才有了后面的Fast RCNN 和 Faster RCNN。
R-CNN的流程可以分为4个步骤: 用SS(Sekective Search) 找候选区域 >>> CNN提取特征 >>> 用提取的特征训练SVM中做物体识别 >>> 用提取的特征训练回归器提议区域

Sekective Search(选择性搜索)是一种基于区域的目标检测方法。先将图像划分成很多尺寸不同的区域(满足目标多尺寸要求),再将这些区域的层次聚类。其中的相似度计算包含4个方面:颜色,纹理,尺寸和空间交叠
颜色相似度是转HSV,每个通道以bins=25计算直方图,再除以区域尺寸做归一化
纹理相似度采用方差为1的高斯分布在8个方向上做梯度统计,以bins=10计算直方图

尺寸相似度

空间交叠相似度

最终的相似度

点击查看 CNN 部分
点击查看 SVM部分
以上是R-CNN的基本流程,但是由于一张图可能会生成大约2千个候选区域,导致它运行的非常的慢。
Fast R-CNN(R-CNN的续作)
考虑到R-CNN中候选区域会有许多重叠部分,这里会先抽取特征再用SS选区域。并且会用softmax代替SVM。

其中的Rol Pooling 类似于Max Pooling ,它是将一个区域划分为几个小区域后再进行Max Pooling
但由于其本身还是沿用的SS,通常速度还是很慢。
Faster R-CNN
通过用区域提议网络来提速。这里不再直接寻找目标在哪里,而是将问题分为锚点是否包含目标和如何将锚框更好的拟合目标。

以每个像素点为中心生成几种固定尺寸的锚框


具体来说,先做3x3的卷积得到一个与公共尺寸相同的特征图(256x(HxW),再通过1x1的卷积得到2个输出,分别用于BBox 和用于区分前景与背景的softmax 。
往后的步骤与Fast RCNN相同。
放一张效果图

具体代码可以去GitHub上查看。
续:
因为最近在追妹纸,关于代码详解可能要等些时日了。just do it♥
小刘的深度学习---Faster RCNN的更多相关文章
- 小刘的深度学习---CNN
前言: 前段时间我在树莓派上通过KNN,SVM等机器学习的算法实现了门派识别的项目,所用到的数据集是经典的MNIST.可能是因为手写数字与印刷体存在一些区别,识别率并是很不高.基于这样的情况,我打算在 ...
- [计算机视觉][神经网络与深度学习]Faster R-CNN配置及其训练教程2
faster-rcnn分为matlab版本和python版本,首先记录弄python版本的环境搭建过程.matlab版本见另一篇:faster-rcnn(testing): ubuntu14.04+c ...
- 从编程实现角度学习Faster R-CNN(附极简实现)
https://www.jianshu.com/p/9da1f0756813 从编程实现角度学习Faster R-CNN(附极简实现) GoDeep 关注 2018.03.11 15:51* 字数 5 ...
- 【小刘的linux学习笔记 】——01认识操作系统
1.操作系统的地位 计算机系统由硬件和软件两部分组成.通常把未配置软件的计算机称为裸机.直接使用裸机不仅不方便,而且将严重降低工作效率和机器的利用率. 操作系统(OS,Operation System ...
- faster rcnn 源码学习-------数据读入及RoIDataLayer相关模块解读
参考博客:::https://www.cnblogs.com/Dzhen/p/6845852.html 非常全面的解读参考:::https://blog.csdn.net/DaVinciL/artic ...
- 新人如何运行Faster RCNN的tensorflow代码
0.目的 刚刚学习faster rcnn目标检测算法,在尝试跑通github上面Xinlei Chen的tensorflow版本的faster rcnn代码时候遇到很多问题(我真是太菜),代码地址如下 ...
- Faster R-CNN代码例子
主要参考文章:1,从编程实现角度学习Faster R-CNN(附极简实现) 经常是做到一半发现收敛情况不理想,然后又回去看看这篇文章的细节. 另外两篇: 2,Faster R-CNN学习总结 ...
- 【深度学习】目标检测算法总结(R-CNN、Fast R-CNN、Faster R-CNN、FPN、YOLO、SSD、RetinaNet)
目标检测是很多计算机视觉任务的基础,不论我们需要实现图像与文字的交互还是需要识别精细类别,它都提供了可靠的信息.本文对目标检测进行了整体回顾,第一部分从RCNN开始介绍基于候选区域的目标检测器,包括F ...
- 深度学习论文翻译解析(四):Faster R-CNN: Down the rabbit hole of modern object detection
论文标题:Faster R-CNN: Down the rabbit hole of modern object detection 论文作者:Zhi Tian , Weilin Huang, Ton ...
随机推荐
- Java基础加强之代理
本文引用自 http://www.cnblogs.com/xdp-gacl/p/3971367.html 1.什么是代理 动态代理技术是整个java技术中最重要的一个技术,它是学习java框架的基础, ...
- Python自动化之traceback
import traceback try: 11/a except Exception: b = traceback.format_exc() traceback.format_exc()会存储详细的 ...
- 使用CSS3的“transition ”属性控制长宽度的缓慢变化
有时候我们可能会想要改变某个资源信息的长宽度,比如改变某个div的宽度,而且需要让这个宽度缓慢改变,而不是突然就改变了.这时候你可能会想到使用jquery的animate()函数,不过这个方法既得引用 ...
- 【C++0x】表达式之类型(decltype)
C++0x引入了新的关键字decltype,它是一个操作符,用来取得表达式的类型,主要在泛型编程中使用.这里,简单介绍一下语法规则. 语法形式:decltype (expression)其中,这里 ...
- RAC配置笔记
Iscsi常用命令(我通过openfiler实现iscsi存储) # iscsiadm -m discovery -t st -p IP:port //发现iSCSI存储 # iscsiadm ...
- 理解C++类的继承方式(小白)
基类里的 public(大人) protect(青年) private(小孩) 在通过继承时 继承方式public(我是大人咯) protect(我是青少年) private(我系小孩纸啦) &qu ...
- MySQL学习【第六篇sql语句下】
一.select高级用法 1.传统连接(只能内连接,取交集,效率最慢) 1.根据两张表查询张三成绩 select t1.sname,t2.mark from t1,t2 where t1.sid=t2 ...
- 树莓派 ubuntu 系统下修改config.txt文件调整分辨率记录
参考 https://www.jianshu.com/p/99eea4db21c4 注:操作前最好先备份个 config.txt 文件 防止悲剧 防止悲剧 防止悲剧 终端下 进入boot/config ...
- Scala_Trait特征
1,scala提供的“特征”可以同时拥有抽象方法和具体方法,一个类可以拥有多个特质 2,类可以通过“extends”关键字继承trait,继承trait后必须实现trait中的所有抽象方法,而不是用 ...
- 学习sbtenv
背景 最近由于工作需要, 我总是在不同的scala项目间流动开发. 这就遇到一个很棘手的问题, 这几个项目用的sbt版本不一致, 老项目用的是 sbt 0.13.15, 新项目用的是 sbt 1.0. ...