ROI Pooling和ROI Align详解

参考原文

ROI Pooling和ROI Align都是用来将任意尺度的feature转换为同一尺度的feature。
用RPN生成的bbox的尺度不同,需要将不同尺度的feature送到一个固定尺度的全连接层进行操作。

ROI Pooling

ROI Pooling和ROI Align详解_第1张图片
思想:
利用区域均分池化的操作,将任意大小的feature map转换为同一尺度。
上图中对于任意feature map,进行4x4的区域均分,并对每个区域进行max pooling操作,得到4x4的特征向量;再进行2x2,1x1的区域均分和max pooling操作得到2x2,1x1的特征向量,并将这些向量连接起来,得到固定长度的特征向量。

缺点:
由于像素点是离散的,bbox的位置必须为整数的像素点,因此造成误差。
主要存在两处误差:

  1. RPN是在原图上生成候选框的,由于经过backbone网络和FPN网络得到的feature map的尺寸与原图不同,在框的映射过程中,会存在小数,ROI Pooling的方法是直接向下取整,因此位置会出现一定的偏差。
  2. 在对feature map区域均分时,会存在像素点无法均分的情况,如下图,要对框内的feature map进行2x2的均分,但由于长宽为7和5,无法均分,则只能近似均分,这个操作也会造成偏差。
    ROI Pooling和ROI Align详解_第2张图片

ROI Align

思想:
ROI Pooling的改进版,解决了映射误差和均分误差问题,提高了后续处理的准确率,主要是利用虚拟像素的方法,即利用插值计算非像素坐标点处的近似像素值。

ROI Pooling和ROI Align详解_第3张图片
上图即为双线性插值计算近似像素的方法:利用四个角点的像素以及与需计算点构成的矩形面积比例进行加权求和。
ROI Pooling和ROI Align详解_第4张图片
对于feature map的区域进行均分,可以存在小数,对每个区域取四个位置点(像素值通过双线性插值的方法求得),再对每个区域进行max pooling操作得到固定尺度的feature。

你可能感兴趣的:(ROI Pooling和ROI Align详解)