Zum Inhalt springen

Einblicke in die Modellevaluierung und Feinabstimmung

Einführung

Sobald Sie Ihr Computer-Vision-Modell trainiert haben, ist es wichtig, es zu bewerten und zu verfeinern, damit es optimal funktioniert. Es reicht nicht aus, nur Ihr Modell zu trainieren. Sie müssen sicherstellen, dass Ihr Modell genau und effizient ist und das Ziel Ihres Computer-Vision-Projekts erfüllt. Durch die Bewertung und Feinabstimmung Ihres Modells können Sie Schwächen identifizieren, seine Genauigkeit verbessern und die Gesamtleistung steigern.



Ansehen: Einblicke in die Modellevaluierung und Feinabstimmung | Tipps zur Verbesserung der mittleren durchschnittlichen Präzision

In diesem Leitfaden geben wir Einblicke in die Modellbewertung und Feinabstimmung, die diesen Schritt eines Computer-Vision-Projekts zugänglicher machen. Wir werden erörtern, wie man Bewertungsmetriken versteht und Feinabstimmungstechniken implementiert, und Ihnen das Wissen vermitteln, um die Fähigkeiten Ihres Modells zu verbessern.

Bewertung der Modellleistung anhand von Metriken

Die Bewertung der Leistungsfähigkeit eines Modells hilft uns zu verstehen, wie effektiv es arbeitet. Verschiedene Metriken werden verwendet, um die Leistung zu messen. Diese Leistungsmetriken liefern klare, numerische Erkenntnisse, die Verbesserungen steuern können, um sicherzustellen, dass das Modell seine beabsichtigten Ziele erreicht. Werfen wir einen genaueren Blick auf einige Schlüsselmetriken.

Konfidenzwert

Der Konfidenzwert gibt die Sicherheit 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 bedeuten. Der Konfidenzwert hilft beim Filtern von Vorhersagen; nur Erkennungen mit Konfidenzwerten oberhalb eines bestimmten Schwellenwerts werden als gültig betrachtet.

Kurzer Tipp: Wenn Sie bei der Durchführung von Inferenz keine Vorhersagen sehen und alles andere überprüft haben, versuchen Sie, den Konfidenzwert zu senken. Manchmal ist der Schwellenwert zu hoch, wodurch das Modell gültige Vorhersagen ignoriert. Durch das Senken des Wertes kann das Modell mehr Möglichkeiten berücksichtigen. Dies entspricht möglicherweise nicht Ihren Projektzielen, aber es ist eine gute Möglichkeit, um zu sehen, was das Modell leisten kann, und um zu entscheiden, wie Sie es feinabstimmen können.

Intersection over Union (Schnittmenge über Vereinigung)

Intersection over Union (IoU) ist eine Metrik in der Objekterkennung, die misst, wie gut die vorhergesagte Bounding Box mit der Ground-Truth-Bounding-Box übereinstimmt. Die IoU-Werte reichen von 0 bis 1, wobei 1 für eine perfekte Übereinstimmung steht. IoU ist wichtig, weil sie misst, wie genau die vorhergesagten Grenzen mit den tatsächlichen Objektgrenzen übereinstimmen.

Überblick über Intersection over Union

Mittlere durchschnittliche Präzision

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 gibt eine Gesamtzahl aus, 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 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 eine perfekte Platzierung erforderlich ist. Sie hilft zu erkennen, ob das Modell im Allgemeinen gut darin ist, Objekte zu erkennen.
  • mAP@.5:.95: Mittelt die mAP-Werte, die bei mehreren IoU-Schwellenwerten von 0,5 bis 0,95 in Schritten von 0,05 berechnet werden. Diese Metrik ist detaillierter und strenger. Sie vermittelt ein umfassenderes Bild davon, wie genau das Modell Objekte bei unterschiedlichen Genauigkeitsstufen 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, und mAP@small, medium und large, die die Präzision über Objekte unterschiedlicher Größe bewerten.

Überblick über die mittlere durchschnittliche Präzision

Bewertung der YOLO11-Modellleistung

In Bezug auf YOLO11 können Sie den Validierungsmodus verwenden, um das Modell zu bewerten. Sehen Sie sich auch unseren Leitfaden an, der detailliert auf die YOLO11-Leistungsmetriken eingeht und wie diese interpretiert werden können.

Häufige Fragen aus der Community

