RoIPooling

Faster-RCNN简述

 讲到ROIPooling就想提到Faster-RCNN,就简单讲述Faster-RCNN。
Faster RCNN可以分为4个主要内容:

  1. Conv layers:作为一种CNN网络提取图像特征方法,Faster RCNN首先使用一组基础的conv+relu+pooling层提取image的feature maps。该feature maps被共享用于后续RPN层和全连接层。
  2. Region Proposal Networks(RPN):RPN网络用于生成region proposals。通过softmax判断anchors属于positive或者negative,同时利用bounding box regression修正anchors获得精确的proposals。
  3. RoI Pooling:该层收集输入的feature maps和proposals,综合这些信息后提取proposal feature maps,送入后续全连接层判定目标类别。
  4. Classification:利用proposal feature maps计算proposal的类别,同时再次bounding box regression获得检测框最终的精确位置。
    如下图:

RoIPooling

 对于传统的CNN(如AlexNet和VGG),当网络训练好后输入的图像尺寸必须是固定值,同时网络输出也是固定大小的向量或者矩阵。如果输入的图像大小不固定,这就有问题。于是引出了RoIPooling。

如上图:

  1. Conv layers使用的是VGG16,feat_stride=32(即表示,经过网络层后图片缩小为原图的1/32),原图800800,最后一层特征图feature map大小为2525。
  2. )假定原图中有一个region proposal,大小为665665,这样,映射到特征图中的大小:665/32=20.78,即20.7820.78,在计算的时候会进行取整操作,于是,进行所谓的第一次量化,即映射的特征图大小为20*20。
  3. 假定pooled_w=7,pooled_h=7,即pooling后固定成77大小的特征图,所以,将上面在 feature map上映射的2020的 region proposal划分成49个同等大小的小区域,每个小区域的大小20/7=2.86,即2.862.86,此时,进行第二次量化,故小区域大小变成22。
  4. 每个22的小区域里,取出其中最大的像素值,作为这一个区域的‘代表’,这样,49个小区域就输出49个像素值,组成77大小的feature map
     总结,通过上面可以看出,经过两次量化,即将浮点数取整,原本在特征图上映射的2020大小的region proposal,偏差成大小为1414的,这样的像素偏差势必会对后层的回归定位产生影响。

RoIAlign


 按照图中来看,800* 800的原图下采样后可以得到25* 25的特征图,但是图中的狗665* 665经过下采样不是整数。同样的在映射7* 7模块时,也不是整数,所以也有截断误差。直观上20.78和20差不多,但是反向看一下0.78* 32=24.96,再加上后面一步的截断,叠加起来,将是一个很大的区域。
 上述的误差对于预测掩膜位置是不利的,对物体框的预测也是不利的,但是物体有回归这一步,所以检测效果还是可以提升的。RoIAlign将直接保存浮点数,最终计算的时候根据双线性插值来计算


以上图为例子,上图设置的bin个数为2\ast 2,即未截断计算得到的尺寸(图中黑色线)等分成四份。在bin中选取4个点,这四个点的值根据围成它的网格(实际的特征)四个值,利用双线性插值完成赋值,最终每个bin按照最大值或者平均值作为代表。完成7\ast 7固定尺寸。

参考:https://www.cnblogs.com/codehome/p/10910180.html
参考:https://blog.csdn.net/chao_shine/article/details/85917280

什么是RoIPooling和ROIAlign相关推荐

  1. 一文读懂 RoIPooling、RoIAlign 和 RoIWarp

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 1 导读 本文详细讲解了 RoIPooling .RoIAlign ...

  2. RoIPooling和RoIAlign

    在本博客中,对RoIPooling讲的会少一点点,可以参考之前的博客:ROI 详解. 一).RoIPooling 这个可以在Faster RCNN中使用以便使生成的候选框region proposal ...

  3. 深度学习: 从 RoIPooling 到 RoIAlign

    版权声明:转载请注明出处    https://blog.csdn.net/JNingWei/article/details/78822159 SPP Layer 对RoI进行pooling的操作最早 ...

  4. 什么是RPN,ROIAlign?

    RPN RPN RPN RPN(Region Proposal Network)用来产生Regin Proposal(前景框,候选区域,检测框(Faster RCNN 直接拿来做检测框) Regin ...

  5. CVPR2020论文介绍: 3D 目标检测高效算法

    CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...

  6. 达摩院实现自动驾驶核心技术突破,达摩院首次实现3D物体检测精度与速度的兼得

    阿里巴巴达摩院在自动驾驶3D物体检测领域取得了新突破!达摩院近期一篇论文入选计算机视觉顶会CVPR 2020,该论文提出了一个通用.高性能的自动驾驶检测器,首次实现3D物体检测精度与速度的兼得,有效提 ...

  7. 有望替代卷积神经网络?微软最新研究提基于关系网络的视觉建模

    导语:最近两年,自注意力机制.图和关系网络等模型在NLP领域刮起了一阵旋风,基于这些模型的Transformer.BERT.MASS等框架已逐渐成为NLP的主流方法.这些模型在计算机视觉领域是否能同样 ...

  8. 最全综述 | 图像目标检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 前言 图片分类任务我们已经熟悉了,就是算法对其中的对象进行分类.而 ...

  9. CVPR2020 3D目标检测 PV-RCNN

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文由知乎作者不一样的子湘授权转载,不得擅自二次转载.原文链接:https://zhuanlan.zh ...

最新文章

  1. 高考成绩查询2021艺术类6,2021年高考成绩6月26日左右可查!
  2. lambda ::_Lambdas中的例外:有点混乱的优雅解决方案
  3. UICollectionViews有了简单的重排功能
  4. 5 款漏洞扫描工具:实用、强力、全面(含开源)
  5. 医院信息系统培训心得
  6. 没有搭讪的人生是不完整的
  7. python爬虫用AI技术-破解企业工商数据抓取+网络爬虫+网站数据采集+数据抓取遇到的三大问题
  8. 蓝桥杯 7-2求arccos值 C++算法提高 HERODING的蓝桥杯之路
  9. 「深度」视觉的层次化处理过时了吗?
  10. 自动阅读教程--五条app
  11. 复杂事件处理(CEP)的理解(上)
  12. UGUI - 制作九宫贴图
  13. 为什么使用双亲委派机制以及如何破坏双亲委派
  14. 关于计算机方面的一些数学书
  15. 鸡兔同笼python程序怎么写_属鸡-生肖鸡-属鸡人的命运-华易算命网
  16. 产品经理必会的10种数据分析方法
  17. 【考研精品词】历年英语真题词汇精析
  18. 《 线性代数及其应用 (原书第4版)》—— 导读
  19. python实现批量的IP地址,或地址段的排序并按照CIDR格式最小化聚合。
  20. 微信小程序textArea输入框随着输入字数自适应高度

热门文章

  1. 专家的恐惧与专家的“反恐”--关于MDA的一篇评论
  2. [蓝桥杯python] 粘木棍:有N根木棍,需要将其粘贴成M个长木棍,使得最长的和最短的的差距最小。
  3. mysql状态监听_Mysql数据状态监听探讨(攒人品)_MySQL
  4. 白鹭引擎的微信分享接口
  5. 苹果新Apple TV出现Bug如何解决?
  6. c语言中变量r存放当前n值,C语言课件(王曙燕)chp3 算法和基本程序设计.ppt
  7. 【机器学习】之 主成分分析PCA
  8. 动态创建表,并批量入库表数据(字段在程序运行之前未知)
  9. 【BugKu-CTF论坛writeup(杂项)】图穷匕见
  10. Linux学习记录二——文件导航