rentainhe / what_I_have_read

Just for self-motivation
2 stars 0 forks source link

如何理解ROI以及ROI Pooling? #11

Open rentainhe opened 3 years ago

rentainhe commented 3 years ago

参考

特征提取

image

什么是ROI

image

如何将我们得到的ROI映射到Feature Map上

image 我们以其中一个ROI为例子,如下图所示: image image 因为我们的Feature Map大小为16x16,只能映射到Feature Map的整数区域上(ROI Align后来改进了这个点)。所以我们会对这个计算得到的值进行一次量化操作,original ROI映射到Feature Map上如下所示: image 量化操作会对其中不为整数的值向下取整,因为这样的话才能根据每个grid里的数据去进行pooling计算,取整后的值如下: image 可以注意到,损失了一部分数据,并且获得了一部分新的数据

rentainhe commented 3 years ago

为什么需要ROI Pooling?

以下为Fast RCNN的结构图 image 我们可以看到,在RoI Pooling Layer后是一个固定大小的全连接层,但是由于我们的RoIs都是不同的大小,所以我们需要将它们pool到同样的大小才能由之后的全连接层统一处理

Example

假设我们在Feature Map上有一个4x6大小的RoI,我们需要将其Pool到3x3的统一大小 image 这时候我们会发现一个问题,就是短边4无法整除3,所以这时候我们会进行第二次取整操作,4/3 = 1.33,我们只取1,意味着我们的RoI Pool的size为(1, 2),这时候我们计算RoI Pool后的特征如下图所示: image 一般RoI Pool里的操作都是取这个kernel中的Max值

rentainhe commented 3 years ago

RoI Pool两次量化过程简要图示: image