DeepLearningの力でアニメの世界に行きたい!
皆さん、こんにちは!
すずきです🐢
今日はDeepLearning🧠を使って
アニメの世界⭐️に行ってみようと思います👊
AnimeGANv2とは?
まずは、今回使う技術🤖のお話です!
皆さんは、DeepLearning🧠をご存知ですか?
そうです!AI(広義)技術です!
その中でも、今回はAnimeGANv2を使って
自分の写真🤳や風景の写真🌸をまるでアニメの世界⭐️で撮った写真のかのように加工できます!
ちなみに以下の画像はGithub🐱🐙にあった出力の例です!
このような研究分野を深層生成モデルといい画像加工分野📸をはじめとした様々の分野で使われています!
Colabで試そう!
ここからColaboratoryという無料でPython🐍を簡単に実行できる環境に行ってみましょう!(PC推奨)
ノートブックを新規作成
左上の「ファイル」📁から「ノートブックを新規作成」📔を選択します。この画面が表示されれば環境構築終わりです。
いざコーディング💻
1. まずは変換したい画像をColaboratoryにアップロード⬆️してみましょう。
左のフォルダのマーク📁を選択し、その中の左上にあるアップロードボタンから写真をアップロード⬆️しましょう。
2. まずは三角▷の横にあるテキストボックスに以下のコードを書きます。
from PIL import Image import torch
実際書くとこんな感じになります。
ここでは、Pillow(PIL)という写真を扱うためのライブラリと
PyTorch(torch)というDeepLearning🧠ライブラリをインポートします。
3. 左の「+コード」からコードブロックを追加して以下を書きます。
def crop_center(pil_img, crop_width, crop_height): img_width, img_height = pil_img.size return pil_img.crop(((img_width - crop_width) // 2, (img_height - crop_height) // 2, (img_width + crop_width) // 2, (img_height + crop_height) // 2))
ここでは、画像を切り抜く関数を定義しています。
4. 先ほどアップロードした画像を表示しましょう
img = Image.open('/content/画像の名前.jpeg').convert('RGB') min_wh = min(img.size[0], img.size[1]) img = crop_center(img, min_wh, min_wh).resize((512, 512)) img
注意: img = crop_center(img, min_wh, min_wh).resize((512, 512))
の部分で画像を正四角形にして512x512に変形しています。
注意: 「画像の名前」は自分のアップロードした画像の名前に変更してください
5. DeepLearningモデル🧠🔥をロードします。
model = torch.hub.load('bryandlee/animegan2-pytorch:main', 'generator', pretrained='face_paint_512_v1') face2paint = torch.hub.load( 'bryandlee/animegan2-pytorch:main', 'face2paint', size=512, device="cpu" )
!!!: face_paint_512_v1
の部分はceleba_distill
, face_paint_512_v2
, paprika
に変更できます。お好みのモデルをお使いください
6. アニメ化⭐️します!
out = face2paint(model, img) out
では、実際に変換してみます。
...ちょっと時間かかります。
アニメ化完成です!
最後に
ここまでご覧いただきありがとうございます🙇♂️
ぜひAnimeGANv2遊んでみてください!!