LoginSignup
19
17

More than 5 years have passed since last update.

江ノ島を描く ~Neural Style~ [TensorFlowでDeep Learning 14]

Last updated at Posted at 2017-01-02

(目次はこちら)

はじめに

Deep Learning / Deep Neural Networksの人気と有用性の高さから、GPUが必須の時代となりました。

AWS EC2のp2インスタンスをよく使いますがやっぱり高い。潤沢にインスタンスの在庫があるわけではなさそうなので、スポットインスタンスも実質使えない。

でも、CPUのインスタンスでは時間がもったいない。なので仕方なく、多くの人がオンデマンドで使っているのかと思います。

クリスマス前から年明けまで1週間PCに全く触れずにいましたが、ふと、スポットインスタンスの価格を見てみると、p2インスタンスだけ、顕著な変化が!安定して安い!($0.25/h)

image.png

これは、p2インスタンスをサービスに使っているのではなく、いろいろと実験的に何かを学習させているということなんでしょう。

せっかくなので、何かをやろうと思い、いまさらですが、Neural Styleを。

Neural Styleとは??

A Neural Algorithm of Artistic Style というタイトルの論文で発表された、画風を置き換えるアルゴリズムで、 CVPR2016 でも、Image Style Transfer Using Convolutional Neural Networks として発表されています。

CNNのパラメータを固定して、入力画像側の値を調整するという面白い発想。

その出力の面白さから、DEEPART.io や、Prisma やら、で使われているようです。

僕の、素朴なアイコンが、アートになります。

Original Output1 Output2 Output3
me.png o74hqwl26eyswgxf.jpeg iwhxczteglnrnudb.jpeg 3njso9avqiohuaw1.jpeg

Neural Style in Tensorflow

Neural StyleのTensorflowでの実装はこちらに。
https://github.com/anishathalye/neural-style

高速化された実装はこちら、
https://github.com/lengstrom/fast-style-transfer
で、CPUでも、数秒で結果が得られるのは素晴らしい。
ですが、事前にstyleの学習が必要(結構時間かかる)なので、前者を使う。

Christian Riese Lassen が描く江ノ島

ラッセンに江ノ島を描いてもらうことにしました。

Original Output1 Output2 Output3
eno_c2.jpg eno2000.jpg eno2_2000.jpg eno3_1000.jpg

波の感じとか、江ノ島の高さの空の感じとかはとても素敵。

styleとの相性があるのだろうか、Output1とOutput2では、元画像で、のっぺりとした部分(空と浜辺)がうまく表現できていない。

カテゴリ認識を目的としたCNNでは微分値がゼロに近い部分では、情報がないものとして扱われるような気がするので、それが影響しているのだろうか。

Claude Monet が描く江ノ島

せっかくなので、モネにも江ノ島を描いてもらうことにしました。

Original Style Output
eno_c2.jpg mone2.jpg eno4_800.jpg

モネだ!
やっぱり、のっぺりとした部分がイマイチ。

あとがき

他にもいろいろと試しましたが、話題性が高いのが非常によくわかる。とても面白い。
今回、のっぺりとした部分に課題があったように、常に想像通りの出力が得られるわけではないので、今後も面白い研究が進んで行くことに期待します。

19
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
17