Help us understand the problem. What is going on with this article?

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

はじめに

実写をアニメ風に変換してくれる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

https://peapix.com/bing/

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

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

https://pixabay.com/videos/id-34091/

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

SatoshiGachiFujimoto
高専で制御を学び、大学でセンシングを学び、次は脳みそ。SLAMに関連したロボット/ドローンやMRの研究開発をしています。
https://www.gachimoto.com
knowledgecommunication-inc
クラウドインテグレーター、AI・VRの分野で様々なソリューションを展開
http://www.knowledgecommunication.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした