目标检测--之RCNN
目标检测--之RCNN
前言,最近接触到的一个项目要用到目标检测,还有我的科研方向caption,都用到这个,最近电脑在windows下下载数据集,估计要一两天,也不能切换到ubuntu下撸代码~。所以早上没事,我就把卷积神经网络用在目标检测的开山之作介绍下,后续他的孩子算法(fast-rcnn, faster-rcnn)我也会陆续介绍。
RCNN 论文地址:Rich feature hierarchies for accurate object detection and semantic segmentation
RCNN
算法的四步走:(乾坤大挪移的招式)
1:激发最大潜力(候选区域选择)
Region Proposal是一类传统的区域提取方法,可以看作不同宽高的滑动窗口,通过窗口滑动获得潜在的目标图像,关于Proposal大家可以看下SelectiveSearch,一般Candidate选项为2k个即可;根据Proposal提取的目标图像进行归一化,作为CNN的标准输入。
Selectivesearch算法流程(图片来源于网络,侵删):

为什么说他是乾坤大挪移呢。当然这是我瞎扯的,但是仔细想想也是有道理的,张无忌在明教重地,当时有小昭在身边,又会了九阳神功,所以激发最大潜力,练就乾坤大挪移。这不就类似于这个Selectivesearch算法吗,首先选取2K左右的候选区域,激发最大潜力~~!。
2)CNN特征提取(集武功道理大成):
标准CNN过程,根据输入进行卷积/池化等操作,得到固定维度的输出;这里的卷积模型可以替换成现在最先进的一些CNN框架(resetnet, PCAnet,VGG等等),其实这一步就是抽取深度特征,本质上和我们传统的抽HOG LBP特征没有区别。这就是乾坤大挪移中集武功道理大成,吸收各门派武功的原理~~!
分类(令对方造出破绽)
对每一类目标,使用一个线性SVM二类分类器进行判别。输入为深度网络输出的4096维特征(CNN抽取的),输出是否属于此类。
由于负样本很多,使用hard negative mining方法。
正样本
本类的真值标定框。
负样本
考察每一个候选框,如果和本类所有标定框的重叠都小于0.3,认定其为负样本。
(张无忌这时却已看全了龙爪手三十六式抓法,其本身虽无破绽可寻,但乾坤大挪移法却能在对方如何拳招中造成破绽,只是心下踌躇:「此刻我便要取他性命,亦已不难,但少林派威名赫赫,这位空性大师又是少林寺的三大耄宿之一,我若在天下英雄之前将他打败,少林派颜面何存?张无忌一觉对方破绽大露,这乾坤大挪移心法最擅于寻瑕抵隙,对方百计防护,尚且不稳)上面是引用金庸原文,分类不就找到破绽吗,然后分类错误,我们在调~~!
回归(转换阴阳二气)
我们首先要明确目标检测不仅是要对目标进行识别,而且还要完成定位任务,所以最终获得的bounding-box也决定了目标检测的精度。
这里先解释一下什么叫定位精度:定位精度可以用算法得出的物体检测框与实际标注的物体边界框的IoU值来近似表示。
如下图所示,绿色框为实际标准的卡宴车辆框,即Ground Truth;黄色框为selective search算法得出的建议框,即Region Proposal。即使黄色框中物体被分类器识别为卡宴车辆,但是由于绿色框和黄色框IoU值并不大,所以最后的目标检测精度并不高。采用回归器是为了对建议框进行校正,使得校正后的Region Proposal与selective search更接近, 以提高最终的检测精度。论文中采用bounding-box回归使mAP提高了3~4%。

操作:
回归器
对每一类目标,使用一个线性脊回归器进行精修。正则项λ=10000λ=10000。
输入为深度网络pool5层的4096维特征,输出为xy方向的缩放和平移。
训练样本
判定为本类的候选框中,和真值重叠面积大于0.6的候选框。
这就是类似于乾坤大挪移转换阴阳二气,调节自己,是自己达到内功的最佳境界~~!而网络通过调节位置,达到最佳mAP~~。
整个RCNN 流程:

RCNN 不足:
1)多个候选区域对应的图像需要预先提取,占用较大的磁盘空间;
2)针对传统CNN需要固定尺寸的输入图像,crop/warp(归一化)产生物体截断或拉伸,会导致输入CNN的信息丢失;
3)每一个ProposalRegion都需要进入CNN网络计算,上千个Region存在大量的范围重叠,重复的特征提取带来巨大的计算浪费。
废话当然有不足了,乾坤大挪移才到第四次。不足说白了,就是运行时间长,要固定尺寸图片,太死板了。
总结:
关于上述乾坤大挪移的例子,我可能只是一时兴起,权当看个笑话,但是整个网络我还是介绍的很详细的~~。哈哈,咱们下次博客见~~~!
如果有交流的可以加我微信,欢迎吹牛~,欢迎一起讨论科研与工程~~! 我的wechat二维码:
验证就说自己:讨论机器视觉地 ~

