TensorFlow 对象检测 API - 对象检测 api 中的损失意味着啥?

Posted

技术标签:

【中文标题】TensorFlow 对象检测 API - 对象检测 api 中的损失意味着啥?【英文标题】:TensorFlow Object Detection API - what do the losses mean in the object detection api?TensorFlow 对象检测 API - 对象检测 api 中的损失意味着什么? 【发布时间】:2018-06-15 03:53:48 【问题描述】:

以下损失分别是什么意思? (在 TensorFlow Object detection API 中,同时训练基于 FasterRCNN 的模型)

Loss/BoxClassifierLoss/classification_loss/mul_1

Loss/BoxClassifierLoss/localization_loss/mul_1

损失/RPNLoss/localization_loss/mul_1

损失/RPNLoss/objectness_loss/mul_1

clone_loss_1

【问题讨论】:

【参考方案1】:

Region Proposal Network 的损失:

Loss/RPNLoss/localization_loss/mul_1:RPN 的定位损失或边界框回归器的损失

Loss/RPNLoss/objectness_loss/mul_1:分类器的损失,用于分类边界框是感兴趣的对象还是背景

最终分类器的损失:

Loss/BoxClassifierLoss/classification_loss/mul_1:将检测到的物体分类为各种类别的损失:猫、狗、飞机等

Loss/BoxClassifierLoss/localization_loss/mul_1:定位损失或边界框回归器的损失

【讨论】:

不错的答案。谢谢!你知道为什么是“mul_1”吗?【参考方案2】:

clone_loss_1 仅在您在多个 GPU 上训练时才相关:Tensorflow 将创建模型的克隆以在每个 GPU 上进行训练并报告每个克隆的损失。如果您在单个 GPU/CPU 上训练模型,那么您只会看到 clone_loss_1,它与 TotalLoss 相同。

其他损失如Rohit's answer中所述。

【讨论】:

【参考方案3】:

如果你使用更快的 rcnn 网络,你会遇到四种损失

1.RPN 损失/定位损失 如果我们看到更快的 rcnn 架构,我们将拥有用于获取 regoin 提案的 cnn。为了从特征图中获取区域建议,我们有损失函数。这是生成的锚的边界框的定位损失。'

2.RPN 损失/对象损失 这也是我们在提取区域建议时,无论对象是否存在于锚盒中。

3.BOX_CLASSIFIERLOSS/CLASSIFICATION_LOSS 这是对象属于狗还是猫的最后一层??

4.BOX_CLASSIFIERLOSS/LOCALIZATION_LOSS 这也是对象边界框的最后一层。 (狗和猫的坐标)

【讨论】:

以上是关于TensorFlow 对象检测 API - 对象检测 api 中的损失意味着啥?的主要内容,如果未能解决你的问题,请参考以下文章

具有奇怪检测结果的 TensorFlow 对象检测 api

Tensorflow 对象检测 API 中的过拟合

Tensorflow 对象检测 API - 验证丢失行为

TensorFlow对象检测API教程中获取边界框坐标

Tensorflow 2 对象检测 API:Numpy 版本错误

如何修改 ssd mobilenet 配置以使用 tensorflow 对象检测 API 检测小对象?