トップページ -> データベース関連技術 -> GAN の応用例 -> pix2pix による画像のスタイル変換(affinelayer/pix2pix-tensorflow,Python 3.6, TensorFlow 1.15 を使用)
[サイトマップへ], [サイト内検索へ]

pix2pix を動かしてみる

公開されたソフトウエア,データを使い,Windows で pix2pix を動かしてみる. Python, TensorFlow を使う.

手順の要点: Python 3.6, TensorFlow 1.15, Python の仮想環境(Windows では C:\venv\tf115py36)

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

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

参考Webページ: affinelayer/pix2pix-tensorflow のページ, https://github.com/affinelayer/pix2pix-tensorflow

このWebページでは,pix2pix の Python 版が公開されているとともに,次のような 5種類のデータセットが公開されている.

[image]

サイト内の関連ページ


前準備

Python のインストール,pip の更新,Python 開発環境のインストール

Windows の場合

  1. Python のインストール

    Python の URL: http://www.python.org/

    インストール手順の詳細は: 別ページで説明している.

  2. pip と setuptools の更新Python 開発環境(JupyterLab, spyder)のインストール

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

    python -m pip install -U pip setuptools
    python -m pip install -U jupyterlab jupyter jupyter-console jupytext spyder
    

Ubuntu の場合

システム Python を使用(インストール操作は不要)

  1. pip と setuptools の更新Python 開発環境(JupyterLab, spyder)のインストール

    次のコマンドを実行.

    sudo apt -yV install python3-dev python3-pip python3-setuptools
    sudo apt -yV install jupyter-qtconsole jupyter-notebook python3-jupyter-client python3-jupyter-console python3-spyder spyder3
    

Git, cmake のインストール

(NVIDIA GPU を使うとき)NVIDIA グラフィックスボード・ドライバのインストール

GPU とは,グラフィックス・プロセッシング・ユニットの略で、コンピュータグラフィックス関連の機能,乗算や加算の並列処理の機能などがある.

ダウンロードページ

詳細説明

(NVIDIA GPU を使うとき)NVIDIA CUDA ツールキット 10.0 のインストール

CUDA とは,NVIDIA社が提供している GPU 用のプラットフォームである. ダウンロードページ

TensorFlow 2.1 以上の GPU 版での,NVIDIA CUDA のバージョンは 10.1指定されている. TensorFlow 1.15の GPU 版での,NVIDIA CUDA のバージョンは 10.0指定されている. 指定されているバージョンより高いものは使わない. その根拠は次のページ. URL: https://www.tensorflow.org/install/source#common_installation_problems

詳細説明

(NVIDIA GPU を使うとき)NVIDIA cuDNN のインストール

ダウンロードページ

次のページには,TensorFlow 2.1 以上の GPU 版での,cuDNN のバージョンは 7.6.そして,TensorFlow 1.13 以上 TensorFlow 2.0 までの GPU 版での,cuDNN のバージョンは7.4 が指定されている.

URL: https://www.tensorflow.org/install/source#common_installation_problems

詳細説明


隔離された Python 仮想環境の新規作成と,TensorFlow 1.15.3(旧バージョン)のインストール

最新版ではない TensorFlow を使う.そうした場合,運用を簡単にする(バージョン指定のもの間違ってアップデートしないなど)のために,venv を用いて,隔離された Python 仮想環境を作る.

今から作成する隔離された Python 仮想環境の名前と、Pythonのバージョンを決めておく

ここで行う「隔離された Python 仮想環境の新規作成と,TensorFlow 1.15.3(旧バージョン)のインストール」ついては,より詳しくは,次のページで説明している.

Windows の場合

  1. Python 3.6 の準備

    Windows での Python 3.6 の準備は,このページの上の方で説明している.

  2. コマンドプロンプトを実行.
  3. venv を用いて,Python 3.6 が動く隔離された Python 仮想環境を作る.

    下の例では,隔離された Python 仮想環境のためのディレクトリを C:\venv\tf115py36に作成している.

    py -3.6 -m venv C:\venv\tf115py36
    

    [image]
  4. venv の隔離された Python 仮想環境を有効化,TensorFlow 1.15.3 のインストール

    venv を使い,孤立した Python 仮想環境を使っているときは,Windows でも Ubuntu でも同じで,「python -m pip install ...」. いま,venv を使っているかどうかは,プロンプトの「(venv)」で分かる.

    C:\venv\tf115py36\Scripts\activate.bat
    python -m pip install -U pip
    python -m pip install -U tensorflow-gpu==1.15.3 tensorflow_datasets
    

    [image]

    [image]

Ubuntu の場合

  1. Python 3.6 の準備

    Ubuntu での Python 3.6 の準備は,このページの上の方で説明している.

  2. Ubuntu では端末を開く.
  3. venv を用いて,Python 3.6 が動く隔離された Python 仮想環境を作る.

    下の例では,隔離された Python 仮想環境のためのディレクトリを ~/tf115py36に作成している.

    pyenv shell 3.6.10
    python -m venv ~/tf115py36
    

    [image]
  4. venv の隔離された Python 仮想環境を有効化,TensorFlow 1.15.3 のインストール

    venv を使い,孤立した Python 仮想環境を使っているときは,Windows でも Ubuntu でも同じで,「python -m pip install ...」. いま,venv を使っているかどうかは,プロンプトの「(venv)」で分かる.

    source ~/tf115py36/bin/activate
    python -m pip install -U pip
    python -m pip install -U tensorflow-gpu==1.15.3 tensorflow_datasets
    

    [image]

TensorFlow の確認

  1. 隔離された Python 仮想環境有効化
  2. TensorFlow のバージョン確認

    ※ バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.

    python -c "import tensorflow as tf; print( tf.__version__ )"
    

    [image]
  3. (GPU を使うとき) GPU が認識できてるかの確認

    TensorFlow が GPU を認識できているかの確認は,端末で,次を実行して行う.

    python -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
    

    [image]

pix2pixのインストール

謝辞:https://github.com/affinelayer/pix2pix-tensorflow で公開されている著作物を利用している

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

  1. Windows では,コマンドプロンプトを実行.
  2. 隔離された Python 仮想環境有効化

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

  3. ディレクトリ(フォルダ)を空にする操作

    cd C:\venv\tf115py36
    rmdir /s /q pix2pix-tensorflow
    

    [image]
  4. pix2pixのインストール

    git clone https://github.com/affinelayer/pix2pix-tensorflow
    

    [image]
  5. データのダウンロード操作

    affinelayer/pix2pix-tensorflow の Web ページ に記載の通り行う.

    cd C:\venv\tf115py36\pix2pix-tensorflow
    python tools\download-dataset.py facades
    

    [image]
  6. C:\venv\tf115py36\pix2pix-tensorflow\facades の下の train と test にたくさんの画像ファイルがダウンロードされたことを確認する.

    [image]
  7. モデルのトレーニングを行う操作

    ※ これも,affinelayer/pix2pix-tensorflow の Web ページ に記載の通り行う.

    ※ GPU のときは数時間.CPUのときはさらに時間がかかる.

    python pix2pix.py --mode train --output_dir facades_train --max_epochs 100 --input_dir facades\train  --which_direction BtoA
    

    [image]

    BtoA について

    「--which_direction BtoA」と指定したので, 「右側」のような画像をコンピュータに与えたら,「左側」のような画像が生成されるように,モデルのトレーニングを行いなさいという指示になる.

    [image]
  8. 終了の確認

    ※ GPU 版の TensorFlow を使わない場合は,終了まで,かなり待つ.終了したらエラーメッセージが出ていないことを確認する.

    [image]
  9. 学習結果のファイルの確認

    次に,「学習結果の出力先 (--output_dir オプション)」として指定した facades_train に,ファイルができていることを確認する.

    [image]
  10. 確認のため,学習結果を tensorborard で表示

    次の手順で表示してみる

    1. tensorboard の起動

      このとき,起動メッセージに,URLが「http://hoge:6006」のように表示されるので確認する.

      実行手順例

      tensorboard --logdir=facades_train
      

      [image]
    2. Web ブラウザで、先ほどの URL を開く

      [image]
    3. GRAPHS」をクリックして確認する

      [image]

モデルのテスト

※ これも,affinelayer/pix2pix-tensorflow の Web ページ に記載の通り行う.

  1. 画像を準備し,facades\val ディレクトリに置く
  2. 次のコマンドを実行
    python pix2pix.py  --mode test --output_dir facades_test --input_dir facades\val  --checkpoint facades_train
    

    [image]
  3. モデルのテストのプログラムは,それほど時間がかからない.終わったら,エラーメッセージが出ていないことを確認する.

    [image]
  4. 上のコマンドを実行すると,出力先として指定した「facades_test」に ファイルができるので確認する.

    [image]
  5. ここにある index.html ファイルを,Web ブラウザで開くと,簡単に結果が確認できる.

    [image]

本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]