目标检测--之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特征没有区别。这就是乾坤大挪移中集武功道理大成,吸收各门派武功的原理~~!

  1. 分类(令对方造出破绽)

    对每一类目标,使用一个线性SVM二类分类器进行判别。输入为深度网络输出的4096维特征(CNN抽取的),输出是否属于此类。

    由于负样本很多,使用hard negative mining方法。

    正样本

    本类的真值标定框。

    负样本

    考察每一个候选框,如果和本类所有标定框的重叠都小于0.3,认定其为负样本。

    (张无忌这时却已看全了龙爪手三十六式抓法,其本身虽无破绽可寻,但乾坤大挪移法却能在对方如何拳招中造成破绽,只是心下踌躇:「此刻我便要取他性命,亦已不难,但少林派威名赫赫,这位空性大师又是少林寺的三大耄宿之一,我若在天下英雄之前将他打败,少林派颜面何存?张无忌一觉对方破绽大露,这乾坤大挪移心法最擅于寻瑕抵隙,对方百计防护,尚且不稳)上面是引用金庸原文,分类不就找到破绽吗,然后分类错误,我们在调~~!

  2. 回归(转换阴阳二气)

    我们首先要明确目标检测不仅是要对目标进行识别,而且还要完成定位任务,所以最终获得的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的更多相关文章

  1. 目标检测系列 --- 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 ...

  2. 目标检测之R-CNN系列

    Object Detection,在给定的图像中,找到目标图像的位置,并标注出来. 或者是,图像中有那些目标,目标的位置在那.这个目标,是限定在数据集中包含的目标种类,比如数据集中有两种目标:狗,猫. ...

  3. 目标检测(一) R-CNN

    R-CNN全称为 Region-CNN,它是第一个成功地将深度学习应用到目标检测的算法,后续的改进算法 Fast R-CNN.Faster R-CNN都是基于该算法. 传统方法 VS R-CNN 传统 ...

  4. 目标检测-Faster R-CNN

    [目标检测]Faster RCNN算法详解 Ren, Shaoqing, et al. “Faster R-CNN: Towards real-time object detection with r ...

  5. 【目标检测】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 对文章的一些思考 ...

  6. 基于候选区域的深度学习目标检测算法R-CNN,Fast R-CNN,Faster R-CNN

    参考文献 [1]Rich feature hierarchies for accurate object detection and semantic segmentation [2]Fast R-C ...

  7. 多目标检测分类 RCNN到Mask R-CNN

    最近做目标检测需要用到Mask R-CNN,之前研究过CNN,R-CNN:通过论文的阅读以及下边三篇博客大概弄懂了Mask R-CNN神经网络.想要改进还得努力啊... 目标检测的经典网络结构,顺序大 ...

  8. [目标检测] 从 R-CNN 到 Faster R-CNN

    R-CNN 创新点 经典的目标检测算法使用滑动窗法依次判断所有可能的区域,提取人工设定的特征(HOG,SIFT).本文则预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上用深度网络提取特征, ...

  9. paper 111:图像分类物体目标检测 from RCNN to YOLO

    参考列表 Selective Search for Object Recognition Selective Search for Object Recognition(菜菜鸟小Q的专栏) Selec ...

随机推荐

  1. js中的string.format函数代码

    String.prototype.format = function(args) { if (arguments.length > 0) { var result = this; if (arg ...

  2. spring mvc controller中的异常封装

    http://abc08010051.iteye.com/blog/2031992 一直以来都在用spring mvc做mvc框架,我使用的不是基于注解的,还是使用的基于xml的,在controlle ...

  3. springMVC 前后台日期格式传值解决方式之二(共二) @InitBinder的使用

    关于springmvc日期问题的解决方式 除了本博客的[springMVC 前后台日期格式传值解决方式之 @DateTimeFormat的使用和配置]一文, 还有如下这种方式: 在Controller ...

  4. MYSQL总结之sql语句大全

    一.基础1.说明:创建数据库 CREATE DATABASE database-name .说明:删除数据库 drop database dbname .说明:备份sql server --- 创建 ...

  5. cdn日志统一下载程序

    最近实现了网宿cdn,阿里云cdn,腾讯cdn的日志统一格式下载程序,使用简单方便,有需要详见代码: https://github.com/mikeluwen/CdnLogDownload

  6. C程序设计Week12晚上练习

    本周仅仅进行一个程序,曾经的一个程序. 自己定义例如以下函数,输入n(n<46)个学生的姓名和成绩,顺序输出这n个学生的姓名和成绩,并输出最高成绩的姓名和成绩.预习struct结构体,思考怎样改 ...

  7. web网页按钮如何制作

    1:用矩形形状工具画一个矩形 2 : 加描边 3:三键+N新建图层 前景色变成白色,白色到透明的渐变,选择径向渐变. 4:为了使自然,按住ALT键,使渐变扩大,和矩形保持一直,之后向上调整一些. 5: ...

  8. linxu 查看python解释器或者c/c++编译器的位置

    ubuntu环境下python相关ide的python解释器,它的默认位置在: usr/bin/python gcc和g++分别位于 usr/bin/gcc usr/bin/g++ 也可以用which ...

  9. SpringCloud系列二:硬编码实现简单的服务提供者与服务消费者

    从本文开始,以一个电影售票系统为例讲解Spring Cloud 1. 版本 jdk:1.8 SpringBoot:2.0.0.RELEASE SpringCloud:Finchley.M8 2. 系统 ...

  10. 常用IIS mime类型

    MIME类型 .woff font/x-woff.json application/json.svgz image/svg+xml .ttf application/octet-stream.eot ...