Link to this sectionEinblicke in die Modellbewertung und das Fine-Tuning#
Nachdem du ein YOLO Modell trainiert hast, ist der nächste Schritt zu messen, wie gut es abschneidet, und es feinabzustimmen, um Lücken zu schließen. Die Evaluierung nutzt Metriken wie mAP und IoU, um die Genauigkeit zu quantifizieren, während das Fine-Tuning die Trainingsparameter anpasst, um Schwachstellen zu stärken, damit das Modell dein Projektziel erreicht. Dieser Leitfaden erklärt die wichtigsten Evaluierungsmetriken, wie man sie liest und die Fine-Tuning-Techniken, die die Fähigkeiten deines Modells verbessern.
Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision
Evaluierung und Fine-Tuning stehen gegen Ende des Computer-Vision-Projekt-Workflows, sobald das Training läuft und du sicherstellen musst, dass das Modell genau, effizient und bereit für den Einsatz ist.
Link to this sectionWichtige Evaluierungsmetriken#
Verschiedene Metriken messen, wie effektiv ein Modell arbeitet. Diese Leistungsmetriken liefern klare, numerische Erkenntnisse, die Verbesserungen anleiten, um sicherzustellen, dass das Modell seine beabsichtigten Ziele erreicht.
Link to this sectionKonfidenzwert#
Der Konfidenzwert stellt die Sicherheit des Modells dar, dass ein erkanntes Objekt zu einer bestimmten Klasse gehört. Er reicht von 0 bis 1, wobei höhere Werte auf eine größere Sicherheit hinweisen. Der Konfidenzwert hilft dabei, Vorhersagen zu filtern; nur Erkennungen mit Konfidenzwerten über einem festgelegten Schwellenwert gelten als gültig.
Wenn du bei der Inferenz keine Vorhersagen siehst und bereits alles andere überprüft hast, versuche, den Konfidenz-Schwellenwert zu senken. Manchmal ist der Schwellenwert zu hoch, was dazu führt, dass das Modell gültige Vorhersagen ignoriert. Wenn du ihn senkst, kann das Modell mehr Möglichkeiten in Betracht ziehen. Dies entspricht möglicherweise nicht deinen finalen Projektzielen, aber es ist ein guter Weg, um zu sehen, wozu das Modell fähig ist, und um zu entscheiden, wie du es feinabstimmen kannst.
Link to this sectionIntersection over Union#
Intersection over Union (IoU) ist eine Metrik in der Objekterkennung, die misst, wie gut die vorhergesagte BBox mit der Ground-Truth-BBox überlappt. IoU-Werte liegen zwischen 0 und 1, wobei eins für eine perfekte Übereinstimmung steht. IoU ist wichtig, da es misst, wie genau die vorhergesagten Grenzen mit den tatsächlichen Objektgrenzen übereinstimmen.
Link to this sectionMean Average Precision#
Mean Average Precision (mAP) misst, wie gut ein Objekterkennungsmodell insgesamt abschneidet. Sie betrachtet die Präzision bei der Erkennung jeder Objektklasse, mittelt diese Werte und ergibt eine einzige Zahl, die zeigt, wie genau das Modell Objekte identifizieren und klassifizieren kann.
Zwei mAP-Metriken werden am häufigsten berichtet:
- mAP@.5: Misst die durchschnittliche Präzision bei einem einzigen IoU-Schwellenwert von 0,5. Diese Metrik prüft, ob das Modell Objekte bei einer lockereren Genauigkeitsanforderung korrekt finden kann. Sie konzentriert sich darauf, ob das Objekt grob an der richtigen Stelle ist, ohne perfekte Platzierung, und hilft dabei zu sehen, ob das Modell generell gut darin ist, Objekte zu entdecken.
- mAP@.5:.95: Mittelt die mAP-Werte, die bei mehreren IoU-Schwellenwerten von 0.5 bis 0.95 in 0.05-Schritten berechnet wurden. Diese Metrik ist detaillierter und strenger. Sie bietet ein umfassenderes Bild davon, wie genau das Modell Objekte bei unterschiedlichen Strengegraden finden kann und ist besonders nützlich für Anwendungen, die eine präzise Objekterkennung erfordern.
Andere mAP-Metriken umfassen mAP@0.75, das einen strengeren IoU-Schwellenwert von 0.75 verwendet, sowie mAP@small, medium und large, die die Präzision über Objekte unterschiedlicher Größe hinweg bewerten.
Link to this sectionEvaluierung eines YOLO26 Modells#
Du kannst ein trainiertes YOLO26 Modell mit dem Validierungsmodus evaluieren. Für einen tieferen Einblick, wie jede Metrik berechnet und interpretiert wird, siehe den Leitfaden zu YOLO26 Leistungsmetriken.
Link to this sectionUmgang mit variablen Bildgrößen#
Die Evaluierung deines Modells auf Bildern verschiedener Größen hilft dir, dessen Leistung auf diversen Datensätzen zu verstehen. Der Validierungsparameter rect=true gruppiert Bilder nach Seitenverhältnis und füllt (padded) jeden Batch auf die kleinste passende Form auf, sodass rechteckige Bilder evaluiert werden, ohne auf ein Quadrat gezwungen zu werden.
Der imgsz-Parameter setzt die während der Validierung verwendete Bildgröße fest, die als Quadrat angewendet wird. Wenn du ihn nicht explizit setzt, verwendet YOLO26 den in den Modelleinstellungen gespeicherten Wert erneut (640 für die offiziellen vortrainierten Modelle 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 (stride) auf, wobei das Seitenverhältnis erhalten bleibt. Passe imgsz basierend auf den Dimensionen deines Datensatzes und dem verfügbaren GPU-Speicher an.
Link to this sectionZugriff auf YOLO26-Metriken#
Um die Leistung deines Modells im Detail zu verstehen, kannst du mit ein paar Zeilen Python auf spezifische Evaluierungsmetriken zugreifen. Der folgende Schnipsel lädt ein Modell, führt eine Validierung durch 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 zugegriffen werden.
Das Attribut results.box.image_metrics ist ein Wörterbuch pro Bild, indiziert nach Dateiname, das precision, recall, f1, tp, fp und fn bei IoU 0,5 für jedes Bild enthält. Vorverarbeitung, Inferenz, Verlust und Nachverarbeitungszeiten werden separat im results.speed-Wörterbuch berichtet. Zusammen ermöglichen sie es dir, genau zu bestimmen, mit welchen Bildern das Modell Schwierigkeiten hat, und entsprechend feinabzustimmen.
Link to this sectionFine-Tuning deines Modells#
Fine-Tuning nimmt ein vortrainiertes Modell und passt dessen Parameter an, um die Leistung bei einer spezifischen Aufgabe oder einem Datensatz zu verbessern. Auch als Modell-Nachtraining bekannt, ermöglicht es dem Modell, Ergebnisse für die Daten, auf die es in realen Anwendungen treffen wird, besser zu verstehen und vorherzusagen. Basierend auf deinen Evaluierungsergebnissen trainierst du das Modell nach, um optimale Ergebnisse zu erzielen, indem du einige Schlüsselparameter und -techniken genau beachtest.
Link to this sectionStart mit einer höheren Lernrate#
Während des normalen Trainings startet die Lernrate niedrig und steigt über die ersten paar Epochen allmählich an, um frühe Aktualisierungen zu stabilisieren. Beim Fine-Tuning bringt das Modell bereits nützliche Merkmale aus dem Vortraining mit, sodass du dieses Warmup überspringen und sofort mit der Anpassung an deine neuen Daten beginnen kannst.
Set the warmup_epochs training argument to 0 in model.train() to disable the warmup phase. Training then continues from the pretrained weights at the configured base learning rate (lr0) instead of ramping up to it, adjusting to the nuances of your new data.
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n.pt")
# Fine-tune with the warmup phase disabled
model.train(data="coco8.yaml", epochs=10, warmup_epochs=0)Link to this sectionBild-Tiling für kleine Objekte#
Image Tiling (Bildkachelungen) kann die Erkennungsgenauigkeit bei kleinen Objekten verbessern. Indem du größere Bilder in kleinere Segmente unterteilst, wie zum Beispiel 1280x1280 Bilder in mehrere 640x640 Segmente aufteilst, bewahrst du die ursprüngliche Auflösung und lässt das Modell aus hochauflösenden Fragmenten lernen. Ultralytics unterstützt dies zur Inferenzzeit durch SAHI tiled inference. Achte beim Training auf gekachelten Bildern darauf, deine Labels für jedes neue Segment korrekt anzupassen.
Link to this sectionFazit#
Evaluierung und Fine-Tuning machen aus einem trainierten Modell ein verlässliches, einsetzbares Modell: Metriken wie mAP und IoU decken Schwächen auf, und gezielte Parameteränderungen beheben sie. Beginne mit dem Validierungsmodus, um ein Benchmarking deines Modells durchzuführen, wende dann die oben genannten Fine-Tuning-Techniken an und iteriere weiter mit neuen Parametern, Techniken und Datensätzen. Wenn unterwegs Fragen aufkommen, frage die Community im Ultralytics GitHub-Repository oder auf dem Ultralytics Discord-Server.
Link to this sectionFAQ#
Link to this sectionWas sind die wichtigsten Metriken zur Bewertung der YOLO26-Modellleistung?#
Zur Bewertung der YOLO26-Modellleistung gehören wichtige Metriken wie der Konfidenzwert, Intersection over Union (IoU) und Mean Average Precision (mAP). Der Konfidenzwert misst die Sicherheit des Modells für jede erkannte Objektklasse. IoU bewertet, wie gut die vorhergesagte BBox mit der Ground Truth überlappt. Mean Average Precision (mAP) aggregiert Präzisionswerte über Klassen hinweg, wobei mAP@.5 und mAP@.5:.95 zwei gängige Typen für variierende IoU-Schwellenwerte sind. Erfahre mehr über diese Metriken in unserem Leitfaden zu YOLO26-Leistungsmetriken.
Link to this sectionWie kann ich ein vortrainiertes YOLO26-Modell für meinen spezifischen Datensatz feinabstimmen?#
Fine-tuning a pretrained YOLO26 model involves adjusting its parameters to improve performance on a specific task or dataset. Start by evaluating your model with metrics, then set the warmup_epochs training argument to 0 in model.train() so the learning rate starts at the configured base value immediately instead of ramping up. During evaluation, parameters like rect=true help handle varied image sizes effectively. For more detailed guidance, refer to our section on fine-tuning your model.
Link to this sectionWie kann ich beim Bewerten meines YOLO26-Modells mit variablen Bildgrößen umgehen?#
Um variierende Bildgrößen während der Evaluierung zu handhaben, verwende den Parameter rect=true in YOLO26, der Bilder nach Seitenverhältnis gruppiert und jeden Batch auffüllt, anstatt jedes Bild auf ein Quadrat zu zwingen. Der imgsz-Parameter setzt die Bildgröße für die Validierung; wenn du ihn nicht überschreibst, verwendet YOLO26 den gespeicherten Wert des Modells (640 für die offiziellen vortrainierten Modelle). Passe imgsz an deinen Datensatz und GPU-Speicher an. Für weitere Details besuche unseren Abschnitt zum Umgang mit variierenden Bildgrößen.
Link to this sectionWelche praktischen Schritte kann ich unternehmen, um die Mean Average Precision für mein YOLO26-Modell zu verbessern?#
Die Verbesserung der Mean Average Precision (mAP) für ein YOLO26-Modell umfasst mehrere Schritte:
- Hyperparameter-Optimierung: Experimentiere mit verschiedenen Lernraten, Batch-Größen und Bildaugmentierungen.
- Datenaugmentierung: Verwende Techniken wie Mosaic und MixUp, um diverse Trainingsbeispiele zu erstellen.
- Image Tiling: Teile größere Bilder in kleinere Kacheln auf, um die Erkennungsgenauigkeit für kleine Objekte zu verbessern.
Siehe unseren detaillierten Abschnitt über das Fine-Tuning deines Modells für spezifische Strategien.
Link to this sectionWie greife ich in Python auf YOLO26-Modellbewertungsmetriken zu?#
Du kannst nach Durchführung der Validierung mit Python auf die Metriken zur YOLO26 Modellevaluierung zugreifen:
from 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 feinabzustimmen und zu optimieren. Für einen tieferen Einblick schau dir unseren Leitfaden zu YOLO Leistungsmetriken an.