ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から...

21
ディープラーニングアプリの可能性 自動着色アプリPaintsChainer開発の経験から 米辻 泰山 Preferred Networks, Inc.

Transcript of ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から...

Page 1: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

ディープラーニングアプリの可能性自動着色アプリPaintsChainer開発の経験から

米辻 泰山

Preferred Networks, Inc.

Page 2: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

自己紹介

米辻泰山

東大でロボコンサークルのRoboTechでメカニック

2012年度未踏人材育成プロジェクト ⇒ ノーマルクリエータ

2016年5月半ばにPFN入社

⇒ 一ヶ月後にAmazon Picking Challenge

最近はdeep learningの勉強と称してPaintsChainerを作った

自由なプロジェクトが可能なPFNの環境はすばらしい

Page 3: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

PaintsChainerとは

線画に自動的に着色するwebサービス

Page 4: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

アジアを中心に世界から反響が

10ヶ国語ぐらいで記事に

Page 5: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

Chainerが色塗りツールに。。。

○○ちゃん可愛い♡♡♡ chainerですか?聞きしに勝るクオリティですね……やばい……(;_;)(;_;)もう色塗りいらないやつですね……(;_;)(;_;)

わー、ありがとうございます!

そうです、chainerですよ~。

凄いですよね。色塗り苦手なので重宝してますヽ(・∀・)ノ

とあるtwitter上での会話…

chainerとは:ディープラーニングフレームワークですこちらもオープンソースです色塗りツールではありません(真顔

Page 6: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

PaintsChainerの面白い所

水彩画の様な雰囲気がある

機械的にできると思われていなかった表現

→ ある種の作風がある

ヒントをつけて色の指定ができる

ユーザの思った通りの色がつけられる

思っていなかった意外な結果になる事も

→ 反応が得られる事自体が楽しい

ニューラルネットの入力と出力をユーザに直結しただけ

すごくシンプルプログラムで実現されている

ユーザに対話的で知能的な新しい体験を提供できた

Page 7: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

ちょうど先週アイビスペイントが自動着色導入

PaintsChainerとほぼ同じ仕組み

ペイントアプリ国内トップシェア

AWSのGPUノードを使っているらしい

着色の傾向は結構PaitsChainer似同一モデルではない

アプリケーションの一部となったことで使い勝手は向上

Page 8: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

Pixiv Sketch PaintsChainer

UI

API

Page 9: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

こんなかんじ

Page 10: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

こんなかんじ

Page 11: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

新モデルも選択可能

たんぽぽ(初期) さつき(new)

Page 12: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

つまり

すごーい

たーのしー

Page 13: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

それで

どうやってつくったか

Page 14: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

データセット作り

OpenCVでイラスト画像から線画を抽出

- dilate()して一度線画をつぶしてからabsdiff() で抽出

(同僚が)スクレイピングした60万の画像を事前に処理した

Page 15: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

とりあえず

でぃーぷはよく知らなかったので….

とりあえずコンブデコンブして二乗誤差を目的関数に!!

わからないわかる

肌色:わかる髪の毛の色:わからない服の色:わからない

Page 16: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

カンニングしてみる

元画像のピクセルをランダムに与えるだけで、かなり塗れる!!

線画1ch+ヒント3ch ( 32px )

Page 17: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

Unetはいい(らしい)ぞ

入力側と出力側で対応する圧縮度?の情報をバイパスしてconcat

元の線画の情報を出力に近い層で使えるので線画着色向き??

Page 18: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

ノーヒントでも塗りたい

GANGANいこうぜ!!

アド婆(Adversarial Network)

「あんた、いつまでもセピア色ばっか塗ってんじゃないよ!!」

ニューラルネット

「うっせーーババアああああwfん」

学習崩壊!!

Page 19: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

調教むずい

最初はそもそもGANの符号がミスってた

再構成ロスとGANロスの比率を色々いじったり

ファインチューニングしてみたり。。。

色がついた!!

Page 20: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

解像度2倍!!

同じ構造のU-netで512px版を- 128px版の着色結果を元により高解像度で塗る- 二段目はアド婆なし(時間が掛かるし、不安定になる)

@grapholic_sozai より

Page 21: ディープラーニングアプリの可能性 -自動着色アプリPaintsChainer開発の経験から

まとめ

Chainerつかって遊ぶの楽しいぞ

→ コーディングはそんなに難しくない

アプリケーション応用が急速に広まるチャンス

産業分野だけではなく、クリエイティブ分野も

音楽、ゲーム、アニメ、マンガ etc…