Neuronales Stiltransferverfahren angewendet auf die Mona Lisa :

Neuronale Stiltransfer -Algorithmen ( NST ) können digitale Bilder oder Videos so bearbeiten, dass sie das Erscheinungsbild oder den visuellen Stil anderer Bilder übernehmen. NST-Algorithmen zeichnen sich durch die Verwendung tiefer neuronaler Netze zur Bildtransformation aus. Häufige Anwendungsgebiete von NST sind die Erstellung künstlicher Kunstwerke aus Fotografien, beispielsweise durch die Übertragung des Erscheinungsbilds berühmter Gemälde auf vom Nutzer bereitgestellte Fotos. Mehrere bekannte mobile Apps, darunter DeepArt und Prisma , nutzen NST-Techniken zu diesem Zweck . Künstler und Designer weltweit verwenden diese Methode, um neue Kunstwerke auf Basis bestehender Stile zu entwickeln.

Geschichte

NST ist ein Beispiel für Bildstilisierung , ein Problem, das im Bereich des nicht-fotorealistischen Renderings seit über zwei Jahrzehnten untersucht wird . Die ersten beiden beispielbasierten Stiltransferalgorithmen waren Bildanalogien [ 1 ] und Bildquilting [ 2 ] . Beide Methoden basierten auf patchbasierten Textursynthesealgorithmen .

Anhand eines Trainingsbildpaares – eines Fotos und eines dieses Fotos darstellenden Kunstwerks – konnte eine Transformation erlernt und anschließend analog angewendet werden, um aus einem neuen Foto ein neues Kunstwerk zu erstellen. Falls kein Trainingsfoto verfügbar war, musste dieses durch Bearbeitung des Eingabebildes erzeugt werden; beim Bildquilting war dieser Bearbeitungsschritt nicht erforderlich, obwohl er nur an einem Stil demonstriert wurde.

NST wurde erstmals in der Arbeit „A Neural Algorithm of Artistic Style“ von Leon Gatys et al. veröffentlicht, die ursprünglich 2015 auf ArXiv [ 3 ] publiziert und anschließend von der Peer-Review- Konferenz CVPR im Jahr 2016 angenommen wurde. [ 4 ] In der Originalarbeit wurde eine VGG-19-Architektur [ 5 ] verwendet, die für die Objekterkennung mit dem ImageNet- Datensatz vortrainiert wurde .

Im Jahr 2017 stellte Google AI eine Methode [ 6 ] vor , die es einem einzelnen tiefen Faltungsnetzwerk für Stiltransfer ermöglicht, mehrere Stile gleichzeitig zu erlernen. Dieser Algorithmus erlaubt die Stilinterpolation in Echtzeit, sogar bei Videodaten.

Mathematik

Durchgezogene Linien zeigen die Richtung der Vorwärtsausbreitung der Daten. Gestrichelte Linien zeigen die Rückwärtsausbreitung des Verlustgradienten. [ 7 ]

Dieser Abschnitt orientiert sich eng an der Originalveröffentlichung. [ 4 ]

Überblick

Die Idee des Neural Style Transfer (NST) besteht darin, zwei Bilder zu nehmen – ein Inhaltsbild und ein Stilbild – und ein drittes Bild zu generieren , das eine gewichtete Kombination zweier Verlustfunktionen minimiert: einen Inhaltsverlust und einen Stilverlust .

Der Gesamtverlust ist eine lineare Summe der beiden: Durch die gemeinsame Minimierung des Inhalts- und des Stilverlusts erzeugt NST ein Bild, das den Inhalt des Inhaltsbildes mit dem Stil des Stilbildes verbindet.

Sowohl der Inhaltsverlust als auch der Stilverlust messen die Ähnlichkeit zweier Bilder. Die Inhaltsähnlichkeit ist die gewichtete Summe der quadrierten Differenzen zwischen den neuronalen Aktivierungen eines einzelnen Convolutional Neural Network (CNN) auf zwei Bildern. Die Stilähnlichkeit ist die gewichtete Summe der Gram-Matrizen innerhalb jeder Schicht (siehe unten für Details).

In der Originalveröffentlichung wurde ein VGG-19 CNN verwendet, die Methode funktioniert aber für jedes CNN.

Symbole

Sei ein Bild als Eingabe für ein CNN.

Sei die Matrix der Filterantworten in der Schicht auf das Bild , wobei:

  • ist die Anzahl der Filter in der Schicht  ;
  • ist das Produkt aus Höhe und Breite (d. h. Anzahl der Pixel) jedes Filters in der Ebene  ;
  • ist die Aktivierung des Filters an Position in der Ebene .

Ein gegebenes Eingabebild wird in jeder Schicht des CNN durch die Filterantworten auf dieses Bild kodiert, wobei höhere Schichten globalere Merkmale kodieren, dabei aber Details lokaler Merkmale verlieren.

