今日も窓辺でプログラム

外資系企業勤めのエンジニアが勉強した内容をまとめておくブログ

Neural-style を Windows 10 の bash で動かしてみる

この記事でやること

Windows 10 で bash が使えるようになったということで、試しに neural-style を動かしてみたいと思います。ただの動作報告です。

Neural-styleとは?

下記ブログである程度説明されていますが、A Neural Algorithm of Artistic Style というアルゴリズムが発表されました。
画風を変換するアルゴリズム | Preferred Research

ある写真と画風を与えてあげると、写真をその画風で書かれた絵のように変換してくれるアルゴリズムです。
裏ではニューラルネットの学習が行われています。上で紹介した記事にもchainerを使った実装がありますが、今回はそれとは別の以下の実装を動かしてみます。
GitHub - jcjohnson/neural-style: Torch implementation of neural style algorithm

動かす環境

また、私のマシンの環境はこの通りです。

  • Lenovo X1 Carbon (2014年春に購入したモデル)
  • Windows 10, Anniversary Update 適用済み
  • Bash on Windows で動かしてみます

Bash on Windows はデフォルトではオフになっているので、有効にする方法は下記の記事を参考にしていただければと思います。
Windows 10のbash on Windowsを試す - kkamegawa's weblog

インストール

まずは neural-style が使用しているライブラリを入れていきます。

git

sudo apt-get install git
sudo apt-get install pip3

このように、Windowsでapt-getが普通に動きます。すごい時代ですね。

torch7

Torch | Getting started with Torch
上記サイトの指示通りに、以下のコマンドを実行していきます。

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

ここまで実行したところで th というコマンドでtourchが起動するか試したところ、問題なく起動しました。

loadcaffe

GitHub - szagoruyko/loadcaffe: Load Caffe networks in Torch7
次はこのページ通りにloadcaffeをインストールします。

sudo apt-get install libprotobuf-dev protobuf-compiler
luarocks install loadcaffe

neural-style

そしていよいよ neural-style 本体です。

git clone https://github.com/jcjohnson/neural-style.git ~/neural-style
cd ~/neural-style
sh models/download_models.sh

これでソースコードとモデルがダウンロードされます。

実行してみる

下記のコマンドで実際の処理を実行できます!私のマシンにはGPUが載ってないので、CPUモードで。

th neural_style.lua -style_image <image.jpg> -content_image <image.jpg> -gpu -1

試しにこの猫の画像を、
f:id:kanohk:20160731163034p:plain

この点画のような画風にしてみると、
f:id:kanohk:20160731163006p:plain

こうなりました。
f:id:kanohk:20160731182319p:plain

人の顔は載せられないので猫の画像を載せていますが、人でやると結構面白いです。
ちなみに、私の環境だと、1000回イテレーションを回すのに、大体2時間くらいかかります。