PaintsChainerやってみた

導入

帯状疱疹にかかってしまい、薬のせいで頭が回らないので雑文でも記しておこうかと思います。

深層学習関連の研究開発で有名なPFN社の方である、たいやまさん(@tai2tanさん)が作成された、PaintsChainerという、深層学習を応用した線画自動色塗りアプリが流行っているそうです。

技術的なことを詳しく知りたい方は、tai2tanさんが書かれている、自動色塗りをどの様に行っているかについての記事「初心者がchainerで線画着色してみた。わりとできた。」が参考になるかと思います。また、PaintsChainerの使い方に関しては、「線画着色webサービスPaintsChainerを公開してみた」に詳しく述べられています。

技術的には、モデルはU-Netをベースにしており、入力のチャネルを1層増やし、ヒントを与えて自動着色が行える様にしているおり、Adversarial Netも連結して訓練したそうです。元画像と線画から着色された画像をDicriminatorで見分ける様に敵対的に学習させたという認識で大丈夫かと思います。

やってみた

今回は、「お絵描きIRADUKAI」さんから画像をお借りして、遊んでみました。


まず、

線画提供 - ひこの様
この画像を入れてみます。


PaintsChainerのホームページは2017/2/1現在、以下の様になっています。
Set sketchの右にあるChoose Fileで線画の画像ファイルを選ぶと、以下の様に自動的に色が塗られた画像が表示されます。その時のアクセス数にも依るかと思いますが、だいたい5秒程度で生成されます。(一体、どれほどのGPUが裏で回されているのかと思うと興奮しますね笑)

ヒントを付け加えたい際は、左の線画を塗っていき、Colorizeを押すとヒントを考慮した上での線画着色が行なえます。
分かりづらいですが、目のところに青い点のヒントを加えたら、綾波レイ顔負けのきれいな青髪の女の子が生成されましたw RGB空間で色を学習してるはずなので、赤、緑、青の原色だと、周辺も関係してしまうほど激しい影響が出てしまうのかもですね。



金髪碧眼にしたかったので、髪に黄色のヒントを細かく打っていったらきれいな金髪になりました。



目が青すぎたので、すこし緑を混ぜてみました。背景に影響が出た際は、背景に対してもヒントを打つことで綺麗にできます。綺麗ですね!

ヒントの与え方が結構コツが入りそうですが、一から塗る場合と比較してかなり手間を省けるので素晴らしいと思います。絵心が無い自分としては、こういう自動化ツールを使ってクリエイティブな気分を味わえるのはとても嬉しいです。

また、学習済みモデル、ソースコードは全てhttps://github.com/pfnet/PaintsChainer にて公開されており、お手持ちのパソコンでも動かすことができるようです。CPUの実行は現状サポートされていない様なので、GPUを持っていない場合ソースコードの改変が必要かと思います。ヒントを与える際、何度も試行錯誤する様に思うので、遅延少なく遊びたい方はお手持ちの環境でやってみても良いのかなと思います。

1 件のコメント :