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. ..
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.
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
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
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".
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
涼宮ハルヒの憂鬱 I 第5話より引用
Uniform 涼宮ハルヒの憂鬱 I 第5話より引用
Auch für Männer 涼宮ハルヒの憂鬱 I 第5話より引用
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 (頭部のリボン部分)
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?
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