提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

ROI Pool、ROI Align、PSROI Pool、PrROI Pool

  • 基本概念
  • 一、ROI Pool
  • 二、ROI Align
  • 三、PSROI Pool
  • 四、PrROI Pooling(Precise RoI Pooling )

基本概念

ROI
RoI(Region of Interest)是通过不同区域选择方法,从原始图像(original image)得到的兴趣区域,为进一步生成bounding box做准备。

bounding box
是指检测到目标的边界矩形框,由ROI生成。

量化
量化(quatization)是指将输入从连续值(或大量可能的离散取值)采样为有限多个离散值的过程。也可以理解为,将输入数据集(如实数)约束到离散集(如整数)的过程。


一、ROI Pool

RoiPooling的工作原理

1.通过VGG16网络,对原图尺寸为800×800进行卷积池化的操作,最终生成25×25;
2.其中有一张665×665的图片进行同样的卷积池化操作,理论上产生20.78×20.78的特征图,但计算机计算的时候,自动取整,生成了20×20的操作(第一次量化);
3.通过ROI pooling层,需要将所有的图片卷积成7×7的图片时,理论上要生成7×7的图片,20/7=2.86,以2.86×2.86形成49个格子,然后每个格子里取最大值(以最大池化为例子),但2.86无法实现,进行了 第二次量化 ,以2×2为一个小格子;
最终得到7×7的特征图,但经过了两次池化,对于分类效果来说,并不会影响,但是对于要在原图中定位目标的情况下,会产生较大的误差。


二、ROI Align

工作原理


1.同样VGG16,有图片800卷积池化成25 ×25的特征图;
2.有一张665×665的图片,其中有ROI经过卷积池化后,变为20.78×20.78,不取整数;
3.最终生成的是7×7的特征图,以20.78/7=2.97 2.97×2.97为一个小格子,生成49个同等大小的小格子;
4.每个小格子的四个角如果没落到真实点上,就对最近的真实点采用双线性插值法,取虚拟点位;
5.然后在每个小格子以2为采样样本,再分成四份,取每一小份的中心点,求得该点的值,最后每四份取最大值。这样对于ROI pooling来说,去掉了两次量化的误差,使得边框精度得到极大的提升。具体提升程度可如Mask RCNN给出的实验数据可知。

优点:
改进了ROI pooling中2次量化操作,从而使得精度有保障。
对每一个bin内部的N个插值的像素使用双线性插值进行跟新,有梯度的传导


三、PSROI Pool

一般来讲,网络越深,其具有的平移旋转不变性越强,这个性质对于保证分类模型的鲁棒性有积极意义。然而,在检测问题中,对物体的定位任务要求模型对位置信息有良好的感知能力,过度的平移旋转不变性会削弱这一性能。研究发现,对于较深的全卷积神经网络(Inception、ResNet 等),Faster-RCNN检测框架存在着一个明显的缺陷:检测器对物体的位置信息的敏感度下降,检测准确度降低。一般来讲最直观的解决方法是将RPN的位置向浅层移动(比如在ResNet中将RPN嵌入到conv4_x的位置),但这样做会明显增加 Fast-RCNN 部分的计算量,使得检测速度明显变慢。
  有鉴于此,R-FCN 这篇文章的作者提出了一种全新的特征聚集方法:Position Sensitive ROI Pooling。其主要思想是在特征聚集时人工引入位置信息,从而有效改善较深的神经网络对物体位置信息的敏感程度。同时,R-FCN的大部分操作都直接对整张图片进行,这也大大优化了网络的运行速度。PS-ROI Pooling 具体操作方法如下图所示(这里仅显示了分类分支,包围框回归分支操作类似,在通道数和损失函数形式上有一些区别):
  
如上图,每一个候选区域(ROI)被平均分割成 k^2 个矩形单元,前序特征图先通过一层 11 的卷积核生成通道数为 k^2(C+1) 的特征图。这里,k^2 代表一个ROI里所有矩形单元的数量,C+1 代表所有的类别数加上背景。这 k^2*(C+1) 张特征图每 C+1 张分成一组、共包含 k^2 组,每组负责向对应的矩形单元进行响应。池化每一个ROI时,各个点(一共 k^2 个),均由上一层中对应分组的对应位置区域通过平均池化获得。由此获得一组 C+1 张特征图。最后,将这些特征图经过全局平均池化,得到 C+1 维的向量,计算分类损失函数。 全图卷积,降低第二阶段的计算量,推荐窗口只需要经过全局的平均就可以分类;不同的卷积核提取不同位置的特征,可能是人体的一部分,能体现位置信息;
  计算反向传播时,遵循“向对应位置回传梯度的原则”,池化后的每一个点回传的梯度传向池化前特征图上对应通道对应区域的特征点上。
缺点:

1.PSROIPooling之前的roi区域的量化还存在,但是PSROIPooling之后的7*7区域的生成没有量化。
优点:

1.PSROIPooling包含有明确的相对位置信息在里面,使用不同的层分别学习不同的bin的值。
2.对整张图中的所有roi区域同时并行进行pooling操作,加快了处理速度。


四、PrROI Pooling(Precise RoI Pooling )


对于每一个bin区域,假设(x1, y1)、(x2, y2)为其中一个bin区域的左上角和右下角坐标,图中红色虚线框。基于每个bin中的整数值位置的像素点就可以积分出整个区域的像素值。

IC函数计算每一个连续的x,y方向的偏移的乘积,在1个像素以内的偏移,使用该像素(i,j)计算,即该像素上下左右1个像素以内的区域都会被计算到。超过一个像素的偏移的,使用下一个整数像素点(i+1,j)或者(i,j+1)计算。然后该偏移的乘积和(i,j)的像素值wij乘积得到f(x,y)。从(x1, y1)到(x2, y2)对f(x,y)求积分,即可以得到整个bin区域的像素的和,然后求平均,就得到该bin区域的输出。最终每一个bin区域都输出1个数值,形成最终的7*7输出的feature map。


