본문 바로가기
Paper Review/Style Transfer

StarGAN : Unified Generative Adversarial Networksfor Multi-Domain Image-to-Image Translation (2017)

by HanByol Jang 2021. 7. 31.
728x90

StarGAN은 기존의 soucre domain에서 단일 target domain으로 style을 바꿔주었던 기존방법과는 다르게 다중 target domain으로 하나의 네트워크에서 가능하게 만든 논문입니다. 

https://arxiv.org/abs/1711.09020


Multi-domain

기존의 image-to-image 학습에서는 source domain에서 target-domain으로 변환을 시도하는 형태였습니다.

그러나보니 동일한 source domain을 가지고 다양한 다른 domain으로 바꾸려면 여러개의 model이 필요했습니다. 

StarGAN의 특징

위의 그림처럼 기존의 model을 사용하여 k개의 domain간 서로 변환하기 위해서는 총 k(k-1)개의 model이 필요합니다. 이렇게 여러개의 model을 만드는것은 비효율적이고 비효과적입니다. 

이러한 문제점을 개선하고자 저자는 (b)처럼 하나의 model만을 가지고 다양한 domain으로 변환을 가능하게 해주는 StarGAN이라는 모델을 소개합니다.


StarGAN Loss Function

StarGAN Network Structure

StarGAN은 다른 GAN들처럼 Discriminator, Generator로 구성되고, conditional GAN기반입니다.

총 3개의 loss function을 사용하는 것이 특징이고 이 loss를 통해 multi-domain translation임에도 불구하고 하나의 model로 학습이 가능하게 합니다.

 

1. Adversarial loss

adversarial loss

Generator G와 Discriminator D의 min-max game을 통해 계산되는 확률값의 loss입니다. 여기서 특이한점은 input으로 source image뿐 아니라 target domain의 label를 같이 넣어줍니다.

 

2. Domain Classification Loss

StarGAN이 하고자하는 목표는 바꾸고 싶은 target domain의 class를 알려주면 source image로부터 해당 domain의 image로 변환을 하는 것입니다.

그러므로 generator가 만든 이미지가 해당 domain이 맞는지 discriminator에서 학습할 수 있도록 domain classification loss를 추가적으로 고안했습니다. 아래는 real image와 generator에서 만든 fake image에 대한 domain classification loss입니다.

real image에 대한 domain classification loss
fake image에 대한 domain classification loss

3. Reconstruction Loss

앞선 두개의 loss를 통해 Generator는 target domain처럼 실제같은 이미지를 만들도록 학습합니다. 하지만 두 loss는 source image(원본)의 content는 보존한채, domain관련된 정보만 target처럼 학습을 하는것에 집중된 loss가 아닙니다. 이러한 문제점을 보완하기위해 저자는 CycleGAN에서 사용된 cycle consistency loss를 추가하였습니다.

cycle consistency loss

 

위 loss는 source image x와 target domain c를 G에 넣어 c domain의 실제같은 이미지를 만든 뒤, 그 이미지를 다시 원본 doamin인 c'이 되도록 G에 넣으면 맨 처음 넣었던 원본 이미지 x처럼 만들어져야만 한다는 개념입니다. Hello -> Bonjour -> Hello 이어야한다는 cycle consistency의 개념입니다. (아래 CycleGAN의 설명을 참조)

https://hanstar4.tistory.com/2

 

CycleGAN

CycleGAN은 unpaired dataset을 가지고 style을 변형시키는 Image to Image Translation 영역의 논문이다. 2017년 ICCV에 제출된 논문으로 UC Berkeley AI lab 연구진들의 논문이다. 처음 공개되었을 당시 획기적..

hanstar4.tistory.com

4. Total loss

StarGAN full loss

위는 StarGAN에 사용된 loss를 한번에 표현한 것입니다. cls loss와 rec loss에 대한 하이퍼파라미터 값은 다양한 실험을 통해 1, 10이 최적이라고 설명합니다.  

 


Training Strategy

StarGAN training strategy

저자는 다른 labeling을 가지는 두개의 데이터셋(CelebA, RaFD)을 사용하다보니, 이 두개의 데이터셋을 구분지어주는 Mask vector도 함께 사용했습니다. CelebA와 RaFD를 구분해주는 보라색 mask vector [1 0], [0 1]이 있고 CelebA 데이터의 labeling 목록인 주황색 vector, RaFD의 labeing 목록인 초록색 vector로 총 3개의 vector를 이미지와 함께 넣어줍니다. 

 

이렇게 이미지와 함께 vector형태의 labeling을 함께 넣어주는 것이 StarGAN의 가장 큰 특징입니다. 이를 통해 단일 target domain으로의 변화만 하는 것이 아닌 multi domain으로 변화를 하나의 모델을 가지고 가능합니다.


Result

 

CelebA dataset 결과
RaFD dataset 결과

단일 모델만으로 source image의 content는 유지한채 target domain으로 변환을 다른 모델들보다 뛰어나게 잘 하는 것을 확인 할 수 있습니다.

728x90

댓글