[PYTHON] Lernen Sie neue Daten mit PaintsChainer

Die Quelle von PaintsChainer ist unter http://qiita.com/taizan/items/7119e16064cc11500f32 für die Öffentlichkeit zugänglich. Es gibt jedoch viele Artikel und Blogs, in denen ich versucht habe, PaintsChainer mithilfe eines geschulten Modells zu verschieben, aber ich habe es selbst gelernt. Ich konnte niemanden finden, der es versuchte, also versuchte ich es.

Nachtrag 20170404: Die Berechnung der Stromrechnung wurde um eine Ziffer überberechnet. .. Es war nicht so teuer. ..

Vorbereitung der Trainingsdaten

Vorbereitung des Originalbildes

Zunächst müssen Sie die Trainingsdaten vorbereiten. Es ist schwierig, eine große Anzahl von Bildern vorzubereiten, und es kann nicht geholfen werden, dies mit demselben Pixiv wie im Originalartikel zu tun. Hier also bestimmte Animation BC% E5% AE% AE% E3% 83% 8F% E3% 83% AB% E3% 83% 92% E3% 82% B7% E3% 83% AA% E3% 83% BC% E3% 82% BA) Ich habe versucht, das Video von zu verwenden. Das MP4-Video, das ich hatte, wird in ein Vollbild umgewandelt. Vorerst habe ich mir die Folgen 1 bis 6 der ersten Arbeit vorgestellt. Insbesondere wird alles unabhängig von der Eröffnungs- / Endszene abgebildet. Insgesamt gibt es 172.729 Bilder.

Verwenden Sie ffmpeg für die Bildgebung. Die generierten Bilder wurden in cgi-bin / paint_x2_unet / images / original in dem Verzeichnis abgelegt, in dem PaintChainer ausgecheckt wurde.

$ cd cgi-bin/paint_x2_unet
$ mkdir -p images/original
$ ffmpeg -i movies/movie_01.mp4 -f image2 images/original/movie_01_%d.jpg

Ich werde dies für 6 Folgen tun. Bitte setzen Sie die ganze Geschichte in Bilder / Original /, damit der Dateiname nicht abgedeckt wird.

Größe ändern / Strichzeichnung

PaintChainer benötigt ein 128x128-Bild und ein 512x512-Bild. Ich habe ein Skript geschrieben, um die Größe richtig zu ändern.

128x128 https://github.com/ikeyasu/PaintsChainer/blob/ikeyasu_mod/cgi-bin/paint_x2_unet/tools/resize.py

512x512 https://github.com/ikeyasu/PaintsChainer/blob/ikeyasu_mod/cgi-bin/paint_x2_unet/tools/resizex2.py

Außerdem bezog ich mich beim Strichzeichnen auf k3nt0s Blog.

https://github.com/ikeyasu/PaintsChainer/blob/ikeyasu_mod/cgi-bin/paint_x2_unet/tools/image2line.py

Ich führe das obige Bild aus, das ich gerade extrahiert habe, aber es dauert sehr lange. Parallelisieren Sie daher mit Gnu parallel.

Ich habe das folgende Skript geschrieben.

cgi-bin/paint_x2_unet/run.sh:

ls -v1 ../images/original/ | parallel -j 8  'echo {}; python resize.py -i {} -o ../images/color/{}'
ls -v1 ../images/original/  | parallel -j 8  'echo {}; python image2line.py -i {} -o ../images/line/{}'
ls -v1 ../images/original/  | parallel -j 8  'echo {}; python resizex2.py -i {} -o ../images/colorx2/{}'
ls -v1 ../images/original/  | parallel -j 8  'echo {}; python image2line.py -i {} -o ../images/linex2/{}'
$ cd cgi-bin/paint_x2_unet
$ cd tools
$ ./run.sh

Außerdem wird eine Liste von Datensätzen in dat / images_color_train.dat gespeichert.

