Einblicke in die Modellevaluierung und das Fine-Tuning
Einführung
Sobald du dein Computer-Vision-Modell trainiert hast, ist es entscheidend, es zu evaluieren und zu verfeinern, damit es optimal funktioniert. Das reine Trainieren deines Modells reicht nicht aus. Du musst sicherstellen, dass dein Modell genau und effizient ist und das Ziel deines Computer-Vision-Projekts erfüllt. Durch die Evaluierung und das Fine-Tuning deines Modells kannst du Schwachstellen identifizieren, die Genauigkeit verbessern und die Gesamtleistung steigern.
Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision
In diesem Leitfaden teilen wir Erkenntnisse zur Modellevaluierung und zum Fine-Tuning, um diesen Schritt eines Computer-Vision-Projekts zugänglicher zu machen. Wir besprechen, wie du Evaluierungsmetriken verstehst und Fine-Tuning-Techniken implementierst, damit du das Wissen hast, um die Fähigkeiten deines Modells zu verbessern.
Evaluierung der Modellleistung mithilfe von Metriken
Die Evaluierung der Modellleistung hilft uns zu verstehen, wie effektiv es arbeitet. Zur Messung der Leistung werden verschiedene Metriken verwendet. Diese Leistungsmetriken liefern klare, numerische Erkenntnisse, die Verbesserungen anleiten können, um sicherzustellen, dass das Modell seine beabsichtigten Ziele erreicht. Schauen wir uns einige wichtige Metriken genauer an.
Konfidenzwert (Confidence Score)
Der Konfidenzwert repräsentiert die Sicherheit des Modells, 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 hindeuten. Der Konfidenzwert hilft dabei, Vorhersagen zu filtern; nur Erkennungen mit Konfidenzwerten über einem festgelegten Schwellenwert gelten als gültig.
Kurzer Tipp: Wenn du bei der Inferenz keine Vorhersagen siehst und bereits alles andere überprüft hast, versuche, den Konfidenzwert zu senken. Manchmal ist der Schwellenwert zu hoch eingestellt, was dazu führt, dass das Modell gültige Vorhersagen ignoriert. Durch das Absenken des Wertes kann das Modell mehr Möglichkeiten in Betracht ziehen. Dies entspricht vielleicht nicht deinen Projektzielen, aber es ist eine gute Möglichkeit zu sehen, was das Modell leisten kann, und zu entscheiden, wie es feinabgestimmt werden sollte.
Intersection over Union
Intersection over Union (IoU) ist eine Metrik in der Objekterkennung, die misst, wie gut die vorhergesagte Bounding Box mit der Ground-Truth-Bounding-Box überlappt. IoU-Werte liegen zwischen 0 und 1, wobei eins für eine perfekte Übereinstimmung steht. IoU ist wesentlich, da es misst, wie genau die vorhergesagten Grenzen mit den tatsächlichen Objektgrenzen übereinstimmen.
Mean Average Precision
Mean Average Precision (mAP) ist eine Methode, um die Leistung eines Objekterkennungsmodells zu messen. Sie betrachtet die Präzision der Erkennung jeder Objektklasse, mittelt diese Werte und ergibt eine Gesamtzahl, die zeigt, wie genau das Modell Objekte identifizieren und klassifizieren kann.
Konzentrieren wir uns auf zwei spezifische mAP-Metriken:
- mAP@.5: Misst die durchschnittliche Präzision bei einem einzigen IoU (Intersection over Union) Schwellenwert von 0,5. Diese Metrik prüft, ob das Modell Objekte mit einer lockereren Genauigkeitsanforderung korrekt finden kann. Sie konzentriert sich darauf, ob das Objekt ungefähr am richtigen Ort ist, ohne dass eine perfekte Platzierung erforderlich ist. Sie hilft 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.
Weitere 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 evaluieren.
Evaluierung der YOLO26-Modellleistung
In Bezug auf YOLO26 kannst du den Validierungsmodus verwenden, um das Modell zu evaluieren. Wirf außerdem unbedingt einen Blick auf unseren Leitfaden, der detailliert auf YOLO26-Leistungsmetriken und deren Interpretation eingeht.
Häufige Fragen aus der Community
Bei der Evaluierung deines YOLO26-Modells stößt du möglicherweise auf ein paar Hindernisse. Basierend auf häufigen Fragen aus der Community findest du hier einige Tipps, die dir helfen, das Beste aus deinem YOLO26-Modell herauszuholen:
Umgang mit variablen Bildgrößen
Die Evaluierung deines YOLO26-Modells mit Bildern unterschiedlicher Größe kann dir helfen, dessen Leistung auf diversen Datensätzen zu verstehen. Bei Verwendung des Validierungsparameters rect=true passt YOLO26 die Schrittweite (Stride) des Netzwerks für jeden Batch basierend auf den Bildgrößen an, was es dem Modell ermöglicht, rechteckige Bilder zu verarbeiten, ohne sie auf eine einheitliche Größe zwingen zu müssen.
Der Validierungsparameter imgsz legt die maximale Dimension für die Bildskalierung fest, die standardmäßig 640 beträgt. Du kannst dies basierend auf den maximalen Dimensionen deines Datensatzes und dem verfügbaren GPU-Speicher anpassen. Selbst wenn imgsz eingestellt ist, ermöglicht rect=true dem Modell, durch dynamische Anpassung der Schrittweite effektiv mit unterschiedlichen Bildgrößen umzugehen.
Zugriff auf YOLO26-Metriken
Wenn du ein tieferes Verständnis der Leistung deines YOLO26-Modells gewinnen möchtest, kannst du mit wenigen Zeilen Python-Code einfach auf spezifische Evaluierungsmetriken zugreifen. Der folgende Code-Schnipsel ermöglicht es dir, dein Modell zu laden, eine Evaluierung auszuführen und verschiedene Metriken auszugeben, die zeigen, wie gut dein Modell arbeitet.
from ultralytics import YOLO
# Load the model
model = YOLO("yolo26n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Average precision:", results.box.ap)
print("Average precision at IoU=0.50:", results.box.ap50)
print("Class indices for average precision:", results.box.ap_class_index)
print("Class-specific results:", results.box.class_result)
print("F1 score:", results.box.f1)
print("F1 score curve:", results.box.f1_curve)
print("Overall fitness score:", results.box.fitness)
print("Mean average precision:", results.box.map)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.75:", results.box.map75)
print("Mean average precision for different IoU thresholds:", results.box.maps)
print("Mean results for different metrics:", results.box.mean_results)
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Per-image metrics:", results.box.image_metrics)
print("Precision:", results.box.p)
print("Precision curve:", results.box.p_curve)
print("Precision values:", results.box.prec_values)
print("Specific precision metrics:", results.box.px)
print("Recall:", results.box.r)
print("Recall curve:", results.box.r_curve)Das Ergebnisobjekt enthält auch image_metrics, ein Dictionary pro Bild, das mit dem Dateinamen des Bildes indiziert ist und precision, recall, f1, tp, fp und fn sowie Geschwindigkeitsmetriken wie Preprocess-Zeit, Inferenzzeit, Loss und Postprocess-Zeit enthält. Durch die Analyse dieser Metriken kannst du dein YOLO26-Modell für eine bessere Leistung feinabstimmen und optimieren, wodurch es für deinen spezifischen Anwendungsfall effektiver wird.
Wie funktioniert Fine-Tuning?
Fine-Tuning beinhaltet die Verwendung eines vortrainierten Modells und die Anpassung seiner Parameter, um die Leistung bei einer spezifischen Aufgabe oder einem Datensatz zu verbessern. Dieser Prozess, auch bekannt als Nachtraining (Retraining), ermöglicht es dem Modell, Ergebnisse für die spezifischen Daten, auf die es in realen Anwendungen treffen wird, besser zu verstehen und vorherzusagen. Du kannst dein Modell basierend auf deiner Modellevaluierung nachtrainieren, um optimale Ergebnisse zu erzielen.
Tipps zum Fine-Tuning deines Modells
Das Fine-Tuning eines Modells bedeutet, auf mehrere wichtige Parameter und Techniken zu achten, um eine optimale Leistung zu erreichen. Hier sind einige wichtige Tipps, die dich durch den Prozess begleiten.
Start mit einer höheren Lernrate
Normalerweise beginnt die Lernrate während der ersten Trainings-Epochen niedrig und steigt schrittweise an, um den Trainingsprozess zu stabilisieren. Da dein Modell jedoch bereits einige Merkmale aus dem vorherigen Datensatz gelernt hat, kann es vorteilhafter sein, direkt mit einer höheren Lernrate zu beginnen.
Bei der Evaluierung deines YOLO26-Modells kannst du den Validierungsparameter warmup_epochs auf warmup_epochs=0 setzen, um zu verhindern, dass die Lernrate zu niedrig startet. Durch diesen Prozess wird das Training mit den bereitgestellten Gewichten fortgesetzt und an die Nuancen deiner neuen Daten angepasst.
Bildkachelung (Image Tiling) für kleine Objekte
Bildkachelung kann die Erkennungsgenauigkeit für kleine Objekte verbessern. Durch die Unterteilung größerer Bilder in kleinere Segmente, wie z. B. das Aufteilen von 1280x1280-Bildern in mehrere 640x640-Segmente, behältst du die ursprüngliche Auflösung bei, und das Modell kann von hochauflösenden Fragmenten lernen. Wenn du YOLO26 verwendest, stelle sicher, dass du deine Labels für diese neuen Segmente korrekt anpasst.
Austausch mit der Community
Das Teilen deiner Ideen und Fragen mit anderen Enthusiasten im Bereich Computer Vision kann kreative Lösungen für Hindernisse in deinen Projekten inspirieren. Hier sind einige hervorragende Möglichkeiten zum Lernen, zur Fehlersuche und zur Vernetzung.
Hilfe und Support finden
- GitHub Issues: Erkunde das YOLO26 GitHub-Repository und nutze den Issues-Tab, um Fragen zu stellen, Fehler zu melden und Funktionen vorzuschlagen. Die Community und die Maintainer stehen bereit, um bei auftretenden Problemen zu helfen.
- Ultralytics Discord-Server: Tritt dem Ultralytics Discord-Server bei, um dich mit anderen Benutzern und Entwicklern zu verbinden, Support zu erhalten, Wissen zu teilen und Ideen zu entwickeln.
Offizielle Dokumentation
- Ultralytics YOLO26-Dokumentation: Schaue dir die offizielle YOLO26-Dokumentation für umfassende Anleitungen und wertvolle Einblicke in verschiedene Computer-Vision-Aufgaben und -Projekte an.
Abschließende Gedanken
Die Evaluierung und das Fine-Tuning deines Computer-Vision-Modells sind wichtige Schritte für ein erfolgreiches Model Deployment. Diese Schritte tragen dazu bei, sicherzustellen, dass dein Modell genau, effizient und auf deine Gesamtanwendung zugeschnitten ist. Der Schlüssel zum Training des bestmöglichen Modells ist kontinuierliches Experimentieren und Lernen. Zögere nicht, Parameter anzupassen, neue Techniken auszuprobieren und verschiedene Datensätze zu erkunden. Experimentiere weiter und verschiebe die Grenzen des Machbaren!
FAQ
Was sind die wichtigsten Metriken zur Evaluierung der YOLO26-Modellleistung?
Zur Evaluierung der YOLO26-Modellleistung gehören zu den wichtigen Metriken der Konfidenzwert (Confidence Score), Intersection over Union (IoU) und Mean Average Precision (mAP). Der Konfidenzwert misst die Sicherheit des Modells für jede erkannte Objektklasse. IoU evaluiert, wie gut die vorhergesagte Bounding Box 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 für YOLO26-Leistungsmetriken.
Wie kann ich ein vortrainiertes YOLO26-Modell für meinen spezifischen Datensatz feinabstimmen?
Das Fine-Tuning eines vortrainierten YOLO26-Modells umfasst die Anpassung seiner Parameter, um die Leistung bei einer spezifischen Aufgabe oder einem Datensatz zu verbessern. Beginne mit der Evaluierung deines Modells mithilfe von Metriken und setze dann eine höhere anfängliche Lernrate, indem du den Parameter warmup_epochs auf 0 für sofortige Stabilität einstellst. Verwende Parameter wie rect=true, um effektiv mit unterschiedlichen Bildgrößen umzugehen. Weitere detaillierte Anleitungen findest du in unserem Abschnitt über das Fine-Tuning von YOLO26-Modellen.
Wie kann ich bei der Evaluierung meines YOLO26-Modells mit variablen Bildgrößen umgehen?
Um bei der Evaluierung mit variablen Bildgrößen umzugehen, verwende den Parameter rect=true in YOLO26, der die Schrittweite des Netzwerks für jeden Batch basierend auf den Bildgrößen anpasst. Der Parameter imgsz setzt die maximale Dimension für die Bildskalierung und liegt standardmäßig bei 640. Passe imgsz an deinen Datensatz und GPU-Speicher an. Weitere Details findest du in unserem Abschnitt zum Umgang mit variablen Bildgrößen.
Welche 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:
- Optimierung der Hyperparameter: Experimentiere mit verschiedenen Lernraten, Batch-Größen und Bildaugmentationen.
- Data Augmentation: Nutze Techniken wie Mosaic und MixUp, um diverse Trainingsbeispiele zu erstellen.
- Bildkachelung: Teile größere Bilder in kleinere Kacheln auf, um die Erkennungsgenauigkeit für kleine Objekte zu verbessern. Siehe unseren detaillierten Leitfaden zum Model Fine-Tuning für spezifische Strategien.
Wie greife ich in Python auf die YOLO26-Modellevaluierungsmetriken zu?
Du kannst mit folgenden Schritten in Python auf die YOLO26-Modellevaluierungsmetriken zugreifen:
from ultralytics import YOLO
# Load the model
model = YOLO("yolo26n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean recall:", results.box.mr)Die Analyse dieser Metriken hilft beim Fine-Tuning und der Optimierung deines YOLO26-Modells. Für einen tieferen Einblick schau dir unseren Leitfaden zu YOLO26-Metriken an.