Ultralytics YOLO27:
Get Started

Erkenntnisse zur Modellbewertung und Feinabstimmung#

Nachdem du ein YOLO-Modell trainiert hast, besteht der nächste Schritt darin, seine Leistung zu messen und es gezielt zu optimieren. Bei der Bewertung werden Metriken wie mAP und IoU verwendet, um die Genauigkeit zu quantifizieren. Bei der Feinabstimmung werden Trainingsparameter angepasst, um Schwachstellen zu beheben und das Modell an das Ziel deines Projekts anzupassen. Diese Anleitung erläutert die wichtigsten Bewertungsmetriken, ihre Interpretation und die daraus abzuleitenden Maßnahmen.



Ansehen: Einblicke in Modellevaluierung und Feinabstimmung | Tipps zur Verbesserung der mittleren Average Precision

Bewertung und Feinabstimmung finden gegen Ende des Workflows für Computer-Vision-Projekte statt, sobald das Training läuft und du überprüfen musst, ob das Modell genau, effizient und einsatzbereit ist.

Wichtige Bewertungsmetriken#

Die Leistung eines Modells lässt sich mit verschiedenen Metriken messen. Diese Leistungsmetriken liefern klare numerische Erkenntnisse, die gezielte Verbesserungen ermöglichen und dabei helfen sicherzustellen, dass das Modell seine vorgesehenen Ziele erreicht.

Konfidenzwert#

Der Konfidenzwert gibt an, wie sicher sich das Modell ist, dass ein erkanntes Objekt einer bestimmten Klasse angehört. Er liegt zwischen 0 und 1; höhere Werte bedeuten eine größere Sicherheit. Mit dem Konfidenzwert lassen sich Vorhersagen filtern: Nur Erkennungen mit einem Konfidenzwert oberhalb eines festgelegten Schwellenwerts gelten als gültig.

Keine Vorhersagen zu sehen?

Wenn bei der Inferenz keine Vorhersagen angezeigt werden und du alles andere überprüft hast, versuche, den Konfidenzschwellenwert zu senken. Manchmal ist der Schwellenwert zu hoch, sodass das Modell gültige Vorhersagen ignoriert. Ein niedrigerer Wert lässt das Modell mehr Möglichkeiten berücksichtigen. Das entspricht möglicherweise nicht den endgültigen Zielen deines Projekts, ist aber eine gute Möglichkeit, herauszufinden, was das Modell leisten kann und wie du es feinabstimmen solltest.

Schnitt über Vereinigung#

Der Schnitt über Vereinigung (IoU) ist eine Metrik für die Objekterkennung, mit der gemessen wird, wie stark sich der vorhergesagte Begrenzungsrahmen mit dem Ground-Truth-Begrenzungsrahmen überschneidet. IoU-Werte liegen zwischen 0 und 1, wobei 1 für eine perfekte Übereinstimmung steht. IoU ist wichtig, weil die Metrik misst, wie genau die vorhergesagten Grenzen mit den tatsächlichen Objektgrenzen übereinstimmen.

Intersection over Union Overview

Mittlere durchschnittliche Genauigkeit#

Die mittlere durchschnittliche Genauigkeit (mAP) misst die Gesamtleistung eines Objekterkennungsmodells. Dazu wird die Präzision für jede Objektklasse betrachtet, über alle Klassen gemittelt und als einzelne Zahl angegeben, die zeigt, wie genau das Modell Objekte identifizieren und klassifizieren kann.

Am häufigsten werden zwei mAP-Metriken angegeben:

  • mAP@.5: Misst die durchschnittliche Präzision bei einem einzelnen IoU-Schwellenwert von 0.5. Diese Metrik prüft, ob das Modell Objekte bei geringeren Genauigkeitsanforderungen korrekt finden kann. Dabei geht es darum, ob sich ein Objekt ungefähr an der richtigen Stelle befindet; eine perfekte Platzierung ist nicht erforderlich. Die Metrik hilft einzuschätzen, ob das Modell Objekte im Allgemeinen gut erkennt.
  • mAP@.5:.95: Mittelt die mAP-Werte, die bei mehreren IoU-Schwellenwerten von 0.5 bis 0.95 in Schritten von 0.05 berechnet wurden. Diese Metrik ist detaillierter und strenger. Sie bietet einen umfassenderen Überblick darüber, wie genau das Modell Objekte bei unterschiedlichen Genauigkeitsanforderungen finden kann, und eignet sich besonders für Anwendungen, die eine präzise Objekterkennung erfordern.

Weitere mAP-Metriken sind mAP@0.75, das einen strengeren IoU-Schwellenwert von 0.75 verwendet, sowie mAP@small, mAP@medium und mAP@large, die die Präzision bei Objekten unterschiedlicher Größe bewerten.

