Einblicke in die Modellbewertung und Feinabstimmung
Einführung
Sobald Sie Ihr Bildverarbeitungsmodell trainiert haben, ist es wichtig, es zu evaluieren und zu verfeinern, damit es optimal funktioniert. Es reicht nicht aus, Ihr Modell zu trainieren. Sie müssen sicherstellen, dass Ihr Modell genau und effizient ist und das Ziel Ihres Bildverarbeitungsprojekts erfüllt. Durch die Evaluierung und Feinabstimmung Ihres Modells können Sie Schwachstellen erkennen, seine Genauigkeit verbessern und die Gesamtleistung steigern.
In diesem Leitfaden geben wir Einblicke in die Modellevaluierung und Feinabstimmung, die diesen Schritt eines Computer-Vision-Projekts leichter machen. Wir erörtern, wie Sie Bewertungsmetriken verstehen und Feinabstimmungstechniken implementieren können, damit Sie die Fähigkeiten Ihres Modells verbessern können.
Bewertung der Modellleistung anhand von Metriken
Die Bewertung der Leistung eines Modells hilft uns zu verstehen, wie effektiv es funktioniert. Zur Messung der Leistung werden verschiedene Metriken verwendet. Diese Leistungskennzahlen bieten klare, numerische Einblicke, die zu Verbesserungen führen können, um sicherzustellen, dass das Modell die beabsichtigten Ziele erreicht. Schauen wir uns einige wichtige Kennzahlen genauer an.
Konfidenzniveau
Der Konfidenzwert gibt die Gewissheit des Modells an, 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 bestimmten Schwellenwert werden als gültig angesehen.
Kurzer Tipp: Wenn Sie beim Ausführen von Schlussfolgerungen keine Vorhersagen sehen und alles andere überprüft haben, versuchen Sie, den Konfidenzwert zu senken. Manchmal ist der Schwellenwert zu hoch, so dass das Modell gültige Vorhersagen ignoriert. Wenn Sie den Wert senken, kann das Modell mehr Möglichkeiten in Betracht ziehen. Dies entspricht vielleicht nicht Ihren Projektzielen, aber es ist eine gute Möglichkeit, um zu sehen, was das Modell leisten kann, und zu entscheiden, wie es feiner abgestimmt werden kann.
Kreuzung über Union
Intersection over Union (IoU) ist eine Metrik in der Objekterkennung, die misst, wie gut die vorhergesagte Bounding Box mit der Bounding Box der Grundwahrheit überlappt. IoU-Werte reichen von 0 bis 1, wobei 1 für eine perfekte Übereinstimmung steht. IoU ist wichtig, weil es misst, wie gut die vorhergesagten Grenzen mit den tatsächlichen Objektgrenzen übereinstimmen.
Mittelwert Durchschnittliche Präzision
Die mittlere Durchschnittspräzision (Mean Average Precision, mAP) ist eine Methode zur Messung der Leistung eines Objekterkennungsmodells. Dabei wird die Genauigkeit der Erkennung jeder Objektklasse betrachtet, der Durchschnitt dieser Werte gebildet und eine Gesamtzahl angegeben, die zeigt, wie genau das Modell Objekte identifizieren und klassifizieren kann.
Wir wollen uns auf zwei spezifische mAP-Kennzahlen konzentrieren:
- mAP@.5: Misst die durchschnittliche Genauigkeit bei einem einzelnen IoU-Schwellenwert (Intersection over Union) von 0,5. Diese Metrik prüft, ob das Modell Objekte mit einer geringeren Genauigkeitsanforderung korrekt finden kann. Sie konzentriert sich darauf, ob sich das Objekt ungefähr an der richtigen Stelle befindet, ohne dass es perfekt platziert sein muss. So lässt sich feststellen, ob das Modell Objekte generell gut erkennen kann.
- mAP@.5:.95: Mittelwert der mAP-Werte, die bei mehreren IoU-Schwellenwerten berechnet wurden, von 0,5 bis 0,95 in 0,05-Schritten. Diese Metrik ist detaillierter und strenger. Sie vermittelt ein umfassenderes Bild davon, wie genau das Modell Objekte bei verschiedenen Strengheitsgraden finden kann, und ist besonders nützlich für Anwendungen, die eine präzise Objekterkennung erfordern.
Andere mAP-Metriken sind mAP@0.75, das einen strengeren IoU-Schwellenwert von 0,75 verwendet, und mAP@small, medium und large, die die Präzision für Objekte unterschiedlicher Größe bewerten.
Bewertung der Leistung des YOLO11 Modells
In Bezug auf YOLO11 können Sie den Validierungsmodus verwenden, um das Modell zu bewerten. Werfen Sie auch einen Blick in unseren Leitfaden, der sich eingehend mit den Leistungsmetriken vonYOLO11 und deren Interpretation befasst.
Allgemeine Fragen der Gemeinschaft
Bei der Bewertung Ihres YOLO11 Modells könnten Sie auf ein paar Probleme stoßen. Auf der Grundlage häufiger Fragen aus der Community finden Sie hier einige Tipps, die Ihnen dabei helfen, das Beste aus Ihrem YOLO11 Modell herauszuholen:
Umgang mit variablen Bildgrößen
Die Bewertung Ihres YOLO11 Modells mit Bildern unterschiedlicher Größe kann Ihnen helfen, seine Leistung bei verschiedenen Datensätzen zu verstehen. Die Verwendung des rect=true
Der Validierungsparameter YOLO11 passt die Schrittweite des Netzes für jeden Stapel auf der Grundlage der Bildgrößen an, so dass das Modell rechteckige Bilder verarbeiten kann, ohne sie auf eine einzige Größe zu zwingen.
Die imgsz
Validierungsparameter legt die maximale Dimension für die Größenänderung von Bildern fest, die standardmäßig 640 beträgt. Sie können dies auf der Grundlage der maximalen Abmessungen Ihres Datensatzes und des verfügbaren GPU Speichers anpassen. Auch bei imgsz
gesetzt, rect=true
ermöglicht es dem Modell, unterschiedliche Bildgrößen effektiv zu verwalten, indem es die Schrittweite dynamisch anpasst.
Zugriff auf YOLO11 Metriken
Wenn Sie einen tieferen Einblick in die Leistung Ihres YOLO11 Modells erhalten möchten, können Sie mit ein paar Zeilen Python Code ganz einfach auf bestimmte Bewertungsmetriken zugreifen. Mit dem folgenden Codeschnipsel können Sie Ihr Modell laden, eine Bewertung durchführen und verschiedene Kennzahlen ausdrucken, die zeigen, wie gut Ihr Modell abschneidet.
Verwendung
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.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("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 Geschwindigkeitsmetriken wie Vorverarbeitungszeit, Inferenzzeit, Verlust und Nachverarbeitungszeit. Durch die Analyse dieser Metriken können Sie Ihr YOLO11 Modell feinabstimmen und optimieren, um die Leistung zu verbessern und es für Ihren spezifischen Anwendungsfall effektiver zu machen.
Wie funktioniert das Fine-Tuning?
Bei der Feinabstimmung wird ein zuvor trainiertes Modell verwendet und seine Parameter angepasst, um die Leistung bei einer bestimmten Aufgabe oder einem bestimmten Datensatz zu verbessern. Dieser Prozess, der auch als Modelltraining bezeichnet wird, ermöglicht dem Modell ein besseres Verständnis und eine bessere Vorhersage der Ergebnisse für die spezifischen Daten, auf die es in realen Anwendungen trifft. Sie können Ihr Modell auf der Grundlage Ihrer Modellbewertung neu trainieren, um optimale Ergebnisse zu erzielen.
Tipps für die Feinabstimmung Ihres Modells
Bei der Feinabstimmung eines Modells müssen mehrere wichtige Parameter und Techniken beachtet werden, um eine optimale Leistung zu erzielen. Im Folgenden finden Sie einige wichtige Tipps, die Sie bei diesem Prozess unterstützen.
Mit einer höheren Lernrate beginnen
Normalerweise beginnt die Lernrate in den ersten Trainingsepochen niedrig und wird dann allmählich erhöht, um den Trainingsprozess zu stabilisieren. Da Ihr Modell jedoch bereits einige Merkmale aus dem vorherigen Datensatz gelernt hat, kann es vorteilhafter sein, gleich mit einer höheren Lernrate zu beginnen.
Bei der Auswertung Ihres YOLO11 Modells können Sie die warmup_epochs
Validierungsparameter auf warmup_epochs=0
um zu verhindern, dass die Lernrate zu hoch angesetzt wird. Wenn Sie diesen Prozess befolgen, wird das Training ausgehend von den vorgegebenen Gewichten fortgesetzt und an die Nuancen Ihrer neuen Daten angepasst.
Bildkacheln für kleine Objekte
Die Kachelung von Bildern kann die Erkennungsgenauigkeit für kleine Objekte verbessern. Wenn Sie größere Bilder in kleinere Segmente unterteilen, z. B. 1280x1280-Bilder in mehrere 640x640-Segmente, bleibt die ursprüngliche Auflösung erhalten, und das Modell kann aus hochauflösenden Fragmenten lernen. Achten Sie bei der Verwendung von YOLO11 darauf, dass Sie die Beschriftungen für diese neuen Segmente korrekt anpassen.
Engagieren Sie sich in der Gemeinschaft
Der Austausch von Ideen und Fragen mit anderen Computer Vision-Enthusiasten kann Sie zu kreativen Lösungen für Ihre Projekte inspirieren. Hier finden Sie einige hervorragende Möglichkeiten zum Lernen, zur Fehlerbehebung und zur Kontaktaufnahme.
Suche nach Hilfe und Unterstützung
- GitHub-Fragen: Erkunden Sie das YOLO11 GitHub-Repository und nutzen Sie die Registerkarte "Issues", um Fragen zu stellen, Fehler zu melden und Funktionen vorzuschlagen. Die Community und die Betreuer stehen Ihnen bei allen Problemen zur Seite.
- Ultralytics Discord-Server: Treten Sie dem Ultralytics Discord-Server bei, um mit anderen Benutzern und Entwicklern in Kontakt zu treten, Unterstützung zu erhalten, Wissen auszutauschen und Ideen zu entwickeln.
Offizielle Dokumentation
- Ultralytics YOLO11 Dokumentation: In der offiziellen Dokumentation YOLO11 finden Sie umfassende Anleitungen und wertvolle Einblicke in verschiedene Computer Vision Aufgaben und Projekte.
Abschließende Überlegungen
Die Evaluierung und Feinabstimmung Ihres Computer-Vision-Modells sind wichtige Schritte für eine erfolgreiche Modellbereitstellung. Diese Schritte tragen dazu bei, sicherzustellen, dass Ihr Modell genau und effizient ist und sich für Ihre Gesamtanwendung eignet. Der Schlüssel zum Training des bestmöglichen Modells ist kontinuierliches Experimentieren und Lernen. Zögern Sie nicht, die Parameter zu verändern, neue Techniken auszuprobieren und verschiedene Datensätze zu untersuchen. Experimentieren Sie weiter und erweitern Sie die Grenzen des Möglichen!
FAQ
Welches sind die wichtigsten Kriterien für die Bewertung der Leistung des Modells YOLO11 ?
Um die Leistung des Modells YOLO11 zu bewerten, sind die Kennzahlen Confidence Score, Intersection over Union (IoU) und Mean Average Precision (mAP) wichtig. Der Confidence Score misst die Gewissheit des Modells für jede erkannte Objektklasse. IoU bewertet, wie gut die vorhergesagte Bounding Box mit der Bodenwahrheit überlappt. Mean Average Precision (mAP) fasst die Präzisionswerte für alle Klassen zusammen, wobei mAP@.5 und mAP@.5:.95 zwei gängige Typen für unterschiedliche IoU-Schwellenwerte sind. Weitere Informationen zu diesen Metriken finden Sie in unserem Leitfaden für LeistungsmetrikenYOLO11 .
Wie kann ich ein vortrainiertes YOLO11 Modell für meinen spezifischen Datensatz feinabstimmen?
Die Feinabstimmung eines vortrainierten YOLO11 Modells beinhaltet die Anpassung seiner Parameter, um die Leistung bei einer bestimmten Aufgabe oder einem bestimmten Datensatz zu verbessern. Beginnen Sie mit der Bewertung Ihres Modells anhand von Metriken und stellen Sie dann eine höhere anfängliche Lernrate ein, indem Sie die warmup_epochs
Parameter auf 0 setzen, um sofortige Stabilität zu erreichen. Verwenden Sie Parameter wie rect=true
für den effektiven Umgang mit unterschiedlichen Bildgrößen. Ausführlichere Anleitungen finden Sie in unserem Abschnitt über Feinabstimmung YOLO11 Modelle.
Wie kann ich mit variablen Bildgrößen umgehen, wenn ich mein Modell YOLO11 bewerte?
Um variable Bildgrößen während der Auswertung zu behandeln, verwenden Sie die rect=true
Parameter in YOLO11, der die Schrittweite des Netzes für jeden Stapel auf der Grundlage der Bildgrößen anpasst. Der imgsz
legt die maximale Abmessung für die Größenänderung des Bildes fest; der Standardwert ist 640. anpassen imgsz
für Ihren Datensatz und GPU Speicher. Für weitere Einzelheiten besuchen Sie unsere Abschnitt über den Umgang mit variablen Bildgrößen.
Welche praktischen Schritte kann ich unternehmen, um die durchschnittliche Genauigkeit meines YOLO11 Modells zu verbessern?
Die Verbesserung der durchschnittlichen Genauigkeit (mAP) für ein Modell von YOLO11 umfasst mehrere Schritte:
- Abstimmung von Hyperparametern: Experimentieren Sie mit verschiedenen Lernraten, Stapelgrößen und Bildvergrößerungen.
- Datenerweiterung: Verwenden Sie Techniken wie Mosaic und MixUp, um vielfältige Trainingsmuster zu erstellen.
- Bildkacheln: Teilen Sie größere Bilder in kleinere Kacheln auf, um die Erkennungsgenauigkeit für kleine Objekte zu verbessern. Spezifische Strategien finden Sie in unserem detaillierten Leitfaden zur Modellfeinabstimmung.
Wie erhalte ich Zugang zu den Metriken der YOLO11 Modellevaluation in Python?
Mit den folgenden Schritten können Sie unter Python auf die Metriken der YOLO11 Modellevaluation zugreifen:
Verwendung
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.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 bei der Feinabstimmung und Optimierung Ihres YOLO11 Modells. Wenn Sie tiefer eintauchen möchten, lesen Sie unseren Leitfaden zu YOLO11 metrics.