chainer-fast-neuralstyleでビデオを名画風に変換してみました。
ビデオを名画風に変換するといえば、以下の記事のartistic-videosが有名です。
但し、このartistic-videos、使い方が少し難しいというのもあるのですが、複数イメージから構成されるビデオ(イメージシーケンス)を処理することになるので、やはり処理時間が気になります。
chainer-fast-neuralstyleによるビデオ変換
上記の記事では、時間短縮のため、4フレーム毎にレンダリングしたイメージシーケンス(画像サイズ640×360)を更に画像サイズ320×180にリサイズしてartistic-videosの変換処理の入力画像としていましたが、変換処理が早くなる2枚目以降でも1画像当たりの1分位の時間が掛かっていました。
今回は、以下の記事のchainer-fast-neuralstyleを使って、イメージシーケンスの変換を行ってみました。
chainer-fast-neuralstyleをcloneしたディレクトリ(ここでは、~/github/chainer-fast-neuralstyle)に移動します。
$ cd ~/github/chainer-fast-neuralstyle
chainer-fast-neuralstyleでは、画像サイズ1024×768でも変換時間は約1秒だったので、画像サイズ640×360のまま、変換を行うことにしました。
以下のようなシェルスクリプト(seq_seur.sh)を用意します。
for i in $(seq 40 4 200); do file1=$(printf input\/test%03d.jpg $i);\ file2=$(printf seur\/test%03d.jpg $i);\ python generate.py $file1 -m models/seurat.model -o $file2 -g 0;\ done
inputディレクトリにコピーしたファイル名:test040.jpg,test044.jpg,…,test200.jpg(41枚)を入力ファイルとするため、シェルスクリプトのiが画像ファイルのフレーム番号に、file1がディレクトリとファイル名に対応するようにしています。また、同じくシェルスクリプトのfile2が変換ファイルのディレクトリとファイル名に対応するようにしています。
次に、予め変換ファイルを出力するseurディレクトリを作成しておき、シェルスクリプト(seq_seur.sh)を実行します。
$ mkdir seur $ sh seq_seur.sh
ほぼ1分で、画像サイズ640×360のイメージシーケンス41枚の画風変換が終了しました。
まとめ
chainer-fast-neuralstyleでビデオを名画風に変換してみました。artistic-videosでは、画像サイズ320×180のイメージシーケンス41枚の画風変換に40分以上掛かっていましたが、chainer-fast-neuralstyleでは、画像サイズ640×360のイメージシーケンス41枚の画風変換がほぼ1分で終了しました。