Die Verwirrungsmatrix kann mithilfe der Aufsicht von Roboflow für das Yolov8-Modell nicht berechnet werdenPython

Python-Programme
Anonymous
 Die Verwirrungsmatrix kann mithilfe der Aufsicht von Roboflow für das Yolov8-Modell nicht berechnet werden

Post by Anonymous »

Ich versuche, die Verwirrungsmatrix für mein yolov8- (oder yolov11-)Modell mithilfe der Aufsicht von Roboflow zu berechnen. Ich habe einige Anweisungen gefunden, aber sie scheinen nicht ganz klar zu sein. Diese Anweisungen sind zum Beispiel etwas vage:

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()
Von anderen Seiten (z. B. von diesem Problembericht, der das gleiche Problem bei mir zu behandeln scheint) habe ich herausgefunden, dass es diese Parameter für den Datensatz gibt:

Code: Select all

images_directory_path
, annotations_directory_path und data_yaml_path
Ich 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)
Das Modell verweist auf die tatsächlichen Modellgewichte im Pytorch-Format.
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()))
AttributeError: 'DetectionDataset'-Objekt hat kein Attribut 'images'

Es scheint dieselben Änderungen an der Schnittstelle zu geben, die das Laden des Datensatzes verhindern.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post