とあるデジタルマーケターのBlog

デジタルマーケティングとテクノロジーとアートとエンジニアリングっぽいことをつらつらと

neural artistic styleをUbuntuに構築して自家製Ostagramしようぜって話し

Ostagramとは

AlphaGoのニュースが世界中を駆け回っている中、ひっそりと「Ostagram」というキーワードがBuzzっていた。

 

Googleが公開して話題になったDeep Dreamを発展・改良した様なソフトウェア郡を用い、
イメージ画像へスタイル画像の画風を転換する技術でアート作品を作るというプロジェクトをやっているロシアングループがいて、彼らがプロジェクトをOstagramと呼んでいる。
仕組み自体は畳み込みニューラルネットワークを用いたシンプルなモノ。(追記予定)
具体的な作品事例は下記を参照。

www.boredpanda.com

 ゴッホゲルニカっぽい画風でブラッドピットを描いたらどんな風になるのか?
といった様な事をGPUまたはCPUにやらせている。

 

で、今回はこの画風変換を自前のPCで遊ぶ為に環境構築しようぜって話し。
ちなみに、有料でこの遊びを代行してくれるWebサービスが2つほどあるのを確認してる。
流行ってる間はいい小遣い稼ぎになりそう。

 

neural artistic style

僕が知ってる限り、近い仕組みで画風変換をするプログラムは3つばかしある。
1つは今回紹介するneural artistic styleで、もう1つがchainer-gogh、もう1つがneural style。
neural styleも自分のUbuntuで環境構築済みだけど、他に構築方法紹介してるBlogが既にあったのであえて別なのを紹介。

まずはcudarrayを入れよう

Numpyライブラリで、CUDAベースの処理を行える様にするモノらしい。
試してないけどCUDA入れてなくてCPUでやるわって人でも大丈夫なはず。

GitHub - andersbll/cudarray: CUDA-based NumPy

あ、CUDAをUbuntuに入れる時けっこうハマりポイントあります。
Nouveauを無効化した上でインストールしないとダメです。
ニーズがあればこの話しもまた今度…

Deeppyを入れる

ファイル群を自分のPCのどっかにクローンして下記コード打つだけ。

GitHub - andersbll/deeppy: Deep learning in Python

cd deeppy
python setup.py install

仕上げ

neural_artistic_style

GitHub - andersbll/neural_artistic_style: Neural Artistic Style in Python

を自分のPCのどっかにクローン。
そのフォルダの中に

Pretrained CNNs - MatConvNet

imagenet-vgg-verydeep-19というリンクからimagenet-vgg-verydeep-19.matをダウンロードして入れておく。

入れ終わったら下記コード叩いてOstagram画像を生成しよう。

python neural_artistic_style.py --subject images/tuebingen.jpg --style images/starry_night.jpg

 

自家製例

ピカソゲルニカの画風でブラピを描かせるとどうなるか?

f:id:shinichiarimasu:20160319160700j:plain  f:id:shinichiarimasu:20160319160709j:plain

 

 

 

こうなった。

f:id:shinichiarimasu:20160319161255p:plain