Zum Inhalt springen

Techniken zur Datenvorverarbeitung für annotierte Computer Vision-Daten

Einführung

Nachdem Sie die Ziele Ihres Computer-Vision-Projekts definiert und Daten gesammelt und annotiert haben, besteht der nächste Schritt darin, annotierte Daten vorzuverarbeiten und für das Modelltraining vorzubereiten. Saubere und konsistente Daten sind entscheidend für die Erstellung eines Modells, das gut funktioniert.



Ansehen: Wie man Datenvorverarbeitung und Augmentation verwendet, um die Modellgenauigkeit in realen Szenarien zu verbessern 🚀

Die Vorverarbeitung ist ein Schritt im Workflow von Computer Vision Projekten, der das Anpassen der Bildgröße, das Normalisieren von Pixelwerten, das Erweitern des Datensatzes und das Aufteilen der Daten in Trainings-, Validierungs- und Testdatensätze umfasst. Lassen Sie uns die wesentlichen Techniken und Best Practices für die Bereinigung Ihrer Daten untersuchen!

Bedeutung der Datenvorverarbeitung

Wir erfassen und annotieren unsere Daten bereits sorgfältig unter Berücksichtigung verschiedener Aspekte. Warum ist die Datenvorverarbeitung dann so wichtig für ein Computer-Vision-Projekt? Nun, bei der Datenvorverarbeitung geht es darum, Ihre Daten in ein geeignetes Format für das Training zu bringen, das die Rechenlast reduziert und die Modellleistung verbessert. Hier sind einige häufige Probleme in Rohdaten, die durch die Vorverarbeitung behoben werden:

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

Techniken zur Datenvorverarbeitung

Einer der ersten und wichtigsten Schritte bei der Datenvorverarbeitung ist die Größenänderung. Einige Modelle sind so konzipiert, dass sie variable Eingabegrößen verarbeiten können, aber viele Modelle benötigen eine einheitliche Eingabegröße. Das Anpassen der Bildgröße macht sie einheitlich und reduziert die Rechenkomplexität.

Bildgrößenänderung

Sie können die Größe Ihrer Bilder mit den folgenden Methoden ändern:

  • Bilineare Interpolation: Glättet Pixelwerte, indem ein gewichteter Durchschnitt der vier nächstgelegenen Pixelwerte genommen wird.
  • Nächster Nachbar: Weist den Wert des nächstgelegenen Pixels ohne Mittelwertbildung zu, was zu einem blockartigen Bild, aber zu einer schnelleren Berechnung führt.

Um die Größenänderung zu vereinfachen, kannst du die folgenden Tools verwenden:

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

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

Durch die Bewertung der spezifischen Anforderungen Ihres Modells und Datensatzes können Sie feststellen, ob die Größenänderung ein notwendiger Vorverarbeitungsschritt ist oder ob Ihr Modell Bilder unterschiedlicher Größe effizient verarbeiten kann.

Normalisieren von Pixelwerten

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 YOLO11 wird die Normalisierung nahtlos als Teil der Vorverarbeitungs-Pipeline während des Modelltrainings behandelt. YOLO11 führt automatisch mehrere Vorverarbeitungsschritte durch, einschließlich der Konvertierung in RGB, der Skalierung der Pixelwerte in den Bereich [0, 1] und der Normalisierung unter Verwendung vordefinierter Mittelwert- und Standardabweichungswerte.

Aufteilen des Datensatzes

Sobald Sie die Daten bereinigt haben, können Sie den Datensatz aufteilen. Das Aufteilen der Daten in Trainings-, Validierungs- und Testdatensätze erfolgt, um sicherzustellen, dass das Modell anhand ungesehener Daten evaluiert werden kann, um seine Generalisierungsleistung zu beurteilen. Eine übliche Aufteilung ist 70 % für das Training, 20 % für die Validierung und 10 % für das Testen. Es gibt verschiedene Tools und Bibliotheken, mit denen Sie Ihre Daten aufteilen können, wie z. B. scikit-learn oder TensorFlow.

