符号
- 假设您有一个尺寸为 WxHx3的输入图像I
- ROI提案x0,y0,w0,h0。
- 当您通过特征提取器转发图像时,您会得到一个大小为 WfxHfXC大小的特征图F。
该关系是一种空间关系
ROI 不影响特征图的输出通道数。该关系是一种空间关系,它将输入 ROI 映射到特征图上具有相同通道数的特征图上的等效空间块。因此,输出特征图中的 ROI 的大小为 UxVxC,与特征图具有的通道数相同。
通过 CNN 跟踪输入像素
现在让我们跟踪 CNN 连续层之间的像素 x0,y0。
为简单起见,我将仅考虑以下层类型(在文章中使用的特征提取器 VGG 16 中也是如此,对于其他层,可以应用相同的逻辑,但有小的变化):
- 具有“SAME”填充的卷积层,kernel = 3,stride = 1,用 Conv 表示
- 步幅 = 2 的池化层,用 Pool 表示
现在当我们将图像插入卷积层时会发生什么?换句话说,输入像素 x0,y0 在卷积输出中映射到哪个像素?
卷积层的输出大小使用以下公式计算:输出大小计算因此在我们的例子中,我们将得到输出大小等于输入大小,并且卷积响应中的像素对输入中的像素 x0,y0映射到卷积输出中的像素 x0,y0。
对于步长为 2 的轮询层,如果输入大小为 WxH,则输出大小将为 W/2xH/2,因此输入中的像素 x0,y0 映射到 floor(x0/2), floor(y0/2 )
跟踪摘要(鉴于我们的简化案例)
- 输入中的卷积 x0,y0 将映射到输出中的 x0,y0
- 池化 x0,y0 将映射到 x0/2,y0/2
将图像中的 x0,y0 转换为输出特征图中的 x0^,y0^
因此,如果我们有一个 CNN,其 Conv->Conv->Pool->Conv->Conv->Pool .... 输入中的像素 x0,y0 将映射到像素 floor(x0/2^(num of池层)),y0/2^(池层数)
ROI 映射
让我们以特征提取器为 VGG16 的情况为例,该网络在文章中使用。所有卷积层给出的输出大小与输入大小相同,轮询大小是输入大小的一半。输入大小为 224X224,特征图为 7X7 -> 输入图像中的像素 x0,y0 映射到特征图中的 x0/32,y0/32。
roi x0,y0,w,h 映射到 x0/32,y0/32,h/32,w/32