인공지능/딥러닝

StarGAN v2: Diverse Image Synthesis for Multiple Domains 논문 리뷰

해피밀세트 2022. 1. 25. 23:17
반응형

 

StarGAN v2: Diverse Image Synthesis for Multiple Domains

Yunjey Choi*, Youngjung Uh*, Jaejun Yoo*, Jung-Woo Ha

In CVPR 2020. (* indicates equal contribution)

Paper: https://arxiv.org/abs/1912.01865  

Video: https://youtu.be/0EVh5Ki4dIY    

Github: https://github.com/clovaai/stargan-v2

 

GitHub - clovaai/stargan-v2: StarGAN v2 - Official PyTorch Implementation (CVPR 2020)

StarGAN v2 - Official PyTorch Implementation (CVPR 2020) - GitHub - clovaai/stargan-v2: StarGAN v2 - Official PyTorch Implementation (CVPR 2020)

github.com

 


Overview

들어가기에 앞서 Attribute, Domain, Style이란 용어에 대해 확실하게 구분하고 읽는 것이 좋다고 생각한다. 포켓몬에 대입해서 이해하면 쉽다.

Attribute

- 말 그대로 속성이다. 특징을 나눌 수 있는 기준을 말한다.

- 성별, 머리색, 포켓몬 속성 등 

Domain

- Attribute에서 확실하게 나눌 수 있는 특징 집단이다. 

- 성별 (남/여), 머리색 (흑색/금색/갈색), 전기 속성 (피카츄, 라이츄, 썬더)  등...

Style

- 같은 Domain에 속해도 다양한 모습(스타일)을 갖고 있다.

- 남 (눈썹이 짙은 남자/머리가 짧은 남자), 여 (화장이 진한 여자/머리가 짧은 여자), 라이츄(일반 라이츄/알로라 라이츄/이로치 라이츄)

 

 

Background

StarGAN v2는 Image to Image Translation (I2I) 모델로 특히 이미지 합성을 목표로 하고 있다.

I2I란 도메인간의 특징을 가지고 한 개의 이미지를 한 개의 이미지로 변환시키는 것을 말한다.

StarGAN 이전의 I2I 모델(그림 3의 왼쪽)들은 변환하고자 하는 도메인 간의 개수에 맞춰 모델을 여러개 만들어야 했다. 도메인이 K개이고, 모든 도메인 간의 변환 모델을 만든다면 K(K-1)개의 모델이 만들어져야 한다.

이러한 비효율적인 방법을 개선하기 위해 나온 모델이 StarGAN v1이다.

StarGAN v1은 여러개의 도메인을 한 개의 모델을 이용하여 이미지 변환을 시키는 것이다.

 

 

Purpose

이 논문에서 말하는 좋은 I2I란 아래의 두 가지 task를 할 줄 알아야 한다고 한다.

  1. 생성하는 이미지의 다양성
  2. 여러 도메인에 대한 확장성

StarGAN v1에서는 원본 이미지에 따라 각 도메인 마다 비슷비슷한 결과를 낸다는 문제점이 있었다. 

StarGAN v2는 그러한 문제점을 보완하고 생성하는 이미지의 다양성과, 여러 도메인에 대한 확장성을 갖춘 좋은 모델로 소개하고 있다.

 

 

Architecture

StarGAN v2는 4가지 모듈로 구성되어 있다. 이해를 돕기 위해 (a) Generator -> (c) Style encoder -> (b) Mapping Network -> (d) Discriminator 순으로 설명하고자 한다.

 

1. (a) Generator

Input: Input image x, Style code s

Output: Output image

- Input에서 Input image x와 Style code s를 합치는 방법에 AdaIN(Adaptive instance Normalization)이 사용됨.

 

2. (c) Style encoder 

Input: Input image x

Output: 도메인에 대응하는 Style code s

- 스타일 코드를 추출하는 모듈

- 여러개 output brunch를 갖고 있음.

- Input image x가 어떤 스타일을 갖고 있는지, 어떤 도메인에 속해 있는지를 인코드 한다.

 

3. (b) Mapping Network 

Input: Random latent code z

Output: Style code s

- 스타일 코드를 만드는 모듈

