Domainübergreifende Übersetzung menschlicher Portraits

3 min read

Domainübergreifende Übersetzung menschlicher Portraits

Kein Wunder, dass viele Entdeckungen und Erfindungen in jedem Bereich aus den persönlichen Interessen der Forscher stammen. Dieser neue Ansatz zur Übersetzung menschlicher Portraits ist auch eines dieser inspirierenden persönlichen Projekte. “Wie kann man menschliche Porträts mithilfe von KI in Anime-Figuren verwandeln?”. Nun haben wir ein Werkzeug, das ein menschliches Porträt in eine originale Anime-Figur, ein Katzengesicht oder eine beliebige vom Benutzer vorgegebene Figur umwandeln kann. Aber lassen Sie uns zuerst die bisherigen Versuche überprüfen, der KI beizubringen, wie sie zeichnet.

Neural Style Transfer

Neural Style Transfer

Bei diesem Ansatz wird der Stil eines Bildes auf ein anderes angewendet, wie Sie unten sehen können. Der wichtige Gedanke ist, dass das Stilübertragungsverfahren ein geschultes Objekterkennungsnetzwerk erfordert. Die meisten dieser Netzwerke werden an realen Objekten trainiert. Daher ist diese Lösung wahrscheinlich nicht für den Anime-Stil hilfreich, es sei denn, Sie erstellen einen neuen Datensatz manuell, indem Sie Etikettierer einstellen, um alle Nasen, Münder, Augen, Haare und andere spezifische Merkmale zu kennzeichnen. Das kostet Sie jedoch VIEL Geld.

GAN

Generative Adversarial Network (GAN) ist ein weiterer Weg in die Anime-Welt. GAN umfasst ein Paar Wettbewerber um neuronale Netzwerke, die bei ausreichender Anzahl von Stichproben, ausreichend Netzwerk und ausreichend Zeit für das Training alle Daten nachahmen können. Nachfolgend sehen Sie unglaublich realistische Gesichter, die durch progressives Wachstum von GANs (PGGAN) erzeugt werden.

Von PGGAN erzeugte realistische menschliche Gesichter

GAN ist nicht nur in der Lage, qualitativ hochwertige Bilder zu erzeugen, sondern auch einen Bildtyp in einen anderen zu übersetzen. Dieser Ansatz erfordert jedoch gepaarte Daten (ein Bild aus jeder Domäne). Leider gibt es keine gepaarten Datensätze für menschliche und Anime-Portraits.

Nicht gepaartes domänenübergreifendes GAN und CycleGAN

Glücklicherweise haben Facebook im Jahr 2016 (Unüberwachte domänenübergreifende Image-Generierung) und Jun-Yan Zhu et al im Jahr 2017 (CycleGAN) wurden ähnliche Ansätze für die Übersetzung von zwei Bildtypen mit einem Typ mit Beschriftungen ohne gepaarte Daten eingeführt. Beiden Modelle setzen Folgendes voraus: Wenn Sie Bildtyp A in Bildtyp B konvertieren und B zurück nach A übersetzen, sollte das nach zwei Übersetzungen resultierende Bild nicht zu sehr vom ursprünglichen Eingabebild abweichen. Dieser ohnehin auftretende Unterschied wird als  Zykluskonsistenzverlust bezeichnet und kann zum Trainieren eines Bildübersetzungsmodells verwendet werden.

Entnahme aus der Unüberwachten domänenübergreifenden Image-Generierung

Vor der Erstellung von Twin-GAN versuchte Jerry Li, CycleGAN für die Übersetzung von menschlichen Porträts in Anime-Charaktere zu verwenden. Er nahm 200.000 Bilder aus dem CelebA-Datensatz als menschliche Portraits und rund 30.000 Anime-Figuren von der Getchu- Website auf. Zwei Tage Training später erhielt erdie nachfolgend abgebildeten Ergebnisse.

Die Ergebnisse sind nicht schlecht, weisen jedoch einige Einschränkungen von CycleGAN auf. Dieses Netzwerk minimiert den Zykluskonsistenzverlust und muss daher eine 1: 1-Zuordnung für alle Informationen von der Eingabe in die Zieldomäne finden. Dies ist jedoch nicht immer zwischen menschlichen Porträts und Anime-Figuren möglich: Menschen haben normalerweise keine violette oder grüne Haarfarbe und ihre Gesichter sind viel detaillierter als in Anime. Wenn das Netzwerk gezwungen wird, unter solchen Umständen eine Eins-zu-Eins-Zuordnung zu finden, werden wahrscheinlich keine guten Ergebnisse erzielt.

Die Frage war also: Wie kann man ohne beschriftete Daten die passenden Teile aus den beiden Domänen finden und etwas Neues machen?

