논문 읽기

styleGAN 논문리뷰_3

코딩펭귄 2023. 2. 25. 03:01

논문제목 : 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가 입력으로 주어질수 있을때 적합한 방식임

G(x)와 원본이미지 x가 유사할수잇는 형태로 loss를 계산해서 gradient descent 를통해 encoder를 학습할수 있다

 

 

 

 

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