- 여러개 output brunch를 갖고 있음.

- 도메인마다 다른 스타일 코드를 가제 됨.

 

4. (d) Discriminator

Input: Input image x

Output: True/False

- 여러개 output brunch를 갖고 있음.

- 각각의 도메인(output brunch) 별로 가짜인지 진짜인지를 판별한다.

- 이미지가 도메인에 실제로 속해 있는지, 속해 있을것처럼 만들어진 가짜인지를 판별한다.

 

 

Loss Function

x : 원본 이미지

y : 이미지 x의 도메인

y~: 타깃 도메인

s~: F_y~(z), 타깃 도메인에 대한 스타일 코드

s^: E_y(x), 이미지 x에서 도메인 y에 대해 추출한 스타일 코드

D_y : 도메인 y에 대한 Discriminator

 

 

 

 

 

 

 

StarGAN v2는 Loss Function도 4개를 사용한다!

 

1. Adversarial loss

- GAN에서 일반적으로 쓰이는 Loss Function

- 판별자를 더 잘 속일 수 있는 방식으로 학습한다.

 

2. Style reconstruction loss

- 생성자가 Style code s^를 이용해서 스타일에 맞게 잘 변환시킬 때 사용한다.

- 얼마나 우리가 원하는 스타일에 가깝게 이미지가 생성되었는지를 판단할 수 있게 해주는 함수.

 

3. Diversity sensitive loss

- 다양한 이미지를 생성하도록 도와주는 함수

- 각각 다른 가자이미지를 만들고 두 이미지 사이의 거리를 손실함수에 넣음.

- 최적화 지점이 없어서 값이 불규칙적이다.

- Generator가 이미지 공간 위에서 이동하면서 의미있는 스타일 피쳐를 찾고 다양한 이미지를 생성한다. 

 

4. Cycle consistency loss

- Cycle GAN에서 사용되 Loss Function

- StarGAN은 특정 도메인의 이미지를 새로 만드는 것이 목표가 아니라 이미지 합성이 목표이다.

- 따라서 어느정도 원본 이미지의 특징을 갖고 있어야하므로 x를 보존하는 방식으로 학습히다.

- 예) 여자 x -> 남자 x^ -> 여자 x^^ => 여자 x와 여자 x^^이 얼마나 같은지?

 

StarGAN v2은 위의 4 개의 Loss Function을 다 합하여 최적화 하면서 학습한다.

2번, 3번, 4번 Loss Function 앞에 붙은 람다는 각 Loss Function별로 가중치를 주기 위한 하이퍼 파라미터이다.

3번 Loss Function은 앞서 말했듯이 최적화 지점이 없기 때문에 하이퍼 파라미터를 선형적으로 0에 수렴 시키면 줄여간다.

 

 

Experiments 

StarGAN v2를 이용한 실험의 Evaluation은 FID와 LPIPS를 사용하여 측정한다.

 

FID (Frechet Inception Distance)

  • 실제 이미지와 생성된 이미지의 특징 벡터간의 거리를 계산한 값
  • 수치가 낮을수록 생성된 이미지와 실제 이미지가 유사 

LPIPS (Learned Perceptual Image Patch Similarity)

  • 이미지 패치 유사성
  • FID와 LPIPS를 사용하여 생성된 이미지의 품질과 다양성을 평가

 

 

 


출처

https://youtu.be/KO_mOGKdxOw

 

https://medium.com/curg/stargan-v2-%ED%95%98%EB%82%98%EC%9D%98-%EB%AA%A8%EB%8D%B8%EB%A1%9C-%EC%97%AC%EB%9F%AC-%EC%8A%A4%ED%83%80%EC%9D%BC%EC%9D%98-%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%A5%BC-%EC%83%9D%EC%84%B1%ED%95%9C%EB%8B%A4-acdfb0ac822a

 

https://arxiv.org/abs/1912.01865  

 

StarGAN v2: Diverse Image Synthesis for Multiple Domains

A good image-to-image translation model should learn a mapping between different visual domains while satisfying the following properties: 1) diversity of generated images and 2) scalability over multiple domains. Existing methods address either of the iss

arxiv.org

 

반응형