105
114

More than 3 years have passed since last update.

実写をアニメ風に変換してくれるAnimeGANやーる(Windows10、Python3.6)

Last updated at Posted at 2020-05-24

はじめに

実写をアニメ風に変換してくれるAnimeGANをやってみました。

システム環境

  • Windows10(RTX2080 Max-Q、i7-8750H、RAM16GB)
  • Anaconda 2020.02
  • Python 3.6
  • CUDA 9.0

導入

AnimeGANをクローンします。

animegan用の環境を作成します。

$ conda create -n animegan python=3.6
$ conda activate animegan
$ pip install tensorflow-gpu==1.8.0
$ pip install tqdm
$ pip install scipy
$ pip install opencv-python
$ cd AnimeGAN-master

AnimeGAN-masterにdatasetを置きます。

Haoyao-styleの中身をcheckpoint\AnimeGAN_Hayao_lsgan_300_300_1_3_10へコピペします

CUDA 9.0をインストールします。
image.png

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin\cudart64_90.dllをAnimeGAN-masterにコピペします。

下記を実行すると

$ python test.py --checkpoint_dir checkpoint/AnimeGAN_Hayao_lsgan_300_300_1_3_10 --test_dir dataset/test/real --style_name H

エラーが出ました。

return _bootstrap._gcd_import(name[level:], package, level)
ImportError: DLL load failed: 指定されたモジュールが見つかりません。

windows10 への tensorflow インストール(特定のエラー向け)を参考にvc_redist.x64.exeをインストールします。

vgg19_weightにvgg19.npyを置きます

実行するとまたエラーがでました。

tensorflow.python.framework.errors_impl.InternalError: Blas SGEMM launch failed : m=36864, n=128, k=64

TensorFlowで"Blas GEMM launch failed"が出た場合の対処法を参考にすると、GPU1を指定する必要がありました。

image.png

test.pyの9行目のos.environ["CUDA_VISIBLE_DEVICES"] = "0"を"1"に変更し、実行します。

======================End of Report==========================
FLOPs: 7937325
100%|██████████████████████████████████████████████████████████████████████████████████| 22/22 [01:24<00:00,  3.84s/it]
test-time: 84.46189665794373 s
one image test time : 3.839177120815624 s

1枚あたり3.84秒でできました!

before

dataset/test/realフォルダに入力画像があります。
image.png

after

出力結果はresults\Hにあります。
image.png

お疲れ様でした。

AnimeGANv2

先日、AnimeGANv2が出ました!

早速、ここからクローンして、上の環境でやってみたところ、

CUDA9.0
tensorflow-gpu==1.8.0

GPUでは、下記のエラーが出ました。

InternalError (see above for traceback): Blas SGEMM launch failed : m=126720, n=256, k=128
         [[Node: generator/G_MODEL/C/r1/Conv/Conv2D = Conv2D[T=DT_FLOAT, data_format="NHWC", dilations=[1, 1, 1, 1], padding="VALID", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](generator/G_MODEL/C/LeakyRelu/Maximum, generator/G_MODEL/C/r1/Conv/weights/read)]]

環境を下記に変えるとできました。

CUDA10.0、
tensorflow-gpu==1.15.0

dataset\test\HR_photoフォルダを作成し、処理したい画像を置きます。下記を実行してみましょう。

python test.py --checkpoint_dir checkpoint/generator_Hayao_weight --test_dir dataset/test/HR_photo --style_name Paprika/HR_photo

結果はresults\Paprika\HR_photoに出力されます。GPUで9秒、CPUで23秒くらいでした。

入力 出力
ee86f6a50d844ed9918c20c35f4eb727.jpg ee86f6a50d844ed9918c20c35f4eb727.jpg
36f819b9234447d183a52d7bee90d97f.jpg 36f819b9234447d183a52d7bee90d97f.jpg

次は動画も処理できるようになっているので、処理したい動画をvideo\inputフォルダに置き、下記を実行してみましょう。「お花見.mp4」の部分を変更してください。結果はvideo\output\Paprikaに出力されます。

python video2anime.py --video video/input/お花見.mp4 --checkpoint_dir checkpoint/generator_Paprika_weight

フルHDの23秒程度の動画で、GPUで3時間ほどかかりました(;'∀')

105
114
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
105
114