File size: 922 Bytes
aa24fe8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from ultralytics import YOLO
import matplotlib.pyplot as plt
import numpy as np

# 1. 加载你的模型
model = YOLO("D:/wampee_yolov8/wampee/wampee/ultralytics/runs/detect/train4/weights/best.pt")

# 2. 使用测试集评估
results = model.val(data="D:/wampee_yolov8/wampee/wampee/ultralytics/train.yaml", split="test")

# 3. 提取指标
precision = results.box.pr
recall = results.box.re
f1 = results.box.f1
class_names = [results.names[i] for i in range(len(precision))]

# 4. 绘图
x = np.arange(len(class_names))
plt.figure(figsize=(8, 5))
plt.plot(x, precision, marker='o', label='Precision')
plt.plot(x, recall, marker='s', label='Recall')
plt.plot(x, f1, marker='^', label='F1-score')
plt.xticks(x, class_names, rotation=45)
plt.xlabel("Class")
plt.ylabel("Score")
plt.title("Precision / Recall / F1-score per Class")
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.savefig("prf1_per_class.png")
plt.show()