Mean average precision mAP metric

Ein YOLO26-Modell bewerten#

Du kannst ein trainiertes YOLO26-Modell mit dem Validierungsmodus bewerten. Eine ausführlichere Erklärung zur Berechnung und Interpretation der einzelnen Metriken findest du in der Anleitung zu den YOLO26-Leistungsmetriken.

Unterschiedliche Bildgrößen verarbeiten#

Wenn du dein Modell mit Bildern unterschiedlicher Größe bewertest, kannst du seine Leistung auf vielfältigen Datensätzen besser einschätzen. Bei der Validierung wird standardmäßig rechteckiges Batching verwendet (rect=True in model.val()): Bilder werden nach Seitenverhältnis gruppiert und jeder Batch wird auf die kleinste passende Form aufgefüllt. So werden rechteckige Bilder ausgewertet, ohne sie zwangsweise in quadratische Formen umzuwandeln.

Der Parameter imgsz legt die bei der Validierung verwendete Bildgröße fest und wendet sie quadratisch an. Wenn du keinen Wert festlegst, verwendet YOLO26 den in den Modelleinstellungen gespeicherten Wert erneut (640 bei den offiziellen vortrainierten Modellen oder die Größe, mit der ein benutzerdefinierter Checkpoint trainiert wurde). Mit rect=true begrenzt YOLO26 die längere Seite auf imgsz und füllt die kürzere Seite bis zu einem Vielfachen der Schrittweite auf, wobei das Seitenverhältnis erhalten bleibt. Passe imgsz an die Abmessungen deines Datensatzes und den verfügbaren GPU-Speicher an.

Auf YOLO26-Metriken zugreifen#

Um die Leistung deines Modells im Detail zu verstehen, kannst du mit wenigen Zeilen Python auf bestimmte Bewertungsmetriken zugreifen. Das folgende Codebeispiel lädt ein Modell, führt eine Validierung aus und gibt die nützlichsten Metriken aus.

Verwendung
from ultralytics import YOLO

# Ein Modell laden
model = YOLO("yolo26n.pt")

# Die Validierung für deinen Datensatz ausführen
results = model.val(data="coco8.yaml")

# Gesamtmetriken
print("mAP50-95:", results.box.map)  # mAP bei IoU 0.50:0.95
print("mAP50:", results.box.map50)  # mAP bei IoU 0.50
print("mAP75:", results.box.map75)  # mAP bei IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness())  # gewichteter Wert für die Modellauswahl

# Metriken pro Klasse
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)

# Präzision, Recall, F1, TP, FP und FN pro Bild
print("Per-image metrics:", results.box.image_metrics)

# Zeitaufschlüsselung pro Verarbeitungsstufe in Millisekunden pro Bild
print("Timing breakdown (ms/image):", results.speed)

Beachte, dass fitness() eine Methode ist und mit Klammern aufgerufen werden muss, während Metriken wie map, map50 und mp Eigenschaften sind, auf die direkt zugegriffen wird.

Das Attribut results.box.image_metrics ist ein Wörterbuch mit Einträgen pro Bild, dessen Schlüssel die Bilddateinamen sind. Für jedes Bild enthält es bei IoU 0.5 die Werte precision, recall, f1, tp, fp und fn. Die Zeiten für Vorverarbeitung, Inferenz, Verlustberechnung und Nachverarbeitung werden separat im Wörterbuch results.speed angegeben. So kannst du genau erkennen, mit welchen Bildern das Modell Schwierigkeiten hat, und es entsprechend optimieren.

Dein Modell feinabstimmen#

Bei der Feinabstimmung wird ein vortrainiertes Modell übernommen und werden seine Parameter angepasst, um die Leistung bei einer bestimmten Aufgabe oder einem bestimmten Datensatz zu verbessern. Die auch als erneutes Modelltraining bezeichnete Methode hilft dem Modell, Ergebnisse für die Daten, denen es in realen Anwendungen begegnet, besser zu verstehen und vorherzusagen. Auf Grundlage deiner Auswertungsergebnisse trainierst du das Modell mit deinen eigenen Daten erneut und passt dabei die im Leitfaden zur Feinabstimmung beschriebenen Trainingsargumente an.

Bildkachelung für kleine Objekte#

Die Kachelung von Bildern kann die Erkennungsgenauigkeit bei kleinen Objekten verbessern. Wenn du größere Bilder in kleinere Abschnitte unterteilst, zum Beispiel Bilder mit 1280x1280 Pixeln in mehrere Abschnitte mit 640x640 Pixeln, bleibt die ursprüngliche Auflösung erhalten und das Modell kann mit hochauflösenden Ausschnitten lernen. Ultralytics unterstützt dies zur Inferenzzeit mit der Kachelinferenz von SAHI. Achte beim Training mit gekachelten Bildern darauf, die Beschriftungen für jeden neuen Abschnitt korrekt anzupassen.

