{"id":178869,"date":"2023-06-23T16:38:14","date_gmt":"2023-06-23T15:38:14","guid":{"rendered":"https:\/\/liora.io\/de\/?p=178869"},"modified":"2026-02-06T06:38:23","modified_gmt":"2026-02-06T05:38:23","slug":"attgan-ein-tool-zur-veraenderung-von-gesichtsattributen","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/attgan-ein-tool-zur-veraenderung-von-gesichtsattributen","title":{"rendered":"AttGAN: Ein Tool zur Ver\u00e4nderung von Gesichtsattributen"},"content":{"rendered":"<h3>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\u00e4ndern. Vor dem Aufkommen von Deep Learning war dies eine m\u00fchsame Aufgabe, da sie Pixel f\u00fcr Pixel von Hand durchgef\u00fchrt wurde. Seit kurzem gibt es jedoch neue Algorithmen, die es erm\u00f6glichen, diese \u00c4nderung zu automatisieren. Wir werden hier das AttGAN-Modell n\u00e4her betrachten, das zu diesen Algorithmen geh\u00f6rt, die auf neuronalen Netzen basieren. Dieser Algorithmus nimmt als Parameter das Gesicht, das wir ver\u00e4ndern wollen, sowie einen bin\u00e4ren Attributvektor und gibt das ver\u00e4nderte Gesicht mit den gew\u00fcnschten Attributen zur\u00fcck. Beispiele f\u00fcr seine Funktionsweise werden unten gezeigt:<\/h3>\n<h3>1- AttGAN-Architektur<\/h3>\nUm ein <strong>ver\u00e4ndertes Gesicht<\/strong> zu erhalten, das mit dem <a href=\"https:\/\/liora.io\/de\/deep-fake-gefahren-massnahmen-und-rechtslage\">urspr\u00fcnglichen Gesicht \u00fcbereinstimmt,<\/a> wurde die Vorlage so konstruiert, dass sie drei Regeln befolgt.\n\nErstens muss das neue Gesicht dem Basisgesicht \u00e4hneln (abgesehen von den Attributen).\nZweitens muss es auch visuell realistisch sein, d. h. die erstellten Attribute m\u00fcssen bestimmte Gr\u00f6\u00dfen- und Positionsbeschr\u00e4nkungen einhalten.\nSchlie\u00dflich muss es die geforderten Attribute besitzen. Aus diesem Grund kann man die <strong>AttGAN-Architektur<\/strong> in drei Hauptteile zerlegen.\n\n<strong>Erstens wird ein un\u00fcberwachtes Lernen<\/strong> durch Rekonstruktion im latenten Raum verwendet, um die Details des Gesichts au\u00dferhalb der Attribute zu erhalten. Diese Aufgabe wird von einem Auto Encoder \u00fcbernommen. Wenn du mehr dar\u00fcber erfahren m\u00f6chtest, wie ein Auto Encoder funktioniert, gibt es einen Artikel im Blog, der sich mit diesem Thema besch\u00e4ftigt.\n\n<strong>Der Decoder-Teil dieses Auto Encoders<\/strong> wird dann verwendet, um ein <a href=\"https:\/\/liora.io\/de\/was-ist-ein-conditional-generative-adversarial-network-cgan\">Generative Adversarial Network (GAN)<\/a> zu trainieren, um ein visuell realistisches ver\u00e4ndertes Gesicht zu erhalten.\n\nUm schlie\u00dflich zu \u00fcberpr\u00fcfen, ob das neue Gesicht die gew\u00fcnschten neuen Attribute besitzt, wird ein <a href=\"https:\/\/liora.io\/de\/klassifikationsalgorithmen-definition-und-hauptmodelle\">Klassifizierungszwang auf das erzeugte Bild angewendet<\/a> und die gefundenen Attribute werden mit den gew\u00fcnschten Attributen verglichen.\n\nDiese Architektur l\u00e4sst sich anhand des folgenden Bildes veranschaulichen, das eine Iteration des <strong>AttGAN-Trainings<\/strong> zeigt:\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"512\" height=\"251\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-3.png\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-3.png 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-3-300x147.png 300w\" sizes=\"(max-width: 512px) 100vw, 512px\"><figcaption><\/figcaption><\/figure>\nIn diesem <strong>Schema<\/strong> ist das linke Bild das Originalbild und der Vektor a enth\u00e4lt seine Attribute (Frau, jung, br\u00fcnett, &#8230;). Vektor b hingegen bezeichnet den Vektor mit den gew\u00fcnschten Attributen (Frau, jung, blond, &#8230;).\n\nDer <strong>Auto Encoder<\/strong> wird so trainiert, dass er die Loss-Rekonstruktion minimiert, die einfach die Norm der Differenz zwischen dem<strong> Originalbild<\/strong> und dem rekonstruierten Bild ist. Das Ziel des GAN ist es, ein neues Bild mit den gew\u00fcnschten Attributen b zu erzeugen und den D-Diskriminator so zu t\u00e4uschen, dass dieses Bild dem Originalbild sehr \u00e4hnlich ist. Die Zwangsklassifizierung erfolgt einfach durch die Erkennung des Attributvektors, dessen Verlustfunktion eine Cross-Entropy ist.\n\nEinfach ausgedr\u00fcckt: W\u00e4hrend der Trainingsphase lernt <strong>AttGAN<\/strong> anhand seiner Trainingsdatenbank, was welchem Attribut entspricht.\n\nSehen wir uns nun an, was in der Testphase passiert, wenn wir ein Gesicht ver\u00e4ndern wollen:\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"512\" height=\"78\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-4.png\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-4.png 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-4-300x46.png 300w\" sizes=\"(max-width: 512px) 100vw, 512px\">\n\n<figcaption><\/figcaption><\/figure>\nSobald der <strong>Decoder\/Generator-Teil<\/strong> trainiert ist, wird f\u00fcr die Umwandlung eines Bildes der Encoder-Teil verwendet, um das Bild in den latenten Raum zu codieren und die gew\u00fcnschten neuen Attribute anzugeben, und der Generator erzeugt einfach ein neues Bild mit allen Regeln, die er w\u00e4hrend seiner Trainingsphase gelernt hat.\n<h3>2 &#8211; Datenbank, die zum Trainieren von AttGAN verwendet wird<\/h3>\nDie <a href=\"https:\/\/liora.io\/de\/datenbank-data-management-weiterbildung\">Datenbank<\/a>, die von den Entwicklern dieses Algorithmus verwendet wurde, ist CelebA. Sie enth\u00e4lt \u00fcber 200.000 Gesichter von 10.177 verschiedenen bekannten Pers\u00f6nlichkeiten, die mit 40 Attributen in Form von <strong>bin\u00e4ren Vektoren<\/strong> versehen sind, die angeben, ob das Attribut vorhanden ist (1) oder nicht (0). Diese 40 Attribute k\u00f6nnen von einer einfachen Haarfarbe bis hin zu der Frage reichen, ob das Gesicht geschminkt ist oder nicht.\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"512\" height=\"317\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-5.png\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-5.png 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-5-300x186.png 300w\" sizes=\"(max-width: 512px) 100vw, 512px\">\n\n<figcaption>Base de donn\u00e9es CelebA<\/figcaption><\/figure>\nUm das <strong>Training des Algorithmus<\/strong> 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.\n<h3>3- Ergebnisse und Vergleich mit anderen Algorithmen zur Bearbeitung von Attributen<\/h3>\nHier sind die Ergebnisse nach einem Training des neuronalen Netzes \u00fcber 50 Epochs, was ungef\u00e4hr einem Tag entspricht:\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"512\" height=\"205\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed.jpeg\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed.jpeg 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-300x120.jpeg 300w\" sizes=\"(max-width: 512px) 100vw, 512px\">\n\n<figcaption><\/figcaption><\/figure>\nDie ersten beiden Bilder in jeder Zeile sind das Originalbild und das vom <strong>Auto Encoder<\/strong> rekonstruierte Bild. Die folgenden Bilder sind die Bilder, die erzeugt wurden, indem jeweils nur eines der 13 Attribute in der oben genannten Reihenfolge ge\u00e4ndert wurde.\n\nZun\u00e4chst k\u00f6nnen wir feststellen, dass die erzeugten Gesichter mit den urspr\u00fcnglichen Gesichtern \u00fcbereinstimmen.\nAu\u00dferdem sind die gew\u00fcnschten Attribute vorhanden, auch wenn es bei einigen schwierig ist, sie zu generieren.\nSchlie\u00dflich sind die erzeugten Attribute visuell realistisch.\n\nDas liegt an den drei Regeln, die wir der Architektur w\u00e4hrend des Trainings auferlegt haben.\n\nDennoch kann man feststellen, dass einige Attribute nat\u00fcrlicher aussehen als andere. Dies ist bei der Mund\u00f6ffnung und der Haarfarbe der Fall. Im Gegensatz dazu sind die Attribute &#8222;Glatze&#8220; oder auch &#8222;Brille&#8220; schwieriger zu erreichen.\n\nDaraus l\u00e4sst sich schlie\u00dfen, dass \u00c4nderungen, bei denen Material hinzugef\u00fcgt oder entfernt wird, am wenigsten trainiert wurden.\n\nVergleichen wir nun dieses Modell mit anderen Arten von neuronalen Netzen, die die gleiche Aufgabe erf\u00fcllen:\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"512\" height=\"214\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-6.png\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-6.png 512w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/06\/unnamed-6-300x125.png 300w\" sizes=\"(max-width: 512px) 100vw, 512px\">\n\n<figcaption><\/figcaption><\/figure>\nHier wird der <strong>AttGAN<\/strong> mit zwei anderen Modellen verglichen, die eine etwas andere Architektur haben: Der <strong>VAE \/ GAN<\/strong> und der IcGAN. Wir betrachten die Rekonstruktion des Originalbildes und einige Attribute f\u00fcr jedes Modell. Wir stellen fest, dass <strong>AttGAN<\/strong> das einzige Modell ist, das das Originalgesicht fast perfekt rekonstruieren kann, w\u00e4hrend die anderen es leicht ver\u00e4ndern. Daraus l\u00e4sst sich schlie\u00dfen, dass die anderen Modelle zur Bearbeitung von Attributen zwar die Modifikation gut durchf\u00fchren, aber nicht das Grundprinzip einhalten, das darin besteht, die Details des Gesichts ohne Attribute zu erhalten.\n<h3>4- Fazit<\/h3>\nIn diesem Artikel haben wir ein Modell f\u00fcr neuronale Netze zur Bearbeitung von Attributen in Gesichtern,<strong> AttGAN<\/strong>, ausf\u00fchrlich besprochen. Wir haben seine in drei Teile gegliederte Architektur beschrieben, die es erm\u00f6glicht, Bilder zu erhalten, die mit den Originalbildern sehr konsistent sind. Dann haben wir dieses Modell mit anderen neuronalen Netzen verglichen, die ebenfalls f\u00fcr die Bearbeitung von Attributen verwendet werden, und festgestellt, dass es sich dabei um das bisher erfolgreichste <strong>AttGAN<\/strong> handelt.\n\nWenn dir dieser Artikel gefallen hat und du weitere Methoden des <strong>Deep Learning<\/strong> kennenlernen m\u00f6chtest, lade ich dich ein, an unserem Deep-Learning-Expertenkurs teilzunehmen.\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\">Deep Learning Weiterbildung<\/a><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>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\u00e4ndern. Vor dem Aufkommen von Deep Learning war dies eine m\u00fchsame Aufgabe, da sie Pixel f\u00fcr Pixel von Hand durchgef\u00fchrt wurde. Seit kurzem gibt es jedoch neue Algorithmen, die es erm\u00f6glichen, [&hellip;]<\/p>\n","protected":false},"author":76,"featured_media":178870,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2472],"class_list":["post-178869","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-ki"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/178869","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/76"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=178869"}],"version-history":[{"count":1,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/178869\/revisions"}],"predecessor-version":[{"id":217430,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/178869\/revisions\/217430"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/178870"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=178869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=178869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}