ビデオを名画風に変換するartistic-videosを試してみた(実践編)

torch-artistic-videos-making
ビデオを名画風に変換するartistic-videosを試してみました。


以下の記事で環境構築したartistic-videos(とTorch(torch7-nv))を使用します。

ビデオを名画風に変換するartistic-videosを試してみた(環境構築編)
ビデオを名画風に変換するartistic-videosを試すために環境を構築してみました。artistic-videosは、論文"Artistic style transfer for videos"のTorch実装です。

環境構築編でもREADME.mdの行間を読む必要がありましたが、実践編も同様です。

スポンサーリンク

artistic-videos

前処理

イメージシーケンスとして、testディレクトリにコピーした3桁の連番付きのjpgファイル(in-001.jpg〜in-041.jpg)を使用するものとします。

この場合、makeOptFlow.shの40-41行目の

  file1=$(printf "$filePattern" "$i")
  file2=$(printf "$filePattern" "$j")

  file1=$(printf "%s%03d.jpg" $filePattern $i)
  file2=$(printf "%s%03d.jpg" $filePattern $j)
  echo $file1

に変更します。

なお、2桁の連番ファイル付きのpngファイルを入力する場合、

  file1=$(printf "%s%02d.png" $filePattern $i)
  file2=$(printf "%s%02d.png" $filePattern $j)

に変更します。

次に、makeOptFlow.shでオプティカルフローを計算します。

makeOptFlow.shの使い方は、以下のようになります。

$ ./makeOptFlow.sh <パスとファイル名の連番前まで> <パスとdeepflow>

ここでは、testディレクトリのin-001.jpg〜in-041.jpgを処理するので、<パスとファイル名の連番前まで>にtest/in-を設定し、<パスとdeepflow>にtest/deepflowを設定します。

$ ./makeOptFlow.sh test/in- test/deepflow

上記のコマンドを実行すると、オプティカルフローの計算結果が、test/deepflowディレクトリに出力されます。

変換処理

オプティカルフローの計算が終わると、変換処理を行います。

artistic_video.luaは、example/deepflowディレクトリにオプティカルフローの結果がないと、オプションの設定が面倒なので、元のexampleディレクトリを別の名前に変更し、処理したい連番ファイルとオプティカルフローの結果が出力されているtestディレクトリをexampleディレクトリに変更します。

$ mv example example_orig
$ mv test example

以下のコマンドで、イメージシーケンスを名画風に変換します。

$ th artistic_video.lua \
-content_pattern example/in-%03d.jpg \
-style_image out1/gogh.jpg \
-output_folder out1/ -output_image out.jpg -number_format %03d \
-backend cudnn -cudnn_autotune

artistic_video.luaの使い方は、-content_patternオプションでコンテンツ画像のパスと連番の書式付きのファイル名、-style_imageオプションでスタイル画像、-output_folderオプションで出力ディレクトリ(予めディレクトリを作成しておく必要があります。また、スラッシュ(”/”)が必要です)、-output_imageオプションと-number_formatオプションで出力ファイル名(連番の前に-が追加されるので、上記の設定では、out-001.jpg〜out-041.jpgが出力されます)を指定します。

イメージシーケンスを以下のAdobe Premiere Elementsでビデオに変換して終了です。

まとめ

ビデオを名画風に変換するartistic-videosを試してみました。