1

我的问题是关于更快的R-CNN的实现。使用更快R-CNN的对象检测

我看报纸和正在经历的config.py文件由算法的作者写的是可以在这里找到:https://github.com/rbgirshick/py-faster-rcnn/blob/master/lib/fast_rcnn/config.py

我很不能理解的是,为什么我们需要BBOX_INSIDE_WEIGHTS(在提到第84行)和RPN_POSITIVE_WEIGHT(在第124行提到)?

在其他一些实现中,我也看到了锚口罩(线659),锚回归权重和锚回归口罩它们可在这里:https://github.com/DeepRNN/object_detection/blob/master/model.py

可有人请给简易回答这些是什么参数和为什么我们实际上需要它们?

回答

1

更快RCNN你有一个RPN(地区提案网络),这是该模型的一部分,它与所有的网络

的RPN的作用是表明在图像边界框的培训在其上对象被认为是。

对于图像中的每个位置,RPN试图适合k个预定义的“锚点”中的每一个,并且为它们中的每一个提供了4个参数,这些参数定义了相对于锚点的边界框建议和2个概率分数对象在边界框内的概率。

如果盒子具有不同的长宽比和比例,那么锚点是一个预定义的集合。

如果我们看看code在359行和360行的代码,我们在这里计算损失,我们可以看到“锚掩码”用于使用真正的回归锚来定义图像中的区域。这是因为在Fast-RCNN的损失函数的定义中,我们只计算正锚的回归损失。

这同样适用于“anchor_reg_masks”如可在线路362

术语“anchor_weights”被看作是用于标准化loos0术语。在359行之后,如果我们通过计算损失,我们将得到偏差结果,损失0对于不在掩模中的位置具有零损失。 “anchor_weights”规范了loss0只能从真正的锚点计算出来。

+0

这意味着锚点掩码,锚点回归权重和锚点回归掩码以及BBOX_INSIDE_WEIGHTS是一样的东西吗?正如我理解论文所述,除了概率分数之外,图像中每个位置都有RPN的4 * k输出(回归部分),其中k是锚的数量。那么RPN的回归部分不应该有4 * k的权重? –