【发布时间】:2020-08-19 12:48:42
【问题描述】:
我是计算机视觉的新手,我有一个简单的问题,在网上找不到任何答案。我正在使用 Matterport 的 mask rcnn 实现对一些图像执行二进制分类,并且我有一些额外的代码行来计算每个图像的 mAP。现在我想知道,如果我可以将每个图像计算的 mAP 相加,然后除以该数字以获得整个数据集的 mAP,如果不能,我该如何计算整体 mAP? (最好使用 mask rcnn 模型的实用程序)
【问题讨论】:
-
2 个步骤 - 1. 对于每张图像,计算不同召回阈值点的平均精度 - 在数学上,我们将其称为 - 每张图像的“精确召回曲线下面积”的积分。 2. 以上所有图像的平均值,即(总精度之和)/(图像数量)如果您可以将输出格式作为样本共享会更清楚。
-
@Prachi 感谢您的回复。这比我想象的要方便得多,但我不明白它为什么会起作用。你能详细说明一下吗,或者给我介绍一些教科书?因为我认为应该为所有图像的所有实例计算精度和召回率,然后曲线下的区域将产生最终的 mAP,对吧?
-
这里的实例是什么“跨所有图像的实例”?
-
@Prachi 通过实例我指的是检测到的任何对象。因此,例如在这篇文章 (medium.com/@jonathan_hui/…) 下,假设我们有相同数量的对象,但分为两个图像。如果我计算每张图像的mAP,然后对所有图像进行平均,或者将所有检测结果相加,对它们进行排名,然后计算mAP,结果会相同吗?
-
好的,所以在对象检测中,结果会在图像级别与相应的检测到的边界框一起报告。因此,如果一个图像有 5 个 Bbox,它将在预测数据集中有行,并且为每个 bbox 单独计算精确召回率。这里的解释可以帮助stats.stackexchange.com/questions/260430/…
标签: machine-learning average-precision