Zum Inhalt springen

Modellvalidierung mit Ultralytics YOLO

Ultralytics YOLO Ökosystem und Integrationen

EinfĂŒhrung

Die Validierung ist ein wichtiger Schritt in der Pipeline des maschinellen Lernens, mit dem du die QualitÀt deiner trainierten Modelle bewerten kannst. Der Validierungsmodus in Ultralytics YOLOv8 bietet eine Reihe von robusten Werkzeugen und Metriken, um die Leistung deiner Objekterkennungsmodelle zu bewerten. In diesem Leitfaden erfÀhrst du, wie du den Val-Modus effektiv nutzen kannst, um sicherzustellen, dass deine Modelle sowohl genau als auch zuverlÀssig sind.



Pass auf: Ultralytics Modi Tutorial: Validierung

Warum mit Ultralytics validierenYOLO?

Hier erfÀhrst du, warum es von Vorteil ist, den Val-Modus von YOLOv8 zu verwenden:

  • PrĂ€zision: Erhalte genaue Messwerte wie mAP50, mAP75 und mAP50-95, um dein Modell umfassend zu bewerten.
  • Bequemlichkeit: Nutze die integrierten Funktionen, die sich die Trainingseinstellungen merken und so den Validierungsprozess vereinfachen.
  • FlexibilitĂ€t: Validiere dein Modell mit denselben oder unterschiedlichen DatensĂ€tzen und BildgrĂ¶ĂŸen.
  • Hyperparameter-Tuning: Nutze die Validierungsmetriken, um dein Modell fĂŒr eine bessere Leistung fein abzustimmen.

Hauptmerkmale des Val-Modus

Dies sind die bemerkenswerten Funktionen, die der Val-Modus von YOLOv8 bietet:

  • Automatisierte Einstellungen: Die Modelle merken sich ihre Trainingskonfigurationen fĂŒr eine einfache Validierung.
  • Multimetrische UnterstĂŒtzung: Bewerte dein Modell anhand einer Reihe von Genauigkeitsmetriken.
  • CLI und Python API: WĂ€hle zwischen der Befehlszeilenschnittstelle und der Python API, je nachdem, was du fĂŒr die Validierung bevorzugst.
  • DatenkompatibilitĂ€t: Funktioniert nahtlos mit DatensĂ€tzen, die in der Trainingsphase verwendet wurden, sowie mit benutzerdefinierten DatensĂ€tzen.

Tipp

  • YOLOv8 Modelle merken sich automatisch ihre Trainingseinstellungen, so dass du ein Modell bei gleicher BildgrĂ¶ĂŸe und auf dem Originaldatensatz leicht validieren kannst mit nur yolo val model=yolov8n.pt oder model('yolov8n.pt').val()

Verwendungsbeispiele

Validiere die Genauigkeit des trainierten YOLOv8n Modells auf dem COCO8-Datensatz. Es muss kein Argument ĂŒbergeben werden, da die model seine Ausbildung beibehĂ€lt data und Argumente als Modellattribute. Eine vollstĂ€ndige Liste der Exportargumente findest du im Abschnitt Argumente weiter unten.

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list contains map50-95 of each category
yolo detect val model=yolov8n.pt  # val official model
yolo detect val model=path/to/best.pt  # val custom model

Argumente fĂŒr YOLO Modellvalidierung

Bei der Validierung von YOLO Modellen können mehrere Argumente fein abgestimmt werden, um den Bewertungsprozess zu optimieren. Diese Argumente steuern Aspekte wie die GrĂ¶ĂŸe des Eingabebildes, die Stapelverarbeitung und die Leistungsschwellen. Im Folgenden findest du eine detaillierte AufschlĂŒsselung der einzelnen Argumente, damit du deine Validierungseinstellungen effektiv anpassen kannst.

