LoginSignup
0
0

More than 3 years have passed since last update.

Anime2SketchをColaboratoryで試してみた(静止画のみ)

Last updated at Posted at 2021-05-17

はじめに

いまさらですが、ColaboratoryでAnime2Sketchを試してみました。本記事は手っ取り早く試すための備忘録的なもので、理論に関しては触れていません。Colaboratoryを使えることが前提ですので、Colaboratoryの使用方法がわからない場合は、Webの無料のサービスがあるのでそちらを利用してください

res_4096.png

Anime2Sketchとは

Anime2Sketchは、イラストやアニメアート、マンガ用のスケッチ画作成ツールです。
"Adversarial Open Domain Adaption for Sketch-to-Photo Synthesis"をベースにしたアプリケーションとのことでMIT Licenseとしてリリースされています。

準備

Colaboratoryにアクセスし、ノートブックを新規作成
ランタイムをGPUに変更し接続
Xiaoyu XiangさんのGitHubよりプロジェクトをクローン

!git clone https://github.com/Mukosame/Anime2Sketch.git

フォルダの変更

%cd Anime2Sketch

事前学習済みデータがGoogleDriveに公開されているのでgdownでダウンロード

import gdown

url='https://drive.google.com/uc?id=1RILKwUdjjBBngB17JHwhZNBEaW4Mr-Ml'
output='./weights/netG.pth'
gdown.download(url, output, quiet=True)

実行

test.py を参考に作成

from data import get_image_list
from model import create_model
from data import read_img_path, tensor_to_img, save_image

gpu_ids = [0]

model = create_model(gpu_ids)
model.eval()

繰り返す場合は、以下のセルのみ実行
test.pyでは、test_samplesに保存された画像すべてが変換されますが、ここでは指定のファイルのみとしています

load_size = 512

test_path = "test_samples/madoka.jpg"
aus_path = "./res.png"

img,  aus_resize = read_img_path(test_path, load_size)
aus_tensor = model(img)
aus_img = tensor_to_img(aus_tensor)
save_image(aus_img, aus_path, aus_resize)

処理結果は、res.pngとして保存しており、ローカルマシンへのダウンロードや自分のGoogleDriveをマウントしてそこにコピーできます

ハイパーパラメータ

内部処理で、オリジナルの画像のサイズを変換前に512x512に変更し、保存前にもとの画像のサイズに戻しています
変換対象の画像サイズが大きい場合、512x512では結果がぼやけてしまいます、
シャープなエッジが必要な場合、load_size = 512を 768, 1024等に変更してみてください
接続直後では、load_size = 4096まで成功しています

処理結果

例1

オリジナル画像 996x634
girls.jpg

load_size 512
res_512.png

冒頭の画像は、load_size 4096で処理

例2

ジブリ公開画像 totoro029 1920 x 1038
totoro029

load_size 512
totoro029_512.png

load_size 4096
totoro029_4096.png

例3

細かい画像は苦手みたいなので背景がシンプルなもの
ジブリ公開画像 porco028 1920 x 1038
porco028

load_size 512
porco028_512.png

load_size 4096
porco028_4096.png

issue

パイパーパラメータを変更して何度か試しているとCudaのOut Of Memoryが生じます
RuntimeError: CUDA out of memory
その場合は、ランタイムを再起動して、再度cellを実行する必要があります。

Cudaメモリ操作用のなんらかのまじないがあるかもしれません

参考

イラストを線画に変換する「Anime2Sketch」が登場

0
0
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
0
0