PythonMania

普段はロボットとAIを組み合わせて色々作ってます。Python関係以外も色々投稿していくと思います。

【画像生成】落書きから写真を生成?「gauGAN」を試してみる

f:id:mizuhiki0111:20190501103159j:plain


マウスを使って描いたイラストが、一瞬のうちにリアルな風景写真に変換される技術「gauGAN」が面白そうだったので試してみました。


gauGANは今年の3月に開催されたNVIDIA’s GPU Technology Conference(GTC)にて発表された技術です。



gauGANで検索するとよく出てくる、マウスで描いた部分が写真に変換されるGUIみたいなのは見つからなかった(まだ公開されてない?)
ので、今回は学習済のモデルを使って画像を生成するまでをやってみたいと思います。


githubにコードが上がっています。


github.com




環境

Windows10 64bit
Anaconda
Python : 3.7

①環境の構築

上記のgithubページからhauGANのコードを取得します

git clone https://github.com/NVlabs/SPADE.git

環境作成

conda create -n gauGAN


必要なライブラリのインストール

cd SPADE-master\SPADE-master
pip install -r requirements.txt

ここでエラーが出る場合には、環境に合わせて自分でPytorchをインストールします

conda install torch‑0.4.0‑cp37‑cp37m‑win_amd64.whl

※これでインストールした場合、後から「No Module Named~」のエラーが出ますが

その都度必要なライブラリをインストールしてください



②データセットの取得

※学習済のモデルを使用する場合には必要ないかもしれないです!


githubのREAD MEに沿って、必要なデータセットを準備します。


今回は以下からCOCO-Stuff Datasetというデータセットを取得しました。


github.com


このページから「train2017.zip」と「test2017.zip」をダウンロードし、解凍しておきます。


解凍したらtrain・test両方ともgauGANのSPADE-master\SPADE-master\datasetsフォルダに移動しておきます。





③the Synchronized-BatchNorm-PyTorchの取得


以下から取得します。

github.com


取得したフォルダ(Synchronized-BatchNorm-PyTorch-master)の中身一式(sync_batchnormとか)を


SPADE-master\SPADE-master\models\networkに移動しておきます。



④学習済モデルの取得

以下から取得し、解凍します。

drive.google.com



解凍したcheckpointsフォルダをSPADE-master\SPADE-masterに移動しておきます。



⑤学習済モデルを使って、画像を生成する

以下のようなコマンドで生成することができます

python test.py --name [type]_pretrained --dataset_mode [dataset] --dataroot [path_to_dataset]


今回の場合だと

python test.py --name coco_pretrained --dataset_mode coco --dataroot datasets/coco_stuff


このようなコマンドになります。


生成された画像はresultsフォルダに保存されます。

多少歪んでますが、ちゃんと生成で来てますね!



f:id:mizuhiki0111:20190501111913p:plainf:id:mizuhiki0111:20190501111922p:plain
f:id:mizuhiki0111:20190501111927p:plainf:id:mizuhiki0111:20190501111936p:plain
f:id:mizuhiki0111:20190501111919p:plainf:id:mizuhiki0111:20190501111929p:plain
f:id:mizuhiki0111:20190501111923p:plainf:id:mizuhiki0111:20190501111933p:plain