关于Faster-RCNN训练细节
Faster RCNN训练:
四部训练法:
Faster R-CNN,可以大致分为两个部分,一个是RPN网络,另一个是Fast R-CNN网络,前者是一种候选框(proposal)的推荐算法,而后者则是在此基础上对框的位置和框内的物体的类别进行细致计算。首先训练 RPN,用 RPN 输出的 proposals 训练 Fast R-CNN。Fast R-CNN 精调后用于初始化 RPN 网络参数,如此循环迭代。
不管是RPN还是Fast R-CNN网络,其网络结构一部分来自于共享的卷积层(下文简称 共享cov),另一部分则是他们各自特有的结构。
这里,我主要讲的就是训练过程。
第一步:用 Imagenet 初始化共享cov 部分初始化RPN网络,然后训练RPN,在训练后,共享cov以及RPN的特有部分参数会被更新。
第二步:用Imagenet 初始化共享cov 部分初始化Fast-rcnn网络,这里是重新初始化。然后使用训练过的RPN来计算proposal,再将proposal给予Fast-rcnn网络。接着训练Fast-rcnn。训练完以后,共享cov 以及Fast-rcnn的特有部分都会被更新。
说明:第一和第二步,用同样的COV初始化RPN网络和Fast-rcnn网络,然后各自独立地进行训练,所以训练后,各自对cov的更新一定是不一样的(论文中的different ways),因此就意味着model是不共享的(论文中的dont share convolution layers)。
第三步:使用第二步训练完成的 共享cov 来初始化RPN网络,第二次训练RPN网络。但是这次要把 共享cov 锁定,训练过程中,model始终保持不变,而RPN的unique会被改变。
说明:因为这一次的训练过程中, 共享cov始终保持和上一步Fast-rcnn中共享cov一致,所以就称之为着共享。
第四步:仍然保持第三步的 共享cov不变,初始化Fast-rcnn,第二次训练Fast-rcnn网络。其实就是对其特有部分进行finetune,训练完毕,得到一个文中所说的unified network。
anchor如何生成?:https://blog.csdn.net/sinat_33486980/article/details/81099093
参考:https://blog.csdn.net/weixin_40449426/article/details/78141635
关于Faster-RCNN训练细节的更多相关文章
- 如何才能将Faster R-CNN训练起来?
如何才能将Faster R-CNN训练起来? 首先进入 Faster RCNN 的官网啦,即:https://github.com/rbgirshick/py-faster-rcnn#installa ...
- caffe学习三:使用Faster RCNN训练自己的数据
本文假设你已经完成了安装,并可以运行demo.py 不会安装且用PASCAL VOC数据集的请看另来两篇博客. caffe学习一:ubuntu16.04下跑Faster R-CNN demo (基于c ...
- faster rcnn训练详解
http://blog.csdn.net/zy1034092330/article/details/62044941 py-faster-rcnn训练自己的数据:流程很详细并附代码 https://h ...
- faster rcnn训练自己的数据集
采用Pascal VOC数据集的组织结构,来构建自己的数据集,这种方法是faster rcnn最便捷的训练方式
- python3 + Tensorflow + Faster R-CNN训练自己的数据
之前实现过faster rcnn, 但是因为各种原因,有需要实现一次,而且发现许多博客都不全面.现在发现了一个比较全面的博客.自己根据这篇博客实现的也比较顺利.在此记录一下(照搬). 原博客:http ...
- Faster RCNN 的细节补充
一.faster rcnn的结构 通过上面的结构,我们知道该faster rcnn前面以VGG16为框架,加入RPN层,最后做分类层. 采用VGG16相对ZF来说慢一点,但是精度也高一点. 二.RPN ...
- Faster Rcnn训练自己的数据集过程大白话记录
声明:每人都有自己的理解,动手实践才能对细节更加理解! 一.算法理解 此处省略一万字.................. 二.训练及源码理解 首先配置: 在./lib/utils文件下....运行 p ...
- caffe 用faster rcnn 训练自己的数据 遇到的问题
1 . 怎么处理那些pyx和.c .h文件 在lib下有一些文件为.pyx文件,遇到不能import可以cython 那个文件,然后把lib文件夹重新make一下. 遇到.c 和 .h一样的操作. 2 ...
- faster rcnn训练过程讲解
http://blog.csdn.net/u014696921/article/details/60321425
- Faster R-CNN利用新的网络结构来训练
前言 最近利用Faster R-CNN训练数据,使用ZF模型,效果无法有效提高.就想尝试对ZF的网络结构进行改造,记录下具体操作. 一.更改网络,训练初始化模型 这里为了方便,我们假设更换的网络名为L ...
随机推荐
- [CSP-S模拟测试]:二叉搜索树(DP+贪心)
题目传送门(内部题99) 输入格式 第一行一个整数$n$,第二行$n$个整数$x_1\sim x_n$. 输出格式 一行一个整数表示答案. 样例 样例输入: 58 2 1 4 3 样例输出: 数据范围 ...
- Hands-on ML and TF Chapter16 Reinforcement Learning
Policy Granients import tensorflow as tf reset_graph() n_inputs = 4 n_hidden = 4 n_outputs = 1 learn ...
- postgres的数据库备份和恢复
备份和恢复 一条命令就可以解决很简单: 这是备份的命令: pg_dump -h 127/0.0.1 -U postgres databasename > databasename.bak 指令解 ...
- JS基础_原型对象
原型prototype 我们创建的每一个函数,解析器都会向函数中添加一个属性prototype 这个属性,对应着一个对象,这个对象就是我们所谓的原型对象 1.如果函数作为普通函数调用prototype ...
- python基础_0623
命名的规则: project name package name python file name 1. 不能以数字开头,不能使用中文 2. 不能使用关键字 3. 英文 字母 ...
- [go]beego获取参数/返回参数
获取前端传来的参数 获取数据并转为对应的类型 - ?id=111&id=122 c.GetInt("id") int,111 - ?id=111&id=122 c. ...
- 七十三:flask信号之信号机制和使用场景
若安装flask是未默认安装blinker,则pip install blinker 使用信号分为3步,第一是定义一个信号,第二是监听一个信号,第三是发送一个信号 1.定义信号:定义信号需要使用到bl ...
- java源码-Semaphore源码分析
Semaphore内部Sync对象同样也是继承AQS,跟Reentrant一样有公平锁跟非公平锁区分,但是Semaphore是基于共享锁开发,Reentrant是基于独占锁开发.主要就是初始化Sema ...
- Kibana 创建索引 POST 403 (forbidden) on create index
一.问题描述: Kibana创建索引:kibana > management > index patterns > create index pattern 索引名称: mercha ...
- 通过正则把文本里的链接加上a标签
把文本里的链接替换成a标签 function addLinks($text) { return preg_replace('/(http[s]?:\/\/[A-Za-z0-9]+\.[A-Za-z0- ...