2016年6月4日土曜日

【Deep Learning】白黒写真に自動的に色をつけるツールを実行してみよう

ディープラーニングを用いて、白黒写真に自動的に色をつける技術が確立されたとのこと。
https://www.waseda.jp/culture/archives/news/2016/06/01/2299/

この発表と共に、その成果がgithubで公開されているので、手元のMacOSX El Capitanで動かしてみることにします。
環境がUbuntu14.0.4とありますが、無視してMacOSXでやっちゃいます。
(ほんとはラズパイでやりたかったのですが、ARMだとちょっと問題があってできてないです...)

なお、ライセンスがCreativeCommonsで非商用利用に限るようなので、そのつもりで。

このツールは、Torchをベースにluaで書かれています。
もしかして頑張ればFlashAirで動いたりして...

まずは準備として、libjpegとlibpngをソースから入れておきます。
当然、開発ツールは必須です。
tar zxvf jpegsrc.v8b.tar.gz
$ cd jpeg-8b/
$ ./configure
$ make
$ sudo make install
$ make clean
$ cd ..
tar zxvf libpng-1.6.21.tar.gz
$ cd libpng-1.6.21
$ ./configure
$ make
$ sudo make install
$ cd ..

次はTorchの導入です。動作に必要なluaも一緒に入ります。
インストールの間に、.bashrcにPATHを追加してくれるので、インストール終了後にsourceしてあげましょう。
git clone https://github.com/torch/distro.git ~/torch --recursive
$ cd ~/torch
$ bash install-deps
$ bash install.sh
$ source ~/.bashrc

MacOSXの場合は、.bash_profileに「~/torch/install/bin」へパスを通す設定を自分で追加してsourceしてください。

インストールが終わったら、「th」を実行するとTorchが動くはずです。
$ th

  ______             __   |  Torch7                                         
 /_  __/__  ________/ /   Scientific computing for Lua. 
  / / / _ \/ __/ __/ _ \  |  Type ? for help                                
 /_/  \___/_/  \__/_//_/  https://github.com/torch         
                          http://torch.ch                  
th>


次は、luarocksを使って必要なモジュールの追加です。
$ luarocks install image
$ luarocks install nn
$ luarocks install nngraph

そして、色をつけるツールをインストール。
git clone https://github.com/satoshiiizuka/siggraph2016_colorization.git
$ cd siggraph2016_colorization
$ ./download_model.sh

適当な白黒画像で実践してみましょう。普通に変換できました。
th colorize.lua test.jpg test_color.jpg