【问题标题】:High mAP@50 with low precision and recall. What does it mean and what metric should be more important?高 mAP@50,精度和召回率低。这是什么意思,什么指标应该更重要?
【发布时间】:2020-11-08 09:24:58
【问题描述】:

我正在比较用于海上搜索和救援 (SAR) 目的的物体检测模型。从我使用的模型中,我得到了用于小目标检测的 YOLOv3 改进版本和 FASTER RCNN 的最佳结果。

对于 YOLOv3,我得到了最好的 mAP@50,但对于 FASTER RCNN,我在所有其他指标(精确度、召回率、F1 分数)上都得到了更好的结果。现在我想知道如何阅读它以及在这种情况下哪种模型真的更好?

我想补充一点,数据集中只有两个类:小对象和大对象。我们之所以选择这个解决方案,是因为对象之间的类区别对我们来说并不像检测任何人类起源对象那么重要。

但是,小物体并不意味着小的 GT 边界框。这些是实际面积很小的物体 - 小于 2 平方米(例如人、浮标)。大物体是指面积较大的物体(船、轮船、独木舟等)。

以下是每个类别的结果:

以及来自数据集的两个样本图像(使用 YOLOv3 检测):

【问题讨论】:

    标签: computer-vision conv-neural-network object-detection yolo faster-rcnn


    【解决方案1】:

    物体检测的 mAP 是为所有类别计算的 AP 的平均值。 mAP@0.5表示在IOU阈值0.5计算的mAP。

    平均精度 (AP) 的一般定义是找到精度-召回曲线下的面积。

    将模型的准确率和召回率绘制为模型置信度阈值的函数的过程就是准确率召回曲线。

    精确度衡量您的预测有多准确。即您的预测正确的百分比。回忆衡量你发现所有积极因素的程度。 F1 分数是准确率和召回率的 HM (Harmonic Mean)。

    现在回答您的问题。

    如何解读,在这种情况下哪种模型真的更好?

    • mAP 是衡量神经网络灵敏度的良好指标。如此好的 mAP 表明模型在差异置信度阈值上是稳定且一致的。在您的情况下,更快的 rcnn 结果表明与 Yolov3 相比,精确召回曲线度量很差,这意味着与 Yolov3 相比,更快的 rcnn 在较高置信度阈值下的召回率非常差,或者在较低置信度阈值下的精度非常差(尤其是用于小物体)。
    • 针对给定的置信度阈值计算精确度、召回率和 F1 分数。我假设您正在使用默认置信阈值(可能是 0.25)运行模型。因此,更高的 Precision、Recall 和 F1 得分更快的 rcnn 表明,在该置信度阈值下,与 Yolov3 相比,它在所有 3 个指标方面都更好。

    哪个指标更重要?

    一般来说,为了分析性能更好的模型,我建议您使用验证集(用于调整超参数的数据集)和测试集(用于评估完全训练模型的性能的数据集)。

    注意:FP - 假阳性 FN - 假阴性

    关于验证集:

    • 使用 mAP 从迭代/时期的所有训练权重中选择性能最佳的模型(更稳定和一致的模型)。使用 mAP 了解是否应进一步训练/调整模型。

    • 检查班级级别的 AP 值以确保模型在各个班级中稳定且良好。

    • 根据用例/应用程序,如果您完全容忍 FN 而对 FP 高度不容忍,则相应地使用 Precision 训练/调整模型。

    • 根据用例/应用程序,如果您对 FP 完全宽容,而对 FN 高度不宽容,则相应地使用 Recall 来训练/调整模型。

    在测试集上:

    • 如果您对 FP 和 FN 持中立态度,则使用 F1 分数 来评估性能最佳的模型。

    • 如果您不能接受 FP(不太关心 FN),请选择具有更高精度的模型

    • 如果你不能接受 FN(不太关心 FP)选择具有更高召回率的模型

    • 一旦您决定了应该使用的指标,请为给定模型尝试多个置信度阈值(例如 - 0.25、0.35 和 0.5),以了解您选择的指标在哪个​​置信度阈值下对您有利,并了解可接受的权衡范围(假设您想要至少 80% 的精确度和一些不错的召回率)。一旦确定了置信度阈值,您就可以在不同的模型中使用它来找出性能最佳的模型。

    【讨论】:

    • 您说 - “如此好的 mAP 表明模型在差异置信度阈值上稳定且一致。”但是,当我们计算mAP时,我们会改变IOU阈值,对吧?例如当我们说 mAP@0.5:0.05:0.95 时,我们的意思是 mAP 计算的 IOU 阈值为 - 0.5,0.55,06....0.95。那么,这句话不应该是——“好的mAP表明模型在不同的IOU阈值下是稳定和一致的”吗?
    • mAP 正在计算不同的 CONFIDENCE 阈值,如 Venkatesh 所说。当我们计算 mAP@0.5:0.05:0.95 时,我们也在跨不同的 IoU 阈值进行计算。但是在跨 conf 计算时,跨 IoU 计算只是一个加法。阈值是mAP的定义。
    猜你喜欢
    • 1970-01-01
    • 2015-09-02
    • 2021-06-16
    • 2014-03-10
    • 2022-06-19
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多