Faster R-CNN 之特征篇

1,013 阅读1分钟

变的又高又帅的小M来到了第二关的门口,兴高采烈的小M还不知道他将在这里有会什么样的遭遇

代码见:pytorch-tutorial/vgg_model.py

之间门口写有 Backbone-VGGX 特征提取
出现三个选项VGG-13VGG-16VGG-19可供选择,小M选择了中间的VGG-16

之后,出现一行字说明:本关卡由 vgg-16 去掉最后的池化以及后续全连接层而成,其架构如下

image.png

        print(images.image_list.shape)                    # 输出 torch.Size([1, 3, 608, 1088])
        # 将图像输入到 backbone 得到特征图
        feature_maps = self.backbone(images.image_list)
        print(feature_maps.shape)                         # 输出 torch.Size([1, 512, 38, 68])

小M看着3维的又高又帅的自己,计算着自己经过Backbone之后将变成什么样子

可知VGG-16中的每一个卷积层配置为

kernel_size = 3
stride = 1
padding = 1

这就是说经过该卷积核,宽高不变(W3+21+1=W{W - 3 + 2 \over 1} + 1 = W

每一个池化层的配置为

kernel_size = 2
stride = 2
padding = 0

这就是说每经过一次池化,宽高变为原来的一半

一共有4各MaxPool,宽高就变成了:60824=38,108824=68,{608 \over 2^4} = 38, {1088 \over 2^4} = 68,

小M算完之后得知将变成512维的又小又矮的样子,不免有些犹豫,但是还是走了进去。

……

……

一段时间之后,小M走了出来,下一关就是传说中最难的RPN了。

512 * 38 * 68 的小M又将何去何从?