Einblicke in Modellbewertung und Feinabstimmung#
Nach dem Training eines YOLO-Modells besteht der nächste Schritt darin, seine Leistung zu messen und es fein abzustimmen, um Schwachstellen zu beheben. Bei der Bewertung werden Metriken wie mAP und IoU verwendet, um die Genauigkeit zu quantifizieren. Bei der Feinabstimmung werden Trainingsparameter angepasst, um Schwachstellen zu stärken und sicherzustellen, dass das Modell dein Projektziel erfüllt. Dieser Leitfaden erklärt die wichtigsten Bewertungsmetriken, wie du sie liest und wie du auf ihre Ergebnisse reagierst.
Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision
Bewertung und Feinabstimmung stehen gegen Ende des Workflows für Computer-Vision-Projekte, sobald das Training läuft und du überprüfen musst, ob das Modell genau, effizient und bereit für die Bereitstellung ist.
Wichtige Bewertungsmetriken#
Verschiedene Metriken messen, wie effektiv ein Modell arbeitet. Diese Leistungsmetriken liefern klare numerische Erkenntnisse, die Verbesserungen unterstützen und dabei helfen sicherzustellen, dass das Modell seine vorgesehenen Ziele erfüllt.
Konfidenzwert#
Der Konfidenzwert gibt an, wie sicher das Modell ist, dass ein erkanntes Objekt zu einer bestimmten Klasse gehört. Er reicht von 0 bis 1, wobei höhere Werte eine größere Sicherheit anzeigen. Der Konfidenzwert hilft beim Filtern von Vorhersagen: Nur Erkennungen mit Konfidenzwerten über einem festgelegten Schwellenwert gelten als gültig.
Wenn du bei der Inferenz keine Vorhersagen siehst und alles andere überprüft hast, versuche, den Konfidenzschwellenwert zu senken. Manchmal ist der Schwellenwert zu hoch, sodass das Modell gültige Vorhersagen ignoriert. Durch das Senken kann das Modell mehr Möglichkeiten berücksichtigen. Das entspricht möglicherweise nicht deinen endgültigen Projektzielen, ist aber eine gute Möglichkeit zu sehen, was das Modell leisten kann, und zu entscheiden, wie du es fein abstimmst.
Schnittmenge über Vereinigungsmenge#
Schnittmenge über Vereinigungsmenge (IoU) ist eine Metrik bei der Objekterkennung, die misst, wie stark sich die vorhergesagte Begrenzungsbox mit der Begrenzungsbox der Referenzdaten überschneidet. IoU-Werte reichen von 0 bis 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.
Mittlere durchschnittliche Präzision#
Mittlere durchschnittliche Präzision (mAP) misst die Gesamtleistung eines Modells zur Objekterkennung. Dabei wird die Präzision für die Erkennung jeder Objektklasse betrachtet, über diese Werte gemittelt und eine einzelne Zahl ausgegeben, die zeigt, wie genau das Modell Objekte erkennen und klassifizieren kann.
Zwei mAP-Metriken werden am häufigsten 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 einer weniger strengen Genauigkeitsanforderung korrekt finden kann. Sie konzentriert sich darauf, ob sich das Objekt ungefähr an der richtigen Stelle befindet, ohne eine perfekte Platzierung zu verlangen, und zeigt, ob das Modell Objekte generell gut erkennt.
- mAP@.5:.95: Mittelt die bei mehreren IoU-Schwellenwerten berechneten mAP-Werte, von 0.5 bis 0.95 in Schritten von 0.05. Diese Metrik ist detaillierter und strenger. Sie vermittelt ein umfassenderes Bild davon, wie genau das Modell Objekte bei unterschiedlichen Strengegraden finden kann, und ist besonders für Anwendungen nützlich, 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, medium und large, die die Präzision für Objekte unterschiedlicher Größe bewerten.
Bewertung eines YOLO26-Modells#
Du kannst ein trainiertes YOLO26-Modell mit dem Validierungsmodus bewerten. Eine ausführlichere Erklärung dazu, wie die einzelnen Metriken berechnet und interpretiert werden, findest du im Leitfaden zu den YOLO26-Leistungsmetriken.
Umgang mit variablen Bildgrößen#
Wenn du dein Modell mit Bildern unterschiedlicher Größe bewertest, kannst du seine Leistung bei vielfältigen Datensätzen besser verstehen. Der Validierungsparameter rect=true gruppiert Bilder nach ihrem Seitenverhältnis und füllt jedes Batch auf die kleinste passende Form auf. Dadurch werden rechteckige Bilder bewertet, ohne sie in ein Quadrat zwingen zu müssen.
Der Parameter imgsz legt die bei der Validierung verwendete Bildgröße fest und wendet sie quadratisch an. Wenn du ihn nicht ausdrücklich 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 auf ein Vielfaches 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 Snippet lädt ein Modell, führt eine Validierung aus und gibt die nützlichsten Metriken aus.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Run validation on your dataset
results = model.val(data="coco8.yaml")
# Overall metrics
print("mAP50-95:", results.box.map) # mAP at IoU 0.50:0.95
print("mAP50:", results.box.map50) # mAP at IoU 0.50
print("mAP75:", results.box.map75) # mAP at IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness()) # weighted score used for model selection
# Per-class metrics
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)
# Per-image precision, recall, F1, TP, FP, and FN
print("Per-image metrics:", results.box.image_metrics)
# Per-stage timing breakdown in milliseconds per image
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 direkt als Eigenschaften abgerufen werden.
Das Attribut results.box.image_metrics ist ein bildbezogenes Wörterbuch, dessen Schlüssel die Bilddateinamen sind. Es enthält für jedes Bild precision, recall, f1, tp, fp und fn bei IoU 0.5. Die Zeitmessungen für Vorverarbeitung, Inferenz, Verlustberechnung und Nachverarbeitung werden separat im Wörterbuch results.speed angegeben. Zusammen helfen dir diese Angaben dabei, die Bilder zu ermitteln, mit denen das Modell Schwierigkeiten hat, und es entsprechend fein abzustimmen.
Dein Modell fein abstimmen#
Bei der Feinabstimmung wird ein vortrainiertes Modell angepasst, um seine Leistung bei einer bestimmten Aufgabe oder einem bestimmten Datensatz zu verbessern. Sie wird auch als erneutes Training des Modells bezeichnet und hilft dem Modell, die Daten, denen es in realen Anwendungen begegnen wird, besser zu verstehen und Ergebnisse vorherzusagen. Auf Grundlage deiner Bewertungsergebnisse trainierst du das Modell mit deinen eigenen Daten erneut und passt die im Leitfaden zur Feinabstimmung beschriebenen Trainingsargumente an.
Bildkachelung für kleine Objekte#
Bildkachelung kann die Erkennungsgenauigkeit bei kleinen Objekten verbessern. Indem du größere Bilder in kleinere Segmente unterteilst, beispielsweise 1280x1280-Bilder in mehrere 640x640-Segmente aufteilst, bleibt die ursprüngliche Auflösung erhalten und das Modell kann aus hochauflösenden Ausschnitten lernen. Ultralytics unterstützt dies zur Inferenzzeit durch die gekachelte SAHI-Inferenz. Wenn du mit gekachelten Bildern trainierst, passe deine Beschriftungen für jedes neue Segment korrekt an.
Fazit#
Bewertung und Feinabstimmung machen aus einem trainierten Modell ein zuverlässiges, einsetzbares Modell: Metriken wie mAP und IoU zeigen Schwachstellen auf, und gezielte Parameteränderungen beheben sie. Beginne mit dem Validierungsmodus, um dein Modell zu überprüfen, trainiere es anschließend mit den im Leitfaden zur Feinabstimmung beschriebenen Argumenten erneut und arbeite mit neuen Parametern, Techniken und Datensätzen weiter. Wenn dabei Fragen aufkommen, wende dich an die Community im Ultralytics-GitHub-Repository oder auf dem Ultralytics-Discord-Server.
FAQ#
Zur Bewertung der Leistung eines YOLO26-Modells gehören der Konfidenzwert, die Schnittmenge über Vereinigungsmenge (IoU) und die mittlere durchschnittliche Präzision (mAP) zu den wichtigen Metriken. Der Konfidenzwert misst die Sicherheit des Modells für jede erkannte Objektklasse. IoU bewertet, wie stark sich die vorhergesagte Begrenzungsbox mit der Referenz-Begrenzungsbox überschneidet. Die mittlere durchschnittliche Präzision (mAP) fasst Präzisionswerte über mehrere Klassen zusammen, wobei mAP@.5 und mAP@.5:.95 zwei gängige Varianten für unterschiedliche IoU-Schwellenwerte sind. Weitere Informationen zu diesen Metriken findest du in unserem Leitfaden zu den YOLO26-Leistungsmetriken.
Bei der Feinabstimmung eines vortrainierten YOLO26-Modells werden seine Parameter angepasst, um die Leistung bei einer bestimmten Aufgabe oder einem bestimmten Datensatz zu verbessern. Beginne damit, dein Modell anhand von Metriken zu bewerten, und trainiere es anschließend ausgehend von den vortrainierten Gewichten mit deinem eigenen Datensatz erneut. Bei der Bewertung helfen Parameter wie
rect=true, unterschiedliche Bildgrößen effektiv zu verarbeiten. Die anzupassenden Trainingsargumente findest du im Leitfaden zur Feinabstimmung.Um bei der Bewertung mit variablen Bildgrößen umzugehen, verwende den Parameter
rect=truein YOLO26. Er gruppiert Bilder nach ihrem Seitenverhältnis und füllt jedes Batch auf, anstatt jedes Bild in ein Quadrat zu zwingen. Der Parameterimgszlegt die Bildgröße für die Validierung fest. Wenn du ihn nicht überschreibst, verwendet YOLO26 den im Modell gespeicherten Wert erneut (640 bei den offiziellen vortrainierten Modellen). Passeimgszan deinen Datensatz und den verfügbaren GPU-Speicher an. Weitere Informationen findest du in unserem Abschnitt zum Umgang mit variablen Bildgrößen.Die Verbesserung der mittleren durchschnittlichen Präzision (mAP) eines YOLO26-Modells umfasst mehrere Schritte:
- Hyperparameter abstimmen: Experimentiere mit unterschiedlichen Lernraten, Batchgrößen und Bildaugmentierungen.
- Datenaugmentierung: Verwende Techniken wie Mosaic und MixUp, um vielfältige Trainingsbeispiele zu erstellen.
- Bildkachelung: Teile größere Bilder in kleinere Kacheln auf, um die Erkennungsgenauigkeit bei kleinen Objekten zu verbessern.
Die Trainingsargumente hinter den Schritten 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 deines YOLO26-Modells zugreifen:
Verwendungfrom ultralytics import YOLO # Load a model model = YOLO("yolo26n.pt") # Run validation results = model.val(data="coco8.yaml") # Access key metrics 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 fein abzustimmen und zu optimieren. Eine ausführlichere Erklärung findest du in unserem Leitfaden zu YOLO-Leistungsmetriken.