雨谷の日和

過去19年で2,600を超えるアニメの第1話だけは見続けた僕のお勧めアニメがハズレなはずがない

MacBook Pro + Python3 + OpenCV3でPaintsChainerのローカル版を起動して線画に自動着色する

DeepLearningライブラリのChainerを活用して線画イラストに自動着色することのできるツールを作った方がおられるので、試してみました。

qiita.com

試した環境とその準備

Python3 + OpenCV3をMacOSにインストールするのは、以下のサイトが一番参考になりました。とりあえずHomeBrewを使うのが一番簡便なようです。

www.pyimagesearch.com

最初はMacOSのデフォルトであるPython2.7で頑張ろうかと思ったんですが、いろいろと面倒だしPaintsChainer自体もUpdateかかるのでgit pullするときにいちいち手元修正を反映するのは現実的な運用ではないので。

PaintsChainer自体は、githubからcloneで入手します。インストールとかmakeとかは何もなくて、ローカルの適当なフォルダに置いておくだけです。

github.com

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にアクセスすると、以下のような画面が出てきます。

f:id:amado:20170205014023p:plain

あとはファイル選択で線画をアップロードすれば、自動で着色してくれるという。

使用例

元の線画

f:id:amado:20170205014145p:plain

自動着色後

f:id:amado:20170205014207j:plain

なんとなくそれっぽいのが出来てくるという。ちなみに私のMacBook Proだと着色まで30秒ほどかかっています。

以下、注意点とか感想とか。

  • 学習済みのモデルデータを使って着色するだけなら、GPUはいらないです。CPUだけで使えます。
  • なのでCUDAをインストールする必要はありません。というか、私の持っているMacBook ProNVIDIAのグラフィックボードじゃないのでCUDA使えないっぽい。
  • 線画をヒントにして着色するので、元の画像はイラストとしての情報量が多い方がそれっぽくなります。
  • 主線ははっきり目にした方が色塗り分けがくっきりします。
  • 線画とはいえ影は入れておく方がそれっぽくなります。影の線は主線よりも薄くするとか、細くするとかするとなお良し。
  • ブラウザ上から色指定もできますが、指定すると原色べた塗りのような感じになりやすいのでセンスが問われます。
  • 元画像の縦横ピクセルが大きくても、着色後は512ピクセル未満まで縮小されます。解像度が落ちるのは諦めた方が良いです。
  • 縦長画像、横長画像でも縮小して着色してくれますが、縦横の比率によってはアスペクト比が崩れることがあるようです。正方形の画像にしておく方が無難です。

あ、ちなみに今回の元画像はiPadでテキトーに描いた奴です。線画用意する方が手間かかるのは仕方ないですね。

絵本の着色に使えれば便利かも、と思ったんですが、自動着色されたものをそのまま使うのは品質的にまだ無理がありますね。画像編集ツールでもうひと手間かけた方が良いと思います。

ではでは。