LoginSignup
4
5

More than 3 years have passed since last update.

Ubuntu 20.04 + StyleGAN2 でアニメキャラを生成してみた

Last updated at Posted at 2021-05-16

Ubuntu 20.04 上で StyleGAN2 を動かし、アニメキャラの顔を生成してみました。
なお、学習データの収集やモデルのトレーニングには非常にコストがかかるため、今回は有志による学習済みモデルを使用させていただきました。

StyleGAN2 の公式の GitHub リポジトリは以下
https://github.com/NVlabs/stylegan2

参考

環境

  • Ubuntu 20.04 LTS
  • GPU: GTX GeForce 1080Ti
  • NVIDIA Driver 460.73.01
  • CUDA 10.0
  • cuDNN 7.4.2
  • Python 3.6.9
  • TensorFlow 1.14

NVIDIA Driver インストール

こちらを参考にインストールします。私の環境ではバージョン 460.73.01 でした。

GCC 7 インストール

CUDA 10.0 のインストールに GCC 7 が必要なので入れます(Ubuntu 20.04 のデフォルトは GCC 9)

sudo apt install gcc-7
sudo apt install g++-7

# 優先度を設定
# gcc-7 の方が大きければ数値はなんでもいい
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 50
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100

# バージョン変更できたか確認
gcc --version

CUDA 10.0 インストール

CUDA Toolkit 10.0 Archive で Linux->x86_64->Ubuntu->18.04->deb(network) を選択し、指示に従ってインストールします。最後のインストールコマンドのみ異なります。

  1. Download ボタンから Base Installer をダウンロード
  2. 以下のコマンドでインストール
sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda-10-0 # ここが違う

# 確認
cat /usr/local/cuda/version.txt

cuDNN 7.4.2 インストール

cuDNN Archiveから Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0 を選び、以下の3つをダウンロードします。

  • cuDNN Runtime Library for Ubuntu18.04 (Deb)
  • cuDNN Developer Library for Ubuntu18.04 (Deb)
  • cuDNN Code Samples and User Guide for Ubuntu18.04 (Deb) <-なくても問題はない

次に、ダウンロードしたディレクトリに移動し、以下のコマンドでインストールします。

sudo dpkg -i libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.4.2.24-1+cuda10.0_amd64.deb

こちらを参考にして、動作確認を行います。

# 過去に他のバージョンを入れていた場合
sudo update-alternatives --config libcudnn

# 動作確認
cp -r /usr/src/cudnn_samples_v7/ $HOME
cd  $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN # Test passed! と出れば OK

Python 3.6.9 インストール

各々の方法でインストールしてください。私は pyenv で管理しています。

pyenv install 3.6.9
pyenv versions

TensorFlow 1.14 インストール

pip install tensorflow==1.14
pip install tensorflow-gpu==1.14

Python で以下のコードを実行します。

# バージョン確認
import tensorflow as tf
print(tf.__version__)

# TensorFlow が GPU を認識しているか確認
# device_type: “GPU” と出れば OK
from tensorflow.python.client import device_lib
device_lib.list_local_devices()

StyleGAN2 でサンプルを実行

git clone https://github.com/NVlabs/stylegan2.git
cd stylegan2
/usr/local/cuda/bin/nvcc test_nvcc.cu -o test_nvcc -run
# 以下のように出れば OK
# CPU says hello.
# GPU says hello.

# サンプルの学習済みモデルで画像を生成
python run_generator.py generate-images --network=gdrive:networks/stylegan2-ffhq-config-f.pkl --seeds=6600-6625 --truncation-psi=0.5
オプション 説明
--network .pkl ファイルへのパスを指定する。pretrained_networks.py に追記することでエイリアスを設定できる。
--seeds 乱数で画像の枚数を指定する。乱数が変わると生成される画像も変わる。1-10 だと10枚生成され、10,20,30 などとすると3枚生成される。

このように人間の顔が26枚生成されていれば大丈夫です。(results 内にあります)
seed6600.png

StyleGAN2 でアニメキャラを生成

本題です。
有志の方がモデルを公開しているので、ありがたく使わせていただきます。
Making Anime Faces With StyleGAN
こちらのページにリンクがあります。
https://mega.nz/#!PeIi2ayb!xoRtjTXyXuvgDxSsSMn-cOh-Zux9493zqdxwVMaAzp4
ダウンロードした .pkl ファイルを stylegan2 内に置きます。

python run_generator.py generate-images --network=2020-01-11-skylion-stylegan2-animeportraits-networksnapshot-024664.pkl --seeds=1-9

無事生成できました!(imagemagick で画像をまとめています)
ほとんど違和感がありません。すごい...
out.png

次に、男性キャラを生成してみます。
先程のページANIME FACES → MALE FACES にてモデルをダウンロードできます。
https://mega.nz/#!fMNDkYwS!X-7_nBtsC6P_09CINIJAoVqR3V8Ffbv5On74rVoUbik

run_generator.py のもう一つのコマンドである style-mixing-example を使ってみます。

python run_generator.py style-mixing-example --network=2019-05-03-stylegan-malefaces-02107-069770.pkl --row-seeds=1-5 --col-seeds=1-5

このような画像ができました。こちらも自然な顔が生成できています。
grid.jpg

seeds を変えると顔も変わるので、色々試してみると面白いです。

最後に

こちらでも紹介されていますが、機械学習用にデータをまとめてネットで公開している方もいるようなので、こういったものを使って自分でも学習させてみたいと思いました。
また、Lightweight GAN という個人の PC でも学習可能なものもあるようなので、そちらも試してみようと思います。

4
5
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
4
5