Fazit#

Durch Auswertung und Feinabstimmung wird aus einem trainierten Modell ein zuverlässiges, einsatzbereites Modell: Metriken wie mAP und IoU machen Schwächen sichtbar, und gezielte Parameteränderungen beheben sie. Beginne mit dem Validierungsmodus, um dein Modell zu bewerten. Trainiere es anschließend mit den im Leitfaden zur Feinabstimmung beschriebenen Argumenten erneut und verbessere es schrittweise mit neuen Parametern, Techniken und Datensätzen. Wenn dabei Fragen auftauchen, wende dich an die Community im Ultralytics-GitHub-Repository oder auf dem Ultralytics-Discord-Server.

Häufig gestellte Fragen#

  • Zu den wichtigen Metriken für die Bewertung der Leistung eines YOLO26-Modells gehören der Konfidenzwert, die Schnittmenge über Vereinigungsmenge (IoU) und die mittlere durchschnittliche Präzision (mAP). Der Konfidenzwert gibt an, wie sicher sich das Modell bei jeder erkannten Objektklasse ist. IoU bewertet, wie stark sich die vorhergesagte Bounding Box mit der Ground-Truth-Box überschneidet. Die mittlere durchschnittliche Präzision (mAP) fasst die Präzisionswerte über alle Klassen zusammen. mAP@.5 und mAP@.5:.95 sind zwei gängige Varianten für unterschiedliche IoU-Schwellenwerte. Weitere Informationen zu diesen Metriken findest du in unserem Leitfaden zu den Leistungsmetriken von YOLO26.

  • Bei der Feinabstimmung eines vortrainierten YOLO26-Modells werden seine Parameter angepasst, um die Leistung bei einer bestimmten Aufgabe oder einem bestimmten Datensatz zu verbessern. Bewerte zunächst dein Modell anhand von Metriken und trainiere es dann mit den vortrainierten Gewichten und deinem eigenen Datensatz erneut. Bei der Auswertung helfen Parameter wie rect=true, unterschiedliche Bildgrößen effektiv zu verarbeiten. Welche Trainingsargumente du anpassen kannst, erfährst du im Leitfaden zur Feinabstimmung.

  • Um bei der Auswertung mit unterschiedlichen Bildgrößen umzugehen, verwende die rechteckige Validierung (rect=True, die Standardeinstellung für model.val()). Dabei werden Bilder nach ihrem Seitenverhältnis gruppiert und die einzelnen Batches aufgefüllt, statt jedes Bild auf ein Quadrat zuzuschneiden. Der Parameter imgsz legt die Bildgröße für die Validierung fest. Wenn du ihn nicht überschreibst, verwendet YOLO26 den gespeicherten Wert des Modells erneut (640 für die offiziellen vortrainierten Modelle). Passe imgsz an deinen Datensatz und den Speicher deiner GPU an. Weitere Informationen findest du in unserem Abschnitt zum Umgang mit unterschiedlichen Bildgrößen.

  • Um die mittlere durchschnittliche Präzision (mAP) eines YOLO26-Modells zu verbessern, kannst du mehrere Schritte unternehmen:

    1. Hyperparameter abstimmen: Experimentiere mit unterschiedlichen Lernraten, Batchgrößen und Bildaugmentationen.
    2. Datenaugmentation: Verwende Techniken wie Mosaic und MixUp, um vielfältige Trainingsbeispiele zu erzeugen.
    3. Bildkachelung: Teile größere Bilder in kleinere Kacheln auf, um die Erkennungsgenauigkeit bei kleinen Objekten zu verbessern.

    Die Trainingsargumente für die Schritte 1 und 2 findest du im Leitfaden zur Feinabstimmung; Schritt 3 wird unter Bildkachelung behandelt.

  • Nach der Validierung kannst du mit Python auf die Bewertungsmetriken eines YOLO26-Modells zugreifen:

    Verwendung
    from ultralytics import YOLO
    
    # Ein Modell laden
    model = YOLO("yolo26n.pt")
    
    # Validierung ausführen
    results = model.val(data="coco8.yaml")
    
    # Auf wichtige Metriken zugreifen
    print("Mean average precision at IoU=0.50:", results.box.map50)
    print("Mean average precision at IoU=0.50:0.95:", results.box.map)
    print("Mean recall:", results.box.mr)
    print("Class indices evaluated:", results.box.ap_class_index)

    Die Analyse dieser Metriken hilft dir, dein YOLO26-Modell feinabzustimmen und zu optimieren. Eine ausführlichere Erläuterung findest du in unserem Leitfaden zu den Leistungsmetriken von YOLO.

Kommentare