转载自:

RCNN (Regions with CNN) 目标物检测 Fast RCNN的基础 - 楼燚航的blog - 博客园
http://www.cnblogs.com/louyihang-loves-baiyan/p/4839869.html

Abstract:
贡献主要有两点1:可以将卷积神经网络应用region proposal的策略,自底下上训练可以用来定位目标物和图像分割 2:当标注数据是比较稀疏的时候,在有监督的数据集上训练之后到特定任务的数据集上fine-tuning可以得到较好的新能,也就是说用Imagenet上训练好的模型,然后到你自己需要训练的数据上fine-tuning一下,检测效果很好。现在达到的效果比目前最好的DPM方法 mAP还要高上20点,目前voc上性能最好。

这篇文章主要是介绍RCNN,跟后面的Fast RCNN和Faster RCNN比较关联,这篇文章是后两个的基础。
1.介绍
在开始他说到LeCun对卷积神经网络中采用的SGD(通过反向传播的随机梯度下降算法)对网络训练很有效,也直接促进了利用CNN来做检测。
其实CNN的算法在90年代就已经出现了,可惜当时被SVM取代了,主要原因就是当时训练不动。2012年的时候Krizhevsky复燃了CNN,其在Imagenet的数据集上训练达到了非常好的效果,主要是用了LeCun中的一些技巧如(rectifying non-linearities and “dropout” regularization)

后来就有了讨论说把CNN方到目标检测上能达到什么样的效果。因此RossGirshick把问题主要聚集在了2个点上:
1一个是用深度网络来做一个检测,并且在整个high-capacity model中用较少的标注数据来training,比如几万张图像,(毕竟Imagenet上有上千万的图像数据)。不像图像分类任务,检测是需要定位的。因此RCNN里把这个定位转换成一个regression problem(即回归问题)。当然他们在当时也想采用最经典的也就是sliding window,在卷积层增加了较大的感受野。但是他们最后没有采用,因为之前的DPM中也已经不采用这种方法了,无效的操作太多(PS.这里是我个人感觉,而且会增加复杂度)。他们最后采用的是Recognition using region的策略(这种paradigm已经在目标识别和semantic segmention中取得了较好的成功)。在测试阶段,他们提取约2000K预选框,从预选框中通过CNN提取出fixed-length的特征,最后通过特定类别的SVM来分类。对于不同大小的ROI采用了(affine image warping)来调整到固定的size,这种方法是不考虑region的形状的。整个系统的overview

2.在实际检测中,训练的样本肯定是scarce,不足以训练一个大型的CNN网络。解决这个问题的方法是,首先通过无监督的预训练unsupervised pretraining,然后再进行supervised training,在实验中他们提到经过fine-tuninig,检测的mAP有8个点的提高。Ross提到Donahue的同时期的工作,其直接拿了krizhevsky的CNN网络用来做一个blackbox feature的extractor,这也在识别任务中表现出了较好的性能,如场景识别,细粒度的子分类,领域适应。分类计算中只有整个的分类工作只是一个矩阵相乘和非极大值抑制。

在错误分析中,可以发现bounding box的regression 可以明显的减少mislocalization。同理,作者说因为RCNN是工作在Region上的,因此其也可以较好的应用到semantic segmentation,最后也在voc2011上取得了较好的效果,比最好的高出1个点,(PS.我认为应该会有更好的性能,应该还没有做透,原来的那些分割仍然依赖浅层的特征)
特征提取:在网络之前,ROI不管大小形状都被缩放到一个固定的尺寸以适应网络。