Beachten Sie Folgendes, wenn Sie Ihren Datensatz aufteilen:

  • Aufrechterhaltung der Datenverteilung: Stellen Sie sicher, dass die Datenverteilung der Klassen über die Trainings-, Validierungs- und Testdatensätze hinweg erhalten bleibt.
  • Vermeidung von Datenlecks: Normalerweise wird die Datenerweiterung durchgeführt, nachdem der Datensatz aufgeteilt wurde. Datenerweiterung und jede andere Vorverarbeitung sollten nur auf den Trainingsdatensatz angewendet werden, um zu verhindern, dass Informationen aus den Validierungs- oder Testdatensätzen das Modelltraining beeinflussen.
  • Klassenausgleich: Bei unausgewogenen Datensätzen sollten Sie Techniken wie Oversampling der Minderheitsklasse oder Undersampling der Mehrheitsklasse innerhalb des Trainingsdatensatzes in Betracht ziehen.

Was ist Datenerweiterung?

Der am häufigsten diskutierte Schritt der Datenvorverarbeitung ist die Datenerweiterung. Die Datenerweiterung vergrößert die Größe des Datensatzes künstlich, indem modifizierte Versionen von Bildern erstellt werden. Durch die Erweiterung Ihrer Daten können Sie Overfitting reduzieren und die Modellgeneralisierung verbessern.

Hier sind einige weitere Vorteile der Datenerweiterung:

  • Erstellt ein robusteres Dataset: Die Datenerweiterung kann das Modell robuster gegenüber Variationen und Verzerrungen in den Eingabedaten machen. Dazu gehören Änderungen in Beleuchtung, Ausrichtung und Maßstab.
  • Kosteneffektiv: Datenerweiterung ist eine kosteneffektive Möglichkeit, die Menge der Trainingsdaten zu erhöhen, ohne neue Daten zu sammeln und zu kennzeichnen.
  • Bessere Datennutzung: Jeder verfügbare Datenpunkt wird durch die Erstellung neuer Variationen maximal genutzt.

Methoden zur Datenerweiterung

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

Überblick über Datenerweiterungen

In Bezug auf YOLO11 können Sie Ihren benutzerdefinierten Datensatz erweitern, indem Sie die Datensatzkonfigurationsdatei, eine .yaml-Datei, ändern. In dieser Datei können Sie einen Erweiterungsabschnitt mit Parametern hinzufügen, die angeben, wie Sie Ihre Daten erweitern möchten.

Das Ultralytics YOLO11 Repository unterstützt eine breite Palette von Datenerweiterungen. Sie können verschiedene Transformationen anwenden, wie zum Beispiel:

  • Zufällige Ausschnitte
  • Spiegeln: Bilder können horizontal oder vertikal gespiegelt werden.
  • Rotation: Bilder können um bestimmte Winkel gedreht werden.
  • Verzerrung

Außerdem können Sie die Intensität dieser Augmentationstechniken über bestimmte Parameter anpassen, um eine größere Datenvielfalt zu erzeugen.

Eine Fallstudie zur Vorverarbeitung

Betrachten Sie ein Projekt, das darauf abzielt, ein Modell zur Erkennung und Klassifizierung verschiedener Arten von Fahrzeugen in Verkehrsbildern mithilfe von YOLO11 zu entwickeln. Wir haben Verkehrsbilder gesammelt und mit Begrenzungsrahmen und Beschriftungen versehen.

Hier sehen Sie, wie jeder Schritt der Vorverarbeitung für dieses Projekt aussehen würde:

  • Resizing Images: Da YOLO11 flexible Eingabegrößen verarbeitet und die Größe automatisch ändert, ist eine manuelle Größenänderung nicht erforderlich. Das Modell passt die Bildgröße während des Trainings an den angegebenen Parameter 'imgsz' an.
  • Normalizing Pixel Values: YOLO11 normalisiert Pixelwerte während der Vorverarbeitung automatisch auf einen Bereich von 0 bis 1, daher ist dies nicht erforderlich.
  • Aufteilen des Datensatzes: Teilen Sie den Datensatz mithilfe von Tools wie scikit-learn in Trainings- (70 %), Validierungs- (20 %) und Testdatensätze (10 %) auf.
  • Datenerweiterung: Ändern Sie die Dataset-Konfigurationsdatei (.yaml), um Datenerweiterungstechniken wie zufällige Zuschnitte, horizontale Spiegelungen und Helligkeitsanpassungen einzubeziehen.

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

