Studie 03 · Computer Vision · Virtuelles Tragen
Virtuelle Anprobe-App für Porträts
2021 · Forschungsstudent im GrundstudiumIch habe den Ablauf zwischen Android-App und Server umgesetzt: Nach Auswahl eines Personenfotos und Kleidungsstücks liefert der Server das virtuelle Anprobebild zurück.
- 1Auswahl von Porträtfoto und Kleidung
Senden Sie Personenfotos und Kleidungsausweise über Ihre Android-App
- 2Körperanalyse, Pose, Kleidungsmaske
Organisiert im ACGPN-Eingabeformat
- 3Tragebild generieren
Der Flask-Server kehrt zur App zurück
Integrierte Implementierung, die ACGPN, Parsing des menschlichen Körpers und öffentliche Modelle zur Posenschätzung kombiniert
Direkt zugewiesene Rolle und Ergebnis
- Zugewiesene Rolle
- Öffentliche Konfiguration der Eingabevorverarbeitung und der für virtuelle Tragemodelle erforderlichen Kleidungsmasken sowie Verbindung der Flask Upload API mit dem Kotlin · Retrofit Android-Client.
- Ergebnisse
- Ich habe einen integrierten Workflow entwickelt, der ein Porträtfoto und ausgewählte Kleidung empfängt, Vorverarbeitung durchführt, ein Bild des Outfits generiert und das Ergebnis an die App zurückgibt. Das Generierungsmodell sowie die Modelle zur Posen- und Körperanalyse wurden wiederverwendet. Die von mir implementierten Komponenten umfassen die Eingabekonfiguration, die Maskenverarbeitung und die Verbindung zwischen Server und App.
Was ich intern implementiert und analysiert habe
- Körperanalyse, Pose, Kleidungsmaske im ACGPN-Eingabeformat
- Generieren Sie eine Kleidungsmaske mit OpenCV GrabCut
- Flaschen-Upload, Ergebnisrückgabe-API
- Kotlin, Android-Client-Verbindung nachrüsten
Basierend auf Forschungs-/öffentlichem Modell
- ACGPN-Modell für virtuelle Anprobe
- Körperanalyse, Posenschätzung, öffentliches Modell
Experimentergebnisse und Fehlversuche
Verifiziert vom Upload bis zur Rückgabe des Trageergebnisses und analysierte Maskenfehler
Ausführung des öffentlichen Codes · VITON-HD-Testbilder (CC BY-NC 4.0) · Gesichter mosaikiert · Die Zeiten unten sind CPU-Messwerte
Beim Abrufen der Anprobebilder über die Server-Upload-API ragte bei 13 von 40 Kleidungsstücken das GrabCut-Rechteck über das Bild hinaus, sodass die Maske in den Hintergrund auslief.
- Apple M1 Pro CPU
- PyTorch
- Öffentliche Modellgewichte
- Ausführung der Server-Upload-API

- 13 / 40 SätzeKleidung mit Maske, die in den Hintergrund hineinragt
- 0.93 → 0.96Masken-IoU nach Rechteckkorrektur
- 4,9 SekundenMedian der CPU-Auslastung pro Anfrage
Problem und Lösung
ProblemVirtuelle Anprobemodelle benötigen neben Porträtfotos auch Posen, Körperteile und Kleidungsbereiche in einem definierten Format.
Gelöst.Ich habe die Ausgabe des öffentlichen Modells zur Körperanalyse und Posenschätzung an das ACGPN-Eingabeformat angepasst und einen Vorverarbeitungsschritt zur Erstellung einer Kleidungsmaske mit GrabCut hinzugefügt.
ProblemDer Prozess ist zu komplex, als dass der Benutzer die Dateiein- und -ausgabe für mehrere Modelle direkt handhaben könnte.
Gelöst.Wir haben die Flask-Upload-API so konfiguriert, dass sie Vorverarbeitung und Inferenz ausführt und das resultierende Bild zurückgibt, und haben den Android-Client mit Retrofit verbunden.
ProblemWenn der Hintergrund mit der Kleidungsmaske vermischt wird, können die generierte Kleidung und der Oberkörper verschwimmen.
Ergänzendes ExperimentBeim Ausführen des öffentlichen Codes fand ich heraus, dass das anfängliche GrabCut-Rechteck über den Bildrand hinausragte; in einem Vergleich mit einem auf das Bild begrenzten Rechteck stieg der Median der Masken-IoU von 0,929 auf 0,957.
Vergleich der Experimente und detaillierte Ergebnisse

| Element | Ergebnis | Zustand |
|---|---|---|
| Bearbeitungszeit pro Anfrage | Median 4,90 Sek. (Quartil 3,57–6,57 Sek.) | 40 Anfragen, CPU |
| Unter anderem: Erstellung von ACGPN | Median 2,27 Sek. | (40-mal identisch) |
| Stellen Sie den SSIM-Wert für dasselbe Kleidungsstück wieder her. | Durchschnitt 0,869 · Median 0,884 | 20 Personen |
| IoU der GrabCut-Maske | Median 0,929 → 0,957 | 40 Outfits · Code unverändert → Rechteck in Bild umwandeln |
Beobachtete Ursachen und verbleibende Aufgaben
- GrabCut-Rechteckfehler
Das Rechteck (1, 1, w, h) ragte über den Bildrand hinaus, sodass oben und links nur noch eine Linie als Hintergrundinformationen sichtbar war. In 13 von 40 Fällen verschwamm die Maske im Hintergrund.
- Drei Fehlertypen
Wenn die Maske in den Hintergrund hineinragt, wird der Oberkörper unscharf. Ändert sich die Ärmellänge, entstehen Nachbilder an den Armen; ist die Länge unterschiedlich, bleibt das ursprüngliche Schnittmuster unterhalb des Saums sichtbar.
- So lesen Sie SSIM
Dieser Wert wurde ermittelt, indem dasselbe Kleidungsstück erneut angezogen und mit dem Original verglichen wurde. Da die Eingabe für die Außenseite des Kleidungsstücks unverändert verwendet wird, ist der Wert hoch angesetzt und kann nicht mit dem Wert aus der ACGPN-Studie verglichen werden.
- Daten und Gewichtungen
Die Verbreitung von VITON-Daten ist eingeschränkt, daher wurden VITON-HD-Testbilder verwendet und ACGPN- und OpenPose-Gewichte sind für nichtkommerzielle Forschungszwecke freigegeben.
Kriterien für das Lesen der Ergebnisse
- Integrierte Implementierung, keine Verbesserung der Bildqualität oder Geschwindigkeit
- Öffentliche Werte, die durch Ausführen von Dutzenden von Testbildern mit Gewichtungen ermittelt wurden
- Produktleistung oder Betriebsstatus werden nicht angezeigt.
Die Aufgabe, die Ein- und Ausgänge verschiedener Module abzugleichen und zu einem Modul zu verbinden, ähnelt der aktuellen Aufgabe, den auf dem Server erstellten Bearbeitungsplan in Fusion auszuführen.
KI, die 3D-Modelle liest und Bearbeitungsstrategien entwirft