如何在Faster R-CNN中训练RPN?

3

论文链接

我正试图理解 faster rcnn 中的区域建议网络。我明白它在做什么,但我仍然不明白训练是如何进行的,特别是其中的细节。

假设我们使用 VGG16 最后一层,形状为 14x14x512(在 maxpool 之前和 228x228 的图片),以及 k=9 种不同的锚点。推断时,我想预测 9*2 类标签和 9*4 个边界框坐标。我的中间层是一个 512 维向量。 (图像显示来自 ZF 网络的 256 个) 来自论文

在论文中,他们写道:

“我们在图像中随机采样 256 个锚点来计算 mini-batch 的损失函数,其中采样的正锚点和负锚点的比例最多为 1:1”

这就是我不确定的部分。这是否意味着对于每一种 9(k) 种锚点类型,具体的分类器和回归器仅使用包含该类型正负锚点的 minibatch 进行训练?

这样,我基本上会在中间层中使用共享权重训练 k 个不同的网络吗?因此,每个 minibatch 将包含训练数据 x=卷积特征图的 3x3x512 滑动窗口和 y=该特定锚点类型的 ground truth。推断时,我将它们全部组合起来。

感谢您的帮助。

1个回答

0

并不完全是这样。据我所知,RPN在每个特征图中预测WHk个边界框,然后根据1:1准则随机采样256个边界框,作为该小批量的损失函数计算的一部分。您仍然只训练一个网络,而不是k个,因为256个随机样本没有任何特定类型。

免责声明:我仅在一个月前开始学习CNN,所以我的理解可能不正确。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接