转载链接:http://blog.csdn.net/weixin_40449426/article/details/78141635

我才刚刚学习Faster R-CNN,看了好多博客,觉得对知识点讲的很好,但是顺序不对,应该首先讲解总的框架,然后再讲解内部的细节,所以我就自己写了一篇,请大家指正。

Faster R-CNN,可以大致分为两个部分,一个是RPN网络,另一个是Fast R-CNN网络,前者是一种候选框(proposal)的推荐算法,而后者则是在此基础上对框的位置和框内的物体的类别进行细致计算。

不管是RPN还是Fast R-CNN网络,其网络结构一部分来自于pre-trained model的卷积层(下文简称model),另一部分则是他们各自特有的结构(有卷积和FC,下文简称unique)。
这里,我主要讲的就是训练过程。

第一步:用model初始化RPN网络,然后训练RPN,在训练后,model以及RPN的unique会被更新。

第二步:用model初始化Fast-rcnn网络,注意这个model和第一步一样。然后使用训练过的RPN来计算proposal,再将proposal给予Fast-rcnn网络。接着训练Fast-rcnn。训练完以后,model以及Fast-rcnn的unique都会被更新。
说明:第一和第二步,用同样的model初始化RPN网络和Fast-rcnn网络,然后各自独立地进行训练,所以训练后,各自对model的更新一定是不一样的(论文中的different ways),因此就意味着model是不共享的(论文中的dont share convolution layers)。

第三步:使用第二步训练完成的model来初始化RPN网络,第二次训练RPN网络。但是这次要把model锁定,训练过程中,model始终保持不变,而RPN的unique会被改变。
说明:第三步用的model是第二步训练完Fast-rcnn后的model。因为这一次的训练过程中,model始终保持和上一步Fast-rcnn中model一致,所以就称之为着共享。

第四步:仍然保持第三步的model不变,初始化Fast-rcnn,第二次训练Fast-rcnn网络。其实就是对其unique进行finetune,训练完毕,得到一个文中所说的unified network。
说明:这一步用的model和第三步用的model一样

这就是总体框架的描述,如果你理解了这些,再想深入内部细节的算法,就不会一头雾水,没有方向。至于细节算法,比如anchor,RoI等等可以参考其他博客文章,都写的不错,只不过从学习者角度来说,他们都把这些算法写在最前面,让学习者看的时候有些茫然。

转载于:https://www.cnblogs.com/-1339513141/p/8526984.html

(转)Faster R-CNN的训练过程的理解相关推荐

  1. Faster R CNN

    Faster R CNN 3 FASTER R-CNN 我们的Faster R CNN 由两个模块组成,第一个模块是 proposes regions 的全卷积网络,第二个是使用 proposed r ...

  2. 【patch】CNN中 patch 是什么?patch 在CNN学习训练中是怎么起作用的?

    在阅读基于深度卷积神经网络的图像识别.分类或检测的文献时经常看到"patch",不是很能理解,后来就总结了一下. 通过阅读,"patch"似乎是CNN输入图像的 ...

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

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

  4. R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型、通过method参数指定算法名称、通过trainControl函数控制训练过程

    R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型.通过method参数指定算法名称.通过trainControl函数控制训练过程 目录

  5. DL之CNN:基于CRNN_OCR算法(keras,CNN+RNN)利用数据集(torch,mdb格式)训练来实现新图片上不定长度字符串进行识别—训练过程

    DL之CNN:基于CRNN_OCR算法(keras,CNN+RNN)利用数据集(torch,mdb格式)训练来实现新图片上不定长度字符串进行识别-训练过程 目录 输出结果 设计思路 核心代码 输出结果 ...

  6. CV之IC之SpatialTransformer:基于ClutteredMNIST手写数字图片数据集分别利用CNN_Init、ST_CNN算法(CNN+ST)实现多分类预测案例训练过程记录

    CV之IC之SpatialTransformer:基于ClutteredMNIST手写数字图片数据集分别利用CNN_Init.ST_CNN算法(CNN+ST)实现多分类预测案例训练过程记录 目录 基于 ...

  7. R语言使用keras包实现包含多个全连接层的二分类预测模型:在模型训练过程中动态可视化每个epoch后的loss值以及accuray值

    R语言使用keras包实现包含多个全连接层的二分类预测模型:在模型训练过程中动态可视化每个epoch后的loss值以及accuray值 目录

  8. 360度无死角、近距离看「CNN」训练,是种什么体验?网友:美得不真实

    萧箫 鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 做计算机视觉,离不开CNN. 可是,卷积.池化.Softmax--究竟长啥样,是怎样相互连接在一起的? 对着代码凭空想象,多少让人有点 ...

  9. 卷积神经网络CNN如何训练?

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:量子位 AI博士笔记系列推荐 周志华<机器学习> ...

最新文章

  1. HDU1002(高精度模拟加法)
  2. Action 相关组件
  3. Alt + sysrq + REISUB doesn't reboot my laptop
  4. matlab人工势场法三维演示图,人工势场法(Artificial Potential Field Method)的学习
  5. mysql触发器 node_node.js中事件触发器events的使用
  6. Linux C 数据结构---线性表
  7. bzoj2819: Nim(博弈+树剖)
  8. Linux学习总结(37)——CentOS7下Firewall防火墙配置用法详解
  9. 电脑重启后不必输入用户名密码,直接自己登入的方法
  10. MySQL与Oracle的数据迁移注意事项,另附转换工具链接
  11. equals方法的小结
  12. Nginx从入门到精通(全)
  13. SQL Server 2008 R2 安装及登录
  14. ShareX:一款你值得拥有的截图识别工具
  15. Mit6.S081-xv6参考书翻译
  16. Windows 小技巧10--Windows常见软件、系统配置
  17. latex出现File ended while scanning use of \frame.错误
  18. 一切钻空子的行为最后都会惨淡收场
  19. 治精神疾病不能光靠吃药,还要学会自救
  20. C语言——计算数组长度

热门文章

  1. Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳...
  2. JavaScriptDom操作与高级应用(八)
  3. Java连接SQLite数据库
  4. Spring 定时器结合线程池
  5. 数据可视化js框架 d3.js入门
  6. node.js调用外部接口
  7. Linux---多线程
  8. 有人回嘴顶撞过驾校教练吗?后果怎样?
  9. 一个女人在公司做领导是如何在4年内做到年薪200万的?
  10. 湿气重的人,脸上会有哪些信号?