先日の産総研のAIセミナーで、早稲大の飯塚里志先生の「白黒写真の色付け」についての話はめっちゃ面白くて、話の中に紹介された三つのモデルを調べて、使ってみました。
ディープネットワークを用いた大域特徴と局所特徴の学習による白黒写真の自動色付け
一つ目は飯塚先生の研究です。
先生の話により、色付けの難点は
・ セグメンテーションと認識
つまり画像認識
・ 何色
認識された物体はどの色を付けば良い
・ 大域特徴は重要
空、地面など広い範囲の画像特徴
(大域特徴をきちんと学習しないと、広い範囲の色付けは安定しづらいです。)
#####モデル
先生の研究のキーポイントは大域特徴と局所特徴を同時に学習することです。
モデルは複雑に構築されたCNNモデルです。
上の流れは局所特徴の学習で、下は大域特徴の学習です。
最後に二つの特徴を融合して、色付けの結果になります。
学習用の画像はMIT Places Scene Datasetのシーン分類用のデータセットなので、シーン分類と色を同時に学習することもできます。
実際に使ってみよう。
Torchをインストールして、ソースコードをダウンロードすれば、使えます。
画像が大きくなると、メモリエラーの可能性があります。
それでも、メモリは4G以上おすすめです。
実行:th colorize.lua <input_image> [<output_image>]
空、植物はちゃんと色つけましたが、服や特徴なしの背景などの学習はやっぱり難しいですね。
それでもすごいです!
##Learning Representations for Automatic Colorization
二番目はシカゴ大学の研究です。
we train our model to predict per-pixel color histograms
VGGモデルでピクセルごとのハイパーコラムを学習させます。
#####結果
なかなかいい結果だそうですが、実際に使ってみたらはどうなりますか。
まず、Caffeをインストールします。
手順はこちらが参考になります。
本体はpipからインストールできます。
pip install autocolorize
実行:autocolorize *.jpg -o output
CPU onlyの場合は -d cpu
を付けば良いです。
、、、が、メモリエラーで実行できませんでした。(´;ω;`)ウゥゥ
じゃ、VMのメモリを2Gから4Gに変更して、もう一回やってみます。
今回は無事で行けました。
実は、APIとオンラインデモがあるので、インストールしなくても使えます。
続きは後編へ