Inhaltsverlust

Sei ein Originalbild. Sei ein Bild, das so generiert wird, dass es dem Inhalt von entspricht . Sei die Matrix der Filterantworten in der Schicht auf das Bild .

Der Inhaltsverlust ist definiert als der quadratische Fehler zwischen den Merkmalsdarstellungen des generierten Bildes und des Inhaltsbildes in einer ausgewählten Schicht eines CNN: Dabei sind und die Aktivierungen des Filters an Position in Schicht für das generierte bzw. das Inhaltsbild. Die Minimierung dieses Verlusts fördert einen ähnlichen Inhalt des generierten Bildes wie des Inhaltsbildes, wie er durch die Merkmalsaktivierungen in der ausgewählten Schicht erfasst wird.

Der gesamte Inhaltsverlust ist eine lineare Summe der Inhaltsverluste jeder Schicht: , wobei die positive reelle Zahlen sind, die als Hyperparameter gewählt werden.

Stilverlust

Der Stilverlust basiert auf den Gram-Matrizen der generierten und der Stilbilder, welche die Korrelationen zwischen verschiedenen Filterantworten in unterschiedlichen Schichten des CNN erfassen: Hierbei sind und die Einträge der Gram-Matrizen für die generierten und die Stilbilder in Schicht . Explizit:

Durch die Minimierung dieses Verlusts wird begünstigt, dass das generierte Bild ähnliche Stilmerkmale wie das Stilbild aufweist, was durch die Korrelationen zwischen den Merkmalsreaktionen in jeder Schicht erfasst wird. Die Idee ist, dass die Korrelationen der Aktivierungsmuster zwischen Filtern in einer einzelnen Schicht den „Stil“ in der Größenordnung der rezeptiven Felder dieser Schicht erfassen.

Ähnlich wie im vorherigen Fall handelt es sich um positive reelle Zahlen, die als Hyperparameter gewählt werden.

Hyperparameter

In der Originalveröffentlichung verwendeten sie eine bestimmte Auswahl an Hyperparametern.

Der Stilverlust wird für die Ausgaben der Schichten , , , , im VGG-19-Netzwerk berechnet und ist ansonsten null. Der Inhaltsverlust wird für berechnet und ist ansonsten null. conv1_1conv2_1conv3_1conv4_1conv5_1conv4_2

Das Verhältnis .

Ausbildung

Das Bild wird zunächst approximiert, indem dem Eingangsbild ein geringes Maß an weißem Rauschen hinzugefügt und es durch das CNN geleitet wird. Anschließend wird dieser Verlust sukzessive durch das Netzwerk zurückpropagiert , wobei die CNN-Gewichte fixiert sind, um die Pixel des Bildes zu aktualisieren . Nach mehreren tausend Trainingsepochen entsteht (hoffentlich) ein Bild, das dem Stil und Inhalt des Eingangsbildes entspricht .

Stand 2017 dauerte die Konvergenz bei Implementierung auf einer GPU einige Minuten. [ 8 ]

Erweiterungen

Bei einigen praktischen Anwendungen wurde festgestellt, dass das resultierende Bild zu viele hochfrequente Artefakte aufweist, die durch Hinzufügen der Gesamtvariation zum Gesamtverlust unterdrückt werden können. [ 9 ]

Im Vergleich zu VGGNet eignet sich AlexNet nicht gut für den neuronalen Stiltransfer. [ 10 ]

NST wurde auch auf Videos ausgeweitet. [ 11 ]

In nachfolgenden Arbeiten wurde die Geschwindigkeit der NST für Bilder durch die Verwendung spezieller Normalisierungen verbessert . [ 12 ] [ 8 ]

In einer Arbeit von Fei-Fei Li et al. wurde eine andere regularisierte Verlustmetrik und eine beschleunigte Trainingsmethode verwendet, um Ergebnisse in Echtzeit zu erzielen (drei Größenordnungen schneller als Gatys). [ 13 ] Anstelle des oben definierten pixelbasierten Verlusts nutzten sie einen „wahrnehmungsbasierten Verlust“, der die Unterschiede zwischen höheren Schichten innerhalb des CNN misst. Sie verwendeten ein symmetrisches Faltungs-Dekonvolutions-CNN. Das Training verwendet eine ähnliche Verlustfunktion wie die grundlegende NST-Methode, regularisiert aber zusätzlich die Ausgabe zur Glättung mittels Totalvariationsverlust (TV). Nach dem Training kann das Netzwerk verwendet werden, um ein Bild in den während des Trainings verwendeten Stil zu transformieren, indem ein einziger Feedforward-Durchlauf des Netzwerks durchgeführt wird. Das Netzwerk ist jedoch auf den einen Stil beschränkt, in dem es trainiert wurde. [ 13 ]

