[PYTHON] Ich habe versucht, VAE Bewegungsgrafiken lernen zu lassen

Was ist Bewegungsgrafik?

** Es ist eine coole Bewegung von Figuren, Logos, Illustrationen usw. **. Es ist eine ziemlich vage Definition, nicht wahr? Ich glaube nicht, dass es tatsächlich eine klare Definition gibt. Bewegungsgrafiken werden häufig in dem verwendet, was üblicherweise als Emo bezeichnet wird. Es wird häufig in Künstler-MVs und Unternehmens-CMs verwendet. Wenn Sie auf YouTube usw. nach "Bewegungsgrafiken" suchen, werden Sie viele coole Bilder finden. Schauen Sie also bitte vorbei.

Ich möchte automatisch Bewegungsgrafiken generieren!

Die meisten Bewegungsgrafiken werden von den Erstellern von Hand erstellt. Dies ist eine sehr zeitaufwändige und schwierige Aufgabe. Vor kurzem habe ich mich gefragt, ob es mit der beliebten KI generiert werden kann. Wäre es nicht lustig, KI zu trainieren, um Bewegungsgrafiken zu generieren?

Datensatz

Auch wenn es generiert wird, ist ein Datensatz für das Training erforderlich. In meiner Forschung gab es jedoch keine ** Bewegungsgrafik-Datensätze. ** Sie müssen also Ihren eigenen Datensatz erstellen. Das Erstellen eines großen Datensatzes nimmt jedoch sehr viel Zeit in Anspruch. Daher habe ich dieses Mal einfach Bewegungsgrafiken für 6 Partikeltypen erstellt. Ich habe die Africa Effects von Adobe verwendet, um den Datensatz zu erstellen.

Datensatz erstellt

123456
ae.png

Modell zum Lernen verwendet

