Meet YOLO26: next-gen vision AI.

Link to this sectionDatenvorverarbeitungstechniken für annotierte Computer Vision Daten#

Link to this sectionEinführung#

Nachdem du die Ziele deines Computer-Vision-Projekts definiert und Daten gesammelt und annotiert hast, besteht der nächste Schritt darin, die annotierten Daten vorzuverarbeiten und für das Modelltraining vorzubereiten. Saubere und konsistente Daten sind entscheidend für die Erstellung eines Modells, das eine gute Leistung erbringt.



Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀

Die Vorverarbeitung ist ein Schritt im Computer-Vision-Projekt-Workflow, der das Ändern der Bildgröße, das Normalisieren von Pixelwerten, die Datensatz-Augmentierung und die Aufteilung der Daten in Trainings-, Validierungs- und Testsets umfasst. Lass uns die wesentlichen Techniken und Best Practices für die Bereinigung deiner Daten erkunden!

Link to this sectionBedeutung der Datenvorverarbeitung#

Wir sammeln und annotieren unsere Daten bereits sorgfältig und unter Berücksichtigung zahlreicher Aspekte. Warum ist die Datenvorverarbeitung also so wichtig für ein Computer-Vision-Projekt? Nun, bei der Datenvorverarbeitung geht es darum, deine Daten in ein geeignetes Format für das Training zu bringen, das die Rechenlast verringert und hilft, die Modellleistung zu verbessern. Hier sind einige häufige Probleme bei Rohdaten, die durch die Vorverarbeitung angegangen werden:

  • Rauschen: Irrelevante oder zufällige Variationen in den Daten.
  • Inkonsistenz: Variationen in Bildgrößen, Formaten und Qualität.
  • Ungleichgewicht: Ungleiche Verteilung von Klassen oder Kategorien im Datensatz.

Link to this sectionDatenvorverarbeitungstechniken#

Einer der ersten und wichtigsten Schritte bei der Datenvorverarbeitung ist die Größenanpassung (Resizing). Einige Modelle sind für variable Eingabegrößen ausgelegt, aber viele Modelle erfordern eine konsistente Eingabegröße. Durch das Ändern der Bildgröße werden sie einheitlich gemacht und die rechnerische Komplexität reduziert.

Link to this sectionBilder skalieren#

Du kannst deine Bilder mit den folgenden Methoden skalieren:

  • Bilineare Interpolation: Glättet Pixelwerte durch Bildung eines gewichteten Durchschnitts der vier nächstgelegenen Pixelwerte.
  • Nächster Nachbar (Nearest Neighbor): Weist den nächsten Pixelwert ohne Mittelwertbildung zu, was zu einem blockartigen Bild führt, aber eine schnellere Berechnung ermöglicht.

Um das Skalieren zu vereinfachen, kannst du die folgenden Werkzeuge verwenden:

  • OpenCV: Eine beliebte Computer-Vision-Bibliothek mit umfassenden Funktionen für die Bildverarbeitung.
  • PIL (Pillow): Eine Python Imaging Library zum Öffnen, Bearbeiten und Speichern von Bilddateien.

In Bezug auf YOLO26 ermöglicht der Parameter 'imgsz' während des Modelltrainings flexible Eingabegrößen. Wenn er auf eine bestimmte Größe eingestellt ist, z. B. 640, skaliert das Modell die Eingabebilder so, dass ihre größte Dimension 640 Pixel beträgt, während das ursprüngliche Seitenverhältnis beibehalten wird.

Indem du die spezifischen Anforderungen deines Modells und deines Datensatzes bewertest, kannst du bestimmen, ob die Größenanpassung ein notwendiger Vorverarbeitungsschritt ist oder ob dein Modell Bilder unterschiedlicher Größe effizient verarbeiten kann.

Link to this sectionPixelwerte normalisieren#

Eine weitere Vorverarbeitungstechnik ist die Normalisierung. Die Normalisierung skaliert die Pixelwerte auf einen Standardbereich, was zu einer schnelleren Konvergenz während des Trainings beiträgt und die Modellleistung verbessert. Hier sind einige gängige Normalisierungstechniken:

  • Min-Max-Skalierung: Skaliert Pixelwerte auf einen Bereich von 0 bis 1.
  • Z-Score-Normalisierung: Skaliert Pixelwerte basierend auf ihrem Mittelwert und ihrer Standardabweichung.

In Bezug auf YOLO26 wird die Normalisierung nahtlos als Teil der Vorverarbeitungspipeline während des Modelltrainings gehandhabt. YOLO26 führt automatisch mehrere Vorverarbeitungsschritte durch, einschließlich der Konvertierung in RGB, der Skalierung der Pixelwerte auf den Bereich [0, 1] und der Normalisierung unter Verwendung vordefinierter Mittelwert- und Standardabweichungswerte.

