参考论文:Rich feature hierarchies for accurate object detection and semantic segmentation
下载地址:https://arxiv.org/pdf/1311.2524.pdf
R-CNN的工作流程:
⦁ 首先用选择性搜索算法(Selective Search,SS)提取候选区域
⦁ 使用深度卷积神经网络提取每一个候选区的深度特征
⦁ 训练SVM分类器来对这些特征进行分类
⦁ 最后通过边界回归算法重新定位目标边界框
Selective Search对算法的贡献:此前,在一些传统的目标识别算法中,使用的是滑动窗口进行候选区提取,这样会导致在一章图片中会产生高达百万个候选区,而在R-CNN中,使用选择性搜索算法,每次提取的候选区大概只有1k到2k可能包含物体的区域。
使用深度CNN提取建议区域的特征时,需要注意的是,有些网络对输入图片的大小有要求,如Alex-net要求输入的图片尺寸为227像素*227像素的大小。因此,由SS提取得到的候选区的尺寸大小不一,需要在输入神经网络之前调整大小。通过深度CNN提取特征后,每个目标候选区域相应得到一个4096维的特征向量。
以上得到了每个候选区域的特征向量,接下来使用SVM分类器对特征进行分类。
相对与传统的方法,R-CNN的主要优势有:
⦁ 使用深度学习方法提取深度特征,而不是使用人为设计,因此提高了任务精度。
⦁ 采用区域建议提取可能目标,而不是使用滑动窗口的方式取检测目标,这样减少了不必要的候选区。
⦁ 加入了边界回归的策略来进一步提高检测精度
不足之处:
R-CNN使用了区域建议的方法,对每一个建议区域都重新计算整个神经网络,使得运算效率不高,也没有将区域建议过程融合在整个深度学习模型中,无法做端到端的处理任务。
R-CNN算法概要的更多相关文章
-
深度学习(一)——CNN算法流程
深度学习(一)——CNN(卷积神经网络)算法流程 参考:http://dataunion.org/11692.html 0 引言 20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感 ...
-
CNN算法解决MNIST数据集识别问题
网络实现程序如下 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 用于设置将记 ...
-
CNN算法详细分析
test_example_CNN.m train_x = double(reshape(train_x',28,28,60000))/255; test_x = double(reshape(test ...
-
LVS负载均衡理论以及算法概要
一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 由章文嵩博士发起的*软件项目,它的官方站点是www.linuxvirtualserver.or ...
-
R语言算法 ▪ 计算随意输入的两数之间的区域和
sumfu<-function(a,b,n=){ if(a<b){ for(i in a:b){n=n+i} }else for(i in b:a){n=n+i} return <- ...
-
CNN:人工智能之神经网络算法进阶优化,六种不同优化算法实现手写数字识别逐步提高,应用案例自动驾驶之捕捉并识别周围车牌号—Jason niu
import mnist_loader from network3 import Network from network3 import ConvPoolLayer, FullyConnectedL ...
-
基于深度学习的恶意样本行为检测(含源码) ----采用CNN深度学习算法对Cuckoo沙箱的动态行为日志进行检测和分类
from:http://www.freebuf.com/articles/system/182566.html 0×01 前言 目前的恶意样本检测方法可以分为两大类:静态检测和动态检测.静态检测是指并 ...
-
从决策树学习谈到贝叶斯分类算法、EM、HMM --别人的,拷来看看
从决策树学习谈到贝叶斯分类算法.EM.HMM 引言 最近在面试中,除了基础 & 算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全 ...
-
从决策树学习谈到贝叶斯分类算法、EM、HMM
从决策树学习谈到贝叶斯分类算法.EM.HMM (Machine Learning & Recommend Search交流新群:172114338) 引言 log ...
随机推荐
-
Xamarin.Android活动的生命周期
一.前言 用过Android手机的人一定会发现一种现象,当你把一个应用置于后台后,一段时间之后在打开就会发现应用重新打开了,但是之前的相关的数据却没有丢失.可以看出app的“生命”是掌握在系统手上的, ...
-
Bootstrap人民币玩家攻略
用bootstrap及其它基于它的框架,做了多次网站大改版~对bootstrap的特点有了越来越深的了解~从一开始接触时觉得超级鸡肋,到后来觉得方便,再到后来觉得还是能不用就别用了~为什么这么说?我们 ...
-
Android TextView 常用技巧
Android ListView 常用技巧 Android TextView 常用技巧 TextView在Android中实现文字说明等功能,基本的使用都很简单,那么除了基本展示文字的使用,我们还能够 ...
-
Unity3D中的Shader
简单的说,Shader是为渲染管线中的特定处理阶段提供算法的一段代码.Shader是伴随着可编程渲染管线出现的,从而可以对渲染过程加以控制. 1. Unity提供了很多内建的Shader,这些可以从官 ...
-
cocos2d-x lua 使用http(下载图片, POST JSON)
cocos2d-x lua 使用http(下载图片, POST JSON) version: cocos2d-x 3.6 1.使用http post json与服务器交互 require(" ...
-
J2EE中的HttpSession
J2EE中的HttpSession总结: ①什么是session? session是服务器端技术,利用这个技术,服务器在运行时可以为每一个浏览器创建一个共享的session对象,由于 session为 ...
-
C语言中数组变量和指针变量
指针变量为什么需要类型? 数组变量和指针变量在使用sizeof时不同,sizeof(数组变量)是数组长度,sizeof(指针变量)是存储int的字节长度4或者8(64bit). 数组变量在参数传递中, ...
-
dubbo 一个接口多个实现
<dubbo:service ref="dubboGroupService1" interface="com.yncp.dubbo.service.IDubboGr ...
-
curl 上传文件
1)在 php 5.5.0 之前,如果使用 @+文件路径的文件上传文件,具体看这里:http://www.cnblogs.com/tujia/p/5938463.html 2)php 5.5.0 之后 ...
-
洛谷——P2393 yyy loves Maths II
P2393 yyy loves Maths II 题目背景 上次蒟蒻redbag可把yyy气坏了,yyy说他只是小学生,蒟蒻redbag这次不坑他了. 题目描述 redbag给了yyy很多个数,要yy ...