私的AI研究会 > StarGAN

顔の合成:StarGAN-v2

20231010_000000_001m.jpg

 AI技術「GAN(敵対的生成ネットワーク)」を試してみる。「StarGAN-V2」で特徴操作・顔の合成をおこない顔を変化させる。

※ 最終更新:2023/12/17 

動作環境の準備と設定

事前準備

新しく Python3.8 仮想環境「py38_gan」を構築

  1. ターミナルを起動して現在の環境を確認
    (py38) PS > conda info -e
    ▼「conda info -e」ログ

  2. 仮想環境「py38_gan」を構築
    (py38) PS > conda create -n py38_gan python=3.8
    ▼「conda create -n py38_gan python=3.8」ログ

  3. できた環境にアクティベートして環境確認
    (py38) PS > conda activate py38_gan
    (py38_gan) PS > conda info -e
    ▼「conda activate py38_gan」ログ

新規の仮想環境「py38_gan」にこれまでのプロジェクトに必要なパッケージをインストール

  1. パッケージのインストール
    (py38_gan) PS > cd /anaconda_win/work/
    (py38_gan) PS > pip install -r requirements.txt
    ▼「anaconda_win/work/requirements.txt」設定ファイル
    ▼「pip install -r requirements.txt」ログ

「StarGAN-V2」の導入

  1. オフィシャルサイト から stargan-v2一式をダウンロード
    (py38_gan) PS > cd /anaconda_win/work/
    (py38_gan) PS > git clone https://github.com/clovaai/stargan-v2.git
    ▼「git clone https://github.com/clovaai/stargan-v2.git」ログ

  2. 学習済みモデルのダウンロード
    ・上記の『事前準備』でダウンロードしたファイルを解凍し「work/」フォルダ以降を上書き配置する

  3. 「StarGAN-V2」実行に必要な不足しているパッケージをインストール
    (py38_gan) PS > pip install munch scikit-image ffmpeg
    ▼「pip install munch scikit-image ffmpeg」ログ

StarGAN-V2 の実行

付属サンプル画像を使って実行する

プログラムを改良する

20231010_000000_001m.jpg
  1. 「main.py」をコピーして「main2.py」を作成
  2. プログラム終了後にできた画像ファイルを画面に収まるように縮小表示する
  3. プログラムの終了は画像表示ウインドウにフォーカスがある状態で 'Esc' キーを押す

カスタム画像を変換する

  1. 任意の顔写真を用意して全体に占める顔の割合がサンプル画像と同じ割合になるようトリミングする
  2. 次のコマンドを実行して、さらに細かい回転とトリミングをおこなう
    「--inp_dir」パラメータで指定したフォルダ内の画像を「--out_dir」パラメータで指定したフォルダ内に作成
    (py38_gan) PS > python main.py --mode align --inp_dir assets/representative/custom_1/male --out_dir assets/representative/celeba_hq/ref_test/male
    ▼「python main.py --mode align ... 」ログ
src_ref2_m.jpg

カスタム画像を使って実行する

src_ref_m.jpg

各種実行例

src_ref1_m.jpg

発生したエラーと対処法法

git : 用語 'git' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません

fatal: destination path 'stargan-v2' already exists and is not an empty directory

ModuleNotFoundError: No module named 'munch'

ModuleNotFoundError: No module named 'skimage'

ModuleNotFoundError: No module named 'ffmpeg'

FileNotFoundError: [WinError 3] 指定されたパスが見つかりません。: '{:'

RuntimeError: Error(s) in loading state_dict for Generator: Missing key(s) in state_dict: "hpf.filter"

UnboundLocalError: local variable 'frames' referenced before assignment

TypeError: gaussian() got an unexpected keyword argument 'multichannel'

StarGAN-V2 ここまでのまとめ

Software installation(環境構築)

Datasets and pre-trained networks(データセットと学習済みモデル)

Generating interpolation videos(補間ビデオの生成)

Training networks(学習の実行)

Google Colaboratory で動かす

 

更新履歴

参考資料