CartoonGAN을 이용하여 일본 애니메이션 그림 만들기
반응형
GAN(Generative Adversarial Network) 이용하여 실제 사진을 일본 애니메이션의 감독 스타일로 변화시키는 CartoonGAN이라는 모델이 2018년에 소개 되었습니다. 앞에 U-GAT-IT 도 소개 드렸지만 GAN은 이미지를 스타일링 하는 영역에서 많이 활용되는 것 같습니다.


사전 훈련된 모델을 이용하여 테스트를 진행하려고 합니다. 먼저 사전 훈련된 모델 다운로드 후 진행하시기 바랍니다.
모델은 '센과 치히로 행방불명', '하울의 움직이는 성' 등으로 유명한 미야자키 하야오 감독의 애니메이션 스타일과 '시간을 달리는 소녀'의 호소다 마모루 감독의 스타일, '너의 이름은'의 신카이 마코토 감독의 스타일로 변경 할 수 있는 모델입니다. 추가로 Paprika 라는 일본 애니메이션 스타일의 모델도 있습니다.




Github : https://github.com/yunwoong7/CartoonGAN-Test-Pytorch-Torch
Import Packages
import os import torch import torchvision.transforms as transforms import cv2 from utils import plt_imshow from network.Transformer import Transformer
Function
각 모델을 쉽게 테스트 할 수 있도록 Function 으로 만들었습니다.
def make_cartoon(img, size=450, style="Hayao"): model = Transformer() model.load_state_dict(torch.load(os.path.join('pretrained_model', style + '_net_G_float.pth'))) model.eval() print('{} Model loaded!'.format(style)) T = transforms.Compose([ transforms.ToPILImage(), transforms.Resize(img_size, 2), transforms.ToTensor()]) img_input = T(img).unsqueeze(0) img_input = -1 + 2 * img_input img_output = model(img_input) img_output = (img_output.squeeze().detach().numpy() + 1.) / 2. img_output = img_output.transpose([1, 2, 0]) plt_imshow([style], [img_output], figsize=(16, 10))
Load Image
img_size = 450 img_path = 'test_img/test_image.jpg' img = cv2.imread(img_path) plt_imshow(["Original"], [img])

Make Cartoon
미야자키 하야오 감독의 애니메이션 스타일입니다.
make_cartoon(img, size=450, style="Hayao")

호소다 마모루 감독의 애니메이션 스타일입니다.
make_cartoon(img, size=450, style="Hosoda")

신카이 마코토 감독의 애니메이션 스타일입니다.
make_cartoon(img, size=450, style="Shinkai")

마지막으로 Paprika 애니메이션 스타일입니다.
make_cartoon(img, size=450, style="Paprika")

조금 비슷해보이지만 다른 스타일로 잘됩니다. 아래는 추가적으로 다른 이미지에 적용한 예시입니다.
반응형
'Tech & Development > AI' 카테고리의 다른 글
[ Python ] Shape Detection (0) | 2022.11.23 |
---|---|
Train Swin-Object Detection using Custom Data(without mask) (1) | 2022.08.02 |
Object Detection Architecture - 1 or 2 stage detector (0) | 2022.02.16 |
YOLOv5 - Custom Data로 학습하기 (0) | 2022.02.14 |
UGATIT (Selfie2Anime) - 사람을 애니메이션 캐릭터로 만들기 (0) | 2022.02.14 |
댓글
이 글 공유하기
다른 글
-
[ Python ] Shape Detection
[ Python ] Shape Detection
2022.11.23이미지에서 원하는 영역을 찾기 위해 DeepLearning 기반의 모델을 사용하지만, 매우 간단하게 이미지 연산 방법을 통해 영역을 찾을 수도 있습니다. 그 첫번째로 윤곽선의 속성을 이용하여 모양을 검출하는 방법에 대해 알아 보겠습니다. 이미지를 그레이스케일로 변환 노이즈를 줄이기 위한 이미지 블러링 이미지의 이진화 윤곽선 검출 추출된 윤곽선을 기준으로 근사 다각형 검출 Shape 종류 판단 Import packages import cv2 import imutils import matplotlib.pyplot as plt Function declaration Jupyter Notebook 및 Google Colab에서 이미지를 표시할 수 있도록 Function으로 정의 def img_show(title=… -
Train Swin-Object Detection using Custom Data(without mask)
Train Swin-Object Detection using Custom Data(without mask)
2022.08.021. Swin Transformer (Hierarchical Vision Transformer using Shifted Windows) Object Detection은 CNN을 기반으로 다양한 bounding box regression 기법을 연구하는 방향으로 진행해 왔습니다. 그러다 2020년 초반부터 NLP분야에서 사용되던 attention기반의 Transformer를 object detection 에 적용해보려는 시도가 이루어지면서 새로운 object detection모델들이 나오기 시작합니다. DETR 모델을 시작으로 Deforma DETR, ViT 등이 나왔고 성능이 EfficientDet보다 조금씩 나아지면서 Transformer를 CV에 적용하려는 연구가 활발해집니다. 하지만 ViT 모델만 … -
Object Detection Architecture - 1 or 2 stage detector
Object Detection Architecture - 1 or 2 stage detector
2022.02.16Object Detection 방식 중 Sliding Window를 이용하는 방식은 이미지에서 모든 영역을 다양한 크기의 window (differenct scale & ratio)로 탐색하기때문에 매우 비효율적입니다. 이런 비효율성을 개선하기 위해 물체가 있을만한 영역을 빠르게 찾아내는 알고리즘이 Regional Proposal입니다. 즉, regional proposal은 object의 위치를 찾는 localization문제입니다. 대표적으로 Selective search, Edge boxes들이 있습니다. 2-stage detector 먼저 2-stage detector에 대해서 살펴보면, regional proposal과 classification이 순차적으로 이루어지며, 이 뜻은 localiza… -
YOLOv5 - Custom Data로 학습하기
YOLOv5 - Custom Data로 학습하기
2022.02.14Object Detection이란? Classification 과 Localization 이 동시에 수행되는 것을 의미합니다. 즉 이미지에서 찾고자 하는 객체의 위치를 찾아내고 찾은 객체의 인스턴스(사람, 자동차, 동물 등)를 분류하는 일을 의미합니다. Object detection은 현재 수많은 컴퓨터 비전 분야에서 응용되고 있습니다. 사실 Object detection에 대한 연구는 Deep Learning이 유형을 끌기 훨씬 전부터 진행되고 있었습니다. 이전 글에서 소개한 Haar Cascades 를 이용한 얼굴 인식방법이나 HOG, SURF, DPM 등도 Deep Learning을 적용하기 이전 기술입니다. 2014년 이후에는 Object detection에 대한 논문이 쏟아져 나오고 있으며, 상…
댓글을 사용할 수 없습니다.