トップページ人工知能,実世界DBGAN の応用例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]

【サイト内の関連ページ】

前準備

TensorFlow 1.15 を使う.

(Windows を使う場合のみ)マイクロソフト C++ ビルドツール (Build Tools) のインストール

Visual Studio Community 2019 vesion 16.2, マイクロソフト C++ ビルドツールのインストール(Windows 上)」で説明している.

Python,TensorFlow 1.15 のインストール

すでに TensorFlow 2 を使っている,あるいは使う予定ということがありえる. 単純には,TensorFlow 2 と TensorFlow 1.15 を共存させて Python で使うということはできないが, 少しの手間で,共存できるようになる. そこで,TensorFlow 2 とTensorFlow 1.15 の共存を前提として, TensorFlow 1.15 のインストールを行う.

Python 開発環境のインストール】

Python を使うときは,Python開発環境や Python コンソール(Jupyter Qt ConsolespyderPyCharmPyScripter など)の利用も便利である

Windows, Ubuntu での Python 開発環境(JupyterLab, spyder, nteract)のインストール: 別ページで,インストール手順を説明している.

Windows の場合

Windows でのPython3.6TensorFlow 1.15 のインストール:別ページで説明している.

すでにPython 3.9 あるいは Python 3.8 をインストールしている,あるいは,インストール予定という場合を想定し, あとのトラブルが起きにくい,そして,簡単に運用できるように 「Python 3.6 をインストールし,その上に,TensorFlow 1.15.5 をインストールする」という手順を案内している.

Ubuntu の場合

Ubuntu でのPythonTensorFlow 1.15 のインストール:別ページで案内している.

Ubuntu のシステム Python に影響を与えないように,隔離された Python 3.6 仮想環境の新規作成し,その上にTensorFlow 1.15.5 をインストールするという手順(venv を使用)(Ubuntu 上)を案内している.

Git, cmake のインストール

pix2pixのインストール

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

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

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

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

    cd c:\pytools
    rmdir /s /q pix2pix-tensorflow
    

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

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

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

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

    cd c:\pytools\pix2pix-tensorflow
    python tools\download-dataset.py facades
    

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

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

    ※ これも,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]
  7. 終了の確認

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

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

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

    [image]
  9. 確認のため,学習結果を 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]