Die Bearbeitung von Gesichtsattributen, auch Facial Attribute Editing genannt, bezeichnet alle Methoden, die zum Ziel haben, ein oder mehrere Attribute eines bestimmten Gesichts zu verändern. Vor dem Aufkommen von Deep Learning war dies eine mühsame Aufgabe, da sie Pixel für Pixel von Hand durchgeführt wurde. Seit kurzem gibt es jedoch neue Algorithmen, die es ermöglichen, diese Änderung zu automatisieren. Wir werden hier das AttGAN-Modell näher betrachten, das zu diesen Algorithmen gehört, die auf neuronalen Netzen basieren. Dieser Algorithmus nimmt als Parameter das Gesicht, das wir verändern wollen, sowie einen binären Attributvektor und gibt das veränderte Gesicht mit den gewünschten Attributen zurück. Beispiele für seine Funktionsweise werden unten gezeigt:
1- AttGAN-Architektur
Um ein verändertes Gesicht zu erhalten, das mit dem ursprünglichen Gesicht übereinstimmt, wurde die Vorlage so konstruiert, dass sie drei Regeln befolgt.
Erstens muss das neue Gesicht dem Basisgesicht ähneln (abgesehen von den Attributen).
Zweitens muss es auch visuell realistisch sein, d. h. die erstellten Attribute müssen bestimmte Größen- und Positionsbeschränkungen einhalten.
Schließlich muss es die geforderten Attribute besitzen. Aus diesem Grund kann man die AttGAN-Architektur in drei Hauptteile zerlegen.
Erstens wird ein unüberwachtes Lernen durch Rekonstruktion im latenten Raum verwendet, um die Details des Gesichts außerhalb der Attribute zu erhalten. Diese Aufgabe wird von einem Auto Encoder übernommen. Wenn du mehr darüber erfahren möchtest, wie ein Auto Encoder funktioniert, gibt es einen Artikel im Blog, der sich mit diesem Thema beschäftigt.
Der Decoder-Teil dieses Auto Encoders wird dann verwendet, um ein Generative Adversarial Network (GAN) zu trainieren, um ein visuell realistisches verändertes Gesicht zu erhalten.
Um schließlich zu überprüfen, ob das neue Gesicht die gewünschten neuen Attribute besitzt, wird ein Klassifizierungszwang auf das erzeugte Bild angewendet und die gefundenen Attribute werden mit den gewünschten Attributen verglichen.
Diese Architektur lässt sich anhand des folgenden Bildes veranschaulichen, das eine Iteration des AttGAN-Trainings zeigt:
In diesem Schema ist das linke Bild das Originalbild und der Vektor a enthält seine Attribute (Frau, jung, brünett, …). Vektor b hingegen bezeichnet den Vektor mit den gewünschten Attributen (Frau, jung, blond, …).
Der Auto Encoder wird so trainiert, dass er die Loss-Rekonstruktion minimiert, die einfach die Norm der Differenz zwischen dem Originalbild und dem rekonstruierten Bild ist. Das Ziel des GAN ist es, ein neues Bild mit den gewünschten Attributen b zu erzeugen und den D-Diskriminator so zu täuschen, dass dieses Bild dem Originalbild sehr ähnlich ist. Die Zwangsklassifizierung erfolgt einfach durch die Erkennung des Attributvektors, dessen Verlustfunktion eine Cross-Entropy ist.
Einfach ausgedrückt: Während der Trainingsphase lernt AttGAN anhand seiner Trainingsdatenbank, was welchem Attribut entspricht.
Sehen wir uns nun an, was in der Testphase passiert, wenn wir ein Gesicht verändern wollen:
Sobald der Decoder/Generator-Teil trainiert ist, wird für die Umwandlung eines Bildes der Encoder-Teil verwendet, um das Bild in den latenten Raum zu codieren und die gewünschten neuen Attribute anzugeben, und der Generator erzeugt einfach ein neues Bild mit allen Regeln, die er während seiner Trainingsphase gelernt hat.
2 - Datenbank, die zum Trainieren von AttGAN verwendet wird
Die Datenbank, die von den Entwicklern dieses Algorithmus verwendet wurde, ist CelebA. Sie enthält über 200.000 Gesichter von 10.177 verschiedenen bekannten Persönlichkeiten, die mit 40 Attributen in Form von binären Vektoren versehen sind, die angeben, ob das Attribut vorhanden ist (1) oder nicht (0). Diese 40 Attribute können von einer einfachen Haarfarbe bis hin zu der Frage reichen, ob das Gesicht geschminkt ist oder nicht.
Um das Training des Algorithmus zu beschleunigen, wurden nur 13 dieser 40 Attribute verwendet: Glatze, Pony, schwarzes Haar, blondes Haar, kastanienbraunes Haar, dichte Augenbrauen, Brille, Mann, offener Mund, Schnurrbart, Bart, blasse Haut, jung.
3- Ergebnisse und Vergleich mit anderen Algorithmen zur Bearbeitung von Attributen
Hier sind die Ergebnisse nach einem Training des neuronalen Netzes über 50 Epochs, was ungefähr einem Tag entspricht:
Die ersten beiden Bilder in jeder Zeile sind das Originalbild und das vom Auto Encoder rekonstruierte Bild. Die folgenden Bilder sind die Bilder, die erzeugt wurden, indem jeweils nur eines der 13 Attribute in der oben genannten Reihenfolge geändert wurde.
Zunächst können wir feststellen, dass die erzeugten Gesichter mit den ursprünglichen Gesichtern übereinstimmen.
Außerdem sind die gewünschten Attribute vorhanden, auch wenn es bei einigen schwierig ist, sie zu generieren.
Schließlich sind die erzeugten Attribute visuell realistisch.
Das liegt an den drei Regeln, die wir der Architektur während des Trainings auferlegt haben.
Dennoch kann man feststellen, dass einige Attribute natürlicher aussehen als andere. Dies ist bei der Mundöffnung und der Haarfarbe der Fall. Im Gegensatz dazu sind die Attribute „Glatze“ oder auch „Brille“ schwieriger zu erreichen.
Daraus lässt sich schließen, dass Änderungen, bei denen Material hinzugefügt oder entfernt wird, am wenigsten trainiert wurden.
Vergleichen wir nun dieses Modell mit anderen Arten von neuronalen Netzen, die die gleiche Aufgabe erfüllen:
Hier wird der AttGAN mit zwei anderen Modellen verglichen, die eine etwas andere Architektur haben: Der VAE / GAN und der IcGAN. Wir betrachten die Rekonstruktion des Originalbildes und einige Attribute für jedes Modell. Wir stellen fest, dass AttGAN das einzige Modell ist, das das Originalgesicht fast perfekt rekonstruieren kann, während die anderen es leicht verändern. Daraus lässt sich schließen, dass die anderen Modelle zur Bearbeitung von Attributen zwar die Modifikation gut durchführen, aber nicht das Grundprinzip einhalten, das darin besteht, die Details des Gesichts ohne Attribute zu erhalten.
4- Fazit
In diesem Artikel haben wir ein Modell für neuronale Netze zur Bearbeitung von Attributen in Gesichtern, AttGAN, ausführlich besprochen. Wir haben seine in drei Teile gegliederte Architektur beschrieben, die es ermöglicht, Bilder zu erhalten, die mit den Originalbildern sehr konsistent sind. Dann haben wir dieses Modell mit anderen neuronalen Netzen verglichen, die ebenfalls für die Bearbeitung von Attributen verwendet werden, und festgestellt, dass es sich dabei um das bisher erfolgreichste AttGAN handelt.
Wenn dir dieser Artikel gefallen hat und du weitere Methoden des Deep Learning kennenlernen möchtest, lade ich dich ein, an unserem Deep-Learning-Expertenkurs teilzunehmen.