DCGANの例、carpedm20/DCGAN-tensorflow を使い,新しい顔を生成してみる

carpedm20/DCGAN-tensorflow は,GitHub で公開されているソフトウェアで, Age Progression/Regression by Conditional Adversarial Autoencoder (DCGAN) を 実装したもの.

手順の要点: 前準備として,NVIDIA CUDA 10.0, NVIDIA cuDNN 7.6.5, Python 3.7, TensorFlow 1.15.5 等をインストール.

ソフトウェア等の利用条件等は,利用者で確認すること.

謝辞:ソフトウェアの作者に感謝します.

DCGAN (Deep Convolutional Generative Adversarial Networks) の参考文献情報: https://arxiv.org/abs/1511.06434

GitHub の carpedm20/DCGAN-tensorflow の Webページ: https://github.com/carpedm20/DCGAN-tensorflow

前準備

Python 3.7,Git のインストール(Windows 上)

Pythonは,プログラミング言語の1つ. Gitは,分散型のバージョン管理システム.

手順

  1. Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

    次のコマンドを実行

    次のコマンドは,Python ランチャーとPython 3.7Gitをインストールし,Gitパスを通すものである.

    次のコマンドでインストールされるGitは 「git for Windows」と呼ばれるものであり, Git,MinGW などから構成されている.

    winget install --scope machine Python.Launcher
    winget install --scope machine Python.Python.3.7
    winget install --scope machine Git.Git
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\Program Files\Git\cmd\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    

関連する外部ページ

サイト内の関連ページ

関連項目Python, Git バージョン管理システム, Git の利用

TensorFlow 1.15.5, Keras 2.3.1 のインストール

コマンドプロンプト管理者として実行し,次のコマンドを実行

C:\venv\py37\Scripts\activate.bat
python -m pip uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow-intel tensorflow-text tensorflow-estimator tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer scipy pandas matplotlib
# TensorFlow 1.15.5 のため numpy, protobuf の古いバージョンを使用.エラーが出にくいと考えられる numpy 1.16.2, protobuf 3.19.4 を使用
python -m pip install -U numpy==1.16.2 protobuf==3.19.4 tensorflow-gpu==1.15.5 keras==2.3.1 scipy==1.5.4

プログラムのダウンロードと展開(解凍),celebA データセットのダウンロードと展開(解凍)

GitHub の carpedm20/DCGAN-tensorflow の配布サイト(https://github.com/carpedm20/DCGAN-tensorflow)で公開されている プログラムを,ダウンロードし展開(解凍)する.

Windows での手順を下に示す.Ubuntu でも同様の手順になる.

  1. Windows で,コマンドプロンプト管理者として実行
  2. その他 Python パッケージのインストール
    C:\venv\py37\Scripts\activate.bat
    python -m pip install -U numpy==1.16.2 pillow==6.0.0 requests tqdm opencv-python opencv-contrib-python imageio matplotlib moviepy  
    
  3. carpedm20/DCGAN-tensorflow のダウンロード
    cd /d c:%HOMEPATH%
    rmdir /s /q DCGAN-tensorflow
    
    git clone https://github.com/carpedm20/DCGAN-tensorflow
    
  4. celebA データセットのダウンロード
    1. コマンドプロンプトで次のコマンドを実行する.
      mkdir %USERPROFILE%\DCGAN-tensorflow\data
      mkdir %USERPROFILE%\DCGAN-tensorflow\data\celebA
      
      1. Web ブラウザで次の URL を開く

        http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html

      2. Google Drive」をクリック
      3. 画面が変わる。「img」ディレクトリの下の「img_align_celeba.zip」を選んでみる
      4. メニューで「Download」を選ぶ
      5. ダウンロードしたいので,「無視してダウンロード (DOWNLOAD ANYWAY)」をクリック
      6. ダウンロードが始まるので確認する.
      7. ダウンロードしたファイルを展開(解凍)する.

        Windows での展開(解凍)に便利な 7-Zip: 別ページ »で説明

      8. 展開(解凍)してできたディレクトリ img_align_celeba を確認する.

        img_align_celeba の下に、多数の顔画像ファイルがあることを確認する.

      9. 顔画像ファイルを%HOMEPATH%\DCGAN-tensorflow\data\celebA の下に置く

    時間がかかるので待つ.

  5. celebA データセットの確認

    Windows での手順を下に示す.Ubuntu でも同様の手順になる.

    %HOMEPATH%\DCGAN-tensorflowdatacelebA

celebA データセットを使って動かしてみる

Windows での手順を下に示す.Ubuntu でも同様の手順になる.

  1. Windows で,コマンドプロンプトを実行.
  2. celebA データセットを用いて学習

    時間がかかるので待つ.

    C:\venv\py37\Scripts\activate.bat
    cd /d c:%HOMEPATH%\DCGAN-tensorflow
    python main.py --dataset celebA --input_height=108 --train --crop
    
  3. 学習の終了の確認
  4. tensorboard save/summary を使い、中間結果を確認できる

    次のコマンドを実行.

    tensorboard --logdir .
    

    Web ブラウザで http://localhost:6006 を開く

  5. dcgan の機能を動かしてみる
    python main.py --dataset celebA --input_height=108 --crop
    
  6. samples の下に結果があるので確認

MNIST データセットを使って動かしてみる

Windows での手順を下に示す.Ubuntu でも同様の手順になる.

Windows では,コマンドプロンプトを実行.Ubuntu では端末を開く.

Windows の場合

Windows を使用する場合は,次のように操作する.

  1. MNIST データセットを用いて学習

    時間がかかるので待つ.

    python main.py --dataset mnist --input_height=28 --output_height=28 --train
    
  2. 学習の終了の確認
  3. tensorboard save/summary を使い、中間結果を確認できる

    次のコマンドを実行.

    tensorboard --logdir .
    

    Web ブラウザで http://localhost:6006 を開く

  4. dcgan の機能を動かしてみる
    python main.py --dataset mnist --input_height=28 --output_height=28
    
  5. samples の下に結果があるので確認