Nachdem wir den Datensatz erstellt haben (abgesehen davon, ob er in relativ kleinem Maßstab als Datensatz bezeichnet werden kann), ist als nächstes das Modell zu berücksichtigen. Es gibt Modelle mehrerer Generationen, und der aktuelle Mainstream ist GAN oder VAE. GAN ist schwer zu lernen, und wenn der Datensatz wie dieses Mal klein ist, besteht eine hohe Wahrscheinlichkeit, dass er nicht gut lernt. Deshalb haben wir VAE übernommen. VAE ist ein abgeleitetes System von AE, und die Verteilung latenter Variablen wird durch Komprimieren und Wiederherstellen des Datensatzes erfasst. Nach dem Training kann es erzeugt werden, indem dem Decoderteil Rauschen z gegeben wird. Für AE und VAE sind die folgenden Artikel hilfreich. Ausführliche Erklärung zum variablen Autoencoder Dieses Mal werden wir ein Video generieren, also hat VAE ein Modell der Unet-Struktur durch 3D-Faltung erstellt. Lernen Sie die räumlich-zeitlichen Informationen von bewegten Bildern durch 3D-Faltung. Die Transponierungskonv. Des Decoderteils ist die Translokationsfaltung. Die Translokationsfaltung wird auf leicht verständliche Weise mit einem Video im Artikel [hier] erklärt (ttps: //qiita.com/kenmatsu4/items/b029d697e9995d93aa24 "Relocation Convolution").

models figure (1).png

Lernen

Da der Datensatz klein ist, endete das Training sofort. Ich urteilte, dass es in etwa 200 Epochen generiert werden könnte, also beendete ich das Training dort. Mit der GTX1080Ti dauerte es ungefähr eine Stunde.

Experimentdetails

Video Größe Epochennummer Rahmen GPU
128x128x32 200 PyTorch GTX1080Ti

Generierungsergebnis

gen1.gif gen2.gif gen3.gif gen4.gif

Bewegungsgrafiken, die wie Trainingsdaten aussehen, wurden ordnungsgemäß generiert.

Morphing Durch Ergänzen des dem Decodierer gegebenen Rauschvektors z zwischen den Bewegungsgrafiken ist es möglich, eine Zwischenbewegungsgrafik zwischen den beiden Bewegungsgrafiken zu erzeugen. Dies ist eine Videoversion dessen, was häufig von GAN generiert wird und sich nach und nach ändert. 111111

Zwischenbewegungsgrafiken werden erzeugt, indem die latente Variable z zwischen Bewegungsgrafiken wie in der folgenden Formel gezeigt ergänzt wird.

z = t z_1 + (1-t)z_2 \\
0 < t < 1

Zusammenfassung

Ich konnte Bewegungsgrafiken mit tiefem Lernen erzeugen. Diesmal gab es aufgrund des relativ kleinen Datensatzes keine Unterschiede in der Generation. Wenn Sie einen großen Datensatz für Bewegungsgrafiken haben, würde ich gerne experimentieren. (Kann es jemand schaffen?) Es ist jedoch interessant, mit Mophing usw. Zwischensachen erzeugen zu können. In diesem Experiment haben wir festgestellt, dass Morphig auch mit einem kleinen Datensatz erstellt werden kann.

Referenz

Ausführliche Erklärung zum variablen Autoencoder [Entfaltung im neuronalen Netz](ttps: //qiita.com/kenmatsu4/items/b029d697e9995d93aa24 "Transfer Convolution")

Recommended Posts

Ich habe versucht, VAE Bewegungsgrafiken lernen zu lassen
Ich habe versucht, PredNet zu lernen
Ich habe versucht, Optuna die Nummer lösen zu lassen
Ich habe versucht, mit TF Learn die logische Operation zu lernen
Ich habe versucht, mit OpenCV Bewegungen schnell zu erkennen
Ich habe versucht zu debuggen.
Ich habe versucht, die Sündenfunktion mit Chainer zu trainieren
Ich habe versucht, DCGAN mit PyTorch zu implementieren und zu lernen
Ich habe versucht, SVM zu organisieren.
Ich habe versucht, PCANet zu implementieren
Ich habe versucht, Linux wieder einzuführen
Ich habe versucht, Pylint vorzustellen
Ich habe versucht, SparseMatrix zusammenzufassen
jupyter ich habe es berührt
Ich habe versucht, StarGAN (1) zu implementieren.
Ich habe versucht, Deep VQE zu implementieren
Ich habe versucht, eine Quip-API zu erstellen
Ich habe versucht, Python zu berühren (Installation)
Ich habe versucht, eine kontroverse Validierung zu implementieren
Ich habe versucht, Pytorchs Datensatz zu erklären
Ich habe Watson Voice Authentication (Speech to Text) ausprobiert.
Ich habe Teslas API berührt
Ich möchte Bilder kratzen und trainieren
Ich habe versucht, mich über MCMC zu organisieren.
Ich habe versucht, Realness GAN zu implementieren
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, Pepper über Ereignisinformationen und Mitgliederinformationen sprechen zu lassen
Ich ließ RNN Sin Wave lernen und versuchte vorherzusagen
Ich habe versucht, einen Linebot zu erstellen (Implementierung)
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Azure Speech to Text zu verwenden.
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, den Befehl umask zusammenzufassen
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, einen Linebot zu erstellen (Vorbereitung)
Ich versuchte das Weckwort zu erkennen
Ich habe versucht, mit Hy anzufangen
Ich habe versucht, PLSA in Python 2 zu implementieren
Ich habe versucht, Text mit TensorFlow zu klassifizieren
Ich habe versucht, die grafische Modellierung zusammenzufassen.
Ich habe versucht, der CPython-Implementierung ein Post-Inkrement hinzuzufügen
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe versucht, den Winkel von Sin und Cos mit Chainer zu lernen
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe versucht, die COTOHA-API zu berühren
Ich habe versucht, PPO in Python zu implementieren
Ich habe versucht, CVAE mit PyTorch zu implementieren
Ich habe eine Web-API erstellt
Ich habe versucht, TSP mit QAOA zu lösen
[Python] Ich habe versucht, TF-IDF stetig zu berechnen
Ich habe versucht, Python zu berühren (grundlegende Syntax)
Ich versuchte mein Bestes, um zu Lasso zurückzukehren
Ich habe versucht, Ansibles Module-Linux-Edition zusammenzufassen
[Azure] Ich habe versucht, eine virtuelle Linux-Maschine mit Azure von Microsoft Learn zu erstellen
Ich habe versucht, nächstes Jahr mit AI vorherzusagen
Ich habe versucht, eine Super-Resolution-Methode / ESPCN zu erstellen