Studienliste

Studie 02 · Computer Vision · Bildklassifizierung

Ein Modell zur Klassifizierung von Kleidungsfotos mit ResNet

2021 · Forschungsstudent im Grundstudium
Öffentlicher Code

Ich habe ein Modell zur Einteilung von K-Fashion-Fotos in Kleider, Oberbekleidung, Hosen und Oberteile trainiert und klassenweise Fehler analysiert.

  1. 14 Arten von Kleidungsfotos

    Stichprobenziehung basierend auf der geringsten Anzahl von Klassen

  2. 2ResNet50V2

    Beginnen Sie mit vorab trainierten ImageNet-Gewichten

  3. 3Fehleranalyse nach Klasse

    Genauigkeit, Trefferquote, Konfusionsmatrix

Verwendung von ImageNet Pre-Training ResNet50V2

TensorFlowResNet50V2Class imbalanceError analysis

Direkt zugewiesene Rolle und Ergebnis

Zugewiesene Rolle
Implementierter Trainingscode zur Kleidungsklassifizierung unter Verwendung eines vortrainierten ResNet50V2-Modells und klassenspezifischer Sampling- und Evaluierungsabläufe. Fehlklassifizierungen wurden mithilfe der Konfusionsmatrix analysiert.
Ergebnisse
Ich habe eine Trainings- und Analysepipeline gebaut, die K-Fashion-Fotos in Kleider, Oberbekleidung, Hosen und Oberteile einteilt. Anschließend habe ich auf dem öffentlichen Datensatz Fashion-MNIST die Einstellungen einzeln verändert und so den Einfluss von Datenaugmentierung und Shortcut-Verbindung auf die Vorhersagen getrennt untersucht.

Was ich intern implementiert und analysiert habe

  • ResNet50V2-Klassifizierungstrainingscode
  • Downsampling Trainings- und Validierungsdaten nach Klasse
  • Überprüfung der Klassenindikatoren und Konfusionsmatrizen
  • Fehleranalyse bei Kleidern und Oberbekleidung

Basierend auf Forschungs-/öffentlichem Modell

  • Mit ImageNet vorab trainierte ResNet50V2-Gewichte
  • K-Fashion-Daten

Daten aus der Originalstudie

Öffentliche 4-Klassen-Konfusionsmatrix des K-Fashion-Experiments. Vorhersagen für mehrere tatsächliche Klassen sind in Klasse 2 gruppiert.
Konfusionsmatrix des ursprünglichen K-Fashion-Experiments. Zeilen sind die tatsächlichen, Spalten die vorhergesagten Klassen: 0 = Kleid, 1 = Oberbekleidung, 2 = Hose, 3 = Oberteil. Mehrere tatsächliche Klassen werden gehäuft als Hose (2) vorhergesagt. Diese Daten sind vom Fashion-MNIST-Experiment unten getrennt.
Anzahl der Lern- und Verifizierungsbilder der Klassen 0 bis 3 aus der Originalforschung von K-Fashion. Balkendiagramm, das den Unterschied in der Anzahl der Proben nach Klasse zeigt
Dies ist die Klassenverteilung der ursprünglichen K-Fashion-Daten. Sie zeigt den Grund für die Stichprobenziehung basierend auf der kleinsten Klasse sowohl im Trainings- als auch im Validierungsdatensatz.

Experimentergebnisse und Fehlversuche

Ursache der Vorhersage-Schieflage in Augmentierung und Shortcut-Fehler gefunden

Selbst bei der Ausführung desselben Codes auf dem öffentlichen Fashion-MNIST-Datensatz waren die Vorhersagen einseitig verzerrt. Die Ursache war ein Fehler in den Augmentierungseinstellungen und der Shortcut-Verbindung.

  • RTX A6000
  • TensorFlow 2.15
  • Fashion-MNIST: 4 Klassen (Kleid, Mantel, Hose, T-Shirt)
  • 10 epoch
In unabhängigen Fashion-MNIST-Tests betrug die Vergleichsgenauigkeit 48,9 % mit den ursprünglichen Einstellungen, 78,7 % mit der Verknüpfungsänderung, 94,4 % mit deaktivierter Erweiterung und 96,4 % mit mehreren gemeinsam geänderten Einstellungen.
Unabhängige Testgenauigkeit auf 4 Fashion-MNIST-Klassen (seed 0). Das Abschalten der Augmentierung und das Korrigieren des Shortcuts wurden getrennt verglichen; der letzte Balken ändert Shortcut, Augmentierung und L2 gemeinsam.
  • 48.9% → 94.4%Nur Vergrößerung vergleichen · Fashion-MNIST · Startwert 0
  • +29.8%pNur Verknüpfungsverbindung ändern · Gleicher Startwert 0
  • 0%Reproduktionsrate der Originaleinstellungen · Gleicher Seed 0

