结构:

faster rcnn是fast rcnn的改进版,一个更快的算法。为了理解faster rcnn,建议读者先理解fast rcnn, fast rcnn结构的理解,可以参考我的一篇博客:fast rcnn 理解

图一 fast rcnn的结构

图二 faster rcnn的结构

从图一和图二对比可知,faster rcnn和fast rcnn在结构上的唯一区别,是RoI(region of interest,感兴趣区域)的获取,fast rcnn是通过selective search来获取的,而faster rcnn是通过RPN(region proposal network)来获取的。RPN可以通过我的另一篇博客了解:RPN理解 。RPN生成原输入图像上的proposal(候选框)。这些proposal再按位置关系映射到feature map,得到feature map上对应的RoI。

faster rcnn之所以更快,是因为selective search很慢,用CPU在一张图片上操作,需要花2秒。而RPN是一个很小的网络,而且在训练时,与后面的检测器共享权重,所以不管是训练,还是预测,都比fast rcnn要快很多。

训练

faster rcnn有主体的检测网络,还有一个生成proposal的小网络RPN,为了把faster rcnn设计成端到端的网络,这两部分网络需要同时训练。然而,不能简单地使用梯度下降同时优化两个网路的损失值就行了,因为检测网络依赖于固定的RoI,同时优化两个网络,会使检测网络每次使用的RoI都不同,这可能导致训练无法收敛。为了解决这个问题,并且使两个网络共享卷积层的权重,faster rcnn的作者们设计了一个4步交替训练法,参考图三:

图三  训练解释

1.按S1这条线路训练RPN。使用ImageNet预训练模型作为CNNs的初始化权重。训练过程参考RPN理解。

2.按S2这条线路训练检测器。也是使用ImageNet预训练模型作为CNNs的初始化权重。使用第1步产生的RoI来作为这一步的RoI。

在第一次循环中,这两步,是单独训练的,CNNs的权重没有共享

3.将第2步得到的CNNs的权重,作为Step 1这条线路的CNNs权重初始化,训练RPN,并且固定CNNs的权重,只更新S1这条线路独有的权重,也就是RPN层的权重。

从此开始RPN和检测器开始共享CNNs的权重了

4.固定CNNs的权重,训练Step 2这条路的检测器,只更新Step 2这条线路独有的权重,也就是检测器的全连接层。

交替迭代这4步,进行训练。

faster rcnn的理解相关推荐

  1. Faster RCNN代码理解(Python) ---训练过程

    最近开始学习深度学习,看了下Faster RCNN的代码,在学习的过程中也查阅了很多其他人写的博客,得到了很大的帮助,所以也打算把自己一些粗浅的理解记录下来,一是记录下自己的菜鸟学习之路,方便自己过后 ...

  2. Faster R-CNN 深入理解 改进方法汇总

    Faster R-CNN 从2015年底至今已经有接近两年了,但依旧还是Object Detection领域的主流框架之一,虽然推出了后续 R-FCN,Mask R-CNN 等改进框架,但基本结构变化 ...

  3. [目标检测] Faster R-CNN 深入理解 改进方法汇总

    Faster R-CNN 从2015年底至今已经有接近两年了,但依旧还是Object Detection领域的主流框架之一,虽然推出了后续 R-FCN,Mask R-CNN 等改进框架,但基本结构变化 ...

  4. 对Faster R-CNN的理解(1)

    目标检测是一种基于目标几何和统计特征的图像分割,最新的进展一般是通过R-CNN(基于区域的卷积神经网络)来实现的,其中最重要的方法之一是Faster R-CNN. 1. 总体结构 Faster R-C ...

  5. faster rcnn 论文理解

    目录(?)[-] 思想 区域生成网络结构 特征提取 候选区域anchor Region Proposal Networks Translation-Invariant Anchors 窗口分类和位置精 ...

  6. faster rcnn resnet_RCNN, Fast R-CNN 与 Faster RCNN理解及改进方法

    RCNN 这个网络也是目标检测的鼻祖了.其原理非常简单,主要通过提取多个Region Proposal(候选区域)来判断位置,作者认为以往的对每个滑动窗口进行检测算法是一种浪费资源的方式.在RCNN中 ...

  7. cnn 回归 坐标 特征图_RCNN, Fast R-CNN 与 Faster RCNN理解及改进方法

    RCNN 这个网络也是目标检测的鼻祖了.其原理非常简单,主要通过提取多个Region Proposal(候选区域)来判断位置,作者认为以往的对每个滑动窗口进行检测算法是一种浪费资源的方式.在RCNN中 ...

  8. 你真的理解Faster RCNN吗?捋一捋Pytorch官方Faster RCNN代码

    作者丨白裳@知乎 来源丨https://zhuanlan.zhihu.com/p/145842317 编辑丨极市平台 目前 pytorch 已经在 torchvision 模块集成了 FasterRC ...

  9. faster rcnn源码理解(二)之AnchorTargetLayer(网络中的rpn_data)

    转载自:faster rcnn源码理解(二)之AnchorTargetLayer(网络中的rpn_data) - 野孩子的专栏 - 博客频道 - CSDN.NET http://blog.csdn.n ...

最新文章

  1. Vista及Win7常见故障(拷贝)
  2. ad采集 cube配置 dma_【技术技巧】 使用MCC数据采集设备获取模拟波形
  3. 污水处理中php是什么药剂,污水处理中需要用到哪些药剂?
  4. Luogu P3373 【模板】线段树 2
  5. 为什么说苹果是唯一在乎你隐私的科技公司?
  6. SpringBoot 实现接口参数加密解密功能
  7. 爬虫第四章 单线程+多任务异步协程
  8. c语言:编辑一个有趣的死循环程序并对其修改,仅仅是一个“=”号的差别
  9. CSS常用内容总结(二)
  10. 详解Camtasia的场景转换功能
  11. python爬取酷狗音乐歌词_python爬虫教程:爬取酷狗音乐
  12. Altium Designer快捷键,布线技巧
  13. java微信支付详解_java微信支付接入流程详解
  14. 字节跳动实习 视频面试
  15. 抱薪者说 | 赛博仏客:造物者无尽藏
  16. 10多个免费DNS解析服务器
  17. 正则匹配所有的a标签
  18. MySQL服务无法启动咋办?
  19. 啥叫K8s?啥是k8s?
  20. 移动端经常出现的兼容问题,谈谈移动端应用或者wap站的一些优化技巧和心得

热门文章

  1. Nginx之12火眼金睛 - (状态监控 日志分析)
  2. 2022-03-06裁判文书网(分析)数据更新
  3. java pmd checkstyle_提高代码质量 CheckStyle FindBugs PMD
  4. java 解密 sha,如何在Java中解密sha1加密的字符串
  5. 前端简介以及开发环境搭建
  6. python 微博文本挖掘_Python数据挖掘-文本挖掘
  7. 范福春:发行体制改革核心是定价,证监会正在研究合格投资者制度
  8. 年轻化、高学历成就城市租房新趋势
  9. 最常见的十四种购买心理
  10. 免费的语音转文字软件有哪些?推荐一款好用的