Techniken zur explorativen Datenanalyse

Nach der Vorverarbeitung und Erweiterung Ihres Datensatzes ist der nächste Schritt, durch Exploratory Data Analysis Erkenntnisse zu gewinnen. EDA verwendet statistische Techniken und Visualisierungswerkzeuge, um die Muster und Verteilungen in Ihren Daten zu verstehen. Sie können Probleme wie Klassenungleichgewichte oder Ausreißer identifizieren und fundierte Entscheidungen über weitere Datenvorverarbeitungs- oder Modelltrainingsanpassungen treffen.

Statistische 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 Ihres Bilddatensatzes, wie z. B. Pixelintensitätsverteilungen. Das Verständnis dieser grundlegenden Statistiken hilft Ihnen, die Gesamtqualität und die Eigenschaften Ihrer Daten zu erfassen, sodass Sie Unregelmäßigkeiten frühzeitig erkennen können.

Visuelle EDA-Techniken

Visualisierungen sind der Schlüssel in EDA für Bilddatensätze. Zum Beispiel ist die Analyse des Klassenungleichgewichts ein weiterer wichtiger Aspekt von EDA. Sie hilft festzustellen, ob bestimmte Klassen in Ihrem Datensatz unterrepräsentiert sind. Die Visualisierung der Verteilung verschiedener Bildklassen oder -kategorien mithilfe von Balkendiagrammen kann schnell etwaige Ungleichgewichte aufdecken. Ebenso können Ausreißer mithilfe von Visualisierungswerkzeugen wie Boxplots identifiziert werden, die Anomalien in der Pixelintensität oder den Merkmalsverteilungen hervorheben. Die Ausreißererkennung verhindert, dass ungewöhnliche Datenpunkte Ihre Ergebnisse verzerren.

Gängige Werkzeuge für Visualisierungen sind:

  • Histogramme und Boxplots: Nützlich, um die Verteilung von Pixelwerten zu verstehen und Ausreißer zu identifizieren.
  • Streudiagramme: Hilfreich, um Beziehungen zwischen Bildmerkmalen oder Anmerkungen zu untersuchen.
  • Heatmaps: Wirksam zur Visualisierung der Verteilung von Pixelintensitäten oder der räumlichen Verteilung von annotierten Merkmalen innerhalb von Bildern.

Verwendung von Ultralytics Explorer für EDA

Community-Hinweis ⚠️

Seit ultralytics>=8.3.10wird die Unterstützung für Ultralytics Explorer nicht mehr angeboten. Aber keine Sorge! Sie können jetzt auf ähnliche und sogar erweiterte Funktionen über Ultralytics HUBzugreifen, unsere intuitive No-Code-Plattform, die Ihren Workflow optimieren soll. Mit Ultralytics HUB können Sie Ihre Daten weiterhin mühelos erkunden, visualisieren und verwalten, ohne eine einzige Zeile Code zu schreiben. Schauen Sie es sich unbedingt an und nutzen Sie die leistungsstarken Funktionen!🚀

Für einen fortgeschritteneren Ansatz zur EDA können Sie das Ultralytics Explorer Tool verwenden. Es bietet robuste Funktionen zur Erkundung von Computer-Vision-Datensätzen. Durch die Unterstützung von semantischer Suche, SQL-Abfragen und Vektorähnlichkeitssuche erleichtert das Tool die Analyse und das Verständnis Ihrer Daten. Mit Ultralytics Explorer können Sie Einbettungen für Ihren Datensatz erstellen, um ähnliche Bilder zu finden, SQL-Abfragen für detaillierte Analysen ausführen und semantische Suchen durchführen, alles über eine benutzerfreundliche grafische Oberfläche.

Überblick über Ultralytics Explorer

Kontakt aufnehmen und vernetzen

Diskussionen über Ihr Projekt mit anderen Computer-Vision-Enthusiasten können Ihnen neue Ideen aus verschiedenen Perspektiven geben. Hier sind einige großartige Möglichkeiten zum Lernen, zur Fehlerbehebung und zum Networking:

Kanäle zur Kontaktaufnahme mit der Community

  • GitHub-Probleme: Besuchen Sie das YOLO11 GitHub-Repository und nutzen Sie den Tab "Issues", um Fragen zu stellen, Fehler zu melden und Funktionen vorzuschlagen. Die Community und die Betreuer helfen Ihnen gerne bei allen Problemen, mit denen Sie konfrontiert werden.
  • 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: In der offiziellen YOLO11 Dokumentation finden Sie ausführliche Anleitungen und wertvolle Einblicke in zahlreiche Computer-Vision-Aufgaben und -Projekte.

Ihr Datensatz ist bereit!

Korrekt skalierte, normalisierte und augmentierte Daten verbessern die Modellleistung, indem sie Rauschen reduzieren und die Generalisierung verbessern. Indem Sie die in diesem Leitfaden beschriebenen Vorverarbeitungstechniken und Best Practices befolgen, können Sie einen soliden Datensatz erstellen. Mit Ihrem vorbereiteten Datensatz können Sie zuversichtlich mit den nächsten Schritten in Ihrem Projekt fortfahren.

FAQ

Welche Bedeutung hat die Datenvorverarbeitung in Computer-Vision-Projekten?

Datenvorverarbeitung ist in Computer-Vision-Projekten unerlässlich, da sie sicherstellt, dass die Daten sauber, konsistent und in einem Format vorliegen, das für das Modelltraining optimal ist. Durch die Behebung von Problemen wie Rauschen, Inkonsistenzen und Ungleichgewichten in Rohdaten tragen Vorverarbeitungsschritte wie Größenänderung, Normalisierung, Augmentierung und Datensatzaufteilung dazu bei, die Rechenlast zu reduzieren und die Modellleistung zu verbessern. Weitere Informationen finden Sie unter Schritte eines Computer-Vision-Projekts.

Wie kann ich Ultralytics YOLO für die Datenerweiterung nutzen?

Für die Datenerweiterung mit Ultralytics YOLO11 müssen Sie die Datensatzkonfigurationsdatei (.yaml) ändern. In dieser Datei können Sie verschiedene Erweiterungstechniken wie zufällige Zuschnitte, horizontale Spiegelungen und Helligkeitsanpassungen festlegen. Dies kann effektiv mit den hier erläuterten Trainingskonfigurationen erfolgen. Die Datenerweiterung trägt dazu bei, einen robusteren Datensatz zu erstellen, Overfitting zu reduzieren und die Modellgeneralisierung zu verbessern.

Welche sind die besten Daten-Normalisierungstechniken für Computer-Vision-Daten?

Die Normalisierung skaliert Pixelwerte auf einen Standardbereich für schnellere Konvergenz und verbesserte Leistung während des Trainings. Gängige Techniken umfassen:

  • 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 YOLO11 wird die Normalisierung automatisch gehandhabt, einschließlich der Konvertierung in RGB und der Skalierung der Pixelwerte. Erfahren Sie mehr darüber im Abschnitt Modelltraining.

Wie sollte ich meinen annotierten Datensatz für das Training aufteilen?

Um Ihren Datensatz aufzuteilen, ist es üblich, ihn in 70 % für das Training, 20 % für die Validierung und 10 % für das Testen aufzuteilen. Es ist wichtig, die Datenverteilung der Klassen über diese Aufteilungen hinweg aufrechtzuerhalten und Datenlecks zu vermeiden, indem die Augmentierung nur auf dem Trainingssatz durchgeführt wird. Verwenden Sie Tools wie scikit-learn oder TensorFlow für eine effiziente Aufteilung des Datensatzes. Weitere Informationen finden Sie im ausführlichen Leitfaden zur Vorbereitung des Datensatzes.

Kann ich unterschiedliche Bildgrößen in YOLO11 ohne manuelle Größenänderung verarbeiten?

Ja, Ultralytics YOLO11 kann variable Bildgrößen durch den Parameter 'imgsz' während des Modelltrainings verarbeiten. Dieser Parameter stellt sicher, dass 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 Eingabebehandlung und automatische Anpassungen lesen Sie den Abschnitt zum Modelltraining.



📅 Vor 1 Jahr erstellt ✏️ Vor 3 Monaten aktualisiert

Kommentare