Bei der Bewertung Ihres YOLO11-Modells können einige Probleme auftreten. Basierend auf häufigen Fragen aus der Community finden Sie hier einige Tipps, die Ihnen 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 auf verschiedenen Datensätzen zu verstehen. Durch die Verwendung des rect=true Validierungsparameters passt YOLO11 den Stride des Netzwerks für jeden Batch basierend auf den Bildgrößen an, wodurch das Modell rechteckige Bilder verarbeiten kann, ohne sie auf eine einzige Größe zu zwingen.

Die imgsz Der Validierungsparameter legt die maximale Dimension für die Bildgrößenänderung fest, die standardmäßig 640 beträgt. Sie können dies basierend auf den maximalen Abmessungen Ihres Datensatzes und dem verfügbaren GPU-Speicher anpassen. Selbst mit imgsz gesetzt, rect=true lässt das Modell unterschiedliche Bildgrößen effektiv verwalten, indem es den Stride dynamisch anpasst.

Zugriff auf YOLO11-Metriken

Wenn Sie ein tieferes Verständnis der Leistung Ihres YOLO11-Modells erhalten möchten, können Sie mit wenigen Zeilen Python-Code einfach auf bestimmte Bewertungsmetriken zugreifen. Mit dem folgenden Code-Snippet können Sie Ihr Modell laden, eine Bewertung durchführen und verschiedene Metriken ausgeben, die zeigen, wie gut Ihr Modell funktioniert.

Nutzung

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 für eine bessere Leistung optimieren, wodurch es für Ihren spezifischen Anwendungsfall effektiver wird.

Wie funktioniert die Feinabstimmung?

Die Feinabstimmung umfasst die Verwendung eines vortrainierten Modells und die Anpassung seiner Parameter, um die Leistung bei einer bestimmten Aufgabe oder einem bestimmten Datensatz zu verbessern. Der Prozess, der auch als Modell-Retraining bezeichnet wird, ermöglicht es dem Modell, Ergebnisse für die spezifischen Daten, denen es in realen Anwendungen begegnen wird, besser zu verstehen und vorherzusagen. Sie können Ihr Modell basierend auf Ihrer Modellbewertung erneut trainieren, um optimale Ergebnisse zu erzielen.

Tipps zur Feinabstimmung Ihres Modells

Die Feinabstimmung eines Modells bedeutet, mehreren wichtigen Parametern und Techniken besondere Aufmerksamkeit zu schenken, um eine optimale Leistung zu erzielen. Hier sind einige wichtige Tipps, die Sie durch den Prozess führen.

Beginnen mit einer höheren Lernrate

Normalerweise beginnt die Lernrate während der ersten Epochen des Trainings niedrig und steigt allmählich an, um den Trainingsprozess zu stabilisieren. Da Ihr Modell jedoch bereits einige Merkmale aus dem vorherigen Datensatz gelernt hat, kann es vorteilhafter sein, sofort mit einer höheren Lernrate zu beginnen.

Wenn Sie Ihr YOLO11-Modell bewerten, können Sie den warmup_epochs Validierungsparameter auf warmup_epochs=0 setzen, um zu verhindern, dass die Lernrate zu hoch beginnt. Wenn Sie diesem Prozess folgen, wird das Training mit den bereitgestellten Gewichten fortgesetzt und an die Nuancen Ihrer neuen Daten angepasst.

Bildkachelung für kleine Objekte

Image Tiling kann die Erkennungsgenauigkeit für kleine Objekte verbessern. Durch das Aufteilen größerer Bilder in kleinere Segmente, z. B. das Aufteilen von 1280x1280-Bildern in mehrere 640x640-Segmente, behalten Sie die ursprüngliche Auflösung bei, und das Modell kann aus hochauflösenden Fragmenten lernen. Wenn Sie YOLO11 verwenden, stellen Sie sicher, dass Sie Ihre Labels für diese neuen Segmente korrekt anpassen.

Austausch mit der Community

Der Austausch von Ideen und Fragen mit anderen Computer Vision-Enthusiasten kann kreative Lösungen für Probleme in Ihren Projekten anregen. Hier sind einige ausgezeichnete Möglichkeiten zum Lernen, zur Fehlerbehebung und zur Vernetzung.

Hilfe und Unterstützung finden

  • GitHub Issues: Erkunden Sie das YOLO11 GitHub-Repository und nutzen Sie den Reiter "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 sich mit anderen Nutzern und Entwicklern zu vernetzen, Unterstützung zu erhalten, Wissen auszutauschen und Ideen zu sammeln.

