更快的 R-CNN 和 4 步交替训练

信息处理 计算机视觉
2022-02-14 11:23:51

我正在阅读此处提供的 Faster R-CNN 论文。在第 6 页左下角的第 3.2 节中,作者描述了他们所说的区域提议网络之间的 4 步交替训练,用于获取用于对象检测的 Fast R-CNN 方法中的区域提议。他们写:

在本文中,我们采用实用的 4 步训练算法通过交替优化来学习共享特征。第一步,我们按照 3.1.3 节的描述训练 RPN。该网络使用 ImageNet 预训练模型进行初始化,并针对区域提议任务进行端到端微调。在第二步中,我们使用由 step-1 RPN 生成的建议,通过 Fast R-CNN 训练一个单独的检测网络。该检测网络也由 ImageNet 预训练模型初始化。此时两个网络不共享卷积层。第三步,我们使用检测器网络来初始化 RPN 训练,但是我们修复了共享的卷积层,并且只微调了 RPN 特有的层。现在这两个网络共享卷积层。最后,保持共享卷积层固定,我们微调 Fast R-CNN 的独特层。因此,两个网络共享相同的卷积层并形成一个统一的网络。

我不明白的是第三步。他们说他们使用检测器网络来初始化 RPN 训练。我不确定这意味着什么。检测器网络为给定图像中的对象输出边界框和类标签。

考虑特定于 RPN 的层。我们有一定数量的卷积层,然后是带有锚框的滑动窗口,用于回归和分类(类标签层)。作者是说最初训练的卷积层现在被 RPN 丢弃,并在第 2 步中被 Fast R-CNN 训练的卷积层替换吗?或者他们的意思是别的什么。

1个回答

由于没有人回答这个问题,我会在进一步研究后发布我的尝试。

这是我经过更多思考后的理解。假设我们使用 VGG-16 作为主干。

有三个基本组件,主干、RPN 头(对象性和 RPN 回归)和 ROI 头(分类和回归)。使用 RPN 头,我们可以对正负 ROI 进行采样。

步骤 1) 训练一个区域提议网络(主干 + RPN 头),其中 VGG-16 主干在 imagenet 上预训练,头弹出。一些主干层将是可训练的。

步骤 2) 使用从步骤 1) 中获得的网络(使用 rpn 训练的主干)生成的对象建议(每张图像大约 300 个),使用在 imagenet 上预训练的另一个单独的 VGG-16 主干训练第二个网络,以及快速 R-CNN 中的网络头(我们将称为 ROI 头)。然后就像在快速 R-CNN中一样,我们训练区域的对象分类,以及回归以学习从提议到对象周围边界框的位移(如果 softmax 中的最高激活不对应于“背景”类,即没有对象)。

步骤 3) 使用步骤 2) 中的主干进行 RPN 训练,这将是固定的(= 不可训练),使用步骤 1) 中训练的 RPN 头,并微调 RPN 头。

步骤 4) 最后保持步骤 2) 中的主干和步骤 3) 中的 RPN 头固定,微调步骤 2) 中的 ROI 头,以再次对从主干生成的区域提议训练边界框回归和分类, RPN 头。

编辑:原始答案有很多错误,所以我回来纠正它们,现在我读到原始问题也没有任何意义(我是这个话题的新手)。请阅读此答案。