Hast du Yui Aragaki in Hayao Miyazakis Animation gesehen? Verwenden Sie Python als Open-Source-Animationsgenerator, um Ihre Fotos in Sekundenschnelle in handgezeichnete japanische Comics zu verwandeln~

Einführung

Nehmen Sie ein Foto auf und wandeln Sie es in handgemalte Werke japanischer Manga-Meister wie Hayao Miyazaki und Makoto Shinkai um.Dieses GAN, das sich auf die Erstellung von Animationsbildern spezialisiert hat, ist sehr nützlich bei der eigentlichen Messung.

Wenn es ein Modell gibt, das das echte Bild in ein handgemaltes Bild im japanischen Stil verwandeln kann, muss es sehr cool sein. Vor kurzem hat das Herz der Maschine festgestellt, dass es tatsächlich diese Modelle gibt, von CartoonGAN bis AnimeGAN, die sehr interessante Bilder erzeugen können.

Hier ist ein neues TensorFlow-Projekt, das AnimeGAN implementiert und vortrainierte Modelle bereitstellt. Das heißt, wir können direkt versuchen, den Effekt nach dem Herunterladen zu erzeugen.

Obwohl viele der besten Beispiele des ursprünglichen Projekts Straßenszenen sind, fanden wir, dass alle Arten von Szenen ebenfalls in Ordnung sind. Im Folgenden sind die Originalbilder und generierten Effekte, die wir ausprobiert haben. Betrachtet man den Generationseffekt der ersten Kirschblütenstraße, stellt sich plötzlich ein „Spirited Away“-Gefühl ein.

Wenn es nur für Charaktere ist, ist der Konvertierungseffekt auch sehr gut. Versuchen Sie, das Foto von Yui Aragaki in das AnimeGAN-Modell einzugeben, und Sie werden den folgenden magischen Stil haben.

Im ursprünglichen GitHub-Projekt gab der Autor auch viele Beispiele, die oben genannten sind nur die Ergebnisse des Herzens der Maschine, Sie können es auch verwenden.

AnimeGAN

Das gesamte Projekt implementiert die in der Veröffentlichung „AnimeGAN: a novel Lightweight GAN for photo animation“ vorgeschlagene Methode. Der Autor vergleicht in der Veröffentlichung AnimeGAN mit CartoonGAN und ComixGAN.

Wie aus der Abbildung ersichtlich ist, ist AnimeGAN in Bezug auf Details besser als die beiden oben genannten Methoden, die Farbe ist relativ natürlicher und das Schmiergefühl ist nicht so stark. Am offensichtlichsten sind die Renderings der zweiten Reihe, die mit AnimeGAN erstellten Cartoons sind näher an Hayao Miyazakis Stil.

Einführung in die Methode

Für das AnimeGAN dieses Projekts sind das von AnimeGAN übernommene Generatornetzwerk und Diskriminatornetzwerk unten gezeigt. Es scheint, dass das Modell als Ganzes ein konventionelleres Convolutional Neural Network ist, aber es wird Instanznormalisierung und die neue LReLU-Aktivierungsfunktion verwenden.

Zusätzlich zu den Aktualisierungen der architektonischen Details schlagen die Autoren auch die folgenden drei neuen Verlustfunktionen vor:

  • Verlust des Graustufenstils

  • gegnerischer Graustufenverlust

  • Farbrekonstruktionsverlust

Diese Verlustfunktionen können den Stil des erzeugten Bildes näher an den echten Comic-Stil bringen.

Die folgende Tabelle vergleicht die Modellgröße und Inferenzgeschwindigkeit von ACartoonGAN und AnimeGAN. Es ist deutlich zu sehen, dass AnimeGAN ein relativ leichtes GAN mit weniger Parametern und schnellerer Inferenzgeschwindigkeit ist.

Insgesamt ist das neu vorgeschlagene AnimeGAN ein leichtgewichtiges generatives gegnerisches Modell, das weniger Modellparameter verwendet und eine Gram-Matrix einführt, um den Stil von Fotos zu verbessern. Die Methode der Forscher erfordert ein Training mit einer Reihe von realen Bildern und einer Reihe von Cartoon-Bildern, und diese Bilder müssen nicht paarweise abgeglichen werden, was zeigt, dass die Trainingsdaten sehr einfach zu erhalten sind.

