YOLOv8:如何计算测试集上的地图

问题描述 投票:0回答:1

假设我有一个名为“test”的文件夹,其中包含“images”和“labels”文件夹。我还有一个训练过的 YOLOv8 模型,名为“best.pt”。我的标签是多边形(yolo-obb .txt 文件)。

我想找到我的 YOLOv8 模型在此测试集上的平均精度 (MAP)。

我已经阅读了预测和基准测试的文档,但是,我正在努力寻找从一些测试图像计算地图的示例。

https://docs.ultralytics.com/modes/predict/

https://docs.ultralytics.com/modes/benchmark/

from ultralytics import YOLO

# Load a pretrained YOLOv8n model
model = YOLO('best.pt')

# Run inference on an image
results = model(['test/images/bus.jpg', 'test/images/zidane.jpg'])  # list of 2 Results objects

我想我必须将图像列表放在上面,然后编写代码来计算测试文件夹中所有内容的地图并对其进行平均。有没有包已经做到了这一点?

完成这个任务的代码是什么?

machine-learning deep-learning object-detection yolo yolov8
1个回答
0
投票

要在测试集上验证 YOLOv8 模型,请执行以下操作:

  1. data.yaml 文件中将测试文件夹路径指定为
    val
    参数:
path: ../dataset  # dataset root dir
train: train  
val: test  # test directory path for validation

names:
  0: person
  1: bicycle
  1. 验证模型:
from ultralytics import YOLO

# Load a pretrained YOLOv8 model
model = YOLO('best.pt')

# Run validation on a set specified as 'val' argument
metrics = model.val(data='data.yaml')
  1. 获取相关指标:
metrics.results_dict

# output example

{'metrics/precision(B)': 0.8539022762405677,
 'metrics/recall(B)': 0.8012653662055587,
 'metrics/mAP50(B)': 0.8833459433957722,
 'metrics/mAP50-95(B)': 0.6608424795290528,
 'fitness': 0.6830928259157248}

有关验证模式的更多信息:https://docs.ultralytics.com/modes/val/

© www.soinside.com 2019 - 2024. All rights reserved.