关于RoI pooling 层
ROIs Pooling顾名思义,是pooling层的一种,而且是针对ROIs的pooling;
整个 ROI 的过程,就是将这些 proposal 抠出来的过程,得到大小统一的 feature map。
什么是ROI呢?(https://www.sogou.com/link?url=DOb0bgH2eKh1ibpaMGjuyy_CKu9VidU_Nm_z987mVIMm3Pojx-sH_PfgfR9iaaFcn666hxi--_g.)
ROI是Region of interest的简写,指的是faster rcnn结构中,经过rpn层后,产生的proposal对应的box框。
ROI Pooling的输入
输入有两部分组成:
1. data:指的是进入RPN层之前的那个Conv层的Feature Map,通常我们称之为“share_conv”;
2. rois:指的是RPN层的输出,一堆矩形框,形状为1x5x1x1(4个坐标+索引index),其中值得注意的是:坐标的参考系不是针对feature map这张图的,而是针对原图的(神经网络最开始的输入)
ROI Pooling的输出
输出是batch个vector,其中batch的值等于roi的个数,vector的大小为channelxwxh;ROI Pooling的过程就是将一个个大小不同的box矩形框,都映射成大小为wxh的矩形框;

如图所示,我们先把roi中的坐标映射到feature map上,映射规则比较简单,就是把各个坐标除以输入图片与feature map的大小的比值,得到了feature map上的box坐标后,我们使用pooling得到输出;由于输入的图片大小不一,所以这里我们使用的spp pooling,spp pooling在pooling的过程中需要计算pooling后的结果对应的两个像素点反映社到feature map上所占的范围,然后在那个范围中进行取max或者取average。
---------------------
(https://www.sogou.com/link?url=44aejrzSKwWwrNJcKKLVtEK1rJUb32uHp37TwbVHvja5OaZX_AHBzQ..)
TensorFlow的pool layer是固定大小的

(https://www.sogou.com/link?url=DSOYnZeCC_rR_TP93bdO6GxT14t4sbuOSwJr4L_oLI5lf9NGYfOU6pULrym3hTBVtsCnpVGpPpA.)
RoI Pooling就是实现从原图区域映射到conv5区域最后pooling到固定大小的功能。
输入,b0 为卷积的feature map,b1 为rois。
Reshape
Forward(向前传播)
backward(反向传播)
(https://www.sogou.com/link?url=DSOYnZeCC_rR_TP93bdO6GxT14t4sbuOSwJr4L_oLI5lf9NGYfOU6pULrym3hTBVtsCnpVGpPpA.)
我们知道在Faster R-CNN中,对于每个ROI(文中叫candidate object)主要有两个输出,一个输出是分类结果,也就是预测框的标签;另一个输出是回归结果,也就是预测框的坐标offset。而Mask R-CNN则是添加了第三个输出:object mask,也就说对每个ROI都输出一个mask,该支路是通过FCN网络(如Figure1中的两个卷积层)来实现的。以上这三个输出支路相互之间都是平行关系,相比其他先分割再分类的实例分割算法相比,这种平行设计不仅简单而且高效。
---------------------
作者:AI之路
来源:CSDN
原文:https://blog.csdn.net/u014380165/article/details/81878644
大致回顾下ROI Pool层的操作:
ROI Pool的输入是ROI的坐标和某一层的输出特征,不管是ROI Pool还是ROIAlign,目的都是提取输出特征图上该ROI坐标所对应的特征。RPN网络得到的ROI坐标是针对输入图像大小的,所以首先需要将ROI坐标缩小到输出特征对应的大小,假设输出特征尺寸是输入图像的1/16,那么先将ROI坐标除以16并取整(第一次量化),然后将取整后的ROI划分成H*W个bin(论文中是 7*7,有时候也用14*14),因为划分过程得到的bin的坐标是浮点值,所以这里还要将bin的坐标也做一个量化,具体而言对于左上角坐标采用向下取整,对于右下角坐标采用向上取整,最后采用最大池化操作处理每个bin,也就是用每个bin中的最大值作为该bin的值,每个bin都通过这样的方式得到值,最终输出的H*W大小的ROI特征。从这里的介绍可以看出ROI Pool有两次量化操作,这两步量化操作会引入误差。
---------------------
作者:AI之路
来源:CSDN
原文:https://blog.csdn.net/u014380165/article/details/81878644
关于RoI pooling 层的更多相关文章
- ROI Pooling层详解
目标检测typical architecture 通常可以分为两个阶段: (1)region proposal:给定一张输入image找出objects可能存在的所有位置.这一阶段的输出应该是一系列o ...
- 【ROI Pooling】ROI Pooling层详解(转)
原文链接:https://blog.deepsense.ai/region-of-interest-pooling-explained/ 目标检测typical architecture 通常可以分为 ...
- roi pooling层
roi pooling是先进行roi projection(即映射)然后再池化 映射是把用来训练的图片的roi映射到最后一层特征层(即卷积层).方法其实很简单,图片经过特征提取后,到最后一层卷积层时, ...
- Pytorch中RoI pooling layer的几种实现
Faster-RCNN论文中在RoI-Head网络中,将128个RoI区域对应的feature map进行截取,而后利用RoI pooling层输出7*7大小的feature map.在pytorch ...
- ROI POOLING 介绍
转自 https://blog.csdn.net/gbyy42299/article/details/80352418 Faster rcnn的整体构架: 训练的大致过程: 1.图片先缩放到MxN的尺 ...
- 【转】ROI Pooling
Faster rcnn的整体构架: 训练的大致过程: 1.图片先缩放到MxN的尺寸,之后进入vgg16后得到(W/16,H/16)大小的feature map: 2.对于得到的大小为(W/16,H/1 ...
- ROI pooling
R-CNN需要大量的候选框,对每个候选框都提取特征,速度很慢,无法做到实时检测,无法做到端到端.ROI pooling层实现training和testing的显著加速,并提高检测accuracy. R ...
- TensorFlow中max pooling层各参数的意义
官方教程中没有解释pooling层各参数的意义,找了很久终于找到,在tensorflow/python/ops/gen_nn_ops.py中有写: def _max_pool(input, ksize ...
- caffe之(二)pooling层
在caffe中,网络的结构由prototxt文件中给出,由一些列的Layer(层)组成,常用的层如:数据加载层.卷积操作层.pooling层.非线性变换层.内积运算层.归一化层.损失计算层等:本篇主要 ...
随机推荐
- Maven编译、打war包
Eclipse环境,每次alt+F5刷新Maven项目时,总是会把项目的Java依赖刷新成1.5. 解决办法:在pom中加入如下片段 <plugin> <groupId>org ...
- CF1012B Chemical table 构造_思维_并查集
我们可以将横坐标和纵坐标看成是点.发现这些点之间是有传递性的. 题中说明,如果有矩阵中三个顶点被选,则底角的点也会被覆盖,发现这些点之间是有传递性的.那么我们最终达到的目的就是使整个图中只有 111 ...
- 按时间划分备份MySQL脚本
按时间划分备份MySQL脚本 #!/bin/bash BASE_PATH=/data/dump/ JIRA_FILE_NAME=ZY798-`date +%Y%m%d%H%M%S`; cd /usr/ ...
- .net基础总复习(3)
第三天 2.单例模式 1) 将构造函数私有化 2) 提供一个静态方法,返回一个对象 3) 创建一个单例 3.XML 可扩展的标记语言 XML:存储数据 注意: XML严格区分大小写,并且成对出现 ...
- Jmeter中模拟多用户执行多场景操作
1.其实一个用户组就是一个场景(Thread Group).可以在一个测试计划中进行多个场景的执行,在测试计划下加一个全局的User Defined Variables,在这个里面可以设置执行总数to ...
- javascript编程风格(粗略笔记)
1.空格 紧凑型: project.MyClass = function(arg1, arg2){ 松散型: for( i = 0; i < length; i++ ){ 2.代码行长度 最多8 ...
- 如何解决zabbix中自定义监控mysql因密码造成的 Warning
1.--show-warnings=false 在指定mysql命令获取参数时,指定不获取 Warning.不过亲测这个方法不是很有效 例如: mysql -uroot -p123 --show-wa ...
- [terry笔记]学校管理系统
如下是要求: # 角色:学校.学员.课程.讲师# 要求:# 1. 创建北京.上海 2 所学校# 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上 ...
- GNU Linux中的SO_RCVLOWAT和SO_SNDLOWAT说明
/********************************************************************* * Author : Samson * Date ...
- D3js-绘制地图时出现过小, 设置scale还是无效 的解决方法
使用d3绘制某个地市的地图时,把scale成非常大但是还是无法达到想要的效果. //---------------------------------------------------------- ...