• 검색 결과가 없습니다.

신경망을 사용한 일러스트 자동채색

N/A
N/A
Protected

Academic year: 2022

Share "신경망을 사용한 일러스트 자동채색"

Copied!
40
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

신경망을 사용한 일러스트 자동채색

2019 종합설계

이영섭

2012010922

(2)

2

Index

1. 동기 / 목적 2. 필요이유

3. 관련 프로젝트 및 논문 4. 차이점

5. 구현 내용

6. 시스템 다이어그램 7. UML

8. 최종목표 및 평가 방법 9. 요구사항 및 평가 기준

10. 일정

(3)

1. 동기 / 목적

기존 만화를 컬러로 보고싶다 !

3

- 원피스 1 권 1 화 첫 장

(4)

1. 동기 / 목적

4

+ + =

콤마를 나눠서 보면 각각의

그림 ( 일러스트 ) 이지 않을

까 ?

(5)

5 Black

Magic

만들

것 .... 원하는결과물 !

1. 동기 / 목적

신경망을 사용해 일러스트를

학습시켜 선화를 채색해 보자

(6)

6

- 한국 웹툰 산업에서 신경망을 사용해 채색을 하려는 연구가 일어나고 있다 .

- 네이버웹툰이 ' 웹툰 인공지능 (AI)' 으로 하려는 일 들 “딥러닝으로 웹툰 생태계를 더 단단하게 만들겠다”

- 세계 최초로 웹툰 에 딥러닝을 적용한 사례 네이버웹툰 x 하일권

2. 필요이유

(7)

7

2. 필요이유

- 미디어 산업에서 프로젝트 초기에 만드는 콘티의 간단한 컬러화를 통해 디자이너와 의사소통을 도운다 .

- "웅진코웨이 정수기 컬러콘티 ", 콘티그라피

- "인랑 콘티 ", 오키우라 히로유키 ( 沖浦啓之 )

(8)

3. 관련 프로젝트 및 논문

Papers

- Lvmin Zhang, Yi Ji, Xin Lin. Style Transfer for Anime Sketches with Enhanced Residual U-net and Auxiliary Classifier GAN (2017)

- 김성민 . Consistent Comic Colorization with Pixel-wise Background Classification (2017)

- Paulina Hensman, Kiyoharu Aizawa. cGAN-based Manga Colorization Using a Single Training Image (2017)

- 저자 . 제목 . ( 년도 )

8

(9)

9

Papers

- Ceyda Cinarel, Byoung-Tak Zhang. Into the Colorful World of Webtoons: Through the Lens of Neural Networks (2017)

- Ceyda Cinarel. Automatic Colorization of Webtoons Using Deep Convolutional Neural Networks 딥컨볼루션을 이용한 웹툰 자동 채색 (2018)

- 홍준표 , 김형호 , 김동이 , 황원준 . GAN 과 Edge Detector 를 사용한 Webtoon 자동 채색 기법 (2018)

- Yuanzheng Ci, Xinzhu Ma, Zhihui Wang, Haojie Li, Zhongxuan Luo. User-Guided Deep Anime Line Art Colorization with Conditional Adversarial Networks (2018)

3. 관련 프로젝트 및 논문

- 저자 . 제목 . ( 년도 )

(10)

10

Project from Github

- taizan. PaintsChainer

- github.com/taizan/PaintsChainer/

- Pixiv 에서 "pixiv sketch" 어플로 상용화 됨

- Kvfrans. deepcolor

- github.com/kvfrans/deepcolor

- lllyasviel. style2paints (v 1,2,3,4)

- github.com/lllyasviel/style2paints

3. 관련 프로젝트 및 논문

(11)

11 - Style Transfer for Anime Sketches with Enhanced Residual U-net and Auxiliary Classifier GAN

채색을 위한 힌트 데이터가 충분하지 않아 VGG19 네트워 크를 사용 , 데이터를 1x1x 4096 사이즈의 벡터 데이터 로 만들어 힌트로 사용

- Generates 구조 , style2paints 의 초기모델

3. 관련 프로젝트 및 논문

적대적 네트워크 (Discriminator) 를 사용해 실제 일러스트와 생성된 이미지의 유사도를 평가하는 방식으로 네트워크를 학습