Link to this sectionDen Datensatz aufteilen#

Sobald du die Daten bereinigt hast, bist du bereit, den Datensatz aufzuteilen. Die Aufteilung der Daten in Trainings-, Validierungs- und Testsets erfolgt, um sicherzustellen, dass das Modell mit unbekannten Daten bewertet werden kann, um seine Generalisierungsleistung zu beurteilen. Eine übliche Aufteilung beträgt 70 % für das Training, 20 % für die Validierung und 10 % für den Test. Es gibt verschiedene Werkzeuge und Bibliotheken, die du zum Aufteilen deiner Daten verwenden kannst, wie scikit-learn oder TensorFlow.

Berücksichtige beim Aufteilen deines Datensatzes Folgendes:

  • Beibehaltung der Datenverteilung: Stelle sicher, dass die Datenverteilung der Klassen über Trainings-, Validierungs- und Testsets hinweg gewahrt bleibt.
  • Vermeidung von Data Leakage: Normalerweise erfolgt die Datenaugmentierung nach der Aufteilung des Datensatzes. Datenaugmentierung und jede andere Vorverarbeitung sollten nur auf das Trainingsset angewendet werden, um zu verhindern, dass Informationen aus den Validierungs- oder Testsets das Modelltraining beeinflussen.
  • Klassenausgleich: Erwäge bei unausgewogenen Datensätzen Techniken wie das Oversampling der Minderheitsklasse oder das Undersampling der Mehrheitsklasse innerhalb des Trainingssets.

Link to this sectionWas ist Datenaugmentierung?#

Der am häufigsten diskutierte Schritt der Datenvorverarbeitung ist die Datenaugmentierung. Die Datenaugmentierung erhöht künstlich die Größe des Datensatzes, indem modifizierte Versionen von Bildern erstellt werden. Durch das Augmentieren deiner Daten kannst du Overfitting reduzieren und die Modellgeneralisierung verbessern.

Hier sind einige weitere Vorteile der Datenaugmentierung:

  • Erstellt einen robusteren Datensatz: Datenaugmentierung kann das Modell robuster gegenüber Variationen und Verzerrungen in den Eingabedaten machen. Dies umfasst Änderungen in Beleuchtung, Ausrichtung und Maßstab.
  • Kosteneffektiv: Datenaugmentierung ist eine kostengünstige Möglichkeit, die Menge der Trainingsdaten zu erhöhen, ohne neue Daten sammeln und labeln zu müssen.
  • Bessere Datennutzung: Jeder verfügbare Datenpunkt wird durch das Erstellen neuer Variationen optimal genutzt.

Link to this sectionMethoden der Datenaugmentierung#

Gängige Augmentierungstechniken umfassen Spiegeln, Drehen, Skalieren und Farbanpassungen. Mehrere Bibliotheken, wie Albumentations, Imgaug und TensorFlows ImageDataGenerator, können diese Augmentierungen erzeugen.

Overview of Data Augmentations

In Bezug auf YOLO26 kannst du deinen benutzerdefinierten Datensatz augmentieren, indem du die Konfigurationsdatei des Datensatzes, eine .yaml-Datei, änderst. In dieser Datei kannst du einen Augmentierungsabschnitt mit Parametern hinzufügen, die festlegen, wie du deine Daten augmentieren möchtest.

Das Ultralytics YOLO26 Repository unterstützt eine breite Palette von Datenaugmentierungen. Du kannst verschiedene Transformationen anwenden, wie zum Beispiel:

  • Zufällige Zuschneidungen (Random Crops)
  • Spiegeln: Bilder können horizontal oder vertikal gespiegelt werden.
  • Drehung: Bilder können um bestimmte Winkel gedreht werden.
  • Verzerrung

Außerdem kannst du die Intensität dieser Augmentierungstechniken über spezifische Parameter anpassen, um mehr Datenvielfalt zu generieren.

Link to this sectionEine Fallstudie zur Vorverarbeitung#

Stell dir ein Projekt vor, das darauf abzielt, ein Modell zur Erkennung und Klassifizierung verschiedener Fahrzeugtypen in Verkehrsbildern mit YOLO26 zu entwickeln. Wir haben Verkehrsbilder gesammelt und sie mit Bounding Boxes und Labels annotiert.