Argument Typ Standard Beschreibung
data str None Gibt den Pfad zur Dataset-Konfigurationsdatei an (z. B., coco8.yaml). Diese Datei enthÀlt Pfade zu den Validierungsdaten, Klassennamen und die Anzahl der Klassen.
imgsz int 640 Legt die GrĂ¶ĂŸe der Eingabebilder fest. Alle Bilder werden vor der Verarbeitung auf diese GrĂ¶ĂŸe angepasst.
batch int 16 Legt die Anzahl der Bilder pro Stapel fest. verwenden -1 fĂŒr AutoBatch, das sich automatisch an die VerfĂŒgbarkeit des GPU Speichers anpasst.
save_json bool False Wenn Truespeichert die Ergebnisse in einer JSON-Datei zur weiteren Analyse oder Integration in andere Tools.
save_hybrid bool False Wenn Truespeichert eine hybride Version von Labels, die die ursprĂŒnglichen Annotationen mit zusĂ€tzlichen Modellvorhersagen kombiniert.
conf float 0.001 Legt die minimale Vertrauensschwelle fĂŒr Erkennungen fest. Erkennungen, deren Konfidenz unter diesem Schwellenwert liegt, werden verworfen.
iou float 0.6 Legt den Schwellenwert fĂŒr die ÜberschneidungsunterdrĂŒckung (IoU) fĂŒr die Nicht-Maximum-UnterdrĂŒckung (NMS) fest. Hilft dabei, doppelte Erkennungen zu reduzieren.
max_det int 300 Begrenzt die maximale Anzahl der Erkennungen pro Bild. NĂŒtzlich in dichten Szenen, um ĂŒbermĂ€ĂŸige Erkennungen zu vermeiden.
half bool True Ermöglicht Berechnungen mit halber Genauigkeit (FP16), wodurch der Speicherverbrauch reduziert und die Geschwindigkeit bei minimalen Auswirkungen auf die Genauigkeit erhöht werden kann.
device str None Gibt das GerĂ€t fĂŒr die Validierung an (cpu, cuda:0, etc.). Ermöglicht die flexible Nutzung der Ressourcen von CPU oder GPU .
dnn bool False Wenn Trueverwendet das OpenCV DNN-Modul fĂŒr die ONNX Modellinferenz und bietet damit eine Alternative zu PyTorch Inferenzmethoden.
plots bool False Bei der Einstellung auf Trueerstellt und speichert Diagramme der Vorhersagen im Vergleich zur Basiswahrheit, um die Leistung des Modells visuell zu bewerten.
rect bool False Wenn Trueverwendet die rechteckige Inferenz fĂŒr die Stapelverarbeitung, wodurch das AuffĂŒllen reduziert und die Geschwindigkeit und Effizienz potenziell erhöht wird.
split str val Bestimmt die Aufteilung des Datensatzes fĂŒr die Validierung (val, test, oder train). Ermöglicht FlexibilitĂ€t bei der Auswahl des Datensegments fĂŒr die Leistungsbewertung.

Jede dieser Einstellungen spielt eine wichtige Rolle im Validierungsprozess und ermöglicht eine anpassbare und effiziente Bewertung der YOLO Modelle. Wenn du diese Parameter an deine spezifischen BedĂŒrfnisse und Ressourcen anpasst, kannst du das beste Gleichgewicht zwischen Genauigkeit und Leistung erreichen.

Beispiel Validierung mit Argumenten

Die folgenden Beispiele zeigen die YOLO Modellvalidierung mit benutzerdefinierten Argumenten in Python und CLI.

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")

# Customize validation settings
validation_results = model.val(data="coco8.yaml", imgsz=640, batch=16, conf=0.25, iou=0.6, device="0")
yolo val model=yolov8n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0

FAQ

Wie kann ich mein YOLOv8 Modell mit Ultralytics validieren?

Um dein YOLOv8 Modell zu validieren, kannst du den von Ultralytics bereitgestellten Val-Modus verwenden. Mit der Python API kannst du zum Beispiel ein Modell laden und die Validierung mit durchfĂŒhren:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # map50-95

Alternativ kannst du auch die Befehlszeilenschnittstelle (CLI) verwenden:

yolo val model=yolov8n.pt

FĂŒr weitere Anpassungen kannst du verschiedene Argumente einstellen, wie imgsz, batch, und conf sowohl im Python als auch im CLI Modus. PrĂŒfe die Argumente fĂŒr YOLO Modellvalidierung Abschnitt fĂŒr die vollstĂ€ndige Liste der Parameter.

