DeepLearningライブラリのChainerを活用して線画イラストに自動着色することのできるツールを作った方がおられるので、試してみました。
試した環境とその準備
- MacBook Pro(ちょっと古いやつ)
- MacOS X El Capitan
- Python3
- OpenCV3
Python3 + OpenCV3をMacOSにインストールするのは、以下のサイトが一番参考になりました。とりあえずHomeBrewを使うのが一番簡便なようです。
最初はMacOSのデフォルトであるPython2.7で頑張ろうかと思ったんですが、いろいろと面倒だしPaintsChainer自体もUpdateかかるのでgit pullするときにいちいち手元修正を反映するのは現実的な運用ではないので。
PaintsChainer自体は、githubからcloneで入手します。インストールとかmakeとかは何もなくて、ローカルの適当なフォルダに置いておくだけです。
git clone https://github.com/pfnet/PaintsChainer.git
おっと、学習済みデータのダウンロードを忘れていました。以下に置いてあるものをcgi-bin/paint_x2_unet/modelsに配置するとのこと。
http://paintschainer.preferred.tech/downloads/
参考になるサイトは以下です。
エイバースの中の人 : MacでPaintsChainerを動かす
DL使った線画自動着色がCPUでも動くようにしました - Itsukaraの日記
今はGPUを無効にするオプションがちゃんと機能しているので、GPUを無効にするためのソース改変は不要です。
あと、Python3を使うのなら、HTTPServer関連の改変も不要です。
使い方
以下のようにしてコマンドラインで画像変換用のローカルWebサーバを立ち上げます。
python3 server.py -g -1
そのあとWebブラウザでhttp://localhost:8000にアクセスすると、以下のような画面が出てきます。
あとはファイル選択で線画をアップロードすれば、自動で着色してくれるという。
使用例
元の線画
自動着色後
なんとなくそれっぽいのが出来てくるという。ちなみに私のMacBook Proだと着色まで30秒ほどかかっています。
以下、注意点とか感想とか。
- 学習済みのモデルデータを使って着色するだけなら、GPUはいらないです。CPUだけで使えます。
- なのでCUDAをインストールする必要はありません。というか、私の持っているMacBook ProはNVIDIAのグラフィックボードじゃないのでCUDA使えないっぽい。
- 線画をヒントにして着色するので、元の画像はイラストとしての情報量が多い方がそれっぽくなります。
- 主線ははっきり目にした方が色塗り分けがくっきりします。
- 線画とはいえ影は入れておく方がそれっぽくなります。影の線は主線よりも薄くするとか、細くするとかするとなお良し。
- ブラウザ上から色指定もできますが、指定すると原色べた塗りのような感じになりやすいのでセンスが問われます。
- 元画像の縦横ピクセルが大きくても、着色後は512ピクセル未満まで縮小されます。解像度が落ちるのは諦めた方が良いです。
- 縦長画像、横長画像でも縮小して着色してくれますが、縦横の比率によってはアスペクト比が崩れることがあるようです。正方形の画像にしておく方が無難です。
あ、ちなみに今回の元画像はiPadでテキトーに描いた奴です。線画用意する方が手間かかるのは仕方ないですね。
絵本の着色に使えれば便利かも、と思ったんですが、自動着色されたものをそのまま使うのは品質的にまだ無理がありますね。画像編集ツールでもうひと手間かけた方が良いと思います。
ではでは。