Fater-Rcnn原理详解
Fast rcnn在cpu上用ss提取region proposal,将提取的region proposal用于cnn提取特征。为了将提取region proposal的部分转移到gpu进行操作,作者将cnn可以用来提取特征想法与提取region proposal结合起来,将提取的特征映射回原图提取proposal。
Faster Rcnn的整个流程图如下
一、RPN(region proposal network)
1.将输入图像进行reshape成MXN (800X600),并将reshape的信息储存到 im_info
2.将reshape后的图像输入到conv layer提取Feature Map(800/16 X600/16 = 50 X 38,下采样16次)
3.将Feature Map进行sliding window式的多通道图像卷积(filter = 3),历遍每一个点。
具体是将每一个点映射回MXN的图像中,以该点为中心预测9个anchor boxes,
anchor box128、256、512三个尺寸,以及radio为(0.5 ,1,2)
所以anchor box的最小尺寸为64 X 64,最大为1024X1024,(这两个数据可能有误)可以cover图中的各种尺度
4.将得到的anchor boxes分别输入到softmax网络和bbox regression网络进行打分
softmax网络用于判定anchor boxes中的物体是属于foreground还是background)
(18的原因是9个anchor box的尺寸,每个都有是前景与背景的两种可能)
(
foreground与background的判断
与任意GT相比,拥有最高的IOU的anchor为前景(可以低于0.7)
与任意GT相比,IOU>0.7为前景
与任意GT相比,IOU<0.3为背景
其余的非负非正,则没有用
)
bbox regression网络用于对anchor boxes进行初步微调
(36 的原因是9个anchor box的尺寸,每个都有对应的4个偏移量)
5.将softmax网络得到的fg、bg参数、bbox regression网络得到的4个偏移量、参数feat_stride=16以及im_info中的内容结合在一起得到,得到来自原图的proposals
得到的proposals太多了,要用对得到的proposal进行筛选
①生成anchors,利用对所有的anchors做bbox regression回归(这里的anchors生成和训练时完全一致)
②提取修正位置后的foreground anchors
③限定超出图像边界的foreground anchors为图像边界(防止后续roi pooling时proposal超出图像边界)
④剔除非常小(width<threshold or height<threshold)的foreground anchors
⑤进行nonmaximum suppression
⑥再次按照nms后的foreground softmax scores由大到小排序fg anchors,提取前post_nms_topN(e.g. 300)结果作为proposal输出(注意:这里的输出)
二、proposals提取后进入Fater RCNN进行训练
相当于另外一种RPN 与 Fast-Rcnn的联合训练
实际中训练过程分为6个步骤:
- 在已经训练好的model上,训练RPN网络,对应stage1_rpn_train.pt
- 利用步骤1中训练好的RPN网络,收集proposals,对应rpn_test.pt
- 第一次训练Fast RCNN网络,对应stage1_fast_rcnn_train.pt
- 第二训练RPN网络,对应stage2_rpn_train.pt
- 再次利用步骤4中训练好的RPN网络,收集proposals,对应rpn_test.pt
- 第二次训练Fast RCNN网络,对应stage2_fast_rcnn_train.pt
参考于:https://zhuanlan.zhihu.com/p/31426458
Fater-Rcnn原理详解相关推荐
- 目标检测系列——开山之作RCNN原理详解
- 【原创】R-CNN及Selective Search原理详解
R-CNN原理详解: 候选区域生成 Selective Search方法 算法流程 计算相似度 给区域打分 特征提取 类别判定 位置调整 总结 R-CNN论文链接: R-CNN R-CNN将CNN引入 ...
- CRF(条件随机场)与Viterbi(维特比)算法原理详解
摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...
- LVS原理详解(3种工作方式8种调度算法)--老男孩
一.LVS原理详解(4种工作方式8种调度算法) 集群简介 集群就是一组独立的计算机,协同工作,对外提供服务.对客户端来说像是一台服务器提供服务. LVS在企业架构中的位置: 以上的架构只是众多企业里面 ...
- jQuery中getJSON跨域原理详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp28 jQuery中getJSON跨域原理详解 前几天我再开发一个叫 河蟹工 ...
- nginx配置文件及工作原理详解
nginx配置文件及工作原理详解 1 nginx配置文件的结构 2 nginx工作原理 1 nginx配置文件的结构 1)以下是nginx配置文件默认的主要内容: #user nobody; #配置用 ...
- EMD算法之Hilbert-Huang Transform原理详解和案例分析
目录 Hilbert-Huang Transform 希尔伯特-黄变换 Section I 人物简介 Section II Hilbert-Huang的应用领域 Section III Hilbert ...
- 图像质量损失函数SSIM Loss的原理详解和代码具体实现
本文转自微信公众号SIGAI 文章PDF见: http://www.tensorinfinity.com/paper_164.html http://www.360doc.com/content/19 ...
- 目标检测 RCNN算法详解
原文:http://blog.csdn.net/shenxiaolu1984/article/details/51066975 [目标检测]RCNN算法详解 Girshick, Ross, et al ...
- 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解
前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...
最新文章
- python交叉编译第三方库_第三方库交叉编译
- Oracle数据库空间管理
- 浅析Web2.0技术
- JavaScript怎么上传图片
- ogg批量配置_Macos上一款批量文件重命名工具A Better Finder Rename 11
- c语言编写modbus程序,C语言编写modbus协议
- 抓取流量分析恶意软件或泄密流量(精)
- python_9(模块补充)
- cesium加载批量模型
- 计算机专业的八字,生辰八字自动计算器软件 生辰八字在线计算器
- Mac 平台下功能强大的Shimo软件使用指南
- 软件是怎么开发出来的?怎么进行软件开发流程详解
- 苹果6plus一直没信号服务器,苹果6sPlus信号弱或者无服务解决方法
- 当我们讨论“平台”,我们在说什么
- 在虚拟机上跑vxworks的总结
- 乐普生物再递表背后:连年巨亏,暂未放弃A股,最多撑到年底?
- 深度学习目标检测 RCNN F-RCNN SPP yolo-v1 v2 v3 残差网络ResNet MobileNet SqueezeNet ShuffleNet
- MySQL——数据库 ——简单程序代码大全
- Ceph原理、部署、存储集群、块存储及对象存储centos7.5
- python3.9下错误,pip安装matplotlib卡在Building wheel for matplotlib (setup.py)..不动的原因与解决
热门文章
- 电脑按键坏掉之后的解决办法
- c语言动态分配内存keil,keil5中结构体分配内存问题
- 使用openCV进行边缘检测、二值化、轮廓、轮廓检测、BGR、灰度图、二值化,专栏:各种openCV实践的案例
- Windows11 Windows安全中心无法打开 Windows Defender无法打开
- SYD88811新DTM测试
- 氮化镓 服务器电源管理系统报价,基于LMG341x GaN FET的服务器电源单元(PSU)电路设计...
- 程序员年底失业,到底是该年前找工作好还是年后找工作好?
- Premiere Pro 快捷键大全(2023版)
- Python下安装Pywifi进行WiFi密码破解
- AcWing 285. 没有上司的舞会