Welche Kennzahlen kann ich aus der YOLOv8 Modellvalidierung gewinnen?

YOLOv8 Die Modellvalidierung liefert mehrere SchlĂŒsselkennzahlen zur Bewertung der Modellleistung. Dazu gehören:

  • mAP50 (mittlere durchschnittliche PrĂ€zision bei IoU-Schwelle 0,5)
  • mAP75 (mittlere durchschnittliche PrĂ€zision bei IoU-Schwelle 0,75)
  • mAP50-95 (mittlere durchschnittliche PrĂ€zision ĂŒber mehrere IoU-Schwellenwerte von 0,5 bis 0,95)

Mit der Python API kannst du wie folgt auf diese Metriken zugreifen:

metrics = model.val()  # assumes `model` has been loaded
print(metrics.box.map)  # mAP50-95
print(metrics.box.map50)  # mAP50
print(metrics.box.map75)  # mAP75
print(metrics.box.maps)  # list of mAP50-95 for each category

FĂŒr eine vollstĂ€ndige Leistungsbewertung ist es wichtig, all diese Kennzahlen zu ĂŒberprĂŒfen. Weitere Einzelheiten findest du in den Hauptmerkmalen des Val-Modus.

Welche Vorteile hat die Verwendung von Ultralytics YOLO fĂŒr die Validierung?

Die Verwendung von Ultralytics YOLO fĂŒr die Validierung bietet mehrere Vorteile:

  • PrĂ€zision: YOLOv8 bietet genaue Leistungskennzahlen wie mAP50, mAP75 und mAP50-95.
  • Bequemlichkeit: Die Modelle merken sich ihre Trainingseinstellungen, was die Validierung vereinfacht.
  • FlexibilitĂ€t: Du kannst mit denselben oder unterschiedlichen DatensĂ€tzen und BildgrĂ¶ĂŸen validieren.
  • Abstimmung der Hyperparameter: Validierungsmetriken helfen bei der Feinabstimmung der Modelle fĂŒr eine bessere Leistung.

Diese Vorteile stellen sicher, dass deine Modelle grĂŒndlich ausgewertet werden und fĂŒr hervorragende Ergebnisse optimiert werden können. Mehr ĂŒber diese Vorteile erfĂ€hrst du im Abschnitt " Warum mit Ultralytics validieren " YOLO.

Kann ich mein YOLOv8 Modell mit einem benutzerdefinierten Datensatz validieren?

Ja, du kannst dein YOLOv8 Modell mithilfe eines benutzerdefinierten Datensatzes validieren. Lege den data Argument mit dem Pfad zu deiner Datensatz-Konfigurationsdatei. Diese Datei sollte Pfade zu den Validierungsdaten, Klassennamen und andere relevante Details enthalten.

Beispiel in Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")

# Validate with a custom dataset
metrics = model.val(data="path/to/your/custom_dataset.yaml")
print(metrics.box.map)  # map50-95

Beispiel mit CLI:

yolo val model=yolov8n.pt data=path/to/your/custom_dataset.yaml

Weitere anpassbare Optionen fĂŒr die Validierung findest du im Abschnitt Beispielvalidierung mit Argumenten.

Wie speichere ich Validierungsergebnisse in einer JSON-Datei in YOLOv8?

Um die Validierungsergebnisse in einer JSON-Datei zu speichern, kannst du die save_json Argument zu True wenn die Validierung lĂ€uft. Dies kann sowohl ĂŒber die Python API als auch ĂŒber CLI erfolgen.

Beispiel in Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")

# Save validation results to JSON
metrics = model.val(save_json=True)

Beispiel mit CLI:

yolo val model=yolov8n.pt save_json=True

Diese Funktion ist besonders nĂŒtzlich fĂŒr weitere Analysen oder die Integration mit anderen Tools. In den Argumenten fĂŒr die YOLO Modellvalidierung findest du weitere Informationen.



Erstellt am 2023-11-12, Aktualisiert am 2024-07-04
Autoren: glenn-jocher (14), Burhan-Q (1), RizwanMunawar (1)

Kommentare