目标检测--之RCNN的更多相关文章
- 目标检测系列 --- RCNN: Rich feature hierarchies for accurate object detection and semantic segmentation Tech report
目标检测系列 --- RCNN: Rich feature hierarchies for accurate object detection and semantic segmentation Te ...
- 目标检测之R-CNN系列
Object Detection,在给定的图像中,找到目标图像的位置,并标注出来. 或者是,图像中有那些目标,目标的位置在那.这个目标,是限定在数据集中包含的目标种类,比如数据集中有两种目标:狗,猫. ...
- 目标检测(一) R-CNN
R-CNN全称为 Region-CNN,它是第一个成功地将深度学习应用到目标检测的算法,后续的改进算法 Fast R-CNN.Faster R-CNN都是基于该算法. 传统方法 VS R-CNN 传统 ...
- 目标检测-Faster R-CNN
[目标检测]Faster RCNN算法详解 Ren, Shaoqing, et al. “Faster R-CNN: Towards real-time object detection with r ...
- 【目标检测】R-CNN系列与SPP-Net总结
目录 1. 前言 2. R-CNN 2.0 论文链接 2.1 概述 2.2 pre-training 2.3 不同阶段正负样本的IOU阈值 2.4 关于fine-tuning 2.5 对文章的一些思考 ...
- 基于候选区域的深度学习目标检测算法R-CNN,Fast R-CNN,Faster R-CNN
参考文献 [1]Rich feature hierarchies for accurate object detection and semantic segmentation [2]Fast R-C ...
- 多目标检测分类 RCNN到Mask R-CNN
最近做目标检测需要用到Mask R-CNN,之前研究过CNN,R-CNN:通过论文的阅读以及下边三篇博客大概弄懂了Mask R-CNN神经网络.想要改进还得努力啊... 目标检测的经典网络结构,顺序大 ...
- [目标检测] 从 R-CNN 到 Faster R-CNN
R-CNN 创新点 经典的目标检测算法使用滑动窗法依次判断所有可能的区域,提取人工设定的特征(HOG,SIFT).本文则预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上用深度网络提取特征, ...
- paper 111:图像分类物体目标检测 from RCNN to YOLO
参考列表 Selective Search for Object Recognition Selective Search for Object Recognition(菜菜鸟小Q的专栏) Selec ...
随机推荐
- 使用 react-native-tab-navigator 创建 TabBar 组件
1.首先安装好ReactNative的运行环境,安装组件依赖库 使用npm install react-native-tab-navigator --save安装所依赖的第三方库 2.导入 impor ...
- iOS: 学习笔记, 加入一个带界面约束的控制器
1. 创建一个空iOS应用程序(Empty Application). 2. 加入加控制器类. 改动控制器类的viewDidLoad - (void)viewDidLoad { [super view ...
- iOS语言本地化,中文显示
尽管一直相信xcode肯定提供有语言本地化的设置地方,可是一直也没凑着去改.非常多的汉化,还是使用代码去控制:比方navagition的return使用代码改动为"返回"! 近期在 ...
- java System属性列表
http://blog.csdn.net/bryanliu1982/article/details/5205636 比如获取windows登录用户主目录 String usreHome = Syste ...
- eclipse中代码没错但项目名称有个小红X
快速找到项目中的错误,eclipse程序> window> show View >problems ;选择后看控制台报的错误,你就知道什么原因出小红X了
- Docker Push 镜像到公共仓库
首选需要在https://hub.docker.com/上注册用户. 1.登录docker账号主要命令:docker login sudo docker login 2.推送镜像主要命令:docker ...
- Mqtt协议IOS端移植2
MqttFramework.h #import <Foundation/Foundation.h> #import "MQTTClient.h" #import &qu ...
- 使用Fiddler抓包拦截线上JS
第三方教程:http://www.lcgod.com/atc_74 分六步即可: 1.左侧session列表中选中你想替换的一条请求 2.右侧,切换到AutoResponder,点击Add rules ...
- STM32 寄存器库和固件库
寄存器和固件库开发的差别和联系 固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道.向上提供用户函数调用的接口(API). 在 51 的开发中我们经常的作法是直接操作寄存器,比方要控制 ...
- nginx做反向代理proxy_pass,proxy_redirect的使用
大 | 中 | 小 今天用nginx作为trac的反代,发现一个问题,就是登入登出跳转的时候是白页,看了下网页相应内容,发现相应的location是空的.查了一下发现是只单纯用了proxy_pas ...