如何将Detectron2中COCOEvaluator的AP指标存入变量?
提取Detectron2中COCOEvaluator的AP指标到变量
直接利用COCOEvaluator完成评估后存储的结果属性即可,无需依赖inference_on_dataset的返回值。修改代码如下:
evaluator = COCOEvaluator("test_dataset", output_dir="/content/output") val_loader = build_detection_test_loader(cfg, "test_dataset") # 执行评估流程,无需打印返回值 inference_on_dataset(predictor.model, val_loader, evaluator) # 从评估器中获取完整评估结果字典 eval_results = evaluator._evaluator_results # 提取你需要的AP指标,比如通用bbox AP bbox_ap = eval_results["bbox AP"] # 若需要特定IoU阈值的AP,比如AP50 bbox_ap50 = eval_results["bbox AP50"] # 实例分割任务的AP同理 segm_ap = eval_results["segm AP"] # 后续代码可直接调用这些变量 print(f"整体bbox AP值: {bbox_ap:.4f}")
说明
COCOEvaluator在完成inference_on_dataset的评估计算后,会将所有COCO标准评估指标(包括各类AP、AP细分项)存入自身的_evaluator_results字典属性中。你可以根据任务类型(bbox/segm)和需求的指标类型,直接通过键名提取对应数值存入变量,供后续代码使用。
内容的提问来源于stack exchange,提问作者Deamoon
相关产品推荐
相关产品推荐

