目标检测--之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. php调用python

    test_python.php <?php $k = $_REQUEST['k']; if (!empty($k)) { $k = trim($k); //$a 用来捕获输出 // 这里的arr ...

  2. C#开发--FTP操作方法管理

    1.整理简化了下C#的ftp操作,方便使用    1.支持创建多级目录    2.批量删除    3.整个目录上传    4.整个目录删除    5.整个目录下载 2.调用方法展示, var ftp ...

  3. ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪

    ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...

  4. Android:使用ZXing生成二维码(支持加入Logo图案)

    ZXing是谷歌的一个开源库.能够用来生成二维码.扫描二维码.本文所介绍的是第一部分. 首先上效果图: ZXing相关各种文件官方下载地址:https://github.com/zxing/zxing ...

  5. 在oracle11g中配置多个DataGuard物理备机

    >> from zhuhaiqing.info 主机配置 alter system set DB_UNIQUE_NAME='starboss' scope=spfile; alter sy ...

  6. spring+springMVC+hibernate整合

    首先我们要知道hibernate五大对象:,本实例通过深入的使用这五大对象和spring+springMVC相互结合,体会到框架的好处,提高我们的开发效率 Hibernate有五大核心接口,分别是:S ...

  7. Android使用LinearViewLayout展示数据

    如果要滚动,使用ScrollView来包裹这个LinearViewLayout. ListView控件,自己带有滚动效果的. BaseAdapter LayoutInflater 其他两种绑定方式 A ...

  8. Java中的各种锁--分类总结

    前言 本文需要具备一定的多线程基础才能更好的理解. 学习java多线程时,最头疼的知识点之一就是java中的锁了,什么互斥锁.排它锁.自旋锁.死锁.活锁等等,细分的话可以罗列出20种左右的锁,光是看着 ...

  9. tornado+ansible+twisted+mongodb运维自己主动化系统开发(四)

    这周好忙,依据之前的写了个简陋的demo.放在腾讯的云主机上了,大家多交流哈 demo地址 http://203.195.193.251/

  10. cobbler pxe-menu

    对应的文件在 /var/lib/tftpboot/pxelinux.cfg下 如果profile的pxe-menu设置为1的话,就可以默认显示在menu上了.可以手动选择要下发哪一个profile. ...