FasterRcnn

FasterRCNN主体步骤

1:首先对图像缩放至固定的大小M*N,然后将图像送入到网络中。

2:通过VGG或者Resnet等其他网络提取特征图(Feature Map)。另外进行初始化anchors并找出有效的anchors(Step1)。

3: 特征图(Feature Map)通过RPN网络(Region Proposal Networks)获得有效的Anchor 置信度和与预测框的坐标系数。2K(正样本和负样本x K个anchor系数)个scores和4K(anchor的坐标偏移系数x K个anchor系数 )个coordinates。

4:将特征图以及预测框计算出的Proposal通过ROI Pooling获取固定尺寸的预测目标特征图,即利用预测框,从特征图中将目标扣取出。

参考上面参数

  • proposal是对应这M*N尺度的,所以首先使用Spatial_Scale将其映射回(M/16)*(N/16)大小的Feature Map。
  • 再将其特征图Feature Map 均分为Pooled_w*Pooled_H尺寸的的网格大小
  • 再对每一个网络进行max pooling的操作进行输出。
  • 这样就可以保证输出的尺寸大小是统一的。

5:固定尺寸的Feature Map送入到全连接层和softmax中进行分别预测BOX_Pred以及Cls_Prob

详细推导举例

Step1:输入图片Reshape为800*800尺寸大小。

现将图片划分为网格。设每个网格像素面积为16*16  那么网格划分为800/16=50,那么网格大小为50*50。同时每一个网格生成K=9的anchros 。那么一张图片同时生成22500个anchors。

同时因为anchors因为具有不同的尺寸大小,必定会有部分anchors 超过边界框或者为负值。那么需要将此部分的边界框进行剔除。

经过剔除后还剩8940个anchors。获取边界框的坐标值,完成初始化

再将所有的anchors与真实的GT进行IOU的计算。并筛选一定比例的正样本与负样本。

Step2: 进行VGG得到特征图,再将特征图送入到RPN网络中。重复step1中的一步

现将图片划分为网格。设每个网格像素面积为16*16  那么网格划分为800/16=50,那么网格大小为50*50。同时每一个网格生成K=9的anchros 。那么一张图片同时生成22500个anchors。

对于这22500个anchors 分别得到每个anchors的2个(正样本1负样本0)置信度以及每个anchors相对于原始图片的四个坐标偏移值。

Step3:计算RPN损失(有效的anchors和预测anchors之间的损失-坐标&置信度)

通过Step1中的目标anchors信息和Step2中的pred_anchors信息。主要计算step1中正样本的anchors和step2中对应的anchors 的损失值。

Step4: IOUNMS

根据anchors和预测的anchors系数,计算预测框ROI以及坐标系数和所属类别。得到的ROI预测框再经过NMS(非极大值抑制)做进一步的过滤精简。

Step5:ROI Pooling

一:从特征图中根据ROI把相应的预测目标扣取处理

二:将扣取处理的预测目标通过adaptive_max_pool方法,输出为固定尺寸,方便后续批处理。

STep6&Step7:计算损失

分别计算预测框的类别置信度和转换为目标框的平移缩放系数以及分类损失

FasterRcnn 原理解析相关推荐

  1. 图像理解之物体检测object detection,模型rcnn/fastrcnn/fasterrcnn原理及概念

    A,https://www.cnblogs.com/zhengzhe/p/7783270.html RCNN选择性搜索(Selective Search) RCNN选择性搜索(Selective Se ...

  2. Spark Shuffle原理解析

    Spark Shuffle原理解析 一:到底什么是Shuffle? Shuffle中文翻译为"洗牌",需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个计算节 ...

  3. 秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七)

    2019独角兽企业重金招聘Python工程师标准>>> 上节概要: 上节 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及分库分散并发方案(十六)  中, 介绍了 ...

  4. Tomcat 架构原理解析到架构设计借鉴

    ‍ 点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 Tomcat 架构原理解析到架构设计借鉴 Tomcat 发展这 ...

  5. 秋色园QBlog技术原理解析:性能优化篇:数据库文章表分表及分库减压方案(十五)...

    文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色 ...

  6. CSS实现元素居中原理解析

    原文:CSS实现元素居中原理解析 在 CSS 中要设置元素水平垂直居中是一个非常常见的需求了.但就是这样一个从理论上来看似乎实现起来极其简单的,在实践中,它往往难住了很多人. 让元素水平居中相对比较简 ...

  7. 秋色园QBlog技术原理解析:Web之页面处理-内容填充(八)

    文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色 ...

  8. 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三)

    文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 本节,将从 ...

  9. Android之Butterknife原理解析

    转载请标明出处:[顾林海的博客] 个人开发的微信小程序,目前功能是书籍推荐,后续会完善一些新功能,希望大家多多支持! ##前言 Butterknife是一个专注于Android系统的View注入框架, ...

最新文章

  1. [CLPR] 用于加速训练神经网络的二阶方法
  2. OpenGL:ImGUI在GLFW库和GLAD/GLEW库的环境下使用
  3. matlab私有函数,MATLAB 嵌套函数,子函数,私有函数,重载函数
  4. python中s和t是两个集合、对s|t描述正确的是_全国计算机等级考试二级教程--python语言程序设计(2018年版)第六章:组合数据类型...
  5. java List接口
  6. query string parameters什么意思_public static void main(String[] args) 是什么意思?(转)...
  7. Redis学习笔记01---配置文件
  8. excel合并多个工作表_excel中汇总多个工作表数据的神器——合并计算
  9. Stereoscopic Player 1.7.4 (SSP) 加载字幕
  10. 线性回归--深度学习
  11. 每日一题/014/三角函数/和差化积/求证:cos 2+cos 4+cos 6+...+cos 2n=sin ncos(n+1)/sin1
  12. spring 注入 list和map及enum映射
  13. 深度学习与计算机视觉教程(18) | 深度强化学习 (梯度策略,Actor-Critic,DDPG,A3C)(CV通关指南·完结)
  14. 移动硬盘显示拒绝访问文件怎样找到
  15. goldwave简单使用
  16. 本科毕业论文论文框架,可参考
  17. 喜马拉雅自研网关架构演进过程
  18. VxWorks学习笔记一 ------Bootrom和VxWorks镜像的引导
  19. android开发实例之minitwitter登录界面+代码,登录界面_记住密码
  20. Logistics回归模型

热门文章

  1. 帝国CMS7.5仿《完美游戏台》游戏视频网站源码
  2. 重积分和线面积分总结
  3. 打印1~200之间的素数(质数)c语言
  4. LATeX 插入脚注
  5. pdf417条码解码(上)——图像的预处理
  6. 海外置业迪拜伊玛尔房产注意事项
  7. pb全局变量在哪定义
  8. 基于AT89C52单片机的万年历设计与仿真
  9. KITTI数据集-label解析
  10. python封装成exe win7不能用_pyinstaller打包python的执行文件如何在32位和64位操作系统下也能运行...