2.2
测试时检测
在RCNN中,为每一类都训练了一个SVM,最后根据输出的特征类判断,每一个区域都有一个得分,最后通过greedy non-maximun supperssinon(for each class independently)来接受或者拒绝一个region,主要是看他这个有IoU的region是否比学习到的阈值有更高的得分。
对于运行分析
1.所有的CNN参数都在各个类别分享参数
2.CNN计算出来的参数是low dimensional 低维的,与其他方法比起来如空间金字塔,以及视觉词带模型

  1. The only class-specific computations are dot products between features and SVM weights and non-maximum suppression
    4.RCNN可以应付类别很多情况并且不需要借助一些额外的近似手段,比如哈希什么的,别的方法在类别增长时,整个复杂度会上升很多,比之前的DPM的方法也要好很多
    2.3 训练过程
    supervised-pretraining ----> domain-specifi fine-tuning ---->object categroy classier
    1.supervised-pretraining是在imagenet上训练好的模型
    2.domian-specific fine-tuning 首先需要修改类别数目,并且在文中,Ross将IoU和GT大于0.5的看成是正样本,在SGD中 lr为pre-training rate的十分之一为0.001,这样不会影响预训练。在SGD中,每一次迭代,mini-batch大小是128,总共有32个postive window,96个negtive window.`

3可视化学习的特征
在可视化学习特征中中,采用了一个很大的局部感受野的数据集。这了主要对卷基层进行可视化,输入region图像,根据unit激活之的大小排序,来看他对什么样的输入敏感。下图可以看到有一些Unit对人脸敏感如1,有一些对点阵,狗敏感如2行,第三行,对红色敏感,对第四行对文字敏感,也能将一些特征融合到一起入颜色、纹理、形状,如5行的屋子。。等等
这里很关键!5层之后为全连接层,全连接层可以将这些丰富的特征进行组合建模!

3.2 关于参数消除的研究
1.performace没有fine-tuning
从表中可以看到fc7产生的特征比fc6澶色恒的特征要差,这也就是说29%差不多1.68million个数据是可以从CNN网络中去掉的,并且几乎对mAP没什么影响。更加惊讶的是,如果把f6和f7都去掉的话,只用pool5层的参数也就是大于整个网络6%的参数也可以取得不错的结果如下图所示:可以看到大部分representational的能力主要是来自于CNN的卷积层,而不是主要的全连接层。这个发现可以用在稠密的特征map中,比如说Hog。这种表现能力也就是说我们有可以将其应用到一些滑动窗检测子中如DPM,在pool5的特征基础之上。作者原文(Much of the CNN’s representationalpower comes from its convolutional layers, rather than fromthe much larger densely connected layers. This finding suggests potential utility in computing a dense feature map, in the sense of HOG, of an arbitrary-sized image by using only the convolutional layers of the CNN. This representation would enable experimentation with sliding-window detectors, including DPM, on top of pool5 features)
2.经过fine-tuning的性能
可以看到fine-tuning的效果还是很明显的,几乎提高了8个点,并且对于fc67的效果更明显,这也就是说从imagenet中学习到的pool5的特征比较general,并且对于性能的提升主要是来自对于在他们基础上的domain-specific具体应用场景的non-linear分类器的训练。

3.4 关于BBOX
首先需要明确的是,RCNN并不是从预选框里选择一个判断一下那么简单,在论文中的错误分析,大部分的检测错误的主要成分都是localize error 也就是定位错误,IoU在0.1和0.5之间。与别的类别以及背景confusion比例非常小,在这里作者根据最后输出的feature 进一步做了regression, 采用的是之前在DPM检测中的用的Linear regression model,这个让mAP大概提高了4个点。

4 Semantic segmentation
文中也提到了将RCNN网络用语分割,但是效果与目前较好的O2P的方法没有本质的提高约0.9。我认为主要还是网络学习过程并不足,其对于细粒度的特征没有一个整体的学习过程,目前在semantic segmentation上性能最好的是《Learning Deconvolution Network for Semantic Segmentation》目前在pascal-voc数据集上是第一的性能,他的网络中有一个对称的deconvolutoin network。

结束语:最近这几年确实,在目标物检测的性能上是停滞不前了,现在最好的DPM算法都是结合好多low-level的feature,并且这些feature都是手工设计的加上一些high-level context from detector和scene classifier。这篇文章给出了基于Region proposal和CNN网络极大的提高了mAP。有监督的预训练在特定场合的fine-tuning这一模式会针对很多数据系稀疏的是视觉问题有效。作者这里的意思是说拿Imagenet上训练好的那个模型,然后根据自己的特定应用场景,把模型用自己的数据fine-tuning一下,这样的做法是挺有效的。

RCNN (Regions with CNN) 目标物检测相关推荐

  1. RCNN (Regions with CNN) 目标物检测 Fast RCNN的基础

    RCNN (Regions with CNN) 目标物检测 Fast RCNN的基础 Abstract: 贡献主要有两点1:可以将卷积神经网络应用region proposal的策略,自底下上训练可以 ...

  2. 如何使用CNN进行物体识别和分类_基于CNN目标检测方法(RCNN系列,YOLO,SSD)

    转载自:基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测 一.研究意义 卷积神经网络(CNN)由于其强大的特征提取能力,近年 ...

  3. rcnn 回归_基础目标检测算法介绍:CNN、RCNN、Fast RCNN和Faster RCNN

    每次丢了东西,我们都希望有一种方法能快速定位出失物.现在,目标检测算法或许能做到.目标检测的用途遍布多个行业,从安防监控,到智慧城市中的实时交通监测.简单来说,这些技术背后都是强大的深度学习算法. 在 ...

  4. 【R-CNN论文翻译】目标检测经典论文R-CNN最新版本(v5版)全面中文翻译

    R-CNN目标检测的奠基性文章,学习目标检测必看的经典论文之一,后续有Fast R-CNN,Faster R-CNN一系列论文. 目前网上能找到的论文翻译版本要么不全,要么不是最新版本的(论文从201 ...

  5. Cascade R-CNN: High Quality Object Detection and Instance Segmentation(级联R-CNN:高质量目标检测与实例分割)

    Cascade R-CNN: High Quality Object Detection and Instance Segmentation Zhaowei Cai, and Nuno Vasconc ...

  6. ​ICCV 2021丨Oriented R-CNN:面向旋转目标检测的 R-CNN

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 本文转载自:中国图象图形学学会CSIG Oriented R-CNN:有向目标检测 谢星星 , 程塨  ,  ...

  7. 反射大师怎么使用_很多客户问:光电传感器怎么才能稳定检测黑色目标物?

    光电传感器怎么才能稳定检测黑色目标物? 在日常工作中经常遇到有人问到这类问题: 对于不能反射光线或者反射率很低的黑色物体用哪些光电开关可以检测? 请教:什么牌子的光电(光纤)传感器能检测黑色海绵的有无 ...

  8. DOT:视觉SLAM的动态目标物跟踪

    点云PCL免费知识星球,点云论文速读. 文章:DOT: Dynamic Object Tracking for Visual SLAM 作者:Irene Ballester, Alejandro Fo ...

  9. 学术 | 据说以后在探头下面用帽子挡脸没用了:用于遮挡物检测的对称卷积神经网络——SymmNet...

    作者 | Ang Li, Zejian Yuan 译者 | Linstancy 编辑 | Jane 出品 | 人工智能头条(公众号ID:AI_Thinker) [导读]从立体图像或视频帧中进行遮挡物的 ...

最新文章

  1. Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4) C. Connect Three 【模拟】...
  2. 评分卡建模—拒绝推断
  3. windows cmd 窗口 显示信息慢_你玩过Windows 10新版CMD了吗?
  4. java开发安装mysql_从零开始搭建Java开发环境第二篇:如何在windows10里安装MySQL
  5. 反射实体自动生成EasyUi DataGrid模板 第二版--附项目源码
  6. python爬虫怎么赚钱-如何利用python爬虫挣钱
  7. 系统优化设计方案3.20周一例会
  8. Hadoop的Writerable在Spark无法序列化的问题
  9. 认知无线电网络中的频谱切换
  10. 程序员写文档工具推荐,让你爱上写文档!
  11. [渝粤教育] 西南科技大学 行政法学与行政诉讼法学 在线考试复习资料(1)
  12. 2021年优秀网络虚拟化解决方案
  13. PDF文件压缩有什么方法?如何操作?
  14. 公共域名服务DNS 114.114.114.114和8.8.8.8
  15. Python+Vue计算机毕业设计童童摄影馆管理系统yyt8p(源码+程序+LW+部署)
  16. 视频教程-x86/x64软件逆向分析入门-C/C++
  17. 各大股票开放接口介绍
  18. [战略]武科大IT交流群-群目标和具体措施-V1.0
  19. 使用DISC工具开启高效合作模式
  20. ansible软件下载

热门文章

  1. 微服务实践分享(2)api网关
  2. ZooKeeper Recipes and Solutions
  3. Inversion of Control Containers and the Dependency Injection pattern--Martin Fowler
  4. jdk8中java.util.concurrent包分析
  5. Want to archive tables? Use Percona Toolkit’s pt-archiver--转载
  6. 关于产品的一点点想法
  7. Lesson 13.3 梯度不平稳性与Glorot条件
  8. 【大佬漫谈】5G对AI反欺诈行业提出更高要求——谢映莲
  9. 元宇宙iwemeta: 2021年云计算行业发展研究报告
  10. 智能合约开发环境搭建及 Hello World 合约