【问题标题】:While training Mask RCNN using TensorFlow Object Detection API, what is the 'loss'?在使用 TensorFlow Object Detection API 训练 Mask RCNN 时,“损失”是什么?
【发布时间】:2019-06-17 21:15:29
【问题描述】:

我正在 TensorFlow 对象检测 中使用 Mask RCNN 训练 自定义对象检测。因此,我要预测对象实例掩码以及边界框。

预训练模型:mask_rcnn_inception_v2_coco

以下是我的训练快照。

INFO:tensorflow:global step 4181: loss = 0.0031 (3.290 sec/step)

INFO:tensorflow:global step 4181: loss = 0.0031 (3.290 sec/step)

INFO:tensorflow:global step 4182: loss = 0.0030 (2.745 sec/step)

INFO:tensorflow:global step 4182: loss = 0.0030 (2.745 sec/step)

在这种情况下,你能告诉我这里的损失是什么吗?

我的问题与训练损失及其变化无关。步骤。

我只是不清楚在训练 Mask RCNN 时这种损失是什么意思?在一个Mask RCNN中,最后一层有3个平行头,

  • 用于检测类
  • 用于预测边界框
  • 用于预测实例掩码

在这种情况下,什么是损失?

【问题讨论】:

    标签: tensorflow computer-vision object-detection


    【解决方案1】:

    Mask R-CNN 论文的损失函数结合了 3 个损失的加权和(3 个输出):分类、定位和分割掩模:

    分类和边界框(定位)损失与 Faster R-CNN 中的相同。

    添加的是每个像素的 sigmoid + 掩码的二进制损失。 掩码分支为每个类生成一个掩码,类之间没有竞争(因此,如果您有 10 个类,掩码分支预测 10 个掩码)。使用的损失是每像素 sigmoid + 二元损失。

    如果您想更深入地研究掩码损失,论文指出“多项式与独立掩码:掩码 R-CNN 将掩码和类别预测解耦:作为现有框 分支预测类标签,我们为每个生成一个掩码 类之间没有竞争的类(通过每像素 sigmoid 和二元损失)。在表 2b 中,我们将其与 使用每像素 softmax 和多项损失(如 FCN [30] 中常用的)。”

    您可以在paper 第 6 页,表号 2.b(“多项式与独立掩码”)中看到它。

    【讨论】:

      猜你喜欢
      • 2020-06-16
      • 2018-07-28
      • 2017-12-20
      • 2018-01-14
      • 2019-01-30
      • 2018-02-26
      • 2019-12-08
      • 2018-10-20
      • 2021-01-02
      相关资源
      最近更新 更多