ROI Pooling 与 ROI Align 计算示例图解
ROI Pooling 与 ROI Align
假设原图尺寸大小为256×256,预测ROI的坐标为(6.4, 12.8, 153.6, 172.8),特征图大小为8×8。现在要将ROI池化成3×3大小。我们来对比一下Roi pooling 和 ROI Align的区别。
将ROI区域映射到特征图上
对于ROI pooling而言,计算出来的坐标要取整,结果为(1,1,4,5),此处进行了第一次量化;而ROI Align直接将坐标值除以32即可,结果为(0.2, 0.4, 4.8, 5.4)。
圆圈代表像素点,橙色框是ROI映射到特征图上的范围。
划分池化区域
ROI pooling在划分池化区域的时候,由于roi的大小无法被池化尺寸整除,因此出现不同的池化范围(此处进行了第二次量化)。ROI Align在进行池化区域划分的时候,不进行量化处理。
红色线代表池化范围界限
池化值的计算
计算最大池化时,对于ROI Pooling,直接选出池化范围内的最大值即可,上图打蓝色勾勾的像素,池化结果如下图所示:
对于ROI Align则比较复杂。
- 因为最后要池化成3×3的大小,因此整个roi被划分成9个区域,每个区域称为cell。
- 首先在每个cell内采样,此处采样系数取2,因此在池化范围内采样2×2=4个点。将cell划分成4部分,每一部分的中心点作为采样点(图中蓝色点)
- 每一个蓝色点的值通过双线性插值计算。
- 取四个蓝色点中最大的值作为该cell的池化结果。
双线性插值计算方法
如上图,每一个蓝色点周围都有4个像素点,蓝色点的值极为该4个点的加权平均,权重是距离像素点的距离,距离越近,权重越大。如下图所示。
圆圈代表像素值,色块面积代表权重。以红色点为例,待计算点(黑色点)距离红色点最远,因此它权重最小,反映在色块面积上就是红***块面积最小。说明红色对黑色点的影响比较小。