在机器学习和计算机视觉领域,平均精度均值(mean Average Precision,简称mAP)是一个常用的性能评估指标。它衡量的是模型在特定置信度水平下正确预测边界框的能力。常见的评估标准包括mAP@0.5和mAP@0.95,这些值表示预测框与真实边界框的重叠面积百分比。如果预测框与真实标签的面积完全重合,那么它们的交并比(Intersection over Union,简称IoU)为1.0。
Roboflow之前已经深入解析了如何计算平均精度均值,并且录制了视频教程。当考虑一个包含多个不同对象的问题时,模型的总体mAP是通过将每个单独对象类别的平均精度均值平均到一个单一值来计算的。如果其中一个类别特别需要关注,这可能会掩盖性能问题。识别模型最弱的预测为提供了改进的机会。
例如,假设正在构建一个目标检测模型,用于识别棋盘上的单个棋子,使用棋盘棋子数据集。确定模型在哪些棋子上表现最差,可以指导未来的数据收集:如果模型最难以识别,比如说,黑色象,应该专注于收集更多棋盘上的黑色象图片。
在Roboflow Train中引入按类别的mAP,Roboflow Train可以自动训练数据集,无需进行任何GPU配置或模型架构选择。Roboflow Train现在还提供了验证集和训练集评估,包括按类别的mAP,以便可以最好地确定应该集中精力改进模型的地方。
让回到棋盘棋子数据集问题。使用Roboflow Train,已经训练了一个模型。看到以下评估指标:棋模型在Roboflow Train中的总体结果。棋问题验证集按类别的mAP结果。棋盘数据集测试集按类别的mAP结果。总的来说,模型做得很好!它在所有类别上实现了98.7%的mAP。让深入研究验证和测试集中的各个类别。
可以立即看到:模型在兵棋子上做得很好。无论是黑色还是白色兵,在验证集和测试集中都达到了99或100的平均精度。另一方面,其他一些棋子显示出改进的空间。白色车在测试集中只有91%。白色马在验证集中只有95%。白色后在测试集中只有94%。单独来看,这些值并不那么糟糕——但它们都低于整个数据集的mAP。
直观上,这是有道理的:检查Dataset Health Check
,看到兵棋子的例子比其他任何棋子都多:棋盘棋子数据集的Dataset Health Check
。现在有验证,代表性不足的类别确实需要更多的例子——尽管不一定是最不具代表性的类别表现最差!
在Roboflow Train中使用按类别的mAP,Roboflow Train默认提供按类别的mAP评估。要使用Roboflow Train对数据集进行操作,只需在创建的任何版本上点击“使用Roboflow Train”即可。(Roboflow Train是任何Roboflow Pro
计划的一部分。)