Projektmessung

Wir haben dieses Projekt unter Ubuntu 18.04 getestet, und die relevanten Abhängigkeiten sind wie folgt:

  • Python 3.6.8

  • TensorFlow-GPU 1.8

  • opencv

  • tqdm

  • taub

  • Globus

  • argparse

Diese Abhängigkeiten können als häufig verwendete Erweiterungsbibliotheken in CV bezeichnet werden, sodass wir uns nicht die Mühe machen müssen, die Probleme verschiedener Abhängigkeitsumgebungskonflikte zu lösen. Hier ist eine gute Übersicht.

Das Folgende ist der detaillierte Trainings- und Testprozess dieses Projekts. Wir haben zunächst das AnimeGAN-Projekt lokal geklont und in das Jupyter-Notebook eingetragen:

!git clone https://github.com/TachibanaYoshino/AnimeGAN

 Ändern Sie das Arbeitsverzeichnis in AnimeGAN:

import os
os.chdir('AnimeGAN')
print(os.getcwd())

 Laden Sie als Nächstes das vom Projektautor bereitgestellte vortrainierte Modell herunter, verwenden Sie vim download_staffs.sh, um eine Shell-Datei zu erstellen, und geben Sie den folgenden Befehl ein:

URL=https://github.com/TachibanaYoshino/AnimeGAN/releases/download/Haoyao-style_V1.0/Haoyao-style.zip
ZIP_FILE=./checkpoint/Haoyao-style.zip
TARGET_DIR=./checkpoint/saved_model

mkdir -p ./checkpoint
wget -N $URL -O $ZIP_FILE
mkdir -p $TARGET_DIR
unzip $ZIP_FILE -d $TARGET_DIR
rm $ZIP_FILE

DatesetURL=https://github.com/TachibanaYoshino/AnimeGAN/releases/download/dataset-1/dataset.zip
ZIP_FILE=./dataset.zip
TARGET_DIR=./dataset

rm -rf dataset
wget -N $DatesetURL -O $ZIP_FILE
unzip $ZIP_FILE -d $TARGET_DIR
rm $ZIP_FILE

VGG_FILE=./vgg19_weight/vgg19.npy
wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1U5HCRpZWAbDVLipNoF8t0ZHpwCRX7kdF' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1U5HCRpZWAbDVLipNoF8t0ZHpwCRX7kdF" -O $VGG_FILE && rm -rf /tmp/cookies.txt

 Speichern und beenden, der obige Befehl lädt das vortrainierte Modell, die vgg19-Gewichte und den Trainingsdatensatz herunter und speichert sie im entsprechenden Verzeichnis. Im Notizbuch ausführen:

!bash download_staffs.sh

An diesem Punkt sind alle Vorbereitungen abgeschlossen und das Modell kann durch Ausführen des folgenden Codes trainiert werden:

!python main.py --phase train --dataset Hayao --epoch 101 --init_epoch 1

 Der Trainingsprozess von AnimeGAN ist in der folgenden Abbildung dargestellt:

Beim Testen müssen wir das Bild zum Testen im Verzeichnis dataset/test/real speichern und den folgenden Code ausführen:

!python test.py --checkpoint_dir checkpoint/saved_model --test_dir dataset/test/real --style_name H

Wenn Sie die obige Ausgabe sehen, wurde das Programm erfolgreich ausgeführt und die generierten Ergebnisse werden im Ergebnisordner gespeichert. Wie Sie sehen können, dauert es etwa 2,3 Sekunden, um ein Bild auf der P100-GPU zu erzeugen.

Ende

Das ist alles für diese Ausgabe ~ Ich hoffe, es hilft Ihnen! Wenn es Ihnen gefällt, denken Sie daran, dem Editor einen Dreistrich zu geben, bevor Sie ~ verlassen

Wenn Sie vollständigen Quellcode und Python-Lernmaterialien erhalten möchten, können Sie auf diese Zeile mit Schriftarten klicken

 

Ich denke du magst

Origin blog.csdn.net/L010409/article/details/123131045
Empfohlen
Rangfolge