Zum Inhalt springen

Modellvalidierung mit Ultralytics YOLO

Ultralytics YOLO Ökosystem und Integrationen

Einführung

Validation is a critical step in the machine learning pipeline, allowing you to assess the quality of your trained models. Val mode in Ultralytics YOLO11 provides a robust suite of tools and metrics for evaluating the performance of your object detection models. This guide serves as a complete resource for understanding how to effectively use the Val mode to ensure that your models are both accurate and reliable.



Pass auf: Ultralytics Modi Tutorial: Validierung

Warum mit Ultralytics validierenYOLO?

Here's why using YOLO11's Val mode is advantageous:

  • 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: Use validation metrics to fine-tune your model for better performance.

Hauptmerkmale des Val-Modus

These are the notable functionalities offered by YOLO11's Val mode:

  • 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

  • YOLO11 models automatically remember their training settings, so you can validate a model at the same image size and on the original dataset easily with just yolo val model=yolo11n.pt oder model('yolo11n.pt').val()

Verwendungsbeispiele

Validate trained YOLO11n model accuracy on the COCO8 dataset. No arguments are needed as the 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("yolo11n.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=yolo11n.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.

ArgumentTypStandardBeschreibung
datastrNoneGibt den Pfad zur Dataset-Konfigurationsdatei an (z. B., coco8.yaml). This file includes paths to validation data, class names, and number of classes.
imgszint640Legt die Größe der Eingabebilder fest. Alle Bilder werden vor der Verarbeitung auf diese Größe angepasst.
batchint16Legt die Anzahl der Bilder pro Stapel fest. verwenden -1 für AutoBatch, das sich automatisch an die Verfügbarkeit des GPU Speichers anpasst.
save_jsonboolFalseWenn Truespeichert die Ergebnisse in einer JSON-Datei zur weiteren Analyse oder Integration in andere Tools.
save_hybridboolFalseWenn Truespeichert eine hybride Version von Labels, die die ursprünglichen Annotationen mit zusätzlichen Modellvorhersagen kombiniert.
conffloat0.001Legt die minimale Vertrauensschwelle für Erkennungen fest. Erkennungen, deren Konfidenz unter diesem Schwellenwert liegt, werden verworfen.
ioufloat0.6Sets the Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Helps in reducing duplicate detections.
max_detint300Begrenzt die maximale Anzahl der Erkennungen pro Bild. Nützlich in dichten Szenen, um übermäßige Erkennungen zu vermeiden.
halfboolTrueEnables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy.
devicestrNoneGibt das Gerät für die Validierung an (cpu, cuda:0, etc.). Ermöglicht die flexible Nutzung der Ressourcen von CPU oder GPU .
dnnboolFalseWenn True, uses the OpenCV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods.
plotsboolFalseBei der Einstellung auf Trueerstellt und speichert Diagramme der Vorhersagen im Vergleich zur Basiswahrheit, um die Leistung des Modells visuell zu bewerten.
rectboolFalseWenn Trueverwendet die rechteckige Inferenz für die Stapelverarbeitung, wodurch das Auffüllen reduziert und die Geschwindigkeit und Effizienz potenziell erhöht wird.
splitstrvalBestimmt 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("yolo11n.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=yolo11n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0

FAQ

How do I validate my YOLO11 model with Ultralytics?

To validate your YOLO11 model, you can use the Val mode provided by Ultralytics. For example, using the Python API, you can load a model and run validation with:

from ultralytics import YOLO

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

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

Alternativ kannst du auch die Befehlszeilenschnittstelle (CLI) verwenden:

yolo val model=yolo11n.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.

What metrics can I get from YOLO11 model validation?

YOLO11 model validation provides several key metrics to assess model performance. These include:

  • 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:

  • Precision: YOLO11 offers accurate performance metrics including mAP50, mAP75, and 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.

Can I validate my YOLO11 model using a custom dataset?

Yes, you can validate your YOLO11 model using a custom dataset. Specify the data argument with the path to your dataset configuration file. This file should include paths to the validation data, class names, and other relevant details.

Beispiel in Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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=yolo11n.pt data=path/to/your/custom_dataset.yaml

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

How do I save validation results to a JSON file in YOLO11?

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("yolo11n.pt")

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

Beispiel mit CLI:

yolo val model=yolo11n.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.

📅 Created 11 months ago ✏️ Updated 20 days ago

Kommentare