Offizielle Dokumentation

  • Ultralytics YOLO11 Dokumentation: Sehen Sie sich die offizielle YOLO11 Dokumentation an, um umfassende Anleitungen und wertvolle Einblicke in verschiedene Computer-Vision-Aufgaben und -Projekte zu erhalten.

Abschließende Gedanken

Die Bewertung und Feinabstimmung Ihres Computer-Vision-Modells sind wichtige Schritte für eine erfolgreiche Modellbereitstellung. Diese Schritte tragen dazu bei, dass Ihr Modell genau, effizient und für Ihre Gesamtanwendung geeignet ist. Der Schlüssel zum Training des bestmöglichen Modells liegt in kontinuierlichem Experimentieren und Lernen. Zögern Sie nicht, Parameter anzupassen, neue Techniken auszuprobieren und verschiedene Datensätze zu erkunden. Experimentieren Sie weiter und verschieben Sie die Grenzen des Möglichen!

FAQ

Was sind die wichtigsten Metriken zur Bewertung der YOLO11-Modellleistung?

Zur Bewertung der YOLO11-Modellleistung gehören wichtige Metriken wie Confidence Score, Intersection over Union (IoU) und Mean Average Precision (mAP). Der Confidence Score misst die Sicherheit des Modells für jede erkannte Objektklasse. IoU bewertet, wie gut die vorhergesagte Bounding Box mit der Ground Truth übereinstimmt. Mean Average Precision (mAP) aggregiert Präzisionswerte über Klassen hinweg, wobei mAP@.5 und mAP@.5:.95 zwei gängige Typen für unterschiedliche IoU-Schwellenwerte sind. Erfahren Sie mehr über diese Metriken in unserem YOLO11-Leistungsmetriken-Leitfaden.

Wie kann ich ein vortrainiertes YOLO11-Modell für meinen spezifischen Datensatz feinabstimmen?

Die Feinabstimmung eines vortrainierten YOLO11-Modells umfasst 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 legen Sie dann eine höhere anfängliche Lernrate fest, indem Sie den Wert warmup_epochs Parameter auf 0 setzen, um eine sofortige Stabilität zu gewährleisten. Verwenden Sie Parameter wie rect=true , um unterschiedlich große Bilder effektiv zu verarbeiten. Weitere detaillierte Anleitungen finden Sie in unserem Abschnitt über die Feinabstimmung von YOLO11-Modellen.

Wie kann ich variable Bildgrößen bei der Bewertung meines YOLO11-Modells handhaben?

Um variable Bildgrößen während der Auswertung zu verarbeiten, verwenden Sie den rect=true Parameter in YOLO11, der die Schrittweite des Netzwerks für jeden Batch basierend auf den Bildgrößen anpasst. Der imgsz Parameter legt die maximale Dimension für die Größenänderung von Bildern fest, standardmäßig 640. Passen Sie imgsz an, um Ihren Datensatz und den GPU-Speicher anzupassen. Weitere Informationen finden Sie in unserem Abschnitt zur Verarbeitung variabler Bildgrößen.

Welche praktischen Schritte kann ich unternehmen, um die mittlere durchschnittliche Präzision für mein YOLO11-Modell zu verbessern?

Die Verbesserung der mittleren durchschnittlichen Präzision (mAP) für ein YOLO11-Modell umfasst mehrere Schritte:

  1. Hyperparameter-Optimierung: Experimentieren Sie mit verschiedenen Lernraten, Batch-Größen und Bildaugmentationen.
  2. Datenaugmentation: Verwenden Sie Techniken wie Mosaic und MixUp, um vielfältige Trainingsbeispiele zu erstellen.
  3. Image Tiling: Teilen Sie größere Bilder in kleinere Kacheln auf, um die Erkennungsgenauigkeit für kleine Objekte zu verbessern. Weitere Informationen finden Sie in unserem ausführlichen Leitfaden zur Modell-Feinabstimmung für spezifische Strategien.

Wie greife ich in python auf die Metriken zur YOLO11-Modellbewertung zu?

Sie können mit Python auf die YOLO11-Modellbewertungsmetriken zugreifen, indem Sie die folgenden Schritte ausführen:

Nutzung

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. Für einen tieferen Einblick lesen Sie unseren Leitfaden zu YOLO11-Metriken.



📅 Vor 1 Jahr erstellt ✏️ Vor 5 Monaten aktualisiert

Kommentare