画風変換アルゴリズムchainer-goghでディープラーニング多重露光してみる

f:id:karaage:20160413001213p:plain:w640

画風変換アルゴリズム chainer-gogh

 少し前に話題になったディープラーニングのフレームワーク「chainer」を使って、画風を変換するアルゴリズム「chainer-gogh」。詳しくは下記サイトを参照下さい。
画風を変換するアルゴリズム

 こりゃ面白そうだと思っていたので、ディープラーニングの勉強のとっかかりにとりあえず試してみることにしました。

chainer-goghセットアップ方法

 chainerのインストールに関しては、以下参照ください。

 以降は、上記のサイトに従いpyenv使ってchainer環境をセットアップできた前提で説明を進めていきます。

 以下コマンドで、仮想環境chainerに切り替え

$ pyenv global anaconda-2.4.0/envs/chainer

 PILライブラリをインストール

$ pip install pil

 chainer-goghをダウンロード(git clone)

$ git clone https://github.com/mattya/chainer-gogh.git

 以下からcaffemodel_url:のリンク先のcaffemodelのネットワークをダウンロードして、上記のchainer-goghフォルダにcaffemodelのファイルを移動します

https://gist.github.com/mavenlin/d802a5849de39225bcc6

 あとは、以下コマンドを実行すればサンプル画像で変換を試せます。

$ cd chainer-gogh
$ python chainer-gogh.py -m nin -i sample_images/cat.png -s sample_images/style_0.png -o output_dir -g -1

サンプルでのディープラーニング多重露光結果

入力画像

 サンプル画像のネコちゃんの写真と抽象画っぽい絵です。
f:id:karaage:20160330000023p:plain:w640

f:id:karaage:20160330000049p:plain:w640

出力結果

 ネコちゃんがそれっぽい画風に変換されていることがわかります。
f:id:karaage:20160330001339p:plain:w640

オリジナルのディープラーニング多重露光結果 その1

入力画像

 いつものフリー画像(ろんすた (id:lonestartx) さんいつもありがとうございます!)とサンプルの抽象画
f:id:karaage:20150430163150j:plain:w640

f:id:karaage:20160330000049p:plain:w640

出力結果

 めっちゃホラーなんですけど
f:id:karaage:20160412232406p:plain:w640

オリジナルのディープラーニング多重露光結果 その2

入力画像

 フリー画像と私の描いた漫画「ネコマン」の一コマ
f:id:karaage:20150430163150j:plain:w640

f:id:karaage:20140517115837j:plain:w640

出力結果

 なんかピカソっぽくなってしまいました
f:id:karaage:20160413000904p:plain:w640

オリジナルのディープラーニング多重露光結果 その3

入力画像

 フリー画像とカラー赤外線写真
f:id:karaage:20150430163150j:plain:w640

f:id:karaage:20160413001133j:plain:w640

出力結果

 なんか不気味な感じになってしまいました
f:id:karaage:20160413001213p:plain:w640

まとめ

 普通にやっても難しい多重露光ですが、ディープラーニング多重露光はそれ以上の難しさでした。なにしろどんな合成結果になるか、やってみないと全然想像ができない。画風として選ぶ画像に関しては、模様のようなパターンを選んだほうが面白い写真になりそうだなとは感じました。デジカメにディープラーニングで多重露光する機能が搭載される日も近いかもしれませんね。

 そして、ディープラーニングこのままだとただ使ってみただけで面白くないので、ここから更にアルゴリズム的にオリジナリティを出していきたいところですが、一体どこから手をつけていいものやら途方にくれております…

関連記事