styleGAN 논문리뷰_3
논문제목 : Resolution Dependent GAN Interpolation for controllable Image Synthesis Between Domains (2020)
https://arxiv.org/pdf/2010.05334.pdf
- 논문읽기전 알고있을것 -
DA : 큰 크기로 사전학습(pre trained)
-> 따라서 DB의 크기 (클래스당 이미지개수)가 적은 상황에서도 높은 정확도 보임
잘 동작하는 네트워크 A 에서 가져와서 A'으로 사용한
따라서 전이학습을 분류작업을 위해 사용할때에는, 가장 마지막레이어(B)만 갈아끼워준뒤 학습을시킴
1. 얼리기 freezing : 모델 가져올때 앞부분레이어 : 얼려서 학습되지 않도록 하고, 뒷부분레이어인 우리가 교체한 FC 레이어만 교체하여 사용한다
2. 미세조정 : 모든레이어를 학습! -> 뒤쪽말고 앞쪽 프리트레인된 가중치또한 모두 조금씩 학습될수있도록함
새로운테스크에대해 클래스개수가많다면 : 미세조정(fine-tuning)이 더 좋은 정확도 낸다
* Resolution dependent GAN interpolation *
- 2개의 갠 모델을 섞는 방법 ( = 2개의 styleGAN 네트워크를 이용해 이미지 도메인 섞기를 수행하는 방법)
a) FFHQ : 사람얼굴 데이터셋으로 학습된 기본적인 styleGAN에서 생성된 이미지
b) ukiyo-me : 데이터셋으로 전이학습된 styleGAN에서 생성된 이미지
== a+b -> c, d, e (즉, 두개의 styleGAN을 적절히 섞은(blending한) 네트워크에서 생성된 이미지)
레이어 교환 방법 제안
- 두개의 서로다른 도메인(=서로 다른 데이터셋)의 특징이 섞인 이미지 만들수있다
- 아래사진에서 Base = FFHQ, transferred = ukiyo-e
이때, 특정 resolution인 R을 선택해서, 특정 네트워크를 기준으로 위 아래로 나눠가져와서 합치는 방식!
[ 배경지식 ]
StyleGAN (CVPR 2019)
: 고화질 이미지 생성에 적합한 아키텍처를 제안함
- 1024 * 1024 해상도의 이미지 생성할수 있다
- 고해상도 얼굴 데이터셋 (FFHQ)를 발표
- Disentanglement 특성을 향상시킴 -> 두이미지를 합칠때 원하는 스타일을 구분해서 합칠수 있다
스타일갠을 활용한 얼굴이미지 조작방법 _ 가장 기본적인방법 : 2step 방식
- 1step : 이미지 x를 latent vector w (encoded) 로 인코딩 (= 특정 이미지 x를 생성할수있는 latent vector w 를 찾는과정)
이 w를 학습이 잘 된 고정 styleGAN에 넣었을떄 원본이미지와 유사한 이미지가 만들어질수 있게 함(G(w encoded) 사진)
- 2step : 이러한 w encoded를 적절히 조작하여 w manipulated를 얻은뒤 -> 최종이미지 G (w manipulated)를 얻음
이미지 invrsion 방법 _ 인코더 encoder 네트워크
- 이미지 인코딩을 위한 대표적인방법 = 인코더 네트워크를 학습하는방법
-> 한번 학습된 이후에는 임의 이미지 x에 대해 한번의 forward로 곧바로 w를 얻을수있음
-> 다양한 이미지 x가 입력으로 주어질수 있을때 적합한 방식임
Toonnification _ 만화그림체로 표현하기
1. base model (FFHQ)를 *전이학습(transfer learning)하여 tonnify model을 생성함
2. base model 과 tonnify model 섞어서(interpolating) -> Blended model 생성함
3. base model에 대한 특정 사람 이미지를 인코딩하여 latent codes w 를 얻음
4. 인코딩 완료된 latent codes w 를 blended model에 넣어 tonnification 결과를 얻음
* 전이학습이란?
- 딥러닝의 분야에서는 '이미지 분류' 문제를 해결하는데 사용했던 네트워크(DNN;Deep Neural Network)를 다른 데이터셋 혹은 다른 문제(task)에 적용시켜 푸는 것을 의미 (출처 전이학습(Transfer Learning)이란? - DACON)
추가 실험 결과
레이어 스와핑에 사용되는 해상도
- 해상도 16*16 까지는 FFHQ로 학습된 모델의 가중치 사용 -> 실제 사람의 헤어스타일, 얼굴형태 가져옴
- 이후의 해상도에서는 Ukiyo-e로 학습된 모델의 가중치 사용 -> 눈코입 디테일 그림체는 ukiyo에서 가져옴
- 해상도 32*32 까지는 Ukiyo-e 데이터셋 이용해 전이학습된 모델의 가중치 사용
- 이후의 해상도에서는 FFHQ로 학습된 모델의 가중치 사용
- 해상도 16*16 까지는 Cartoon 데이터셋 이용해 전이학습된 모델의 가중치 사용
- 이후의 해상도에서는 FFHQ로 학습된 모델의 가중치 사용
(8) [꼼꼼한 논문 설명] Toonify (사람 얼굴을 만화 캐릭터 얼굴로 바꾸기): Resolution Dependent GAN Interpolation - YouTube 1146
* Blend the models *
low resolution layers - affect the pose of the head and shape of the face
high resolution layers - control things like lighting and texture
take 1) high resolution layers from the original model, and take 2) low resolution from his fine-tuned cartoon model
-> end up with a hybrid which has the structure of a cartoon face, but photo realistic rendering
toonify yourself
1. give an example image < input >
2. find a code( =latent vector) < output (looks almost like the face you are looking for!) >
-> now, you have a code that represents a face
3. give this code as < input > to the blended model
-> you will get the same face with 'toon version'
출처
Toonify yourself | Justin Pinkney
Home
Justin Pinkney's home on the web
www.justinpinkney.com