- 생석적 적대적 네트워크 (GAN) 학습 구조

(12)

12

- Consistent Comic Colorization with Pixel-wise Background Classification

- 256x256 선화를 입력 각각의 신경망 a, b 를 통해 32x32x3 이미지 , 256x256 흑백 배경 이미지를 만들어 합쳐 신경망 c 을 통해 채색을 진행 - GAN 방식의 학습을 하지 않고 Unet 을 사용하지 않음

- 네트워크 구조

3. 관련 프로젝트 및 논문

(13)

13

- User-Guided Deep Anime Line Art Colorization with Conditional Adversarial Networks

- 네트워크 구조

- 네트워크 초기 단계에 선화의 특징을 추출하기 위해 지역 특징 네트워크 (Local Feature Net) 를 추가 - cGAN(Conditional GAN) 방식을 사용해 학습 시킬 때 Discriminator 의 conditional 입력으로 LFN 의

결과를 사용

- 네트워크 모델의 용량을 더욱 증가시키기 위해 ResNet 대신 복수의 ResNext 을 사용 - Loss 계산을 위해 VGG16 네트워크 사용

- 결과 좌 : inputs 선화 및 힌트 , 우 : 생성된 이미지

3. 관련 프로젝트 및 논문

(14)

14

NO TITLE

C1 Style Transfer for Anime Sketches with Enhanced Residual U-net and Auxiliary Classifier GAN

C2 GAN

과 Edge Detector 를 사용한 Webtoon 자동 채색 기법

C3 Automatic Colorization of Webtoons Using Deep Convolutional Neural Networks C4 Into the Colorful World of Webtoons: Through the Lens of Neural Networks C5 Consistent Comic Colorization with Pixel-wise Background Classification C6 cGAN-based Manga Colorization Using a Single Training Image

C7 User-Guided Deep Anime Line Art Colorization with Conditional Adversarial Networks

G1 PaintsChainer G2 deepcolor G3 style2paints

4. 차이점

(15)

15

C1, C2

- 입력하는 일러스트의 스타일을 변경하는 방식 - 원하는 색을 선택할 수 없음

C3, C4, C5, C6

- 선화를 완전 자동으로 채색 - 원하는 색을 선택할 수 없음

- C3, C4, C5의 경우 출력 해상도가 256x256px

- C6의 경우 학습 데이터로 컬러로 된 만화 이미지가 필요

C7

- 성능 향상을 위해 지역 특징 네트워크 (Local Features Network) 사용 - 많은 네트워크를 사용하여 메모리 사용량이 많음

4. 차이점

(16)

16

G1 : PaintsChainer

- Chainer framework 사용 - 컬러 포맷으로 YUV 를 사용 - 생성자모델 구조가 다름

G2 : deepcolor

- 작은 네트워크를 사용

- 최대 사이즈가 256x256px

- 원본 이미지 random crop 후 블러를 사용해 학습 시 힌트 데이터를 생성

G3 : style2paints

- Keras 사용 (backend 는 tensorflow) - 스타일 변형 + 사용자 힌트 방식을 같이 사용 - 많은 네트워크를 사용하여 메모리 사용량이 많음

4. 차이점

(17)

17

4. 차이점

내용 C1 C2 C3 C4 C5 C6 C7 G

1 G2 G3

본 과제

스타일 변형 O O X X X X X X X O X

사용자 힌트

(

색 선택 ) X X X X X X O O O O O

출력 해상도 (px) 256 256 256 256 256 512 512 512 256(MAX 512) 512 512(MAX 1024) 메모리 사용량

(

모델 용량 ) L S ? ? ? ? XL M S XL M

(18)

● 개발환경

● 데이터 수집 및 처리

● 학습 모델 생성

○ Draft model ( 초안모델 )

○ Discriminator ( 분류자 )

○ 512 Model

○ Upscaling model

18

5. 구현 내용

● 모델 학습

○ Data Input Pipeline

○ 초안모델 적대적 학습 (GAN Training)

○ 512 모델 학습

● 모델 테스트

● GUI Program

○ Pyqt

(19)

19 OS Ubuntu 18.04.2 LTS x86_64