So sähe jeder Schritt der Vorverarbeitung für dieses Projekt aus:

  • Bilder skalieren: Da YOLO26 flexible Eingabegrößen handhabt und die Größenanpassung automatisch durchführt, ist eine manuelle Anpassung nicht erforderlich. Das Modell passt die Bildgröße während des Trainings gemäß dem angegebenen Parameter 'imgsz' an.
  • Pixelwerte normalisieren: YOLO26 normalisiert die Pixelwerte während der Vorverarbeitung automatisch auf einen Bereich von 0 bis 1, daher ist dies nicht erforderlich.
  • Den Datensatz aufteilen: Teile den Datensatz mithilfe von Werkzeugen wie scikit-learn in Trainings- (70 %), Validierungs- (20 %) und Testsets (10 %) auf.
  • Datenaugmentierung: Ändere die Datensatz-Konfigurationsdatei (.yaml), um Datenaugmentierungstechniken wie zufällige Zuschneidungen, horizontale Spiegelungen und Helligkeitsanpassungen einzubeziehen.

Diese Schritte stellen sicher, dass der Datensatz ohne potenzielle Probleme vorbereitet und bereit für die explorative Datenanalyse (EDA) ist.

Link to this sectionTechniken der explorativen Datenanalyse#

Nachdem du deinen Datensatz vorverarbeitet und augmentiert hast, besteht der nächste Schritt darin, durch explorative Datenanalyse (EDA) Erkenntnisse zu gewinnen. EDA nutzt statistische Techniken und Visualisierungswerkzeuge, um die Muster und Verteilungen in deinen Daten zu verstehen. Du kannst Probleme wie Klassenungleichgewichte oder Ausreißer identifizieren und fundierte Entscheidungen über weitere Datenvorverarbeitung oder Anpassungen des Modelltrainings treffen.

Link to this sectionStatistische EDA-Techniken#

Statistische Techniken beginnen oft mit der Berechnung grundlegender Metriken wie Mittelwert, Median, Standardabweichung und Bereich. Diese Metriken bieten einen schnellen Überblick über die Eigenschaften deines Bilddatensatzes, wie z. B. Pixelintensitätsverteilungen. Das Verständnis dieser grundlegenden Statistiken hilft dir, die Gesamtqualität und die Merkmale deiner Daten zu erfassen, sodass du Unregelmäßigkeiten frühzeitig erkennen kannst.

Link to this sectionVisuelle EDA-Techniken#

Visualisierungen sind bei der EDA für Bilddatensätze von zentraler Bedeutung. Beispielsweise ist die Analyse von Klassenungleichgewichten ein weiterer wichtiger Aspekt der EDA. Sie hilft festzustellen, ob bestimmte Klassen in deinem Datensatz unterrepräsentiert sind. Das Visualisieren der Verteilung verschiedener Bildklassen oder Kategorien mithilfe von Balkendiagrammen kann Ungleichgewichte schnell aufdecken. Ebenso können Ausreißer mithilfe von Visualisierungstools wie Boxplots identifiziert werden, die Anomalien in der Pixelintensität oder Merkmalsverteilungen hervorheben. Die Ausreißererkennung verhindert, dass ungewöhnliche Datenpunkte deine Ergebnisse verzerren.

Gängige Werkzeuge für Visualisierungen umfassen:

  • Histogramme und Boxplots: Nützlich, um die Verteilung von Pixelwerten zu verstehen und Ausreißer zu identifizieren.
  • Streudiagramme (Scatter Plots): Hilfreich, um Beziehungen zwischen Bildmerkmalen oder Annotationen zu untersuchen.
  • Heatmaps: Effektiv zur Visualisierung der Verteilung von Pixelintensitäten oder der räumlichen Verteilung annotierter Merkmale innerhalb von Bildern.

Link to this sectionNutzung der Ultralytics Plattform für EDA#

Für einen No-Code-Ansatz zur EDA lade deinen Datensatz auf die Ultralytics Plattform hoch. Der Charts-Tab des Datensatzes generiert automatisch die oben beschriebenen Visualisierungen: Split-Verteilung, Top-Klassen-Zählungen, Histogramme für Bildbreite/-höhe sowie 2D-Heatmaps von Annotationspositionen und Bildabmessungen. Der Images-Tab ermöglicht es dir, deine Daten in Raster-, Kompakt- oder Tabellenansichten mit Annotation-Overlays zu durchsuchen, was es einfach macht, falsch gelabelte Beispiele oder unausgewogene Klassen zu erkennen, ohne eine einzige Zeile Code zu schreiben.

Link to this sectionKontaktiere und vernetze dich#

Diskussionen über dein Projekt mit anderen Computer-Vision-Enthusiasten können dir neue Ideen aus verschiedenen Perspektiven liefern. Hier sind einige großartige Möglichkeiten zum Lernen, zur Fehlersuche und zum Netzwerken:

Link to this sectionKanäle, um dich mit der Community zu verbinden#

  • GitHub Issues: Besuche das YOLO26 GitHub-Repository und nutze den Issues-Tab, um Fragen zu stellen, Fehler zu melden und Funktionen vorzuschlagen. Die Community und die Maintainer sind da, um dir bei allen Problemen zu helfen, auf die du stößt.
  • Ultralytics Discord-Server: Tritt dem Ultralytics Discord-Server bei, um dich mit anderen Benutzern und Entwicklern zu vernetzen, Support zu erhalten, Wissen zu teilen und Ideen zu entwickeln.

Link to this sectionOffizielle Dokumentation#

  • Ultralytics YOLO26 Dokumentation: Verweise auf die offizielle YOLO26 Dokumentation für gründliche Anleitungen und wertvolle Einblicke in zahlreiche Computer-Vision-Aufgaben und -Projekte.

Link to this sectionDein Datensatz ist bereit!#

Richtig skalierte, normalisierte und augmentierte Daten verbessern die Modellleistung, indem sie Rauschen reduzieren und die Generalisierung verbessern. Indem du den Vorverarbeitungstechniken und Best Practices folgst, die in diesem Leitfaden beschrieben sind, kannst du einen soliden Datensatz erstellen. Mit deinem vorbereiteten Datensatz kannst du zuversichtlich mit den nächsten Schritten in deinem Projekt fortfahren.

Link to this sectionFAQ#

Link to this sectionWas ist die Bedeutung der Datenvorverarbeitung in Computer-Vision-Projekten?#

Die Datenvorverarbeitung ist bei Computer-Vision-Projekten unerlässlich, da sie sicherstellt, dass die Daten sauber, konsistent und in einem für das Modelltraining optimalen Format vorliegen. Indem Probleme wie Rauschen, Inkonsistenz und Ungleichgewicht in den Rohdaten angegangen werden, helfen Vorverarbeitungsschritte wie Größenanpassung, Normalisierung, Augmentierung und die Aufteilung des Datensatzes dabei, die Rechenlast zu verringern und die Modellleistung zu verbessern. Weitere Details findest du in den Schritten eines Computer-Vision-Projekts.

Link to this sectionWie kann ich Ultralytics YOLO für die Datenaugmentierung verwenden?#

Für die Datenaugmentierung mit Ultralytics YOLO26 musst du die Konfigurationsdatei des Datensatzes (.yaml) ändern. In dieser Datei kannst du verschiedene Augmentierungstechniken wie zufällige Zuschneidungen, horizontale Spiegelungen und Helligkeitsanpassungen angeben. Dies kann effektiv unter Verwendung der hier erläuterten Trainingskonfigurationen durchgeführt werden. Datenaugmentierung hilft, einen robusteren Datensatz zu erstellen, Overfitting zu reduzieren und die Modellgeneralisierung zu verbessern.

Link to this sectionWas sind die besten Datennormalisierungstechniken für Computer-Vision-Daten?#

Die Normalisierung skaliert Pixelwerte auf einen Standardbereich für eine schnellere Konvergenz und verbesserte Leistung während des Trainings. Zu den gängigen Techniken gehören:

  • Min-Max-Skalierung: Skaliert Pixelwerte auf einen Bereich von 0 bis 1.
  • Z-Score-Normalisierung: Skaliert Pixelwerte basierend auf ihrem Mittelwert und ihrer Standardabweichung.

Für YOLO26 wird die Normalisierung automatisch gehandhabt, einschließlich der Konvertierung in RGB und der Skalierung der Pixelwerte. Erfahre mehr darüber im Abschnitt zum Modelltraining.

Link to this sectionWie sollte ich meinen annotierten Datensatz für das Training aufteilen?#

Um deinen Datensatz aufzuteilen, ist es üblich, ihn in 70 % für das Training, 20 % für die Validierung und 10 % für den Test aufzuteilen. Es ist wichtig, die Datenverteilung der Klassen über diese Aufteilungen hinweg beizubehalten und Data Leakage zu vermeiden, indem die Augmentierung nur auf das Trainingsset angewendet wird. Verwende Werkzeuge wie scikit-learn oder TensorFlow für eine effiziente Aufteilung des Datensatzes. Sieh dir den detaillierten Leitfaden zur Datensatzvorbereitung an.

Link to this sectionKann ich in YOLO26 unterschiedliche Bildgrößen ohne manuelle Größenanpassung handhaben?#

Ja, Ultralytics YOLO26 kann unterschiedliche Bildgrößen über den Parameter 'imgsz' während des Modelltrainings handhaben. Dieser Parameter stellt sicher, dass die Bilder so skaliert werden, dass ihre größte Dimension der angegebenen Größe entspricht (z. B. 640 Pixel), während das Seitenverhältnis beibehalten wird. Für eine flexiblere Eingabeverarbeitung und automatische Anpassungen siehe den Abschnitt zum Modelltraining.

Mitwirkende

Kommentare