ディープラーニングで絵画風の動画をサクッと作れるiOSアプリ「Artisto」

ここ最近の研究ではディープラーニングの高速化が流行っていて、iOSでもデバイス上の演算で実用的なスピードが実現されつつあります。
自分が約一年前にディープラーニングを使って映像作品を作った時はどえらい大変でしたが、今や手のひらの上でできちゃうんですから。進化スピードがムーアの法則どころではない!

数ヶ月前に話題になったのが「Prisma」という写真アプリ。
これは同技術を使ってデバイス上で手軽に絵画風に変換できるもの。
有名ドコロの絵師のスタイルを模倣できます。
やったもんがち早い者勝ち感の強いアプリですね。
アプリの作りもオシャレな仕上がりで、Instagramユーザをターゲットにしているような感じです。

静止画の次は動画

そして、時間の問題だとは思ってましたが、出ました。動画です。
それが「Aristo

実際に使ってみたけど、Prismaより少し画質が荒いかな?と感じるぐらいで、スピードは結構速い。
FPSが低いので多少のカタカタ感はありますが、これもそのうち改善されるでしょう。

それにしてもPrismaとくらべて感じるのは「デザイナー不在感」。
アプリのアイコンがダサすぎる・・。
UIも飾りっけが無くてなんか寂しい。
おそらくその辺もわきまえた会社が別のアプリを出しそうな予感がします。

いずれにせよ、どんどんディープラーニングが日常に浸透してきていてワクワクしますね!

The four painters: A Video Work Created with Deep Learning

the four painters from takuya on Vimeo.

Abstract

Deep Learning is newly emerged Machine Learning technology and it has high quality in image recognition.
With this technology, the computer now can understand artist’s painting style and can imitate it.
This means people can see the ‘scenes’ where the painters were seeing because a work is a scene seen through the painter’s eyes.
This video is trying to reproduce four famous artists’ view in their daily life by imitating their painting style.

続きを読む The four painters: A Video Work Created with Deep Learning

Caffe学習チューニングメモ: batch_size変更の注意点

GPUモードで動かすと、環境によってはout of memoryで怒られる場合がある。
その場合は train_val.prototxt ファイル内の batch_size を小さく変更する事で避けられる。
しかし、TRAINフェーズのbatch_size に合わせて solver.prototxt ファイル内の base_lr も小さくする必要がある。

base_lr: 0.01 * sqrt(X)
X: batch_size / 256

つまり、batch_sizeを64にしたなら、base_lrは:

base_lr = 0.01 * sqrt(64 / 256) = 0.005

闇すぎるよCaffeちゃん!

参考

Deep Learningツール「Caffe」が簡単すぎる件

Deep Learning

最近はChainerとか出てますが、友人のススメでCaffeを使ってみました。

率直にいうと、「なにこれ、簡単すぎる!!」。
とにかく画像を放り込んでCaffeにもぐもぐさせるだけで、チューニングしなくてもそこそこの精度が出る。

ワタクシ、機械学習はツールの使い方を知っているだけで、理論の理解は概要レベルでド素人のミーハーです。
そんなぼくでも出来たんだから、未来は明るい。

インストールが面倒なだけ

コンパイルがね、躓くと泥沼です。
リンカエラー恐怖症になるかと思いました。

~~そんなのいつもやってる事なので、大したことではない。~~

データ集めるのが面倒なだけ

正解データを集めるのがね、面倒です。
どこからどれだけの量を取ってくるか、あるいは取ってこれるのかは、運です。

~~そんなのいつもやってる事なので、大したことではない。~~

チューニングが面倒なだけ

チューニングがね、ハードル高いです。
概要レベルのド素人では分からないので、このへんの資料を穴が空くほど読みましょう。

~~そんなのいつもやってる事なので、大したことではない。~~

計算量のハードルはかなり下がっている

Deep Learningと言えばGoogleさんがゴリゴリやってるイメージですよね。
じゃあ自分もやるためにはGoogle並の計算リソースが必要かといえば、そんなことありません。
ぼくらでも手元のPCですぐに始められます。

まず、nVidiaが提供するCUDAをインストールしておけば、ツールのフラグを立てるだけでGPUを利用できる。
これだけでCPUモードより数倍のスピードが出る。
データセットの量などにもよるけど、お試しニューロンならiMacで一晩寝かせるだけで作れる。

アイデア次第で充分面白いものが作れる

ツールやインフラは手元に揃っているので、あとはアイデア次第。

問題は、「何を分類させるか」だけです。
これはアプリ屋さんの得意分野のはず。

近いうちに、どんどん賢いアプリケーションが増えるでしょう。
スマホのカメラはますます大活躍、というわけだ。

とりあえずデータ集めをがんばろうと思います。