StyleGAN2をWindows 10で動かす【Python】

StyleGAN2をWindows 10で動かす【Python】 機械学習

いきなりですが、問題です。
次の画像は、ある有名人をディズニー顔にしたモノです。
一体、誰でしょうか?

さすがに、ちょっと簡単過ぎますね。
では、今度は難しいモノを。

これがわかった人は、かなりの観察力だと思います。
ヒントは、YouTubeもしている女優・モデルです。

それぞれの答えは、本記事の最後に載せておきます。

さて、本題に入りましょう。
上の画像は、「Toonify yourself」により作成しました。
Toonify yourselfは、StyleGAN2という機械学習の技術(アルゴリズム)をベースにしています。

本記事の内容

  • StyleGAN2とは?
  • StyleGAN2のシステム要件
  • StyleGAN2のインストール
  • StyleGAN2の動作確認

それでは、上記に沿って解説していきましょう。

StyleGAN2とは?

StyleGAN2とは、GANの流派の一つです。
StyleGAN2についての詳しい内容は、専門家の説明を見てください。

ここでは、StyleGAN2の将来性と立ち位置について説明していきます。
簡単に言うと、覚える価値のある技術かどうかということです。

現状、GANでは以下の流派が有力です。

  • CycleGAN
  • DCGAN
  • Pix2pix
  • StyleGAN
  • StyleGAN2

ネームバリューで言えば上記の5つでしょう。
他にも、WGAN、CGAN、InfoGANなどもあるようです。

では、挙げた5つの勢力争いを見てみましょう。
勢力争いを見ると言っても、Google Trendを確認するだけです。

この1年間の検索ボリューム(検索されたトレンド)の比較をします。

期間としては、2020年1月中旬から2021年1月中旬となります。

StyleGANは、StyleGAN2にとって代わられたようです。
1年間の合計で見てみてましょう。

緑色と紫色は、StyleGAN一派としましょう。
そうすると、StyleGAN一派は3番目ぐらいの立ち位置ですね。
※DCGANとPix2pixは、DCGAN一派という意見はとりあえず脇へ置いておきます。
※検索ボリュームではなく、あくまでトレンドです。

ここまで比較してきましたが、各流派は敵対(GANだけに)するものではありません。
各流派のGANを一緒に使うこともあります。

ただ、最近のStyleGAN2の伸びは注目すべきと言えるでしょう。

StyleGAN2のシステム要件

この記事では、Windows 10上でStyleGAN2を動かすことに絞ります。
WindowsとLinuxとシステム要件が大きく異なります。

そして、Windows 10で動かす際に注意すべきポイントは以下。

  • GPU/メモリ
  • TensorFlow 1.14.0(GPU版)
  • Visual Studio 2017

それぞれを説明していきます。

GPU/メモリ

「you need an NVIDIA GPU with at least 16 GB of DRAM」

NVIDIA製のGPU必須となります。
そもそも、StyleGAN2(StyleGAN)はNVIDIAが生み出したアルゴリズムです。

また、メモリは最低でも16GB必要ということです。
ちなみに、私の環境は以下となります。

ギリギリセーフということになります。
これ以上なら、余裕で動くでしょう。
これ以下なら、どうなのでしょうか?

TensorFlow 1.14.0(GPU版)

Githubのページでは、PythonのバージョンやCUDAなどについても記載されています。
しかし、それらはTensorFlow 1.14.0(GPU版)に含めることができます。

つまり、TensorFlow 1.14.0(GPU版)がインストールできればOKとなります。
ここが、新しいPCであればあるほど難易度が高くなります。
TensorFlow 1.14.0(GPU版)のインストールには、次の記事を参考にしてください。

TensorFlow 1.14.0(GPU版)のインストールできれば、3分の2までは進んだはずです。
あともう一つのヤマは、Visual Studio 2017ですね。

Visual Studio 2017

すでにVisual Studio 2017がインストール済みなら、それほど問題ではありません。
ただ、新しいPCであれば最新版となるVisual Studio 2019をインストールしていることがあり得ます。

そのような状態に古いVisual Studio 2017をインストールするのは、ちょっと面倒です。
私自身は、そのような面倒な状態でした。

それを当記事で説明すると話が逸れてしまいます。
そのため、ここではその面倒な状態をクリアする方法は割愛します。
需要があれば、また別の記事にしてまとめたいと思います。

とにかく、なんとかしてVisual Studio 2017をインストールしてください。
正確には、以下の「C++によるデスクトップ開発」をインストールします。

さらに言うと、以下の3つが必要なモノです。

これらさえインストールすれば、OKと言えます。

StyleGAN2のインストール

StyleGAN2のインストールは、以下の項目毎に説明していきます。

  • MSVC コンパイラのパス確認
  • StyleGAN2のダウンロード
  • StyleGAN2の設置
  • NVCCの動作確認

それぞれを説明します。

MSVC コンパイラのパス確認

最初に、MSVC コンパイラのパスを確認しておきます。
コマンドプロンプト起動して、「where cl」を入力してください。

