假设我有一个名为“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
我想我必须将图像列表放在上面,然后编写代码来计算测试文件夹中所有内容的地图并对其进行平均。有没有包已经做到了这一点?
完成这个任务的代码是什么?
要在测试集上验证 YOLOv8 模型,请执行以下操作:
val
参数:path: ../dataset # dataset root dir
train: train
val: test # test directory path for validation
names:
0: person
1: bicycle
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')
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/