| from ultralytics import YOLO |
| import matplotlib.pyplot as plt |
| import numpy as np |
|
|
| |
| model = YOLO("D:/wampee_yolov8/wampee/wampee/ultralytics/runs/detect/train4/weights/best.pt") |
|
|
| |
| results = model.val(data="D:/wampee_yolov8/wampee/wampee/ultralytics/train.yaml", split="test") |
|
|
| |
| precision = results.box.pr |
| recall = results.box.re |
| f1 = results.box.f1 |
| class_names = [results.names[i] for i in range(len(precision))] |
|
|
| |
| 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() |
|
|