白黒画像に着色してくれるSiggraph2016 Colorizationがすごい


白黒画像を入力すると、着色してカラー画像として出力してくれる素敵なソフト。
オープンソースで、GitHubから入手可能。

概要

Siggraph2016 Colorizationは、早稲田大学の「ディープネットワークを用いた大域特徴と局所特徴の学習による
白黒写真の自動色付け」という研究の成果として、GitHub上に公開されているソフトウェア。
簡単に言うと、白黒画像をあーだこーだしてカラー画像に変換してくれます。
詳細は研究サイトの論文等にも書かれていますが、ディープネットワーク(ディープラーニング)を駆使した処理が行われており、それぞれ「低レベル特徴ネットワーク」「中レベル特徴ネットワーク」「大域特徴ネットワーク」「色付けネットワーク」のそれぞれのネットワークで処理された結果を一つに結合する事によって自然な着色を実現しているとの事。
なんとなく、イメージ出来るような出来ないような・・。
現在、ウェブサービスとしても公開されているようなので、手軽に試してみたい方はサイトから試してみるのもありです。

実際の結果

実際にこのソフトを使用して出力された画像です。
上から「元画像(カラー)」「元画像(グレースケール変換後)」「出力画像」
の3種類です。

元画像(カラー)

元画像(グレースケール変換後)

出力画像

Siggraph2016 Colorizationの実行手順

物は試しで、早速使ってたいという方のための実行手順。
今回は「とりあえず使ってみる」ということで、VirtualBox上のCentOS7で動作させてみました。

Torchのインストール

Siggraph2016 Colorizationの動作には、Torchの導入が必要です。
こいつもGitHub上に公開されているので、クローンしてインストールしましょう。

$ git clone https://github.com/torch/distro.git ~/torch --recursive
$ cd ~/torch; bash install-deps;
$ ./install.sh
$ source ~/.bashrc

入りましたか?

$ th

と入力して、Torchが起動すれば成功です。

起動準備

こちらは、単純に落としてくれば終わりですが、ちょっとした準備が必要です。
まず、任意のディレクトリにクローンして

git clone https://github.com/satoshiiizuka/siggraph2016_colorization.git

クローンしたファイルの中にあるdownload_model.shを実行します。

$ ./download_model.sh

着色に使用するモデルデータの取得ですね。

着色処理の実行

準備が出来たら、早速ためしてみましょう。
入力ファイルはPhotoshop等でグレースケールに変換したファイルでも良いですし、モノクロで撮影した画像でもかまいません。
Siggraph2016をクローンしたディレクトリにSCPなどで入力ファイルを配置し、以下のコマンドを実行。

$ th colorize.lua <input_image> <output_image>
例)
$ th colorize.lua input.jpg out.jpg

ファイルサイズにもよりますが、処理時間は大体10~20秒ほどでしょうか。
何枚か試してみましたが、気持ち悪くなるほどの精度で出力してくれます。
今までPhotoshopで苦労しながら色を付けていたのは何だったのか・・。
人工知能、予想以上でした。