引言

感兴趣区域池化(Region of interest pooling)(也称为RoI pooling)是使用卷积神经网络在目标检测任务中广泛使用的操作。例如,在单个图像中检测多个汽车和行人。其目的是对非均匀尺寸的输入执行最大池化以获得固定尺寸的特征图(例如7×7)。

计算机视觉中的两个主要任务是对象分类目标检测。在第一种情况下,系统应该正确地标记图像中的主要对象。在第二种情况下,它应该为图像中的所有对象提供正确的标签和位置。当然还有其他有趣的计算机视觉领域,例如图像分割,但今天我们将专注于检测。在这个任务中,我们通常应该从先前指定的一组类别中的任何对象周围绘制边界框,并为每个类别分配一个类。例如,假设我们正在开发一种自动驾驶汽车的算法,我们想用相机来检测其他汽车,行人,骑自行车者等等 - 我们的数据集可能看起来像这样。

在这种情况下,我们必须在每个重要对象周围绘制一个框并为其分配一个类。此任务比分类任务(如MNIST 或CIFAR)更具挑战性 。在视频的每个帧上,可能存在多个对象,其中一些重叠,一些不明显或被遮挡。而且,对于这样的算法,性能可能是关键问题。特别是对于自动驾驶,我们必须每秒处理数十帧。

那么问题来了

经典架构
我们今天要讨论的对象检测架构分为两个阶段: 1. 区域建议(Region proposal):给定输入图像查找可以定位对象的所有可能位置。此阶段的输出应该是对象的可能位置的边界框列表。这些通常被称为区域提案或感兴趣的区域。 2. 最终分类(Final classification):对于前一阶段的每个区域提案,确定它是属于目标类别之一还是属于背景。在这里,我们可以使用深度卷积网络。

Object detection pipeline with region of interest pooling 通常在提案(Region proposal)阶段,我们必须生成许多感兴趣的区域。为什么?如果在第一阶段(区域提议)中未检测到对象,则无法在第二阶段对其进行正确分类。这就是为什么这个地区的提案有很高的召回率非常重要。这是通过生成大量提案(例如,每帧几千)来实现的。在检测算法的第二阶段中,大多数将被归类为背景。

这种架构的一些问题是: - 生成大量感兴趣的区域可能会导致性能问题。这将使实时对象检测难以实现。 - 它在处理速度方面不是最理想的。稍后会详细介绍。 - 你无法进​​行端到端的培训,也就是说,你无法在一次运行中训练系统的所有组件(这会产生更好的结果)

这就是感兴趣区域池化所要发挥作用的地方.


**感兴趣区域池化 - 描述**

感兴趣区域池化是用于目标检测任务的神经网络层。它最初是由Ross Girshick在2015年4月提出的(文章可以在这里找到),它实现了培训和测试的显着加速。它还保持高检测精度。该图层有两个输入:

  1. 从具有多个卷积和最大池层的深度卷积网络获得的固定大小的特征映射。
  2. 表示感兴趣区域列表的N×5矩阵,其中N是RoI的数量。第一列表示图像索引,其余四列是区域左上角和右下角的坐标。


Pascal VOC数据集的图像,注释了区域提案(粉红色矩形)

RoI池实际上做了什么?对于来自输入列表的每个感兴趣区域,它采用与其对应的输入特征图的一部分并将其缩放到某个预定义的大小(例如,7×7)。缩放通过以下方式完成:

  1. 将区域提案划分为相等大小的部分(其数量与输出的维度相同)
  2. 找到每个部分的最大值
  3. 将这些最大值复制到输出(max pooling)

结果是,从具有不同大小的矩形列表中,我们可以快速获得具有固定大小的相应特征映射的列表。请注意,RoI池输出的维度实际上并不取决于输入要素映射的大小,也不取决于区域提议的大小。它仅由我们将提案划分为的部分数量决定。RoI汇集有什么好处?其中之一是处理速度。如果框架上有多个对象建议(并且通常会有很多对象建议),我们仍然可以为所有这些建议使用相同的输入要素图。由于在处理的早期阶段计算卷积非常昂贵,因此这种方法可以为我们节省大量时间。


**感兴趣区域池化 - 例子**

让我们考虑一个小例子,看看它是如何工作的。我们将在单个8×8特征图上执行感兴趣区域,一个感兴趣的区域和2×2的输出大小。我们的输入要素图如下所示:(以下为图像,一般处理时转化像素为映射到0~1的实数,保持精度)
这是感兴趣区域池化层的输出。这是我们以动画形式呈现的示例:

关于RoI Pooling最重要的事情是什么?

  • 它用于对象检测任务
  • 它允许我们重新使用卷积网络中的特征映射
  • 它可以显著加快训练和测试时间
  • 它允许以端到端的方式训练物体检测系统

参考文献:

  • Girshick, Ross. “Fast r-cnn.” Proceedings of the IEEE International
    Conference on Computer Vision. 2015.
  • Girshick, Ross, et al. “Rich feature hierarchies for accurate object
    detection and semantic segmentation.” Proceedings of the IEEE
    conference on computer vision and pattern recognition. 2014.
  • Sermanet, Pierre, et al. “Overfeat: Integrated recognition,
    localization and detection using convolutional networks.” arXiv
    preprint arXiv:1312.6229. 2013.

