Code: Select all
import supervision as sv
from ultralytics import YOLO
dataset = sv.DetectionDataset.from_yolo(...)
model = YOLO(...)
def callback(image: np.ndarray) -> sv.Detections:
result = model(image)[0]
return sv.Detections.from_ultralytics(result)
confusion_matrix = sv.ConfusionMatrix.benchmark(
dataset = dataset,
callback = callback
)
confusion_matrix.plot()
Code: Select all
images_directory_pathIch habe den Code so geändert, dass er dies einschließt und auf meinen Validierungsbildordner (der Unterordner, der nur die Validierungsbilder enthält – obwohl der Verweis auf den generischen Bildordner auch nicht geholfen hat) und auf meine Anmerkungen (im Yolo-Format, auch den Unterordner, der nur die Validierung enthält) verweist Anmerkungen)-Validierungsordner und in die Yaml-Datei des Datensatzes (um die Klassen zu erhalten, vermute ich).
Code: Select all
dataset = sv.DetectionDataset.from_yolo(images_directory_path=IMAGES_DIR,
annotations_directory_path=ANNOT_DIR,
data_yaml_path=YAML_PATH)
Leider führte dies zu keinen gültigen Ergebnissen. Meine Verwirrungsmatrix ist leer, aber die Klassen scheinen korrekt zu sein. Daher vermute ich, dass mein Datensatz nicht richtig gelesen wird, während die Yaml-Datei korrekt gelesen wird.
Weiß jemand, wie man die Parameter korrekt in das Datensatzobjekt einfügt?
Bearbeiten:
Ich habe versucht, das Problem zu beheben. Zuerst habe ich die Versionsüberwachung==0.26.1 installiert. Ich habe auch die Anweisungen in diesem Notizbuch befolgt, in dem ich versucht habe, meinen Datensatz zu laden.
Dies scheint bis zu
print(dataset.classes)
['car', 'person', 'truck', 'motor', 'bus', 'bike', 'fire']
aber der nächste schlägt fehl:
Code: Select all
IMAGE_NAME = next(iter(dataset.images.keys()))
Es scheint dieselben Änderungen an der Schnittstelle zu geben, die das Laden des Datensatzes verhindern.
Mobile version