Kernel 4.15.0-46-generic

CPU AMD Ryzen 7 2700X (16) @ 3.7GHz GPU NVIDIA GeForce RTX 2080

RAM 32GB

사용언어 Python 3

Tensorflow 1.12.0 ~ 1.13.1 CUDA 10 (cuDNN: 7.4.2.24) Numpy 1.15.2

OpenCV 3.4.3

5. 구현 내용 . 개발환경

(20)

20

5. 구현 내용 . 데이터 수집 및 처

- 약 100 만개 정도의 일러스트 이미지 크롤링

- OpenCV 를 사용해 흑백 , 하이키 , 로우키 를 필터링

-

극단적인 이미지는 모델 학습에 좋지 못한 영향을 끼칠 수 있다고 생각해서 노이즈로 분류

- 512x512 px 로 리사이징

- 학습 시간을 단축시키기 위해 미리 리사이징

- Low key Image - high key Image

(21)

21

- TensorFlow 사용 (1.12.0 ~ 1.13.1 version)

- 사용자가 가장 많고 자료가 풍부함

- 즉시실행모드(Eager Execution) 출시후 학습 및 디버깅 용이함 - 지원 플랫폼 , 언어가 다양함

- tf.keras 모듈을 사용해 네트워크 제작

- 모델 구현 간편함

- 기존 tf.layers 모듈이 사라질 예정

5. 구현 내용 . 학습 모델 생성

(22)

22

- 데이터 형태를 유지하면서 학습을 진행하는데

효과가 좋은 Unet 을 사용

- 네트워크 용량을 늘리고 망 깊이를 늘려 특징을 잡기 위해 BN(BatchNormalization) 대신

ResBlock을 사용

- 마지막 레이어에서 활성화 함수로 하이퍼볼릭 탄젠트 (Than) 을 사용해 -1~1 사이의 값으로 출력

- fully residual U-net 구조 - ResBlock 구조

5. 구현 내용 . 학습 모델 생성 . Draft

model

(23)

23

- DCGAN에서 제안한 분류자 구조를 사용

- Pooling 대신 strider 2 CNN 을 사용해 사이즈를 줄임

- 처음과 마지막 레이어에서는 BatchNormalzation 을 사용하지 않음

5. 구현 내용 . 학습 모델 생

성 . Discriminator

(24)

- 512px 생성

24

5. 구현 내용 . 학습 모델 생성

- 512 Model은 Draft model( 초안 모델 ) 에서 Resblock 대신 BN 을 사용

- Upscling Model은 VGG7 형식의 구조를 가지고 CNN 블럭을 7 개 사용

- VGG7 구조의 Upscaling Model

(25)

25 NN Model Input Shape Output Shape

Draft Model

Line:

128x128x1

128x128x3 Hint:

128x128x3 Discriminato

r 128x128x3 1

Model

Line:

512x512x1

512x512x3 Draft:

512x512x1 Upscaling

Model ? x ? x 3 ? x ? x 3

5. 구현 내용

- 생성 모델의 이미지 생성 과정 다이어그램

(26)

5. 구현 내용 . 모델 학습 . Data Input Pipeline

26

- 데이터 증식 (data augmentation)

- 데이터 좌우상하 Random Flip

- 선화 데이터에 노이즈를 추가해서 모델 안정성을 높임

- 데이터 전처리

- 학습 모델에 맞게 리사이즈 128x128 or 512x512(512 는 학습전에 리사이즈 )

- 데이터 정규화 0~255(uint8) 사이의 픽셀 값을 -1~1 (float32) 사이의 값으로 정규화

- 무작위 픽셀 유출

- 학습 시 힌트로 실제 컬러 이미지의 픽셀을 무작위로 유출 (leak)

- 무작위 픽셀 유출 예시 (Random pixel leak)

(4x4 해상도에서 5 회 실행을 가정 )

(27)

27

- 생성적 적대적 네트워크 (Generative Adversarial Networks)

- 초안 모델 와 Discriminator 를 적대적으로 학습 - 두 모델의 경쟁을 통해 성능 향상

hint 초안모델

Discriminato r

분류자 진짜

가짜

진짜 ?!

가짜 ?!

- 서로 적대적으로 동작하여

