チャイムノート

【機械学習】GPUを使って画風変換で遊ぼう[chainer-gogh]

f:id:chime-n:20190521203714j:plain
 

リベンジの時,来たる.

 

この前,chainer-goghで画風変換をやりましたが,CPUだけでは限界がありました.

今回はGPUを使えたので,より綺麗な画風変換を体験しましょう.

 

前回はこちら

 

 

前回のお話

前回の記事では

・インストール方法

ソースコード書き換え

・実行結果

を書きました.

 

私はGPUを有していないので,前回はCPUでやってみました.

でも,CPUだけではなかなかうまくいかずにほんのり画像が浮き出てくるみたいになってしまいました.

例えばこんな感じです. 

f:id:chime-n:20190520223834p:plain

いや,わからんて.

ちなみに,猫の画像に桜の画像の画風変換してます.

 

ここで,サンプルを見ていただこう.

f:id:chime-n:20190520224018p:plain

全然違うじゃん!!

こっちは輪郭がくっきりしてますね.

 

ということで,前回はGPUを持っていないという悲しみの中,記事を書きました.

ただ,今回はGPUを使うことができたので綺麗な画風変換を体験したいです.

 

実行

基本的なことは前回の記事に書いてありますので,使い方とかはそちらをみてください.

今回違うのはGPUを使うところだけです.

コマンドは

>>>  python chainer-gogh.py -m vgg_chainer -i main.png -s sub.png -o output_dir -g 0

 

前回同様,画像の名前は適宜変えてもらうとして,変更点はモデルとGPU番号が変わっただけです.

"vgg_chainer"の部分は"vgg"でもできます.

"vgg"の場合は学習モデルをダウンロードする必要があります.

> ILSVRC-2014 model (VGG team) with 16 weight layers · GitHub

"vgg_chainer"の場合はモデルのダウンロードは必要ありません.

その代わりに実行すると一回目だけダウンロードが行われて時間がかかります.

二回目以降は爆速で読み込みます.

 

結果

二回目で書くことないので,もう結果です.

まず,前回の3つをやってみました.

f:id:chime-n:20190420200943p:plain
                 f:id:chime-n:20190520224805g:plain

 

f:id:chime-n:20190420201131p:plain

                 f:id:chime-n:20190520224837g:plain

 

f:id:chime-n:20190420201246p:plain

                 f:id:chime-n:20190520224951g:plain

とても綺麗!

前回全くできなかった紅葉がすごい良い感じです.

ちなみに,gif形式で載せていますが本来の出力はpngです.

pngを8fpsで150エポック毎に3600エポックまで表示するmp4を作成して,gifに変換しています.)

 

せっかくなので他にもやってみました.

f:id:chime-n:20190520225919p:plain

                 f:id:chime-n:20190520225948g:plain

 

f:id:chime-n:20190521202629j:plain

                 f:id:chime-n:20190521202648g:plain

 

f:id:chime-n:20190521202733j:plain

                 f:id:chime-n:20190521202755g:plain


サンプルに新聞みたいな文字入りのやつがあってかっこよかったので真似してみましたが,やはり良いですね.

ペンギンとハリネズミは学習が進むにつれて浮き出てきておしゃれです.

 

総括

リベンジ成功!

今回はGPUを使って画風変換をやりました.

正直,前回は微妙だなーと思いましたが考えを改めることになりました.

今回の記事を見て,たくさんの人に触れてほしい技術だと思います.

 

最後の一言

機械学習するならGPUは人権装備.

 

以上!