tensorflowを使って画像の合成を行う

tendsorflowで画像の合成みたいなことをやりたい。

fast-style-transfer

fast-style-tranferという、良い感じに画像を合成してくれるようなものがあるので、これを使っていこう。

これなんかすごいですよね。動画でこんなことができてしまうのか。

まあ、今回は画像を合成してみようと思います。

github.com

画像合成の方法

好きな画像を用意して、その画像と用意されたモデルを組み合わせることで合成された画像ができる。用意されたモデルは、githubページのリンクをたどるとこれ。

Fast Style Transfer Models - Google ドライブ 6つモデルがあるから、好きなのを使っていく。 このモデルと、自分が持っている好みの画像を組み合わせて新たな画像を作りたい。

画像を合成する

tensorflowやpythonが入った環境を用意し、そこにfast-style-transferのファイルを入れて実行する。

.
├── README.md
├── docs.md
├── evaluate.py
├── examples
├── setup.sh
├── src
├── style.py
├── transform_video.py

fast-style-transferはこんな感じになっていると思うけど、このevaluate.pyを実行して画像を作っていく。以下のコマンドを叩くとモデルと画像を融合した画像ができるようなのでやってみよう。

python evaluate.py --checkpoint path/to/style/model.ckpt \
  --in-path dir/of/test/imgs/ \
  --out-path dir/for/results/

checkpointの後がモデル、in-pathの後が自分が持っている画像パス、out-pathが出力される画像のパス。

python evaluate.py --checkpoint ./wave.ckpt --in-path ./bulldog.jpg --out-path ./output.jpg

waveというモデルとブルドッグの画像を使ってみるとこんな感じになる。

f:id:utr066:20180911123331j:plain

他のスタイル

他のスタイルを試してみるとこんな感じになった。

la_muse.ckpt

la_muse.ckptというものを使うとこれ。 f:id:utr066:20180911123701j:plain

udnie.ckpt

udnie.ckptを使うとこう。 f:id:utr066:20180911123809j:plain

rain_princess.ckpt

f:id:utr066:20180911124015j:plain

wreck.ckpt

f:id:utr066:20180911124029j:plain

まとめ

この力はすごいな。画像の加工が好きでPhotoshop使っていじったりするけど、こういったものがあるともはやなんというかなんとも言えない気持ちになるよね。