- 생성자 ( 초안 모델 ) 가 더욱 진짜 같은 가짜 이미지를 생성하도록

line

5. 구현 내용 . 모델 학습 . 초안모델 적대적

학습

(28)

28

5. 구현 내용 . 모델 학습 . 초안모델 적대적

학습

- 적대적 학습을 위한 오차 함수

- 분류자를 위한 Dis loss - 초안모델을 위한 G1 loss

- l 은 입력 선화 , h 는 입력 힌트 , t 는 실제 이미지 , D 는 분류자 G

1

은 초안모델 , α 는 100

(29)

29

- 초안 모델에서 만들어지는 초안 (Draft) 을 - 512x512 사이즈로 리사이즈 한 다음

- 초안을 힌트로 생성자 학습 - L2 loss 사용

5. 구현 내용 . 모델 학습 . 512 모델 학습

-

l

은 입력 선화 , h 는 입력 힌트 , t 는 실제 이미지 , G2은 512 모델

(30)

30

- 학습은 즉시 실행 모드 , 테스트는 그래프 모드를 사용

- 즉시 실행 모드에서 학습된 모델을 불러와 사용 가능한지 확인

- 데이터 셋을 학습용 테스트 용을 따로 분류 - 저장된 모델을 사용해 테스트

- 학습에서 나온 오차와 테스트 셋을 사용한 오차 (

G

2

loss)

를 비교

5. 구현 내용 . 모델 테스트

(31)

- Pyqt 를 사용

- Ui 파일 분리가능 - 크로스 플랫폼

- 그림판 형식의 인터페이스

- 선화 위에 원하는 색 ( 힌트 ) 을 그리는 방식

- 일러스트 -> 선화 변경 기능 - 선택적인 업스케일 기능

- 최대 1024x1024 해상도

31

- UI 프로토타입 , 사진 : 진격의 보노보노

5. 구현 내용 .GUI Program

(32)

32

6. 시스템 다이어그램

line, hint 입력

GUI 초안 모델

512 모델 전처리

resize

Upscaling Model 후처리

TensorModul

Upscaling

?

Yes

No 이미지 확인

사용자 입출력 데이터 흐름 신경망 모델 GUI

(33)

33

7. UML

신경망 관련 Class GUI 관련 Class 유틸 Class

(34)

34

8. 최종목표 및 평가 방 법

- 최종목표

- 입력한 선화를 원하는 색으로 채색하기 위해 사용자 힌트를 줄 수 있는 신경망 자동채색 프로그램을 개발한다 .

- 평가 방법

- 데이터를 학습용 , 데스트용 으로 분류하여 학습에 사용하지 않은 테스트 데이 터를 사용해 최종모델의 정확도를 평가한다 .

- 평가에 사용할 Loss 함수는

G

2

loss

를 사용한다 .

(35)

35

9. 요구사항 및 평가 기 준

No

요구사항

FR-01

펜 사이즈를 변경할 수 있다 .

FR-02

펜 색을 변경할 수 있다 .

FR-03

가로 , 세로 이미지 모두 사용할 수 있다 .

FR-04

입력 이미지를 선화로 만들 수 있다 .

FR-05

업 스케일 취소 시 최대 512x512px 해상도 혹은 가로 , 세로 중 한쪽 길이가 512px 이상으로 출력할 수 있다 .

FR-06

업 스케일 선택 시 최대 1024x1024px 해상도 혹은 가로 , 세로 중 한쪽 길이가 1024px 이상으로 출력할 수 있 다 .

FR-07 "jpg, jpeg, png”

파일을 입력 이미지로 사용할 수 있다 .

FR-08

출력된 결과물은

“ *.jpg ”

파일로 저장할 수 있다 .

(36)

36

No

평가 항목 평가 기준

ER-01 요구사항 전부 만족

ER-02 채색 성능 테스트 셋의 G

2

loss 평균 0.18 이하 ER-03 Model 용량 300mb 이하

ER-04

힌트 정보량 사용자 힌트 없이 채색할 수 있다 .

ER-05

정확도 사용자 힌트 ( 색 정보 ) 를 주면 해당 지점 이 힌트의 색으로 채색이 되어야 한다 .