参考:Region of interest pooling explained

ROI Pooling(感兴趣区域池化)【笔记】相关推荐

  1. ROI Pooling(感兴趣区域池化)

    引言 感兴趣区域池化(Region of interest pooling)(也称为RoI pooling)是使用卷积神经网络在目标检测任务中广泛使用的操作.例如,在单个图像中检测多个汽车和行人.其目 ...

  2. opencv学习笔记5:感兴趣区域ROI

    ROI ROI 感兴趣区域 从被处理的图像以方框,圆,不规则多边形等勾勒出我们感兴趣的区域. 可以通过各种算子(Operator)和函数来求得感兴趣的区域. 本次通过下标的形式获取ROI ROI 下标 ...

  3. python二值化 感兴趣区域_Python+OpenCV感兴趣区域ROI提取方法

    方法一:使用轮廓 步骤1 """src为原图""" ROI = np.zeros(src.shape, np.uint8) #感兴趣区域RO ...

  4. openCV_C++笔记 : ROI感兴趣区域与Rect类

    序 在使用rect作为感兴趣区域的时候一直没有弄懂使用感兴趣区域如何将处理后图像拼到原图像中 以及 使用感兴趣区域定位的坐标要是不是原图像的坐标这两个问题,查了很多资料,大多数都是用代码一笔带过. 自 ...

  5. OpenCV学习笔记(六)——感兴趣区域ROI(浅拷贝与深拷贝的区别)

    目录 1 浅拷贝 2 深拷贝 示例代码 有时我们只对一张图像中的部分区域感兴趣,而原图像又比较大,如果带着非感兴趣区域一起处理会占用大量的内存,因次我们希望从原图像中截取部分图像后再进行处理.我们将这 ...

  6. python提取图片感兴趣区域_Python+OpenCV感兴趣区域ROI提取方法

    方法一:使用轮廓 步骤1 """src为原图""" ROI = np.zeros(src.shape, np.uint8) #感兴趣区域RO ...

  7. OpenCV-C++选择、提取感兴趣区域(ROI区域)【附用鼠标选取ROI区域的代码】

    在图像处理中,我们常常要对某个区域进行选择.提取,然后对这个区域进行单独分析.处理.显示. 这样的区域我们称为叫ROI区域,英文全称为Region of interest,中文名为"感兴趣区 ...

  8. opencv感兴趣区域ROI的图像混合操作

    AddWeighted( const CvArr* src1, double alpha,const CvArr* src2, double beta,double gamma, CvArr* dst ...

  9. OpenCV(十)ROI感兴趣区域

    目录 1.概念 2.代码 3.效果 参考资料 1.概念 在图像处理的时候,常常我们只想对一部分图像进行处理,也就是感兴趣区域(ROI,region of interest).我们把一部分图像区域分化独 ...

最新文章

  1. ASP.NetCore+VUE 实现学生成绩管理系统(一)
  2. eclipse怎么修改java的行高_eclipse皮肤怎么修改 eclipse皮肤修改教程
  3. python400集视频教程-微软官方出品的400集Python精品视频教程,这正是我们急需的!...
  4. git “errno=Connection refused”
  5. 介绍一下和AspNetPager结合的不错的分页方案
  6. unity常用的引用赋值一个GameObject的三种方法
  7. 【Oracle11gR2 | 学习】plsql dev存储过程的使用、存储函数、out类型的使用
  8. 高通芯片资料下载大全,这是一个资料下载论坛
  9. 摩申网络:浅析网络棋牌游戏用户群体
  10. 20155313 杨瀚 《网络对抗技术》实验五 MSF基础应用
  11. matlab gradient函数原理
  12. 使用spark-submit工具提交Spark作业
  13. e01文件镜像SHA1值
  14. JavaSE学习笔记(七)(常用类)
  15. css设置格子背景,跟本子一样
  16. 程序猿如何高效的学习英语
  17. 3D角色硬表面建模技巧与思路分享【案例解析】
  18. Json和List互相转化
  19. 视频剪辑软件实用推荐
  20. 迅雷调用potplayer

热门文章

  1. TFN S系列光纤熔接机 光纤通信工程施工利器 S3/S5/S7熔接机
  2. yolov5-5的train函数简单流程
  3. arcgis属性表选择两个条件_ArcGIS属性表的“那些”事(字段排序、小班编号、属性多条件选择)...
  4. 《预训练周刊》第42期: 通用模型、训练计算优化、多模态训练
  5. socket常用函数总结
  6. 华为机考攻略(python)--入门题【5题】(第一题HJ5进制转换)
  7. Jetson tk1 安装 Intel 7260ac 无线网卡驱动
  8. 无人机照片、车载相机街景影像
  9. ec12编码器电路图_EC12带开关编码器
  10. 关于pdfplumber和pdfminer不兼容的问题解决方案