ROI Pooling

传统的object detection一般分两步:
(1)根据某些规则或者先验知识,先在输入图片上面搜索一堆可能存在物体的框框,叫做region of interest。
(2)然后把这些框扔进CNN进行分类。

这样做有几个明显的缺点:
(1)训练是multi-stage,不是end-to-end的。
(2)为了提高精度,往往会生成很多很多候选框,这样会大大增加检测时间。

于是,出现了Fast R-CNN[https://cdn-sv1.deepsense.ai/wp-content/uploads/2017/02/1504.08083.pdf](这已经是很老的paper了),实现了end-to-end的训练,提升了检测精度和降低了时间开销。其中有一个重要的层叫ROI Pooling层,使得不同大小的图片在进入分类模块或是回归模块前都能得到大小一样的feature,同时梯度又能够通过它往回传。

这里[https://deepsense.ai/region-of-interest-pooling-explained/]一个动态图直接解释了怎么操作的:

ROI Pooling

假设输入的feature是8 x 8并且channel为1,输入希望得到2 x 2并且channel为1的feature,直接将输入feature分成2 x 2个grid,然后对每个grid进行max pooling,然后就得到结果了。多channel也是同样的。