9. 요구사항 및 평가 기

(37)

37

10. 일정

진행내용

1 2 3 4 5 6 7 8 9 10 11 12 13 14

학습 전처리 코

모델 생성 학습 GUI

테스트 코드 버그수정 평가및 테스

트 보고서 및 발

최종

보고

01 epoch = 09h

10 epoch = 90h = 3~4 일

20 epoch = 180h = 7~8 일

(38)

38

Reference

[1] Zhang, L., Ji, Y., Lin, X., & Liu, C. (2017, November). Style transfer for anime sketches with enhanced residual u-net and auxiliary classifier gan. In 2017 4th IAPR Asian Conference on Pattern Recognition (ACPR) (pp. 506-511). IEEE.

[2] Kang, S., Choo, J., & Chang, J. (2017). Consistent Comic Colorization with Pixel-wise Background Classification (Doctoral dissertation, Thesis, NIPS. KAIST. https://nips2017creativity. github.

io/doc/Consistent_Comic_Colorization. pdf).

[3] Hensman, P., & Aizawa, K. (2017, November). cGAN-based Manga Colorization Using a Single Training Image. In 2017 14th IAPR International Conference on Document Analysis and Recognition (ICDAR) (Vol. 3, pp.

72-77). IEEE.

[4] Cinarel, C., & Zhang, B. T. (2017, November). Into the Colorful World of Webtoons: Through the Lens of Neural Networks. In 2017 14th IAPR International Conference on Document Analysis and Recognition (ICDAR) (Vol. 3, pp. 35-40). IEEE.

[5] 재이다 . (2018). Automatic Colorization of Webtoons Using Deep Convolutional Neural Networks (Doctoral dissertation, 서울대학교 대학원 ).

[6] 홍준표 , 김형호 , 김동이 , & 황원준 . (2018). GAN 과 Edge Detector 를 사용한 Webtoon 자동 채색 기법 . 한국정 보과학회 학술발표논문집 , 2166-2168.

(39)

39

Reference

[7] Ci, Y., Ma, X., Wang, Z., Li, H., & Luo, Z. (2018, October). User-Guided Deep Anime Line Art Colorization with Conditional Adversarial Networks. In 2018 ACM Multimedia Conference on Multimedia Conference (pp. 1536- 1544). ACM.

[8] Ronneberger, O., Fischer, P., & Brox, T. (2015, October). U-net: Convolutional networks for biomedical image segmentation. In International Conference on Medical image computing and computer-assisted intervention (pp. 234-241). Springer, Cham.

[9] Radford, A., Metz, L., & Chintala, S. (2015). Unsupervised representation learning with deep convolutional generative adversarial networks. arXiv preprint arXiv:1511.06434.

[10] Isola, P., Zhu, J. Y., Zhou, T., & Efros, A. A. (2017). Image-to-image translation with conditional adversarial networks. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 1125-1134).

[11] Zhu, J. Y., Park, T., Isola, P., & Efros, A. A. (2017). Unpaired image-to-image translation using cycle-

consistent adversarial networks. In Proceedings of the IEEE International Conference on Computer Vision (pp.

2223-2232).

(40)

40

Q&

A

참조

관련 문서

Common corporate digital crimes include piracy, financial fraud, espionage, and theft of services.. _______________________________________ such as

It considers the energy use of the different components that are involved in the distribution and viewing of video content: data centres and content delivery networks

After first field tests, we expect electric passenger drones or eVTOL aircraft (short for electric vertical take-off and landing) to start providing commercial mobility

"Deeply learning molecular structure-property relationships using graph attention neural network." arXiv preprint arXiv:1805.10988 (2018)..

1 John Owen, Justification by Faith Alone, in The Works of John Owen, ed. John Bolt, trans. Scott Clark, "Do This and Live: Christ's Active Obedience as the

– Search through the space of possible network weights, iteratively reducing the error E between the training example target values and the network outputs...

Na, Prediction of Hydrogen Concentration in Nuclear Power Plant Containment under Severe Accidents using Cascaded Fuzzy Neural Networks, Nuclear Engineering

• To compare this neural activity with MI of a human with spinal cord injury, MN performed a step tracking, ‘center-out’ task using the neural