LoginSignup
6
3

More than 5 years have passed since last update.

写真をモネ風タッチに変換する(magenta image_stylization)

Posted at

はじめに

tensorflow/magentaに「Style Transfer」というモデルが追加されていたので試してみました。
StyleTransferは、入力した画像を、学習した絵のテイストに変換してくれるモデルです。

変換前後
twitter_acount.jpgstylized-monet_9.png

下記の論文を実装したものとのことです。
A Learned Representation for Artistic Style. Vincent Dumoulin, Jon Shlens, Manjunath Kudlur.

やってみる

それではStyleTransferのREADME通りにやっていきます。

セットアップ

magentaのセットアップはこちらから。
私は、AutomatedInstallで進めています。

インストールしたらsource activate magentaで起動。

学習済みモデルのダウンロード

  • monet
  • varied

の2つの学習済みモデルがあるので、ダウンロードします。

コマンド

terminalで下記のコマンドを実行します。

$ image_stylization_transform \
      --num_styles=<NUMBER_OF_STYLES> \
      --checkpoint=/path/to/model.ckpt \
      --input_image=/path/to/image.jpg \
      --which_styles="[0,1,2,5,14]" \
      --output_dir=/tmp/image_stylization/output \
      --output_basename="stylized"
  • num_stylesには参照するckptがmonetなら10,variedなら32を入力します。(monetは10パターン、variedは32パターンあるとの意味かと思います。)

  • checkpoint,input_imageにはそれぞれのパスを入力。

  • which_stylesはモデルには保存されているStyleの重みを設定したりするものです。
    例えば

which_styles="{0:0.1,1:0.1,2:0.1,3:0.1,4:0.1,5:0.1,6:0.1,7:0.1,8:0.1,9:0.1}"

であれば、monetの10パターンの重みを等しくした画像1枚を作成してくれます。また、

which_styles="[0,1,2,3,4,5,6,7,8,9]"

とすると、それぞれのパターンにつき1つずつの画像を作成してくれます。

コード全体

monetの10パターンすべてについて1つずつ画像を出す場合のコードはこちら。

image_stylization_transform --num_styles=10  --checkpoint=/Users/hoge/Downloads/multistyle-pastiche-generator-monet.ckpt --input_image=/Users/hoge/Downloads/twitter_acount.jpg  --which_styles="[0,1,2,3,4,5,6,7,8,9]" --output_dir=/Users/hoge/Downloads/ --output_basename="stylized-monet"

完成した画像

twitterアカウントの画像をmonet風に変換してみました。

元の画像はこちら
twitter_acount.jpg

変換後の画像はこちら
monet-0
stylized-monet_0.png

monet-1
stylized-monet_1.png

monet-2
stylized-monet_2.png

monet10パターンを均等に
stylized_0_100_1_100_2_100_3_100_4_100_5_100_6_100_7_100_8_100_9_100.png

また、variedという学習済みモデルには、いろいろなアーティストのタッチが入っています。
元の画像から大きく変化するものもあり、面白いですね。

varied-0 Roy Lichtenstein, Bicentennial Print (1975).(?)
stylized_2_0.png

varied-31 Wassily Kandinsky, White Zig Zags (1922).(?)
stylized_varied_31.png

注意点

  • 変換する画像ファイルが大きいと、PCの容量不足で落ちてしまいました。(1.8MB。上の元画像は20KB。)
  • 一度に32枚の画像を作成しようとすると、いつまでたっても返ってきませんでした。15枚ぐらいまでは行けそうでした。

おわりに

活用すると、画像加工アプリなどが作れそうですね。

magentaではアーティストの音楽をもとに、テイストを真似た楽曲の作成もできますが、音楽と比べて画像の方が、よりもとにしたアーティストのテイストがわかりやすいなと感じました。

magenta、どんどんモデルが追加されてて楽しいなぁ。
ありがとうございました。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3