Zum Inhalt springen

Einblicke in die Modellbewertung und Feinabstimmung

Einf├╝hrung

Nachdem Sie Ihr Computer-Vision-Modell trainiert haben, ist es wichtig, es zu bewerten und zu verfeinern, um eine optimale Leistung zu erzielen. 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 Schwachstellen identifizieren, seine Genauigkeit verbessern und die Gesamtleistung steigern.

In diesem Leitfaden geben wir Einblicke in die Modellbewertung und Feinabstimmung, die diesen Schritt eines Computer-Vision-Projekts zug├Ąnglicher machen. Wir besprechen, wie Sie Bewertungsmetriken verstehen und Feinabstimmungstechniken implementieren, um Ihnen das Wissen zu vermitteln, um die F├Ąhigkeiten Ihres Modells zu verbessern.

Auswerten der Modellleistung mithilfe von Metriken

Die Bewertung der Leistung eines Modells hilft uns zu verstehen, wie effektiv es funktioniert. Zur Leistungsmessung werden verschiedene Metriken verwendet. Diese Leistungsmetriken bieten klare, numerische Einblicke, die Verbesserungen erm├Âglichen k├Ânnen, um sicherzustellen, dass das Modell die beabsichtigten Ziele erreicht. Schauen wir uns einige wichtige Kennzahlen genauer an.

Konfidenz-Score

Der Konfidenzwert stellt die Gewissheit des Modells dar, dass ein erkanntes Objekt zu einer bestimmten Klasse geh├Ârt. Sie reicht von 0 bis 1, wobei h├Âhere Werte auf ein h├Âheres Vertrauen hinweisen. Der Konfidenzwert hilft beim Filtern von Vorhersagen. Nur Erkennungen mit Konfidenzwerten ├╝ber einem bestimmten Schwellenwert werden als g├╝ltig angesehen.

Kurzer Tipp: Wenn beim Ausf├╝hren von R├╝ckschl├╝ssen keine Vorhersagen angezeigt werden und Sie alles andere ├╝berpr├╝ft haben, versuchen Sie, die Zuverl├Ąssigkeitsbewertung zu verringern. Manchmal ist der Schwellenwert zu hoch, was dazu f├╝hrt, dass das Modell g├╝ltige Vorhersagen ignoriert. Durch das Verringern der Punktzahl kann das Modell mehr M├Âglichkeiten in Betracht ziehen. Dies entspricht m├Âglicherweise nicht Ihren Projektzielen, aber es ist eine gute M├Âglichkeit, um zu sehen, was das Modell leisten kann, und zu entscheiden, wie es optimiert werden kann.

Schnittpunkt ├╝ber Union

Intersection over Union (IoU) ist eine Metrik in der Objekterkennung, die misst, wie gut sich der vorhergesagte Begrenzungsrahmen mit dem Ground-Truth-Begrenzungsrahmen ├╝berschneidet. Die IoU-Werte reichen von 0 bis 1, wobei einer f├╝r eine perfekte ├ťbereinstimmung steht. IoU ist wichtig, da es misst, wie genau die vorhergesagten Grenzen mit den tats├Ąchlichen Objektgrenzen ├╝bereinstimmen.

Intersection over Union ├ťbersicht

Mittlere durchschnittliche Genauigkeit

Die mittlere durchschnittliche Genauigkeit (mAP) ist eine M├Âglichkeit, um zu messen, wie gut ein Objekterkennungsmodell funktioniert. Es untersucht die Genauigkeit der Erkennung jeder Objektklasse, mittelt diese Werte und gibt eine Gesamtzahl an, die zeigt, wie genau das Modell Objekte identifizieren und klassifizieren kann.

