チャイムノート

【機械学習】カメラ写真を漫画風・アニメ風に変換する[CartoonGAN]

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

 

久しぶりに機械学習に触れてみます.

といっても自分で考えてコードを書くことは一切せずに先人たちのものを利用させていただきます.

今回は画風変換の中でも,カメラ写真を漫画やアニメのような画風に変換するCartoonGANで遊んでいきます.

理論的な部分には触れずに,ただ遊んで楽しい!ってなるだけです.

 

使用PCはMacBook Proです.

 

 

CartoonGANについて

先述した通り,CartoonGANはカメラ画像を漫画やアニメのような画風に変換します.

サンプルとして以下の画像が入ってました.

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

左がカメラ写真,右が画風変換後です.

カメラ画像も十分おしゃれですが,変換後も水彩画みたいでかっこいいですね.

これは期待できるぞ!

 

準備

今回はこちらを使用します.

> GitHub - Yijunmaverick/CartoonGAN-Test-Pytorch-Torch: Pytorch and Torch testing code of CartoonGAN [Chen et al., CVPR18]

準備することは3つです.

 

1つ目に,CartoonGANのソースコードをダウンロードします.

リンク先の右上の緑色のボタンからZIPをダウンロードして解凍しても良いし,gitコマンドでも良いです.

gitコマンドでダウンロードするとこうなります.

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

 

2つ目に,必要なライブラリのインストールです.

必要なのはPytorchだけなので以下のコマンドだけでいけます.

>>> pip install torch torchvision

実行するとこうなります.

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

 

3つ目に,学習済みモデルのダウンロードです.

これはシェルスクリプトが用意されているので利用しましょう.

CartoonGANの階層まで移動して,以下のコマンドでシェルスクリプトを実行します.

>>> sh pretrained_model/download_pth.sh

実行するとこうなります.

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

2,3分でダウンロードが完了すると思います.

 

実行

実行はCartoonGANの階層にあるtest.pyを実行します.

>>> python test.py --input_dir (*1) --output_dir (*2) --style (*3) --gpu (*4)

コマンドライン引数がいくつか用意されていますがメインは4つです.

 

(*1)は入力とするカメラ画像のディレクトリを選択します.

test.pyと同じ階層に"input"というフォルダを作ると良いと思います.

変換したいカメラ画像はこのinputに入れましょう.

画像を入れたら入れた分だけやってくれます.

 

(*2)は変換後の画像が出力されるディレクトリを選択します.

同じく"output"というフォルダを作りましょう.

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

 

(*3)はどんな画風にするかを選択します.

学習済みモデルのダウンロード時に4つ分ダウンロードしているので選択肢は以下の4つです.

・Hayao  ・Hosoda  ・Paprika  ・Shinkai

いや,Paprikaって誰ぞ??

Hayaoは宮崎駿,Hosodaは細田守,Shinkaiは新海誠でしょう.

Paprikaさん,有名人だったら申し訳ない.

 

(*4)はgpu番号です.

グラボが入っている人はそれに合わせて数字を選択します.

グラボ使ってない,あるいはグラボとはなんじゃって人は -1 で大丈夫です.

私はMacBook Proなのでグラボなしの -1 です.

 

以上をまとめると,

*1."input"フォルダに入力画像を入れて

*2."output"フォルダに出力して

*3.Hayaoのスタイルで

*4.グラボを使わない

場合の実行コマンドはこうなります.

>>> python test.py --input_dir input --output_dir output --style Hayao --gpu -1

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

警告がでても気にしません!

できれば良いのです!

 

遊ぶ

早速やっていきます.

今回の画像は以下のサイトを利用しました.

> 無料の写真素材はフリー素材のぱくたそ

 

1.コロッセオ 

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

 

2.踊ってる人

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


3.紫陽花と階段

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

とりあえず,3つだけですがHayaoとPaprikaは赤が好きなようです.

逆にShinkaiは青白い感じになるようです.

個人的にはShinkaiが一番好きです.

 

そもそも,漫画風やアニメ風ってどうなるのが正解なんですかね.

領域わけによる抽象化とか?

そこらへんはよく分かりませんが,漫画風やアニメ風と言われればそんな感じはします.

というか,もっと分かりやすそうな画像を選べばよかった.

 

***追記***

他にも分かりやすいやつをやってきました.

スタイルはShinkaiだけやりました.

1.緑の道

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

 

2.海と空

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

 

3.夜の道

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

 

漫画っていうよりアニメっぽい感じになります.

イラスト風でかっこいいです!

 

総括

今回はCartoonGANをやってみました.

やってみて一番驚いたのはめちゃくちゃ軽いことですね.

CPUだけでも10秒くらいでできます.

出力画像の大きさが横452pixになるようにリザイズされるようですが,この早さにはびっくりしました.

 

本当は”君の名は”とか”天気の子”にでてくる風景を試したかったんですが,やられてそうだし,著作権とかありそうなので私は断念しました.

かなりお手軽にできるのでぜひやってみてほしいです.

 

以上!