【Python】[Jupyter]スヌーピー画像をゴッホ風と葛飾北斎風の画風に変換してみた（Turi Create）

環境メモ
⭐️Mac OS Mojave バージョン10.14
⭐️Anaconda
⭐️Jupyter

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">⚖️機械学習⚖️お勉強中📝<br>💕スヌーピー画像をゴッホ風と葛飾北斎風の画風に変換してみたよぉ😊<a href="https://t.co/z4H58t5nm1">https://t.co/z4H58t5nm1</a><a href="https://twitter.com/hashtag/Python3?src=hash&amp;ref_src=twsrc%5Etfw">#Python3</a> <a href="https://twitter.com/hashtag/Jupyter?src=hash&amp;ref_src=twsrc%5Etfw">#Jupyter</a> <a href="https://twitter.com/hashtag/TuriCreate?src=hash&amp;ref_src=twsrc%5Etfw">#TuriCreate</a> <a href="https://t.co/vW3r4PLN8L">pic.twitter.com/vW3r4PLN8L</a></p>&mdash; non (@nonnonkapibara) <a href="https://twitter.com/nonnonkapibara/status/1241743253193416705?ref_src=twsrc%5Etfw">March 22, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# 環境作成
Anacondaで作成した仮想環境で、Jupyter Notebookをインストールする
（前提として、Anacondaで仮想環境をOpen Terminalを選択し、ターミナルを起動する）

【機械学習】Anacondaのインストール
https://qiita.com/nonkapibara/items/1333a1b1b31259c3dd6c

【機械学習】Jupyter Notebookのインストール
https://qiita.com/nonkapibara/items/64251fb68ebf8cc479af

Python3.7で試しました。
<img width="470" alt="019.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/cbe6f296-f359-2bfd-8929-77f9e43642ae.png">

ターミナルを起動して、Turi Createのインストールをします。
<img width="1101" alt="020.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/0347dfd5-781a-f879-7922-c867e2b0585a.png">

<img width="886" alt="021.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/0fe5c5f7-1508-a381-4fc1-65d9b2f273e3.png">

<img width="571" alt="022.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/71f15daf-1c98-5517-ba88-c65e216c1e95.png">


# 1.Turi Createのインストール

Turi CreateとはAppleが公開している機械学習ライブラリです。

ターミナルから、Turi Createをインストールする

``` 
 pip install -U turicreate
```

# 2.ゴッホと葛飾北斎の画像データを用意する

画風変換する画風画像を用意します。
下記、著作権フリーの画像から、取得してみました。

https://publicdomainq.net/
<img width="800" alt="スクリーンショット 2020-03-22 23.07.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/99c71e5a-316a-1fac-7425-a3fb42742446.png">


ゴッホのデータは、下記から取得
https://publicdomainq.net/vincent-van-gogh-0010138/
<img width="450" alt="スクリーンショット 2020-03-22 23.11.04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/a05aaf11-cf68-a047-6095-f6049b258aec.png">


葛飾北斎風データは、下記から取得
https://publicdomainq.net/katsushika-hokusai-0010810/
<img width="450" alt="スクリーンショット 2020-03-22 23.12.54.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/2954ec70-61a3-386d-1c33-2e411e7d82d8.png">

「picture」フォルダを作成し、その中に、画像データを保存する
<img width="686" alt="スクリーンショット 2020-03-22 23.23.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/6f58d810-4131-fb84-e426-2deb69b90032.png">

※無料名画の画像は他にも、いろいろあります
シカゴ美術館（世界の名画52,000枚を高画質で無料ダウンロードできる）
http://photoshopvip.net/111595


【2020年版】パブリックドメインで無料！世界の名画550万枚をダウンロードできる美術館サイト19個まとめ
http://photoshopvip.net/111868#tip13


# ３.画風変換するスヌーピー画像データを用意する

画風変換するスヌーピー画像を用意します。
画像データを下記サイトからダウンロードします。

Caltech 101
http://www.vision.caltech.edu/Image_Datasets/Caltech101/
<img width="1004" alt="スクリーンショット 2020-03-22 11.47.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/9912abc0-e7c1-cc51-ee26-3fae22d99da7.png">

その中から「snoopy」フォルダの中の画像を使います。
<img width="794" alt="スクリーンショット 2020-03-22 23.30.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/a8f93fe3-34ee-8e26-ef5a-113bffe781c5.png">

「snoopy」フォルダを配置します
<img width="365" alt="スクリーンショット 2020-03-22 23.33.13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/d36d6edc-e208-d6ee-6be2-0a00db804835.png">

# 3.画像データを取り込む
画像データを取り込みます
<img width="662" alt="スクリーンショット 2020-03-22 23.35.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/bc021ebb-4c24-be45-332a-a9802eae2a02.png">

# 4.モデルの学習
学習モデルを作る
<img width="747" alt="スクリーンショット 2020-03-22 23.40.40.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/2f215fe6-76b2-b8c3-d162-91d53fc8fb2d.png">

関数の詳細は、下記サイトTuri Create API　参照
https://apple.github.io/turicreate/docs/api/generated/turicreate.style_transfer.create.html
<img width="893" alt="スクリーンショット 2020-03-22 23.41.45.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/62d415e1-1431-c54b-5c54-ac783f41496e.png">

# 5.モデルの保存
学習したモデルを保存します。
<img width="689" alt="スクリーンショット 2020-03-22 23.42.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/c7fcd411-d5a1-20b3-7630-a3c74f8cd051.png">

# 6.スヌーピーの画像を画風変換する

この画像を使用する
<img width="308" alt="スクリーンショット 2020-03-22 23.43.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/6fc23c06-9257-220f-6371-73d6ad91e079.png">

<img width="751" alt="スクリーンショット 2020-03-22 23.43.29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/4b51e0de-1893-7c3b-8937-e139f14f1aa3.png">
<img width="737" alt="スクリーンショット 2020-03-22 23.44.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/17fe83d8-42a0-64e3-1798-dfd28511230c.png">

# ７.学習したモデルを使って葛飾北斎画風のスヌーピー画像を表示する

葛飾北斎画風のスヌーピー画像のようです。
<img width="704" alt="スクリーンショット 2020-03-22 23.45.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/9d94c331-78e9-83b6-48d1-a8a634314d40.png">

<img width="692" alt="スクリーンショット 2020-03-22 23.46.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/1d61276a-acef-df6d-5329-46924317aa04.png">


# ８.学習したモデルを使ってゴッホ画風のスヌーピー画像を表示する

ゴッホ画風のスヌーピー画像のようです。

<img width="710" alt="スクリーンショット 2020-03-22 23.49.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/09789db8-a5e2-e75f-dc84-d89a5d7b358d.png">

<img width="696" alt="スクリーンショット 2020-03-22 23.49.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93155/601e3b98-e6cb-87fe-c169-f23ffd4adb04.png">