理解RoIAlign实际操作

我们的模型取一个大小为 512x512x3 (宽度x高度x RGB)的图像输入,VGG16将其映射为一个 16x16x512的feature map。比例因子是 32

接下来,我们将使用其中一个proposed RoIs ( 145x200box),并尝试将其映射到feature map上。因为不是所有的对象维度都可以整除以32,所以我们没有将RoI与网格对齐。

- (9.25,6)— top left corner

- 6.25— width

- 4.53 — height

再一次,我们选择池化层的大小为 3x3,所以最终的形状是 3x3x512(这只是一个任意的例子,以便更容易在图像上显示。你的池化层可能有不同的大小)。

 每个框的大小由映射的RoI的大小和池化层的大小决定。我们使用了一个 3x3 的池化层,所以我们必须将映射的RoI ( 6.25x4.53)除以3。这样我们就得到了一个高为 1.51 ,宽为 2.08 的方框(我在这里约简以使它更容易)。现在我们可以把我们的方框放入映射的RoI中:

 如果查看第一个框(左上角),可以注意到它覆盖了6个不同的网格单元格。为了提取池化层的值,我们必须从池化层中采样一些数据。为了对数据进行采样,我们必须在盒子里创建 四个采样点

 你可以 通过方框的高度和宽度除以3 来计算每个点的位置。

在我们的例子中,我们计算第一个点(左上角)的坐标如下:

- X = X_box + (width/3) * 1 = 9.94

- Y = Y_box + (height/3) * 1 = 6.50

为了计算第二点(左下角),我们只需要改变Y:

- X = X_box + (width/3) * 1 = 9.94

- Y = Y_box + (height/3) * 2 = 7.01

我们可以应用双线性插值对这个方框进行数据采样。图像处理中常用双线性插值对颜色进行采样,其方程如下:

例如 第一个点

当您从我们的方框中取出第一个点时,除非它已经被取走了,您将它与最邻近的单元格连接(正好在中间)。在本例中,我们的点的坐标是**(9.44,6.50)**。单元格左上角最接近的中间位置是**(9.50,6.50)**(如果我们的点只比网格高0.01,那么它应该是(9.50,5.50))。然后我们必须选择一个左下角的点,最近的是**(9.50,7.50)**遵循同样的规则,我们选择**(10.50,6.50)**和**(10.50,7.50)**作为右上角和右下角的点。在RoI上面,您可以看到整个计算过程,从而得到第一个点(0.14)的值。

 第二个点

这一次我们从:

- top-left: (10.50, 6.50)

- bottom-left: (10.50, 7.50)

- top-right: (11.50, 6.50)

- bottom-right: (11.50, 7.50)

第三个点:

- top-left: (9.50, 6.50)

- bottom-left: (9.50, 7.50)

- top-right: (10.50, 6.50)

- bottom-right: (10.50, 7.50)

 第四个点:

- top-left: (10.50, 6.50)

- bottom-left: (10.50, 7.50)

- top-right: (11.50, 6.50)

- bottom-right: (11.50, 7.50)

计算出每个点值后  我们按照Max Pooling进行池化操作

 

 内容来自一文读懂 RoIPooling、RoIAlign 和 RoIWarp_Fast

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值