Problem und Lösung

  1. ProblemDie Anzahl der Fotos variiert je nach Kleidungsart, wodurch die Trainingsdaten zu bestimmten Klassen tendieren.

    Gelöst.Die Trainings- und Validierungsdaten wurden auf die Stichprobengröße der jeweils kleinsten Klasse reduziert.

  2. ProblemEs ist schwierig, allein anhand der Gesamtpunktzahl zu erkennen, welche Kleidungsstücke miteinander verwechselt wurden.

    Gelöst.Präzision, Trefferquote und Konfusionsmatrizen wurden nach Klasse erfasst und Verwechslungsfälle wie „Kleid“ und „Außen“ zusammen mit Fotos analysiert.

  3. ProblemWenn Vorhersagen in eine Richtung kippen, lässt sich schwer erkennen, ob die Daten oder die Codeeinstellungen die Ursache sind.

    UrsachenanalyseAuf Fashion-MNIST habe ich Augmentierung, Shortcut und Regularisierung einzeln verändert und die Schieflage auf die Code-Einstellungen zurückgeführt.

Vergleich der Experimente und detaillierte Ergebnisse

8 Fashion-MNIST-Testfotos. In der ursprünglichen Einstellung handelte es sich bei den beiden Mantelvorhersagen um Kleider und T-Shirts, und das Modell mit deaktivierter Augmentation hat alle 8 Karten richtig geraten.
Vorhersagebeispiele für 8 Fashion-MNIST-Fotos. Die beiden Modelle hinter diesem Bild erreichten 47,2 % bzw. 94,2 % Gesamtgenauigkeit, in Läufen, die sich von Seed 0 in der Grafik oben unterscheiden. Die Zahl der richtigen Antworten unter diesen 8 Fotos entspricht nicht der Gesamtgenauigkeit.
Unabhängige Testgenauigkeit · 1.000 Blätter pro Klasse · Beide Werte sind auf 0/1 gesetzt
Geänderte Einstellungen (einzeln)Genauigkeit testenHäufigstes vorhergesagtes Klassenverhältnis
Originaleinstellungen48.9% / 39.1%36% / 49%
Vergrößerung deaktiviert94.4% / 94.3%26% / 26%
Verknüpfungsverbindung ändern78.7% / 63.1%35% / 53%
L2-Koeffizient 0,01 → 0,000139.4%48%
Überblendungsgenauigkeit deaktivieren52.2%51%
Momentum 0,1 → 0,924.9%99.9%
Verknüpfung ändern + Erweiterung deaktiviert + L2 0,000196.4%25%

Beobachtete Ursachen und verbleibende Aufgaben

  1. Vergrößerung stärker als beabsichtigt

    Obwohl eine leichte Vergrößerung beabsichtigt war, funktionierte sie tatsächlich wie eine Drehung um ±72°, eine vertikale Spiegelung und eine Halbierung der Größe. Aufgrund des Caches blieb die Deformation der ersten Epoche bis zum Ende fixiert.

  2. Fehler bei der Verknüpfungsverbindung

    Die Identitätsverknüpfung übergab den Wert, der über BN und ReLU ging, anstelle der ursprünglichen Eingabe. Die ImageNet-Gewichte gingen ohne Fehler ein und waren unsichtbar.

  3. Bewertungsmethode

    Der Rückruf der README-Datei basierte auf einem Schwellenwert von 0,5 und die Validierungsdaten wurden in der Auswertung neu geschrieben. Die hier angegebene Genauigkeit wird anhand eines nicht überlappenden Testsatzes gemessen.

Kriterien für das Lesen der Ergebnisse

  • Die Auswertung in der README-Datei ist kein unabhängiger Test, da sie die Validierungsdaten neu schreibt.
  • Fehlerursache (Ungleichgewicht, Aufnahmewinkel) nicht verifiziert
  • Die Werte unten stammen aus 10 Epochen Training auf 4 Fashion-MNIST-Klassen
Verbindungen zu aktuellen Projekten

Fehler nach Klassen aufzuschlüsseln und zu hinterfragen, was eine Auswertungsaufteilung bedeutet, begleitet mich bis heute. Auch beim CAD-Modell für Bearbeitungsmerkmale prüfe ich Fehler je Klasse getrennt und teile die Daten für die Auswertung nach Geometriefamilien auf.

KI, die 3D-Modelle liest und Bearbeitungsstrategien entwirft