优点:

1.不涉及任何量化取整操作
2.解决了ROI Align中插值像素点数目N的问题,这里不再有该参数,整个feature map是一个连续的整体。
3.整个区域的像素值通过求积分得到,所以,所有的像素值都有梯度的传递。

ROI Pool、ROI Align、PSROI Pool、PrROI Pool相关推荐

  1. [python opencv 计算机视觉零基础到实战] 八、ROI泛洪填充

    一.学习目标 了解什么是ROI 了解floodFill的使用方法 如有错误欢迎指出~ 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的helloworld [[pyth ...

  2. 【Python】Python进程池multiprocessing.Pool八个函数对比:apply、apply_async、map、map_async、imap、starmap...

    1.apply 和 apply_async 一次执行一个任务,但 apply_async 可以异步执行,因而也可以实现并发. 2.map 和 map_async 与 apply 和 apply_asy ...

  3. 【目标检测】概念理解:region proposal、bounding box、anchor box、ground truth、IoU、NMS、RoI Pooling

    最近刚接触图像识别,理解一些概念十分困难,尤其是动不动就冒出个看不懂的英语,让人抓狂.查了不少资料后做一个总结并加上一些自己的理解,理解若有误,烦请大家指出,相互学习. 本文主要对region pro ...

  4. Baumer工业相机堡盟相机如何使用CameraExplorer软件查看相机图像相关参数如Binning像素合并、ROI图像剪切、PixelFormat像素格式功能等

    项目场景 Baumer工业相机堡盟相机是一种高性能.高质量的工业相机,可用于各种应用场景,如物体检测.计数和识别.运动分析和图像处理. Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分 ...

  5. 2021-11-01 - 互联网常用英文缩写:DAU、ROI、MCN......

    1.应用场景 主要用于了解掌握互联网常用英文缩写, 方便进行交流. 2.学习/操作 1.文档阅读 互联网常用英文缩写:DAU.ROI.MCN...... - 知乎 2.整理输出 TBD 截图 工作中的 ...

  6. 推荐系统的性能评估(RMSE、MAE、F1 core、A/B testing、CTR和CR、ROI和QA)

    目录 一.线下评估(应用学术研究) 1.RMSE(均方根误差) 2.MAE(均方误差) 3.F1 score(包括recall和precision) (1)recall (2)precision 4. ...

  7. 互联网常用英文缩写:DAU、ROI、MCN……

    一.用户相关 1.DAU(Daily Active User)日活跃用户数量 说明:通常统计一日(统计日)之内,登录或使用了某个产品的用户数(去除重复登录的用户) 2.MAU(Monthly Acti ...

  8. RoI Pooling 和 RoI Align

    RoI Pooling 和 RoI Align 一.背景和基本概念 1.背景 2.基本概念 二.RoI Pooling原理 1.目的 2.步骤(以输出RoI feature大小为2×2×5为例) St ...

  9. RoI Pooling 与 RoI Align 有什么区别?

    ↑ 点击蓝字 关注视学算法 作者丨AlexChung@知乎 来源丨https://zhuanlan.zhihu.com/p/161540817 编辑丨极市平台 基本概念 RoI RoI(Region ...

  10. 【深度学习】ROI Pooling 和 ROI Align 计算机视觉 目标检测

    文章目录 ROI Pooling和ROI Align: 一篇好的文章 ROI Pooling 如何计算? AdaptiveMaxPool2d 在做啥 Fast RCNN或者Faster RCNN中都使 ...

最新文章

  1. 【动态规划】区间DP - 最优矩阵链乘(另附POJ1651Multiplication Puzzle)
  2. 压力测试即将开始,超前思维的128MB区块未必可行
  3. Rabbit MQ安装配置及常见问题
  4. 寻找数组中第二大或第二小的数值
  5. 手机与笔记本蓝牙配对
  6. WF4.0入门系列1——创建一个简单的工作流
  7. 实习小白::(转) Cocos2d-x 3.0开发(五)关联程序逻辑与cocoStudio导出文件
  8. 【收藏】蘑菇博客mogu_blog项目文档
  9. 微软发布自己定制的 Linux 内核和发行版,面向物联网
  10. Feign Client 原理和使用
  11. 64位计算机可以安装xp,64位xp系统如何安装【图解】
  12. BilSTM 实体识别_“万创杯”中医药天池大数据竞赛——中药说明书实体识别挑战的一点感受...
  13. 今日科技联播:全球区块链专利申请数超5000件,Coinplug第一阿里紧随其后
  14. 基于Unity开发的井字棋游戏设计
  15. upload-labs 全21关 write-up
  16. python中sys模块下载_怎样进行python sys模块安装及使用
  17. 一招教你如何在简历上突出工作经验!(干货)
  18. VS2013漂亮字体
  19. perl各个符号代表的意思
  20. ORA-00937: not a single-group group function

热门文章

  1. 《经济机器是怎样运行的》笔记(一)
  2. easyPOI之动态导出word模板
  3. 使用bat脚本自动打开cmd并执行命令
  4. 浏览器打开后自动打开某个页面
  5. 以太坊Swarm Bzz节点云解决方案
  6. Spire.pdf Pdf添加图片,无水印
  7. 《菜根谭》原文附译文
  8. Steam游戏导入vrPlus中运行
  9. 【游戏开发实战】教你使用Unity实现录屏生成GIF的功能,录个妹子跳舞的GIF吧
  10. ubuntu安装vscode出现问题的