In einer Arbeit von Chen Dongdong et al. wurde die Fusion von optischen Flussinformationen in Feedforward-Netzwerke untersucht , um die zeitliche Kohärenz des Ausgangssignals zu verbessern. [ 14 ]

Zuletzt wurden merkmalsbasierte NST-Methoden für eine schnelle Stilisierung untersucht, die nicht an einen einzelnen spezifischen Stil gebunden sind und eine vom Benutzer steuerbare Mischung von Stilen ermöglichen , beispielsweise die Weißungs- und Farbtransformation (WCT). [ 15 ]

Referenzen

  1. ^ Hertzmann, Aaron; Jacobs, Charles E.; Oliver, Nuria; Curless, Brian; Salesin, David H. (August 2001). „Bildanalogien“ . Proceedings der 28. jährlichen Konferenz über Computergrafik und interaktive Techniken . ACM. S.  327–340 . doi : 10.1145/383259.383295 . ISBN 978-1-58113-374-5Die
  2. ^ Efros, Alexei A.; Freeman, William T. (August 2001). „Image quilting for texture synthesis and transfer“ . Proceedings of the 28th annual conference on Computer graphics and interactive techniques . ACM. S.  341–346 . doi : 10.1145/383259.383296 . ISBN 978-1-58113-374-5Die
  3. ^ Gatys, Leon A.; Ecker, Alexander S.; Bethge, Matthias (26. August 2015). „Ein neuronaler Algorithmus für künstlerischen Stil“. arXiv : 1508.06576 [ cs.CV ].
  4. Gatys , Leon A.; Ecker, Alexander S.; Bethge, Matthias (2016). Image Style Transfer Using Convolutional Neural Networks . IEEE Conference on Computer Vision and Pattern Recognition (CVPR).  S. 2414–2423 .
  5. ^ „Very Deep CNNS for Large-Scale Visual Recognition“ . Robots.ox.ac.uk . 2014. Abgerufen am 13. Februar 2019 .
  6. ^ Dumoulin, Vincent; Shlens, Jonathon S.; Kudlur, Manjunath (9. Februar 2017). „Eine erlernte Repräsentation für künstlerischen Stil“. arXiv : 1610.07629 [ cs.CV ].
  7. ^ Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). „14.12. Neuronal Style Transfer“ . Dive into deep learning . Cambridge New York Port Melbourne New Delhi Singapore: Cambridge University Press. ISBN 978-1-009-38943-3Die
  8. ^ a b Huang, Xun; Belongie, Serge (2017). „Arbitrary Style Transfer in Real-Time With Adaptive Instance Normalization“ . ICCV : 1501–1510 . arXiv : 1703.06868 .
  9. ^ Jing, Yongcheng; Yang, Yezhou; Feng, Zunlei; Ja, Jingwen; Yu, Yizhou; Lied, Mingli (01.11.2020). „Neural Style Transfer: Ein Rückblick“. IEEE-Transaktionen zu Visualisierung und Computergrafik . 26 (11): 3365–3385 . arXiv : 1705.04058 . Bibcode : 2020ITVCG..26.3365J . doi : 10.1109/TVCG.2019.2921336 . ISSN 1077-2626 . PMID 31180860 .  
  10. ^ „Neuronaler Stiltransfer mit Deep Learning | Dawars' Blog“ . dawars.me . Abgerufen am 23.09.2024 .
  11. Ruder , Manuel; Dosovitskiy, Alexey; Brox, Thomas (2016). „Artistic Style Transfer for Videos“. Pattern Recognition . Lecture Notes in Computer Science. Band 9796. S.  26–36 . arXiv : 1604.08610 . doi : 10.1007/978-3-319-45886-1_3 . ISBN 978-3-319-45885-4S2CID  47476652 .​
  12. ^ Ulyanov, Dmitry; Vedaldi, Andrea; Lempitsky, Victor (2017-11-06). „Instanznormalisierung: Die fehlende Zutat für eine schnelle Stilisierung“. arXiv : 1607.08022 [ cs.CV ].
  13. ^ a b Johnson, Justin; Alahi, Alexandre; Li, Fei-Fei (2016). „Perceptual Losses for Real-Time Style Transfer and Super-Resolution“. arXiv : 1603.08155 [ cs.CV ].
  14. ^ Chen, Dongdong; Liao, Jing; Yuan, Lu; Yu, Nenghai; Hua, Gang (2017). „Kohärente Online-Videostilübertragung“. arXiv : 1703.09211 [ cs.CV ].
  15. ^ Li, Yijun; Fang, Chen; Yang, Jimei; Wang, Zhaowen; Lu, Xin; Yang, Ming-Hsuan (2017). „Universelle Stilübertragung über Feature-Transformationen“. arXiv : 1705.08086 [ cs.CV ].