Um dieses Problem zu lösen, suchte Jerry Li nach Inspirationen von Style Transfer. Er bezieht sich auf Vincent Dumoulin von Google Brain, der herausgefunden hat, dass es durch das Lernen von zwei Variablen in Batch Normalization möglich ist, dasselbe Netzwerk für die Ausgabe von Bildern mit einer Vielzahl von Stilen zu verwenden. Darüber hinaus ist es sogar möglich, den Stil durch Mischen dieser Parameter zu mischen und anzupassen.

Mit diesen Ideen wurde schließlich die Struktur von Twin-GAN geschaffen. PGGAN wurde als Generator ausgewählt. Dieses Netzwerk verwendet einen hochdimensionalen Vektor als Eingabe, und in unserem Fall ist ein Bild eine Eingabe. Daher verwendete der Forscher einen Kodierer mit einer zu PGGAN symmetrischen Struktur, um das Bild in den hochdimensionalen Vektor zu kodieren. Um die Details des Eingabebildes beizubehalten, verwendete er als nächstes die UNet-Struktur zum Verbinden der Faltungsschichten im Codierer mit den entsprechenden Schichten im Generator.

Die Eingabe und Ausgabe fallen in die folgenden drei Kategorien:

  • Menschliches Porträt → Encoder → Hochdimensionale Vektor → PGGAN-Generator + Menschenspezifische Batch-Norm → Menschliches Porträt
  • Anime Portrait → Encoder → Hochdimensionaler Vektor → PGGAN Generator + Anime-spezifische Batch-Norm → Anime Portrait
  • Menschliches Portrait → Encoder → Hochdimensionale Vektor → PGGAN Generator + Anime-spezifische Batch-Norm → Anime Portrait

Der Grundgedanke hinter dieser Struktur ist, dass es dem Netzwerk durch die gemeinsame Nutzung von Personen- und Anime-Portraits ermöglicht wird, zu erkennen, dass Menschen- und Anime-Porträts, obwohl sie unterschiedlich aussehen, ein Gesicht beschreiben. Dies ist entscheidend für die Bildübersetzung. Der Schalter, der entscheidet, ob ein Porträt von Menschen oder Anime ausgegeben wird, liegt in den Parametern der Stapelnorm.

In Bezug auf die Verlustfunktion wurden die folgenden vier Verluste verwendet:

  • Rekonstruktionsverlust des menschlichen Porträts;
  • Anime-Porträtrekonstruktionsverlust;
  • GAN-Verlust von Mensch zu Anime;
  • Konsistenzverlust von Mensch zu Anime.

Die Ergebnisse sind ziemlich beeindruckend. Es stellte sich jedoch heraus, dass Twin-GAN noch mehr leisten kann. Da Anime- und reale Menschenporträts dieselbe latente Einbettung haben, ist es möglich, diese Einbettung zu extrahieren und die Suche nach dem nächsten Nachbarn in beiden Domänen durchzuführen. Einfach gesagt können wir anhand eines Bildes herausfinden, wer in Echtzeit- und Anime-Bildern am besten aussieht! Siehe die Ergebnisse weiter unten.

Obwohl die Ergebnisse mit nur wenigen Fehlerfällen recht gut sind, werden Sie vielleicht manchmal mit dem Ergebnis der Bildübersetzung aufgrund einiger persönlicher Vorlieben oder Anforderungen nicht zufrieden sein. Wenn das Eingabebild beispielsweise braune Haare hat und die Anime-Figur hellgrüne Haare haben soll, können Sie mit dem Modell keine direkten Änderungen an diesen Merkmalen vornehmen.

In diesen Fällen können Sie illust2vec verwenden, um zu kopierende Zeichenmerkmale zu extrahieren, diese als Einbettungen an den Generator zu übergeben und beim Generieren eines Bildes ein zusätzliches Anime-Zeichen als Eingabe hinzuzufügen. Das Endergebnis sollte wie dieser zusätzliche Charakter aussehen, mit der Position und dem Gesichtsausdruck des menschlichen Porträts.

Twin-GAN kann ein menschliches Porträt in eine originale Anime-Figur, ein Katzengesicht oder eine beliebige vom Benutzer vorgegebene Figur verwandeln. Der Algorithmus zeigt eine ziemlich gute Leistung, wenn er diese Aufgaben ausführt. Es ist jedoch auch anfällig für einige Fehler wie das Verwechseln der Hintergrundfarbe mit der Haarfarbe, das Ignorieren wichtiger Merkmale und / oder die falsche Erkennung.

Wir denken, dass dies ein guter Anfang ist, aber es muss noch einiges getan werden, um die Leistung dieses aufstrebenden Ansatzes zu verbessern.

Quelle

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.