$ pwd
~/PaintsChainer/cgi-bin/paint_x2_unet/tools
$ cd ../images/original
$ ls -v1 > ../../dat/images_color_train.dat

Lernen

Alles was Sie tun müssen, ist zu lernen. Ich habe ein bisschen am Originalcode herumgebastelt. (Es ist ein bisschen alt, weil es auf dem Paint Chainer-Code basiert, als ich anfing zu lernen)

https://github.com/ikeyasu/PaintsChainer/commit/8e30ee6933c747580efe25c9c4d5165f55823966

$ pwd
~/PaintsChainer/cgi-bin/paint_x2_unet/images/original
$ cd ../../
$ python train_128.py -g 0 --dataset images/ -e 20 -o result1
$ cp result1/model_final models/model_cnn_128
$ python train_x2.py -g 0 -o result2/ --dataset images/ --snapshot_interval 5000 -e 20

Versuche zu rennen

Das zu ladende Modell ist in cgi-bin / paint_x2_unet / cgi_exe.py geschrieben.

serializers.load_npz(
            "./cgi-bin/paint_x2_unet/models/unet_128_standard", self.cnn_128)

Wann

serializers.load_npz(
            "./cgi-bin/paint_x2_unet/models/unet_512_standard", self.cnn)

Es ist der Teil von. Kopieren Sie das Modell entsprechend

$ pwd
~/PaintsChainer/cgi-bin/paint_x2_unet
$ cp result1/model_final models/unet_128_standard
$ cp result2/model_final models/unet_512_standard

Führen Sie dann server.py aus

$ pwd
~/PaintsChainer/cgi-bin/paint_x2_unet
$ cd ../../
$ python server.py

Sie können PaintChainer anzeigen, indem Sie http: // localhost: 8000 in Ihrem Browser öffnen. Wenn Sie es von einem anderen PC aus sehen möchten, geben Sie die IP des laufenden Hosts an, z. B. "python server.py --host 192.168.1.3".

Was sind die Ergebnisse, die Sie interessieren?

Es gibt kein Urheberrecht bei der Erstellung künstlicher Intelligenz Da dies jedoch farbig ist, hat der Strichzeichnungsteil das Urheberrecht, daher hier das Ergebnis Ich kann es nicht auf die Scheune stellen. .. Ich werde nur einen Teil des Bildschirms zitieren.

Die Farbe der Haare und Augen ist wunderschön bemalt

スクリーンショット 2017-02-18 18.46.12.pngスクリーンショット2017-02-1818.46.19.png 涼宮ハルヒの憂鬱 I 第5話より引用

Uniform スクリーンショット 2017-02-18 18.47.43.pngスクリーンショット2017-02-1818.47.55.png涼宮ハルヒの憂鬱 I 第5話より引用

Auch für Männer スクリーンショット 2017-02-18 18.47.58.pngスクリーンショット2017-02-1818.48.03.png涼宮ハルヒの憂鬱 I 第5話より引用

Aufgabe

Ich habe die Ergebnisse veröffentlicht, die funktioniert haben, aber selbst wenn ich die handgezeichnete Strichzeichnung der Fanillustration eingefügt habe, funktioniert sie überhaupt nicht. Dies kann daran liegen, dass die Strichzeichnungsmethode nicht gut war. Künstliche Intelligenz muss schließlich gute Unterrichtsmaterialien liefern. ..

http://d.hatena.ne.jp/zuruo/20080528/1212143328 スクリーンショット 2017-02-18 18.54.19.png(頭部のリボン部分)

Auch wenn Sie einen Hauch von Farbe geben, was ein Merkmal von PaintChainer ist, malt es nicht sehr gut. Was ist das? Sind die Trainingsdaten schließlich nicht gut?

Hinweis! !! Es wird viel Zeit in Anspruch nehmen!

