我的问题是关于Faster 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

有人可以简单回答一下,这些参数是做什么用的,为什么我们真正需要它们呢?

最佳答案

在更快的RCNN中,您有一个RPN(区域提案网络),该模型是模型的一部分,并且已通过全网络进行了训练

RPN的作用是建议图像中被认为是物体的边界框。

对于图像中的每个位置,RPN尝试拟合k个预定义“锚”中的每一个,并为它们中的每一个给出4个参数,这些参数定义相对于锚的边界框建议,以及2个概率分数,用于对象位于边界框内。

如果框的纵横比和比例不同,则锚是预定义的集合。

如果我们查看359和360行中code处的代码,计算损失,我们会看到“锚定蒙版”用于定义具有真实回归锚点的图像区域。这是因为在Fast-RCNN的损失函数的定义中,我们仅计算正锚的回归损失。

如第362行所示,“ anchor_reg_masks”也是如此。

术语“ anchor_weights”用于标准化loos0项。在第359行之后,对于不在掩模中的位置,loss0具有零损耗,如果我们从中计算出损耗,我们将得到偏差结果。 “ anchor_weights”将loss0归一化,仅从真实锚点计算得出。

关于machine-learning - 使用更快的R-CNN进行目标检测,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46237500/

10-12 19:30