So testest du Computer-Vision-Modelle#
Einleitung#
Beim Testen eines Modells wird geprüft, wie ein trainiertes Modell mit bisher unbekannten Daten aus der Praxis zurechtkommt – mit sich bewegenden, schlecht beleuchteten oder teilweise verdeckten Objekten statt mit einem kuratierten Benchmark. Während die Modellevaluierung Metriken auf einem annotierten Datensatz misst, überprüft das Testen vor der Bereitstellung, ob das erlernte Verhalten des Modells mit den Zielen deiner Anwendung übereinstimmt. Dieser Leitfaden behandelt die Vorbereitung von Testdaten, das Testen von Ultralytics YOLO26-Modellen sowie das Erkennen von Overfitting, Underfitting und Datenlecks.
Watch: How to Test Machine Learning Models | Avoid Data Leakage in Computer Vision 🚀
Modelltesten vs. Modellevaluierung#
Modelltesten und Modellevaluierung sind zwei unterschiedliche Schritte in einem Computer-Vision-Projekt. Bei der Evaluierung wird die Leistung anhand von Metriken auf einem annotierten Datensatz gemessen; beim Testen wird geprüft, ob das erlernte Verhalten des Modells unter Bedingungen Bestand hat, die dem späteren Einsatz ähneln.
Angenommen, du hast ein Computer-Vision-Modell trainiert, um Katzen und Hunde zu erkennen, und möchtest es in einer Tierhandlung zur Überwachung der Tiere einsetzen. Während der Modellevaluierung verwendest du einen annotierten Datensatz, um Metriken wie Genauigkeit, Precision und Recall zu berechnen. So könnte das Modell beispielsweise in einem bestimmten Datensatz Katzen und Hunde mit einer Genauigkeit von 98 % unterscheiden.
Nach der Evaluierung testest du das Modell mit Bildern aus einer Tierhandlung, um zu sehen, wie gut es Katzen und Hunde unter vielfältigeren und realistischeren Bedingungen erkennt. Du prüfst, ob es Katzen und Hunde korrekt beschriften kann, wenn sie sich bewegen, bei unterschiedlichen Lichtverhältnissen aufgenommen werden oder teilweise durch Gegenstände wie Spielzeug oder Möbel verdeckt sind. Beim Modelltesten wird überprüft, ob sich das Modell außerhalb der kontrollierten Evaluierungsumgebung wie erwartet verhält.
Vorbereitung auf das Modelltesten#
Computer-Vision-Datensätze werden normalerweise in Trainings- und Testsets aufgeteilt, um Bedingungen aus der Praxis zu simulieren: Trainingsdaten bringen dem Modell etwas bei, während Testdaten sein Verhalten anhand von Beispielen überprüfen, die es noch nie gesehen hat. Die Ultralytics Platform zentralisiert die Organisation und Annotation von Datensätzen und erleichtert dadurch den Aufbau eines annotierten Testsets.
- Realistische Repräsentation: Die bisher unbekannten Testdaten sollten den Daten ähneln, die das Modell beim Einsatz verarbeitet. So erhältst du ein realistisches Bild von den Fähigkeiten des Modells.
- Ausreichende Größe: Der Testdatensatz muss groß genug sein, um zuverlässige Erkenntnisse über die Leistungsfähigkeit des Modells zu liefern.
So testest du ein YOLO26-Modell#
Das Testen eines trainierten YOLO26-Modells umfasst zwei sich ergänzende Arbeitsabläufe: die Validierung anhand eines annotierten Test-Splits, um quantitative Metriken zu erhalten, und Vorhersagen auf neuen Bildern, um das Verhalten qualitativ zu untersuchen.
Validierung anhand eines annotierten Test-Splits#
Der Validierungsmodus vergleicht die Vorhersagen des Modells mit Ground-Truth-Labels und gibt für Erkennungsmodelle Precision, Recall, mAP50 und mAP50-95 aus. Außerdem werden visuelle Hilfsmittel wie eine Konfusionsmatrix und eine Precision-Recall-Kurve gespeichert, mit denen du bestimmte Bereiche erkennen kannst, in denen das Modell möglicherweise nicht gut funktioniert.
from ultralytics import YOLO
# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")
# Validate; add split="test" if your dataset YAML defines a test split
metrics = model.val(data="coco8.yaml")
print(metrics.box.map) # mAP50-95Standardmäßig wird die Validierung auf dem val-Split des Datensatzes ausgeführt. Um die Leistung auf einem zurückgehaltenen Testset zu messen, definiere in deiner Dataset-YAML einen test:-Split und übergib split="test".
Vorhersagen auf neuen Bildern#
Der Vorhersagemodus führt das Modell auf neuen, unbekannten Daten aus, ohne Labels zu benötigen. Er erzeugt keine Leistungsmetriken, aber durch das Speichern der annotierten Ausgaben kannst du das Verhalten des Modells auf Bildern aus der Praxis überprüfen – beispielsweise einen ganzen Ordner mit Testbildern in einem Durchlauf.
from ultralytics import YOLO
# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")
# Run predictions on a folder of test images and save annotated results
results = model.predict(source="path/to/test_images", save=True)Um zu prüfen, ob YOLO26 zu deiner Anwendung passt, bevor du in benutzerdefiniertes Training investierst, führe den Vorhersagemodus mit einem vortrainierten Checkpoint auf deinen eigenen Bildern aus. Die Modelle sind auf Datensätzen wie COCO vortrainiert, sodass die Ergebnisse schnell zeigen, wie gut das Modell in deinem konkreten Kontext möglicherweise funktioniert.
Validierungs- vs. Vorhersagemodus#
| Modus | Zweck | Benötigt Labels | Ausgabe |
|---|---|---|---|
| Validierung | Leistung anhand der Ground Truth quantifizieren | Ja | Precision, Recall, mAP50, mAP50-95, Konfusionsmatrix, PR-Kurven |
| Vorhersage | Modellverhalten auf neuen, nicht annotierten Daten untersuchen | Nein | Annotierte Bilder und Vorhersageergebnisse, keine Metriken |
So analysierst du die Testergebnisse#
Sobald dir Vorhersagen und Metriken vorliegen, untersuche genau, wo und warum das Modell fehlschlägt:
- Falsch klassifizierte Bilder: Identifiziere und überprüfe Bilder, die das Modell falsch klassifiziert hat, um zu verstehen, wo es Fehler macht.
- Fehleranalyse: Führe eine gründliche Fehleranalyse durch, um die Fehlerarten (z. B. False Positives und False Negatives) sowie ihre möglichen Ursachen zu verstehen.
- Bias und Fairness: Prüfe, ob die Vorhersagen des Modells Verzerrungen aufweisen. Stelle sicher, dass das Modell in verschiedenen Teilmengen der Daten gleich gut funktioniert, insbesondere wenn diese sensible Merkmale wie Herkunft, Geschlecht oder Alter enthalten.
Overfitting und Underfitting im maschinellen Lernen#
Beim Testen eines Machine-Learning-Modells, insbesondere im Bereich Computer Vision, solltest du auf Overfitting und Underfitting achten. Diese Probleme können die Leistungsfähigkeit deines Modells bei neuen Daten erheblich beeinträchtigen.
| Problem | Häufige Anzeichen | So gehst du dagegen vor |
|---|---|---|
| Overfitting | Hohe Trainingsgenauigkeit, aber niedrige Validierungsgenauigkeit; übermäßige Empfindlichkeit gegenüber geringfügigen Änderungen oder irrelevanten Details in Bildern | Wende Regularisierung wie Dropout an, vergrößere den Trainingsdatensatz und vereinfache die Modellarchitektur. |
| Underfitting | Niedrige Genauigkeit sogar auf dem Trainingsset; anhaltendes Nichterkennen offensichtlicher Merkmale oder Objekte | Verwende ein komplexeres Modell, stelle relevantere Merkmale bereit und erhöhe die Anzahl der Trainings-Epochen. |
Entscheidend ist, ein Gleichgewicht zu finden, damit das Modell sowohl auf Trainings- als auch auf Validierungsdatensätzen gut funktioniert. Wenn du die Metriken regelmäßig überwachst und die Vorhersagen während des Testens visuell überprüfst, kannst du eine Entwicklung in Richtung eines der beiden Extreme frühzeitig erkennen.
Datenlecks in Computer Vision und wie du sie vermeidest#
Ein Datenleck entsteht, wenn Informationen außerhalb des Trainingsdatensatzes versehentlich zum Trainieren des Modells verwendet werden. Das Modell kann während des Trainings sehr genau wirken, funktioniert bei neuen, unbekannten Daten jedoch nicht gut, wenn ein Datenleck vorliegt.
Datenlecks sind oft schwer zu erkennen und entstehen häufig durch versteckte Verzerrungen in den Trainingsdaten:
| Art der Verzerrung | Erscheinungsbild |
|---|---|
| Kamerabias | Unterschiedliche Winkel, Lichtverhältnisse, Schatten und Kamerabewegungen führen unerwünschte Muster ein. |
| Overlay-Bias | Logos, Zeitstempel oder andere Einblendungen in Bildern führen das Modell in die Irre. |
| Schrift- und Objektbias | Bestimmte Schriftarten oder Objekte, die häufig in bestimmten Klassen vorkommen, verzerren das Lernen des Modells. |
| Räumlicher Bias | Ungleichgewichte zwischen Vorder- und Hintergrund, bei der Verteilung von Bounding Boxes und bei Objektpositionen beeinflussen das Training. |
| Label- und Domänenbias | Falsche Labels oder Verschiebungen bei den Datentypen führen zu Datenlecks. |
So erkennst und vermeidest du Datenlecks#
Um Datenlecks zu finden, prüfe, ob die Ergebnisse des Modells überraschend gut sind, ob ein Merkmal deutlich wichtiger ist als andere, ob die Entscheidungen des Modells intuitiv sinnvoll sind, und stelle sicher, dass die Daten vor jeglicher Verarbeitung korrekt aufgeteilt wurden.
Verwende dafür einen vielfältigen Datensatz mit Bildern oder Videos von unterschiedlichen Kameras und aus verschiedenen Umgebungen und überprüfe deine Daten sorgfältig auf versteckte Verzerrungen – etwa wenn alle positiven Beispiele zu einer bestimmten Tageszeit aufgenommen wurden. Indem du Datenlecks vermeidest, werden deine Computer-Vision-Modelle in realen Situationen zuverlässiger.
Was nach dem Modelltesten kommt#
Nach dem Testen deines Modells hängen die nächsten Schritte von den Ergebnissen ab. Wenn dein Modell gut funktioniert, kannst du es in einer realen Umgebung bereitstellen. Sind die Ergebnisse nicht zufriedenstellend, musst du Verbesserungen vornehmen. Dazu können die Analyse von Fehlern, das Sammeln weiterer Daten, die Verbesserung der Datenqualität, das Anpassen der Hyperparameter und ein erneutes Training des Modells gehören.
Fazit#
Strenges Modelltesten – die Validierung auf einem zurückgehaltenen Test-Split, Vorhersagen auf Bildern aus der Praxis sowie die Prüfung auf Overfitting und Datenlecks – macht aus einem gut evaluierten Modell ein zuverlässiges Modell. Behebe die beim Testen aufgedeckten Probleme vor der Bereitstellung, damit dein Modell in der Produktion möglichst erwartungsgemäß funktioniert. Wenn dabei Fragen aufkommen, wende dich an die Community im Ultralytics GitHub-Repository oder auf dem Ultralytics Discord-Server.
FAQ#
Bei der Modellevaluierung wird die Leistung anhand von Metriken auf einem annotierten Datensatz gemessen, während beim Modelltesten das Verhalten des Modells auf neuen, unbekannten Daten geprüft wird, die den Einsatzbedingungen ähneln. Die Evaluierung liefert Werte wie Precision und mAP aus einem kontrollierten Datensatz; das Testen zeigt, ob das erlernte Verhalten bei unterschiedlichen Lichtverhältnissen, Bewegungen oder Verdeckungen Bestand hat. Ein ausgearbeitetes Beispiel findest du unter Modelltesten vs. Modellevaluierung.
Verwende den Vorhersagemodus und übergib einen Ordnerpfad als
source– YOLO26 wird auf jedem Bild im Ordner ausgeführt und kann die annotierten Ergebnisse zur Überprüfung speichern. Der Vorhersagemodus berechnet keine Metriken. Um die Leistung auf einem annotierten Datensatz zu quantifizieren, verwende stattdessen den Validierungsmodus. Beide Arbeitsabläufe werden unter So testest du ein YOLO26-Modell gezeigt.Für Erkennungsmodelle gibt die Validierung Precision, Recall, mAP50 und mAP50-95 aus und speichert Diagramme wie eine Konfusionsmatrix und eine Precision-Recall-Kurve. Um statt des standardmäßigen
val-Splits einen dedizierten Test-Split zu validieren, definieretest:in deiner Dataset-YAML und übergibsplit="test". Im Leitfaden zu Leistungsmetriken erfährst du, wie du die einzelnen Metriken interpretierst.Wende bei Overfitting Regularisierungstechniken wie Dropout an, vergrößere den Trainingsdatensatz oder vereinfache die Modellarchitektur. Verwende bei Underfitting ein komplexeres Modell, stelle relevantere Merkmale bereit oder trainiere über mehr Epochen. Die Anzeichen der jeweiligen Probleme und die passenden Lösungen sind unter Overfitting und Underfitting im maschinellen Lernen zusammengefasst.
Vermute ein Datenleck, wenn die Testleistung überraschend gut ist, ein einzelnes Merkmal die Vorhersagen dominiert oder die Entscheidungen des Modells intuitiv nicht sinnvoll erscheinen. Verhindere Datenlecks durch vielfältige Datensätze von unterschiedlichen Kameras und aus verschiedenen Umgebungen, durch die Überprüfung der Daten auf versteckte Verzerrungen und durch die Kontrolle, dass die Aufteilung in Trainings- und Testdaten vor jeglicher Verarbeitung erfolgt ist. Unter Datenlecks in Computer Vision findest du die häufigsten Arten von Verzerrungen.
Wenn die Ergebnisse deine Projektziele erfüllen, stelle das Modell bereit. Andernfalls verbessere es vor der Bereitstellung. Dazu können die Fehleranalyse, das Sammeln vielfältigerer Daten, die Verbesserung der Datenqualität, das Optimieren der Hyperparameter und ein erneutes Training gehören. Wiederhole das Testen nach jeder Änderung, um zu bestätigen, dass die Anpassungen funktioniert haben.