You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

YOLOv8如何在含多边形标签的测试集上计算mAP?

计算YOLOv8-OBB模型测试集mAP的方法

YOLOv8官方工具原生支持OBB(定向边界框)任务的评估,不需要额外第三方工具,直接通过命令行或Python API即可计算mAP,步骤如下:

1. 准备数据集配置文件

首先创建一个yaml配置文件(比如命名为test_dataset.yaml),用来指定测试集的结构和任务类型,内容如下:

path: ./test  # 测试集根文件夹路径
test: images  # 测试集图片子文件夹(相对于path)
obb: true  # 声明这是OBB任务
names:
  0: 类别1  # 替换为你的实际类别名称,按标签中的类别ID顺序对应
  1: 类别2
  # 按需添加所有类别

2. 命令行方式评估

直接在终端运行以下命令:

yolo val model=best.pt data=test_dataset.yaml device=0  # device=0用GPU,用CPU则改为device=cpu

运行完成后,终端会输出整体mAP50、mAP50-95以及每个类别的AP值,同时会在runs/val/obb目录下生成详细的评估报告和可视化结果。

3. Python代码方式评估

如果需要集成到自定义脚本中,使用以下代码:

from ultralytics import YOLO

# 加载预训练模型
model = YOLO('best.pt')

# 执行评估任务,指定数据集配置和OBB任务类型
eval_results = model.val(data='test_dataset.yaml', task='obb', device='0')

# 打印关键评估指标
print(f"mAP50: {eval_results.box.map50:.4f}")
print(f"mAP50-95: {eval_results.box.map:.4f}")

注意事项

  • 确保labels文件夹中的txt标签符合YOLO-OBB格式:每行格式为class_id x1 y1 x2 y2 x3 y3 x4 y4,其中坐标是归一化到0-1的多边形四个顶点坐标。
  • 如果测试集只有单个类别,yaml中的names只需保留对应ID的类别即可。

内容的提问来源于stack exchange,提问作者HarriS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 21:37:04