Yunjey Choi, Minje Choi - Korea University, Clova AI Research, NAVER Corp
Munyoung Kim - Clova AI Research, NAVER Corp, The College of New Jersey
Jung-Woo Ha - Clova AI Research, NAVER Corp
Sunghun Kim - Clova AI Research, NAVER Corp, Hong Kong University of Science & Technology
Jaegul Choo - Korea University, Clova AI Research, NAVER Corp
https://arxiv.org/abs/1711.09020
2개의 도메인을 활용한 image-to-image translation에 대한 많은 연구가 있었으나 2개 이상의 도메인에 대한 확장성이나 강건함에 제한이 있다.
본 논문에서는 단일 모델을 활용하여 다수의 도메인에 대한 image-to-image translation을 수행할 수 있는 StarGAN을 소개한다.
단일 네트워크 안에서 다수의 도메인을 포함하는 다수의 데이터 세트로 동시에 훈련이 가능한다.
이를 통해 현존하는 모델 대비 StarGAN의 효과적이고 우수함을 보인다.
용어 정리
attribute : 이미지 안에 내재된 의미있는 특징 ex) 머리 색, 성별, 나이
attribute value : attribute의 특정 값 ex) 머리 색 중 검정/금발/갈색, 성별 중 남성/여성
domain : 같은 attribute value를 공유하는 이미지들의 집합
데이터 세트
CelebA : 머리색, 성별, 나이와 같은 얼굴 속성과 관련된 40개의 label이 포함된 데이터세트
RaFD : happy, angry, sad와 같은 얼굴 표현과 관련된 8개의 label이 포함된 데이터세트
Figure 2에서 확인할 수 있듯 k 도메인에 대한 image-to-image translation을 진행하는 경우 기존의 모델에서는 k(k-1) generator가 훈련되어야 한다.
가령 4개의 서로 다른 도메인이 존재한다면 기존의 모델들은 2개에 대한 도메인의 학습만이 가능하므로 4*3=12개($_{4}\mathrm{C}_{3} \times 2$)의 generator가 필요하다. 또한, 각 데이터 세트가 부분적으로 label되기 때문에 서로 다른 데이터 세트들에 대한 jointly training domain가 불가능하다. 이는 매우 비효율적이고 비효과적이다.
=> Fixed translation
본 논문에서는 다수의 domain들에 대한 mapping 학습이 가능한 StarGAN을 제안한다.
StarGAN은 단일 generator와 label을 통해 입력 데이터에 대해 상응하는 도메인으로의 translate가 유연하게 하도록 mapping시킨다.
특히, 도메인 label에 mask vector를 더함으로써 다른 데이터 세트들의 도메인들 간의 joint training이 가능하게 한다. 이는 알지 못하는 label은 무시하고 특정 label에 대해서는 집중하게 한다. 이 방식을 통해 Figure 1 오른쪽과 같이 RaFD로 학습시킨 특징들을 사용하여 CelebA 이미지들의 이미지 표현을 합성할 수 있다.
기여 정리
1) 모든 도메인의 이미지를 효과적으로 훈련시킬 수 있는 단일 generator와 단일 discriminator를 사용하여 다수의 domain 사이의 mapping을 학습시킬 수 있는 StarGAN을 제안
2) 가능한 모든 도메인 라벨을 제어할 수 있는 mask vector를 활용하여 다수의 데이터 세트들 간 multi domain image translation 을 성공적으로 학습하는 것이 가능하게 한다.
3) 정성적, 정량적 결과를 통해 우수함을 강조
Generative Adversarial Networks
GAN, WGAN, WGAN-GP, StackGAN, EBGAN, SRGAN, DIAT, CGAN etc
Conditional GANs
CGAN, DiscoGAN, SRGAN etc
Image-to-Image Translation
Pix2Pix, CycleGAN, CGAN, UNIT, DiscoGAN etc
3.1 Multi-Domain Image-to-Image Translation
본 논문의 목표는 다수의 도메인들 사이의 mapping을 학습하는 단일 Generator $G$를 훈련시키는 것입니다.
$G(x,c) \rightarrow y$
x : input image
y : output image
c : target domain label
단일 discriminator가 다수의 도메인들을 제어할 수 있도록 허가하는 Auxiliary classifier(ACGAN)를 도입.
$D: x \rightarrow {D_{src} (x), D_{cls} (x)}$
이를 통해 source와 domain에 대한 확률 분포를 생성
Adversarial Loss
GAN loss
본 논문에서는 안정성 때문에 WGAN-GP 논문의 loss를 사용함. (Section 4에서 다룸. 식 (8))
Domain Classification Loss
input image x와 target domain label c가 주어졌을 때 x에서 output image y로 올바르게 translate하기위해 auxiliary classifier를 추가하고 이에 대한 2 term loss가 필요
1) D를 최적화하는데 사용되어지는 진짜 이미지들에 대한 domain classification loss
real image $x$에 대하여 original domain $c^\prime$으로 올바르게 분류하게 끔 하는 loss
(계산상 1에 가까워지도록)
2) G를 최적화하는데 사용되어지는 가짜 이미지들에 대한 domain classification loss
real image $x$와 target domain $c$로 생성된 output $y$ 즉, $G(x,c)$에 대하여 target domain $c$로 올바르게 분류하게 끔 하는 loss
(계산상 1에 가까워지도록)
Reconstruction Loss
Adversarial Loss와 Domain Classification Loss만으로는 translated image가 input image의 본래 내용을 잘 보존할 수 없다. 따라서 Generator에 Cycle Consistency Loss를 적용한다.
original domain $c^\prime$
target domain $c$
L1 norm을 채택
위 Figure 3에서 확인할 수 있듯 단일 Generator는 2번 연속해서 사용되고 그때 나온 결과들로 위 식 (4) loss를 만들어 사용한다.
Full Objective
최종 G와 D를 최적화하기 위한 objective function은 위와 같다.
본 실험에서 $\lambda_{cls}=1,\ \lambda_{rec}=10$으로 사용한다.
3.2 Training with Multiple Datasets
다수의 데이터를 학습시킬 때, 각 데이터별로 부분적으로 알려진 label 정보가 존재한다.
가령 CelebA의 경우 머리색, 성별에 대한 속성을 가진 label은 존재하지만 RaFD가 가진 happy, angry와 같은 label 정보는 존재하지 않는다.
이는 식 (4)에 나와있는 것처럼 translated image $G(x,c)$로부터 원본 이미지로 재구성할 때 label vector $c^\prime$가 필요하기 때문에 문제가 된다.
Mask Vector
이 문제를 완화하기 위해 비특징화된 label은 무시하고 특정 데이터 세트에 의해 제공되는 잘 알려진 label에 집중하기 위해 mask vector $m$을 도입한다.
m을 표현하기 위한 n 차원의 one-hot vector
여기서 n은 데이터 세트의 수
$c_i$ : i 번째 데이터 세트의 label vector (a binary vector / a one-hot vector)
한 개의 $c_i$를 선택했을 때, 나머지 n-1개의 $c_i$들은 0으로 지정
Training Strategy
Generator에 domain label $\tilda{c}$를 같이 입력으로 사용한다.
이를 통해 unspecified label은 무시하고 (zero vector) 분명하게 주어진 label에는 더 집중한다.
Discriminator에서 CelebA를 훈련할 때는 CelebA와 관련한 속성을 활용한 classification error를 계산하고 RaFD는 무시한다. 역 역시 마찬가지의 방법으로 최적화 한다.
각 데이터에 대해서는 교차시켜 학습한다.
이를 통해 모든 label에 대한 제어가 가능하도록 학습이 진행된다.
Improved GAN Training
Adversarial loss로 WGAN-GP loss를 활용한다.
이를 통해 더 안정적인 훈련 과정을 거치고 더 좋은 양질의 이미지를 생성한다.
본 실험에서 $\lambda_{gp}=10$으로 설정
Network Architecture
1) 2-stride conv layer (downsampling)
2) 6 residual block
3) 2-stride transposed conv layer (upsampling)
Generator : instance normalization
Discriminator : no normalization
PatchGAN의 Discriminator
5.1 Baseline Models : DIAT, CycleGAN, IcGAN
5.2 Datasets
CelebA
40개의 속성이 존재하는 202,599 유명인 얼굴 이미지
crop $178 \times 218 \rightarrow 178 \times 178$
resize $128 \times 128$
test를 위한 2천개의 이미지를 랜덤으로 제외하고 나머지 모두 훈련 데이터로 활용
RaFD
67 참가자로부터 찍은 4,824 얼굴 이미지
3개의 다른 각도에서 바라보는 3개의 응시 방향에서 표현되는 8가지 얼굴 표현
(4824 = 67*8*3*3)
crop $256 \times 256$
resize $128 \times 128$
5.3 Training
Adam $\beta_1=0.5, \beta_2 = 0.999$
0.5 확률로 horizontal filp
5번의 discrimiantor update 후 1번의 generator update
batch size : 16
CelebA 훈련 시 : 첫 10 epoch learning rate = 0.0001, 이후 10 epoch 선형적으로 learning rate decay
RaFD 훈련 시 : 첫 100 epoch learning rate = 0.0001, 이후 100 epoch 선형적으로 learning rate decay
NVIDIA Tesla M40 GPU 1개에 대해 하루 훈련시킴 (GPU RAM 24G로 추정)
5.4 Experimental Results on CelebA
5.5 Experimental Results on RAFD
5.6 Experimental Results on CelebA+RaFD
StarGan-SNG (Single) / StarGan-JNT (joint)를 의미
단일 데이터세트를 이용한 학습보다 같이 사용하는 것이 더 높은 시각적 향상을 보임.
만약 잘못된 mask vector를 적용한다면 2행과 같이 원하는 attribute에 대한 이미지가 아닌 다른 이미지가 생성됨을 확인할 수 있음.
1) 단일 generator와 단일 discriminator를 사용하여 다수의 도메인에 대한 image-to-image translation이 가능한 StarGAN을 제안한다.
2) 다수의 도메인을 사용하는 scalability(확장성)뿐 아니라 높은 시각적 질을 가지는 이미지를 생성할 수 있다.
3) 특히 mask vector를 사용함으로써 다양한 도메인 label이 있는 다수의 데이터 세트를 활용할 수 있다.
https://github.com/yunjey/stargan
0000