c:\>where cl
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.28.29333\bin\Hostx64\x64\cl.exe

上記のように最初のパスが「2017」であることを確認します。
Visual Studio 2017のみインストールしている場合は、何もする必要はありません。

しかし、「2019」もインストールしている場合は、順番には注意します。
なお、システム環境変数の「Path」の値において、パスの順番を変更できます。

StyleGAN2のダウンロード

StyleGAN2のGithubページ
https://github.com/NVlabs/stylegan2

gitコマンドが使える場合は、素直にgitコマンドを使いましょう。
gitコマンドを使わない場合を以下で解説します。

まずは、StyleGAN2のGithubページへアクセス。
「Code」ボタンをクリックして、zipファイルをダウンロードします。

ダウンロードは、すぐに終わります。
変更しなければ「stylegan2-master.zip」というファイル名で保存されているはずです。

StyleGAN2の設置

ダウンロードしたzipファイル(stylegan2-master.zip)を解凍します。

解凍してできたフォルダ名は、「stylegan2」と変更。
この「stylegan2」フォルダは、作業しやすい場所に設置してください。

NVCCの動作確認

NVCCは、NVIDIA CUDA Compilerの略称となります。
これは、TensorFlow 1.14.0(GPU版)のインストールの際に必須です。

そして、StyleGAN2では、NVCCを経由してTensorFlowを利用しています。
そのための動作確認が、NVCCの動作確認と言えます。

NVCCの動作確認は、以下の方法で行います。

まず、コマンドプロンプト(PowerShell)を立ち上げます。
コンソールでコマンドを発行できるなら何でもOK。

「stylegan2」フォルダに移動します。
ここで以下の動作確認用コマンドを実行。

nvcc test_nvcc.cu -o test_nvcc -run

上記を実行して、最後に以下が表示されれば動作確認は成功です。

CPU says hello.
GPU says hello.

なお、途中で警告らしきモノが出ても問題ありません。
とにかく、最後に「hello」と言えば成功です。

もし「hello」と言わずにエラーが出るなら、「MSVC コンパイラのパス確認」を再度確認しましょう。
あとは、StyleGAN2のシステム要件を満たしているかどうかですね。
もちろん、TensorFlow 1.14.0(GPU版)が動作しているのは大前提となります。

以上で、StyleGAN2のインストールは完了です。
次は、StyleGAN2の動作確認を行っていきます。

StyleGAN2の動作確認

StyleGAN2の動作確認を行います。

StyleGAN2では、すでに学習済みのモデルを用意してくれています。
そのモデルを利用して動作確認します。

StyleGAN2の動作確認は、以下の流れで進めていきます。

  • 準備
  • StyleGAN2の動作確認

準備

StyleGAN2の動作確認には、準備が必要です。

  • パッケージのインストール
  • custom_ops.pyの変更

上記を詳しく見ていきます。

パッケージのインストール

以下のパッケージをインストールしておいてください。
すでにインストール済みなら、以下のコマンドは不要です。

pip install Pillow
pip install requests

custom_ops.pyの変更

以下のファイルを変更する必要があります。
「~\stylegan2\dnnlib\tflib\custom_ops.py」

MSVC コンパイラのパスを教えてあげる必要があるということです。

変更前

compiler_bindir_search_path = [
    'C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.14.26428/bin/Hostx64/x64',
    'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64',
    'C:/Program Files (x86)/Microsoft Visual Studio 14.0/vc/bin',
]

変更後

compiler_bindir_search_path = [
    'C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64',
    'C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.28.29333/bin/Hostx64/x64',
]

変更後のパスには、「where cl」コマンドで確認したモノを設定します。
これで準備は整いました。

StyleGAN2の動作確認

「stylegan2」フォルダの直下で、以下のコマンドを実行します。

python run_generator.py style-mixing-example --network=gdrive:networks/stylegan2-ffhq-config-f.pkl --row seeds=85,100,75,458,1500 --col-seeds=55,821,1789,293 --truncation-psi=1.0

最初は、学習済みのモデルをダウンロードします。
そのため、処理には結構時間がかかるでしょう。

ただ、2回目以降は「フォルダ名(ここではstylegan2)-cache」フォルダに保存されたモデルを利用します。
そのため、2回目以降の処理は速くなっています。

処理が成功したかどうかは、「result」フォルダを確認します。
「00000-style-mixing-example」というフォルダの下に、画像がたくさんあれば成功です。

ここまで確認できれば、StyleGAN2の動作確認は完了です。

以上

最後に、冒頭の問に対する回答を載せておきます。

1枚目は、出川哲朗です。
これは、全然楽勝ですね。

2枚目は、本田 翼です。
元画像は、以下のページより拝借しています。
https://www.stardust.co.jp/section1/profile/hondatsubasa.html

変換自体もスゴイのですが、手を消し去っているのがこれまたスゴイ。

なお、ディズニー風顔画像への変換はToonify yourselfのプログラムを利用しています。
あくまで、StyleGAN2はそのベースとなる技術ということです。

タイトルとURLをコピーしました