RoI Pooling Layer
方法提出的背景
目标检测一般分为两个阶段:
1. 输入一张image,输出一系列objects的可能位置(即:bounding box或region proposals或region of interest(ROI))
2. 确定1中的每个region proposal是否属于目标一类或者背景
问题:
产生大量的region proposals,很难达到实时目标检测,并且无法做到end-to-end training
ROI pooling layer的两个输入
1. 从具有多个卷积核池化的深度网络中获得的固定大小的feature maps
2. 一个表示所有ROI的N*5矩阵(N表示ROI的数目,第一列表示图像index,其余四列表示左上角和右下角坐标)
ROI pooling layer具体操作
1. 根据输入image,将ROI映射到feature map对应位置
2. 将映射后的区域划分为相同大小的sections(sections数量与输出的维度相同)
3. 对每个sections进行max pooling操作
这样我们就可以从不同大小的方框得到固定大小的feature maps
一个例子
考虑一个8*8大小的feature map,一个ROI,以及输出大小为2*2
1. 输入固定大小的feature map
2. region proposal投影之后的位置(左上角(0,3),右下角坐标(7,8))
3. 将其划分为2*2个sections(因为输出大小为2*2)
4. 对每个section做max pooling
总结
1. 用于目标检测
2. 允许对CNN中的feature map进行reuse
3. 可以显著加速training和testing
4. 允许end-to-end的形式训练目标检测系统
原文地址:https://blog.deepsense.ai/region-of-interest-pooling-explained/