ROI Pooling解析
ROI Pooling最早由Ross Girshick在2015年的论文fast rcnn中提出,是对ROI(Region of Interest)的Pooling操作,广泛应用于物体检测的研究领域。该操作旨在对输入特征图中不同大小的ROI利用池化方法获得固定大小的输出特征图。
ROI Pooling层的输入:
- 经过基础网络卷积和池化后的固定大小的特征图;
- 表示ROI信息的N*5维的矩阵,其中N表示ROI数目,纵坐标的第一列表示图片在输入特征图batch中的索引,之后四位是ROI的左上角和右下角坐标的信息。如下图表示一张图片中的ROI信息。
ROI Pooling层的操作:
将特征图中的ROI缩放到预定义的大小,如7*7的尺寸,缩放的处理流程包括:将ROI均分为等大的子区域,其数量与网络层的输出大小相同;计算每个子区域中的最大值或平均值;将每个子区域中的计算结果作为该层输出中的一个元素。
ROI Pooling层的输出:
经过该层后获得N*3维的矩阵,其中N表示ROI数目,纵坐标的第一列表示输出特征图batch中的索引,最后两位表示pooling后的输出大小。
由该层的实际处理过程可知,ROI Pooling的输出维度实际上不依赖于特征图和其上产生ROI的大小,仅由ROI等分后的子区域的数目决定。整个处理过程可以通过一个例子近似展示。下图表示一个8*8的feature map,黑色框表示其中的一个ROI,ROI Pooling后的大小为2*2,也就是黑色框中水平和垂直线分割后的区域数目。
图片来自这里
若Pooling中执行的是最大化操作,则ROI Pooling后的输出如下。此处之所以说该例子是ROI Pooling的一个近似操作,是因为ROI大小为7*5,Pooling的输出大小为2*2,上图中没有对ROI区域进行等分。
参考文献: