はじめに
実写をアニメ風に変換してくれる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をインストールします。
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を指定する必要がありました。
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フォルダに入力画像があります。
after
お疲れ様でした。
AnimeGANv2
先日、AnimeGANv2が出ました!
AnimeGANv2
— AK (@ak92501) August 7, 2020
github: https://t.co/a74PV1427U pic.twitter.com/lHrlDA1STr
早速、ここからクローンして、上の環境でやってみたところ、
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秒くらいでした。
入力 | 出力 |
---|---|
https://peapix.com/bing/ |
次は動画も処理できるようになっているので、処理したい動画をvideo\inputフォルダに置き、下記を実行してみましょう。「お花見.mp4」の部分を変更してください。結果はvideo\output\Paprikaに出力されます。
python video2anime.py --video video/input/お花見.mp4 --checkpoint_dir checkpoint/generator_Paprika_weight
AnimeGANv2 https://t.co/4fOr8WFxaA https://t.co/AkJ3IKupsB#Python #DeepLearning #機械学習 #AI #OpenCV #tensorflow pic.twitter.com/iQOSXwcyg8
— 藤本賢志(ガチ本)@pixivFANBOXはじめました (@sotongshi) August 13, 2020
フルHDの23秒程度の動画で、GPUで3時間ほどかかりました(;'∀')