今回は動画や画像を、有名な絵画の画風と似たようは雰囲気の動画や画像に変換するStyle Transfer(画風変換)を実行してみようかと思います
fast style transferという高速な画風変換手法を用いて実行していきます
今回とりあげるfast style transferは、下記の論文で発表されたもので、GANというニューラルネットワークを用いて、ある画像をインプットすると特定の画像の画風に合わせた画像を出力します
https://arxiv.org/pdf/1508.06576.pdf今回はその学習済みのモデルを使用させていただいて、自分の好きな画像に対していろんな画像変換を試してみました
実行方法は興味がない方も、結果がとても面白いので結果だけでも見ていってください
実行環境
私が実行した環境は下記の通りですが、PCについてはこれと同じである必要はありません
- PC
- NVIDIA GeForce 1070
- OS
- Ubuntu 18.04LTS
- 言語
- Python 3.6
- ライブラリ
- git
- ffmpeg
- tensorflow-gpu=2.1.0
- moviepy=1.0.2
- CUDA 10.0
事前準備
NVIDIAドライバ、CUDA、cuDNNのインストール
NVIDIAドライバ、CUDA、cuDNNなどのインストールは下記の記事を参考に行ってください
Anacondaで作業環境を作成
condaで新しい環境をつくってください
$ conda create -n style-transfer tensorflow-gpu=2.1.0
$ source activate style-transfer
$ pip install moviepy==1.0.2
必要なライブラリ・ソフトウェアをインストールしよう
下記のとおりライブラリをインストールします
$ sudo apt-get install git ffmpeg libjpeg-dev
今回使用するfast-style-transferのgitをクローンしてきます
$ git clone https://github.com/lengstrom/fast-style-transfer.git
$ cd fast-style-transfer
必要なディレクトリを作成しておきます
$ mkdir inputs
$ mkdir inputs/images
$ mkdir inputs/movies
$ mkdir results/images
$ mkdir results/movies
$ mkdir checkpoints
下記にあるすべてのckptファイルをダウンロードしてcheckpointsディレクトリに配置してください
変換を行いたい画像はinputs/imagesに、変換を行いたい動画はinputs/moviesに配置してください
私の場合は下記の画像と動画を用いました
style transferを実行しよう
fast-style-transfer/examples/styleにあるstyle画像を見て、どの画風に変換したいか選んでください
以降選んだ画像と同じ名前の入ったckptファイルを用います
画像を変換する方法
まずはinputs/imagesに配置した画像に対して変換する方法です
$ python evaluate.py --checkpoint checkpoints/[選んだstyleのckptファイル名].ckpt \
--in-path inputs/images \
--out-path results/images \
--allow-different-dimensions
いろんな画像に対して、それぞれのstyleを試してみてください!とても面白い結果が得られます
動画を変換する方法
私の場合、gitに記載のある方法だとエラーになったので、別の方法で実行します
まず、下記の処理で動画を画像に切り出しを行います
$ ffmpgeg -i inputs/movies/test.mp4(適宜名前を読み替えてください) --s 0 -t [動画の長さ(秒)] -r 30 -f image2 inputs/images/%06d.jpg
次に切り出した画像にたいして画像変換を行います
$ python evaluate.py --checkpoint checkpoints/[選んだstyleのckptファイル名].ckpt \
--in-path inputs/images \
--out-path results/images \
--allow-different-dimensions
次に変換した画像を動画に変換します
$ ffmpeg -r 30 -i results/images/$06d.jpg results/movies/result.mp4
かわいいネコちゃんが画風になりながら動いています!
最後に
最後までご覧いただきましてありがとうございました!
今後もこういった面白い技術について実際に実行する方法を含めて紹介していければと思います
コメント