본문 바로가기
스터디/논문

[논문] StyleGAN : A Style-Based Generator Architecture for Generative Adversarial Networks(IVPR 2019) 2편

by onecosm 2022. 10. 26.
반응형

https://arxiv.org/abs/1812.04948

 

A Style-Based Generator Architecture for Generative Adversarial Networks

We propose an alternative generator architecture for generative adversarial networks, borrowing from style transfer literature. The new architecture leads to an automatically learned, unsupervised separation of high-level attributes (e.g., pose and identit

arxiv.org

 

  • 사전 지식
    • GAN
    • DCGAN
    • WGAN-GP
    • PG-GAN
    • AdaIN

1편의 내용은 여기 로 이동해주세요

 

StyleGAN 2편 내용입니다.
1편에서 부족했던 설명과 함께 이어서 작성하겠습니다.

 

1편에서 학습하는 과정에서 점진적으로 레이어를 붙여나간다고 했습니다.

이때 해상도를 점차 높여가는 방식으로 Smooth fading in 방식을 이용하였습니다.

 

 

여기서 저해상도 이미지를 2배로 업스캐일링한 후 그 다음 레이어인 상대적으로 고해상도 이미지와 합치다고 했는데,
저해상도 이미지를 업스캐일링할 때 바로 옆에 있는 픽셀값을 가지고 가면서 업스케일링을 진행합니다.

이를 upsample nearest 라고 합니다.

 

 


StyleGAN에서는 AdaIN 스타일 모듈을 이용하여 단순히 스타일 정보를 입력하는 것이 아니라 확률적인 측면을 컨트롤 하기 위한 방식을 적용했습니다.

여기서 확률적 측면은 사진을 찍을때 햇빛에 의해 눈을 찡그리는 것으로 인해 달라지는 것과
같은 것을 의미합니다

이러한 확률적인 측면을 노이즈라고 보면 되는데

스타일 정보 얼굴형, 포즈, 안경의 유무와 같은 하이 레벨 요소들은 아다인 레이어를 통해 정해지고
노이즈 즉, 주근깨, 피부모공, 세밀한 곱슬거림 등은 별도의 노이즈 인풋으로 정해지게 되는데 
노이즈는 컨볼루션 레이어와 아다인 레이어 사이에 추가가 됩니다

실제로 적용된 것을 보면
콜스 노이즈는 큰 크기의 머리 곱슬거림이나 배경을 컨트롤하고
파인 노이즈는 세밀한 곱슬거림이나 배경을 컨트롤하는 것을 볼 수 있습니다

a는 모든 레이어에 노이즈를 적용한 것이고
b는 노이즈를 적용하지 않아 스타일만 컨트롤 되어 세밀한 컨트롤이 안되는 것을 볼 수 있습니다
c는 파인 레이어 즉, 뒤쪽 레이어에서만 노이즈를 넣어서 세밀한 곱슬머리를 표현할 수 있는 것이고
d는 콜스 레이어 즉, 앞쪽 레이어만 노이즈를 넣어 곱슬거림의 형태가 표현된 것을 알 수 있습니다

 

일반적으로 GAN 아키텍처는 FID라는 지표를 이용합니다. FID는 GAN을 사용해 생성된 이미지의 집합과 실제 생성하고자 하는 클래스 데이터의 분포 거리를 계산한 것으로 값이 낮을수록 좋다고 평가할 수 있습니다.

styleGAN 논문에서 성능 측정 지표를 2가지 제안했습니다.
Path Length는 두 벡터를 보간(interpolation)할 때 얼마나 급격하게 이미지 특징이 바뀌는지에 대한 것이고
Separabilitylastent space에서 어튜리뷰트가 얼마나 선형적으로 분류될 수 있는지 평가하는 것을 제안했습니다

기존에 GAN에서 성능 지표를 FID를 이용하는데 이 논문에서 제안한 아키텍처가 FID를 이용했을 때 값이 낮으므로 더 좋은 성능을 나타낸다고 보여지고 있으며, 새로 제안한 방법으로도 더 좋은 성능을 나타낸다고 제시합니다


두 벡터를 보간할 때 어떻게 계산하는지를 보겠습니다.
w1 w2가 있다고 할 때 이 두 지점을 이으는 선을 그긋고 어느 한 지점을 t라고 정의하겠습니다 
t와 아주 근접한 곳을 t+앱솔론이라 할때 티와 t+앱솔론 두 지점 사이 레이턴트 벡터가 얼마나 다른지를 확인하는 것으로 각 지점 생성자를 통해 만들어진 이미지를 vgg 네트워크에 넣어 거리를 측정하게 됩니다.

반응형

댓글