趣味で地元史研究をしていてあちこちでスキャンした古い白黒写真を所有しているわけですが、先日ニュースが出て注目していた機械学習を使って白黒写真の色を復元する研究のソースと学習済みモデルがGithubで公開されたので早速試してみました。
早稲田大学理工学術院の石川博教授、飯塚里志研究院助教、シモセラ・エドガー研究院助教らの研究グループは、「ディープネットワークを用いた大域特徴と局所特徴の学習による色付け」の手法を確立したことを発表した。
MdN DESiGN INTERACTIVE
実行環境は Docker コンテナ上の CentOS 7 です。
Plan
- Cコンパイラや make あたりは入っているものとします。
- Torch をコンパイル/インストールする。
- colorize.lua を実行して写真を変換する。
手順
まず torch を入れます。
# git clone https://github.com/torch/distro.git torch --recursive
Cloning into 'torch'...
remote: Counting objects: 918, done.
remote: Total 918 (delta 0), reused 0 (delta 0), pack-reused 918
Receiving objects: 100% (918/918), 138.10 KiB | 0 bytes/s, done.
...
# cd torch/
# bash install-deps
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
...
# ./install.sh
Prefix set to /root/git/torch/install
...
to PATH and LD_LIBRARY_PATH in your /root/.bashrc? (yes/no)
[yes] >>> yes
# source ~/.bashrc
必要なライブラリが足りなくてエラーになる場合は適当に yum
で入れてください。続いて件の論文の実装を導入します。学習済みモデルのダウンロードに 15 分ほどかかります。
# git clone https://github.com/satoshiiizuka/siggraph2016_colorization.git
Cloning into 'siggraph2016_colorization'...
remote: Counting objects: 49, done.
remote: Total 49 (delta 0), reused 0 (delta 0), pack-reused 49
Unpacking objects: 100% (49/49), done.
# cd siggraph2016_colorization/
# ./download_model.sh
Downloading the colorization model (663M)...
--2016-06-01 05:41:11-- http://hi.cs.waseda.ac.jp/~iizuka/data/colornet.t7
Resolving hi.cs.waseda.ac.jp (hi.cs.waseda.ac.jp)... 133.9.187.220
Connecting to hi.cs.waseda.ac.jp (hi.cs.waseda.ac.jp)|133.9.187.220|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 694703608 (663M)
Saving to: 'colornet.t7'
100%[======================================================================================>] 694,703,608 978KB/s in 11m 58s
2016-06-01 05:53:09 (945 KB/s) - 'colornet.t7' saved [694703608/694703608]
Checking integrity (md5sum)...
Download finished successfully! Time to colorize!
最後の "colorize!" のエスケープシーケンスが終わっていないのか以降コンソールが紫色になりますがまぁ無視して。あとは th
コマンドで Lua の処理と画像ファイルを指定して実行できます。
# th colorize.lua ansel_colorado_1941.png out.png
time
で計測して 4 秒程度でした。