Konzentrieren wir uns auf zwei spezifische mAP-Metriken:

  • 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 lockereren Genauigkeitsanforderung korrekt finden kann. Es konzentriert sich darauf, ob sich das Objekt ungef├Ąhr an der richtigen Stelle befindet und keine perfekte Platzierung ben├Âtigt. Es hilft zu sehen, ob das Modell im Allgemeinen gut darin ist, Objekte zu erkennen.
  • mAP@.5:.95: Mittelt die mAP-Werte, die bei mehreren IoU-Schwellenwerten berechnet wurden, von 0,5 bis 0,95 in Schritten von 0,05. Diese Metrik ist detaillierter und strenger. Es gibt ein vollst├Ąndigeres Bild davon, wie genau das Modell Objekte auf verschiedenen Strengegraden finden kann, und ist besonders n├╝tzlich f├╝r Anwendungen, die eine pr├Ązise Objekterkennung erfordern.

Andere mAP-Metriken sind mAP@0.75, die einen strengeren IoU-Schwellenwert von 0,75 verwendet, und mAP@small, medium und large, die die Genauigkeit bei Objekten unterschiedlicher Gr├Â├če bewerten.

Mittlere durchschnittliche Genauigkeit ├ťbersicht

Auswertend YOLOv8 Modell-Performance

In Bezug auf YOLOv8k├Ânnen Sie den Validierungsmodus verwenden, um das Modell auszuwerten. Werfen Sie auch einen Blick auf unseren Leitfaden, der ausf├╝hrlich auf Folgendes eingeht YOLOv8 Leistungskennzahlen und wie sie interpretiert werden k├Ânnen.

H├Ąufige Fragen zur Community

Bei der Bewertung Ihrer YOLOv8 Modell, Sie k├Ânnten auf ein paar Probleme sto├čen. Basierend auf h├Ąufigen Community-Fragen finden Sie hier einige Tipps, die Ihnen helfen, das Beste aus Ihrem YOLOv8 Modell:

Umgang mit variablen Bildgr├Â├čen

Bewerten Sie Ihre YOLOv8 -Modell mit Bildern unterschiedlicher Gr├Â├če kann Ihnen helfen, die Leistung bei verschiedenen Datens├Ątzen zu verstehen. Mit der Option rect=true Validierungsparameter, YOLOv8 Passt den Schritt des Netzwerks f├╝r jeden Stapel basierend auf den Bildgr├Â├čen an, sodass das Modell rechteckige Bilder verarbeiten kann, ohne sie auf eine einzige Gr├Â├če zu zwingen.

Die imgsz Validierungsparameter legt die maximale Abmessung f├╝r die Bildgr├Â├čen├Ąnderung fest, die standardm├Ą├čig 640 betr├Ągt. Du kannst diesen Wert je nach den maximalen Abmessungen deines Datensatzes und dem verf├╝gbaren GPU Speicherplatz anpassen. Auch bei imgsz Garnitur rect=true erm├Âglicht es dem Modell, unterschiedliche Bildgr├Â├čen effektiv zu verwalten, indem es den Schritt dynamisch anpasst.

Zugreifend YOLOv8 Metrik

Wenn Sie ein tieferes Verst├Ąndnis f├╝r Ihre YOLOv8 Leistung des Modells k├Ânnen Sie mit wenigen Zeilen Python Code. Mit dem folgenden Codeausschnitt k├Ânnen Sie Ihr Modell laden, eine Auswertung ausf├╝hren und verschiedene Metriken ausdrucken, die zeigen, wie gut Ihr Modell funktioniert.

Verwendung

from ultralytics import YOLO