Ich habe es geschrieben, als könnte ich es schnell versuchen, aber es dauerte 294 Stunden (12 Tage und 6 Stunden!), Bis es ausgeführt wurde. Originalartikel sagt, dass dies nur die erste Stufe ist. ..

Unter der Annahme, dass die Stromrechnung des PCs 200 W beträgt, beträgt die Stromrechnung

200 * (51 + 243) * 0,026 = 1,528,8 Yen

0,026 kann hier geschrieben werden, da die Stromrechnung von TEPCO weil 1 kW / h 26 Yen beträgt beträgt.

Außerdem ist der PC ein selbstgebauter PC mit GTX1080 und kostet etwa 170.000 Yen.

Referenz: Bauen Sie einen Würfel-PC mit GTX 1080 zusammen

Recommended Posts

Lernen Sie neue Daten mit PaintsChainer
Lernen Sie mit TensorFlow Y = 2X verteilte Daten
Lernen Sie Data Science
Datenanalyse mit Python 2
Lerne Zundokokiyoshi mit LSTM
Pandas lernen mit Chemoinfomatik
Daten mit TensorFlow lesen
Scikit-Lernen mit Chemoinfomatik
Datenvisualisierung mit Pandas
Lernen Sie mit Chemo Informatics Matplotlib
Datenmanipulation mit Pandas!
Daten mit Pandas mischen
Datenerweiterung mit openCV
Lernen Sie mit Chemo Informatics NumPy
Daten mit Scipy normieren
DCGAN mit TF Learn
Datenanalyse mit Python
LADEN SIE DATEN mit PyMysql
Lernen Sie Pendulum-v0 mit DDPG
Mit Python erstellte Beispieldaten
Betten Sie Audiodaten in Jupyter ein
Zeichnen Sie Excel-Daten mit matplotlib (1)
Lernen Sie Librosa mit einem Tutorial 1
Extrahieren Sie Twitter-Daten mit CSV
Holen Sie sich Youtube-Daten mit Python
Lernen Sie mit Chainer elliptische Bahnen
Binarisieren Sie Fotodaten mit OpenCV
Zeichnen Sie Excel-Daten mit matplotlib (2)
Verwenden Sie Django, um Tweet-Daten zu speichern
Neue Datenerweiterung? [Grid Mix]
Datenverarbeitungstipps mit Pandas
Lesen von JSON-Daten mit Python
[Aktienkursanalyse] Lernen Sie Pandas mit Nikkei-Durchschnitt (004: Ändern Sie die gelesenen Daten in Nikkei-Durchschnitt)
Praktische Übung zur Datenanalyse mit Python ~ 2016 New Coder Survey Edition ~
Dateningenieure lernen DevOps im Hinblick auf MLOps. ① Erste Schritte
Speichern und laden Sie Daten mit joblib, pickle
DCGAN mit TF Learn
Lernen Sie mit Causal ML Package Meta-Learner
Lernen Sie mit PyTorch Graph Convolutional Networks
[TensorFlow 2] Lernen Sie RNN mit CTC-Verlust
Lass uns mit Selene Deep SEA lernen
Umgang mit unausgeglichenen Daten
[Python] Mit DataReader Wirtschaftsdaten abrufen
Vielseitige Datenerfassung mit Pandas + Matplotlib
Lernen Sie die Kategorisierung von Dokumenten mit spaCy CLI
Python-Datenstruktur mit Chemoinfomatik gelernt
Installieren Sie die Datendatei mit setup.py
Analysieren Sie pcap-Daten mit dem Befehl tshark
Erstellen Sie mit SoX rauschgefüllte Audiodaten
Aufblasen von Daten (Datenerweiterung) mit PyTorch
Visualisieren Sie Ihre Daten ganz einfach mit Python Seaborn.
Generieren Sie gefälschte Tabellendaten mit GAN
Verarbeiten Sie Pubmed .xml-Daten mit Python
Datenanalyse beginnend mit Python (Datenvisualisierung 1)