본문 바로가기
Paper Review/Style Transfer

StyleGAN : A Style-Based Generator Architecture for Generative Adversarial Networks (2018)

by HanByol Jang 2021. 10. 9.
728x90

StyleGAN은 기존의 latent 벡터 z로부터 target군의 이미지를 직접 생성해내는 기존 GAN 방법과 다르게 Style에 초점을 맞춰 다양한 이미지를 생성할 수 있도록 디자인한 논문입니다. NVDIA 연구진이 발표한 논문으로 성능이 기존 GAN보다 훨씬 뛰어나면서도 안정적이어서 각광받고 있는 논문입니다.

https://arxiv.org/abs/1812.04948


Entangle vs Disentangle

기존의 GAN을 사용한 Image Generator, Style Transfer는 일종의 블랙박스 형태로, style만 바꾸고 싶지만 제어할 수 있는 방법이 없었습니다.

그러므로 이미지의 전체적인 형상은 그대로 둔채 style 요소만 원하는 형태로 바꾸는 것에 많은 연구가 진행되었습니다.

논문에서 예시로 들고있는 PGGAN의 경우 이미지 생성에서 훌륭한 결과를 보이지만, 불안정하여 실제 사용해보면 부자연스러운 이미지들이 많이 생성됩니다. 이 이유는 일반적인 GAN 학습은 latent vector로 부터 이미지를 생성하기 때문에 training dataset 분포를 따라가기 때문입니다. 그렇기 때문에 training dataset에 없는 이미지를 생성할때는 부자연스러워지게 되는 것입니다.

Feature들의 얽힌 모양

 

위의 figure의 (a)는 training dataset의 feature의 분포를 나타냅니다. 서로 다른 feature들끼리는 서로 연관이 되어 있지 않고 분리가 되어있는 것을 알 수 있습니다.

그러나 기존 GAN처럼 input vector로 부터 직접 이미지를 생성하는 방법에서는, random한 input vector(보통 가우시안)의 distribution를 생성된 이미지도 따라가게 됩니다. 즉 (b)처럼 서로다른 feature들이 얽혀있는(entangle) 상태가 되어버립니다. 이렇게 되면 하나의 style을 바꿀때 얽혀있는 다른 요소들도 영향이 가기 때문에 생성된 이미지가 부자연스러워지게됩니다. 

그러므로 저자는 style들이 얽혀있지 않은 disentangle이 될 수 있도록 새로운 generator를 고안했습니다. 먼저 저자의 이전 논문인 MUNIT에서 사용한 방법으로 content와 style을 따로 분리하여 style를 입혀주는 형태로 generator 학습합니다.

https://hanstar4.tistory.com/12

 

MUNIT

Multimodal Unsupervised Image-to-Image Translation는 UNIT 논문을 발전한 형태로 unimodal이 아닌 multimodal로의 변환이 가능하도록 구현한 논문이다. UNIT와 마찬가지로 unpaired한 데이터들간의 변환이고,..

hanstar4.tistory.com

그리고 latent vector로 부터 이미지를 직접 생성하면 앞서 설명했듯이 entangle 상태가 되어버리므로, latent vector를 이미지가 아닌 style을 담당하는 vector를 생성하도록 합니다. 이렇게 학습함으로써 이미지가 얽혀있지 않는 disentangle한 상태(c)가 되도록 합니다. 

 


Style-based Generator

기존과 다른 StyleGAN 모델 

위의 figure가 stylegan의 network 구조입니다. 기존의 GAN의 Generator (a)는 latent vector z로부터 convolution, upsampling layer를 거쳐 이미지를 생성해내는 방법이었습니다.

반면 (b)는 StyleGAN의 구조로서 latent vector z를 가지고 FC layer를 통과시켜 style을 담당하는 새로운 latent vector w를 생성합니다. 그리고 이 style 벡터는 4x4x512의 constant tensor를 가지고 이미지를 생성하는 과정 중간중간 추가해가면서 style을 입히는 형태로 학습을 진행했습니다.

AdaIN 수식

style을 입히는 AdaIN은 앞선 MUINT에서 설명했듯이 content의 normalization을 통해 기존의 style을 최대한 없애고 추가되는 style로 새로 입혀지는 style transfer에 최적화된 normalization 방법입니다.


Stochastic Variation

동일한 인물일지라도 머리카락 방향, 수염 등등 디테일한 부분들이 다양합니다. 이러한 요소들을 반영해주기 위해 네트워크 중간에 pixel-per noise를 추가해줍니다. 이렇게 되면 style input latenet vector는 전체적인 요인(성별, 인종, 헤어스타일)에만 집중해서 학습할 수 있다는 장점도 있습니다.

noise 추가 유무 비교

위의 figure의 (b)는 noise를 추가하지 않았을때입니다. 그리고 (a)는 모든 층에 layer를 추가한것이고 (c)와 (d)는 각각 고해상도 layer층과 저해상도 layer층에 noise를 추가했을때입니다. 이처럼 noise를 추가해줄때 더 머리카락의 detail이 더 발달한 것을 확인 할 수 있습니다.


Style Mixing

학습의 성능을 높히기 위한 학습 전략으로 하나의 latenet vector를 사용하여 학습을 진행하는 것이 아닌 두개의 latenet vector를 통해 학습하는 방법입니다.

하나의 latenet vector만 가지고 style을 입혀주게 되면 layer들끼리 correlate가 될 수 있다는 위험이 생깁니다. 이를 방지하고자 저자는 w1, w2 두개의 style vector를 만든 뒤, 학습시 처음에는 w1 vector를 학습하다가 중간부터는 특정 layer는 w2를 입혀주는 형태로 학습을 진행합니다. 이때 w2를 입히는 layer는 랜덤하게 결정해줌으로서 layer들끼리 correlate가 되는 것을 방지해줍니다.


Results

 

StyleGAN이 생성한 인물, 침대, 차들입니다. 다양한 sylte를 가지면서 고해상도의 자연스러운 이미지를 생성해내는 것을 볼 수 있습니다.

728x90

댓글