# Load the model
model = YOLO("yolov8n.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, R├╝ckschlusszeit, Verlust und Nachbearbeitungszeit. Durch die Analyse dieser Metriken k├Ânnen Sie Ihre YOLOv8 Modell f├╝r eine bessere Leistung und damit f├╝r Ihren spezifischen Anwendungsfall effektiver.

Wie funktioniert die Feinabstimmung?

Bei der Feinabstimmung wird ein vortrainiertes Modell verwendet und seine Parameter angepasst, 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, die Ergebnisse f├╝r die spezifischen Daten, auf die es in realen Anwendungen sto├čen wird, besser zu verstehen und vorherzusagen. Sie k├Ânnen Ihr Modell basierend auf Ihrer Modellauswertung neu trainieren, um optimale Ergebnisse zu erzielen.

Tipps zur Feinabstimmung Ihres Modells

Die Feinabstimmung eines Modells bedeutet, dass mehrere wichtige Parameter und Techniken genau beachtet werden, um eine optimale Leistung zu erzielen. Hier sind einige wichtige Tipps, die Sie durch den Prozess f├╝hren.

Beginnen Sie mit einer h├Âheren Lernrate

Normalerweise beginnt die Lernrate w├Ąhrend der anf├Ąnglichen Trainingsepochen niedrig und steigt allm├Ąhlich an, um den Trainingsprozess zu stabilisieren. Da Ihr Modell jedoch bereits einige Features aus dem vorherigen Dataset gelernt hat, kann es vorteilhafter sein, sofort mit einer h├Âheren Lernrate zu beginnen.

Bei der Bewertung Ihrer YOLOv8 Modell k├Ânnen Sie die warmup_epochs Validierungsparameter auf warmup_epochs=0 um zu verhindern, dass die Lernrate zu hoch beginnt. Wenn Sie diesem Prozess folgen, wird das Training von den bereitgestellten Gewichten aus fortgesetzt und an die Nuancen Ihrer neuen Daten angepasst.

Bildkachelung f├╝r kleine Objekte

Bildkacheln k├Ânnen die Erkennungsgenauigkeit f├╝r kleine Objekte verbessern. Durch die Aufteilung gr├Â├čerer Bilder in kleinere Segmente, z. B. das Aufteilen von 1280 x 1280 Bildern in mehrere 640 x 640 Segmente, behalten Sie die urspr├╝ngliche Aufl├Âsung bei, und das Modell kann aus hochaufl├Âsenden Fragmenten lernen. Bei der Verwendung von YOLOv8, stellen Sie sicher, dass Sie Ihre Beschriftungen f├╝r diese neuen Segmente richtig anpassen.

Engagieren Sie sich in der Community

Wenn Sie Ihre Ideen und Fragen mit anderen Computer-Vision-Enthusiasten teilen, k├Ânnen Sie kreative L├Âsungen f├╝r Hindernisse in Ihren Projekten finden. Hier sind einige hervorragende M├Âglichkeiten, um zu lernen, Fehler zu beheben und sich zu verbinden.

Hilfe und Unterst├╝tzung finden

  • GitHub-Probleme: Entdecken Sie die YOLOv8 GitHub-Repository und verwenden Sie die Registerkarte Probleme , um Fragen zu stellen, Fehler zu melden und Funktionen vorzuschlagen. Die Community und die Betreuer stehen Ihnen bei allen Problemen zur Verf├╝gung, auf die Sie sto├čen.
  • Ultralytics Discord-Server: Treten Sie dem Ultralytics Discord-Server , um sich mit anderen Benutzern und Entwicklern zu verbinden, Unterst├╝tzung zu erhalten, Wissen auszutauschen und Ideen zu sammeln.

Offizielle Dokumentation

  • Ultralytics YOLOv8 Dokumentation: Schauen Sie sich die amtlich YOLOv8 Dokumentation f├╝r umfassende Leitf├Ąden und wertvolle Einblicke in verschiedene Computer-Vision-Aufgaben und -Projekte.

Abschlie├čende Gedanken

Das Auswerten und Optimieren Ihres Modells f├╝r maschinelles Sehen sind wichtige Schritte f├╝r eine erfolgreiche Modellbereitstellung. Mit diesen Schritten k├Ânnen Sie sicherstellen, dass Ihr Modell genau, effizient und f├╝r Ihre Gesamtanwendung geeignet ist. Der Schl├╝ssel zum Training des bestm├Âglichen Modells ist kontinuierliches Experimentieren und Lernen. Z├Âgern Sie nicht, Parameter zu optimieren, 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 Kriterien f├╝r die Bewertung der Leistung des YOLOv8 Modells?

Um die Leistung des Modells YOLOv8 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 sich die vorhergesagte Bounding Box mit der Bodenwahrheit ├╝berschneidet. Mean Average Precision (mAP) fasst die Pr├Ązisionswerte der einzelnen Klassen zusammen, wobei mAP@.5 und mAP@.5:.95 zwei g├Ąngige Typen f├╝r unterschiedliche IoU-Schwellenwerte sind. Mehr ├╝ber diese Kennzahlen erf├Ąhrst du in unserem Leitfaden f├╝r LeistungskennzahlenYOLOv8 .

Wie kann ich ein vortrainiertes YOLOv8 Modell f├╝r meinen spezifischen Datensatz feinabstimmen?

Bei der Feinabstimmung eines vortrainierten YOLOv8 Modells werden die Parameter angepasst, um die Leistung bei einer bestimmten Aufgabe oder einem bestimmten Datensatz zu verbessern. Beginne mit der Bewertung deines Modells anhand von Metriken und stelle dann eine h├Âhere anf├Ąngliche Lernrate ein, indem du die warmup_epochs Parameter auf 0, um sofortige Stabilit├Ąt zu erreichen. Verwende Parameter wie rect=true f├╝r den effektiven Umgang mit unterschiedlichen Bildgr├Â├čen. Ausf├╝hrlichere Anleitungen findest du in unserem Abschnitt ├╝ber Feinabstimmung YOLOv8 Modelle.

Wie kann ich mit variablen Bildgr├Â├čen umgehen, wenn ich mein YOLOv8 Modell bewerte?

Um mit variablen Bildgr├Â├čen w├Ąhrend der Auswertung umzugehen, verwendest du die rect=true Parameter in YOLOv8, der die Schrittweite des Netzwerks f├╝r jeden Stapel auf der Grundlage der Bildgr├Â├čen anpasst. Die imgsz legt die maximale Gr├Â├če f├╝r die Bildanpassung fest, die standardm├Ą├čig 640 betr├Ągt. anpassen imgsz f├╝r deinen Datensatz und GPU Speicher. F├╝r weitere Details besuche unsere Abschnitt ├╝ber den Umgang mit variablen Bildgr├Â├čen.

Welche praktischen Schritte kann ich unternehmen, um die durchschnittliche Genauigkeit meines YOLOv8 Modells zu verbessern?

Die Verbesserung der durchschnittlichen Genauigkeit (mAP) f├╝r ein Modell von YOLOv8 umfasst mehrere Schritte:

  1. Hyperparameter abstimmen: Experimentiere mit verschiedenen Lernraten, Stapelgr├Â├čen und Bildvergr├Â├čerungen.
  2. Datenerweiterung: Nutze Techniken wie Mosaic und MixUp, um vielf├Ąltige Trainingsbeispiele zu erstellen.
  3. Bildkacheln: Unterteile gr├Â├čere Bilder in kleinere Kacheln, um die Erkennungsgenauigkeit f├╝r kleine Objekte zu verbessern. Spezifische Strategien findest du in unserem detaillierten Leitfaden zur Modellfeinabstimmung.

Wie erhalte ich Zugang zu den Metriken der YOLOv8 Modellevaluation in Python?

Mit den folgenden Schritten kannst du ├╝ber Python auf die YOLOv8 Modellbewertungsmetriken zugreifen:

Verwendung

from ultralytics import YOLO

# Load the model
model = YOLO("yolov8n.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 Kennzahlen hilft bei der Feinabstimmung und Optimierung deines YOLOv8 Modells. Wenn du tiefer eintauchen willst, schau dir unseren Leitfaden zu den YOLOv8 Kennzahlen an.



Erstellt am 2024-06-29, Aktualisiert am 2024-07-05
Autoren: glenn-jocher (1), Laughing-q (1), abirami-vina (1)

Kommentare