橦言无忌

一个不想改变世界的程序媛

roi pooling

前言

roi pooling的基本原理和应用

加油,夯实基础~

1,基本原理

RoI Pooling的过程就是将一个个大小不同的box矩形框,都映射成大小固定$(w * h)$的矩形框,最大的好处就在于极大地提高了处理速度。

obj_detec

2,实现

  • 1,根据输入image,将ROI映射到feature map对应位置
  • 2,将映射后的区域划分为相同大小的sections(数量与输出的维度相同);
  • 3,对每个sections进行max pooling操作;

怎么做的映射?
映射规则比较简单,就是把各个坐标除以“输入图片与feature map的大小的比值”。

3,优点

  • 1.允许我们对CNN中的feature map进行reuse
  • 2.可以显著加速training和testing速度;
  • 3.允许end-to-end的形式训练目标检测系统。

4,缺点

由于 RoIPooling 采用的是最近邻插值(即INTER_NEAREST) ,在resize时,对于缩放后坐标不能刚好为整数的情况,采用了粗暴的舍去小数,相当于选取离目标点最近的点,损失一定的空间精度。

在这个过程中会有两次量化操作。对于一个region proposal,首先从原图经过全卷积网络到特征图,得到的候选框位置可能存在浮点数,进行取整操作从而出现第一次量化;其次,在ROI Pooling求取每个小网格的位置时也同样存在浮点数取整的情况。这两次量化的结果都使得候选框的位置会出现偏差,在论文里,作者把它总结为“不匹配问题(misalignment)。

经过上述两次量化,此时的候选框已经和最开始回归出来的位置有一定的偏差,这个偏差会影响检测或者分割的准确度

// 代码折叠