ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 리뷰] StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation
    Research 2021. 5. 3. 18:00

    이번에는 CVPR 2018 에서 발표된 논문인 StarGAN을 리뷰하고자 합니다. 

    처음 시도하는 논문 리뷰이다 보니 부족한 점이 많습니다 수정할 부분이 있으시면 알려주시면 수정하겠습니다.!

     

    용어 정리

    • attribute: 이미지에 있는 의미있는 특징들을 말합니다. 예를 들어 성별, 나이, 헤어 컬러가 있습니다.
    • attribute value : attribute의 값을 말합니다. 예를 들어 헤어컬러일경우에 흑발/금발/갈색 입니다. 
    • domain : 같은 attribute value를 공유하는 이미지들의 집합을 말합니다. 예를 들면 여성의 이미지들은 하나의 domain을 구성하고 남성의 이미지들은 또 다른 domain을 구성합니다. 

     

    StarGAN

    최근의 image-to-image translation은 2개 이상의 도메인을 다루는 데에 scalability와 robustness 제한해왔는데, 이는 서로 다른 모델들이 각 이미지 도메인 쌍에 독립적으로 만들어졌기 때문이다. 이 한계점을 극복하기 위해 StarGAN을 제안합니다.

    StarGAN은 image-to-image translations을 scalable한 접근으로, 단 하나의 모델을 사용하여 여러가지 도메인에 대해 image-to-image translation을 할 수 있습니다. 이러한 StarGAN의 특징은 하나의 네트워크 안에서 다양한 도메인의 데이터셋을 동시에 학습시킴으로써 기존의 모델에 비해 기본적으로 많은 데이터를 학습합니다. 이러한 특징 때문에 기존의 모델에 들에 비해서 높은 성능을 만들어냅니다.

     위의 사진들은 Celeb A 의 데이터셋을 Multi-domain image-to-image translation한 결과입니다 모든 input은 Celeb A dataset 이지만 우측의 input에 적용 된 attribute는 Celeb A 가 아닌 RaFD dataset 으로부터 학습 된 것입니다. 즉, single generator network로 여러개의 domain을 가진 dataset을 학습한 것을 보여줍니다. 또한 한 domain의 dataset에서 학습 된 attribute를 다른 data set에 적용 시킬 수 있습니다.

     

    Introduction

    Image-to-Image translation(I2I)

    • 주어진 이미지의 특정 부분을 다른 이미지로 변경하는 것을 말합니다. 예를 들면, 머리카락의 색깔을 검은색에서 갈색으로 바꾸는 것등이 있습니다. 예를 들어 무표정인 사람의 모습을 웃는 모습으로 바꾼다거나 혹은 머리카락의 색깔을 바꾸는 등 다양한 특징을 가지게 변환하는 작업을 Image-to-Image translation 라고 합니다. 대표적인 예로는 Cycle-GAN이 있습니다. 

     

    Cross-domain models 와 StarGAN

    기존 모델(CycleGAN, DiscoGAN, pix2pix, cGAN)에서는 한 개의 특징만을 학습해서 변환하는 방법을 제시합니다. 이런 환경에서 다양한 도메인으로 변환하려면 도메인 K당 K(K-1) 개의 네트워크가 필요하기 때문에 비효율적입니다. 

    크로스 도메인 모델과 StarGAN의 아키텍처

    Croos-domain models : 다른 도메인들 사이에서 이미지를 translation 시키기 위해서는 4*(4-1) = 12개의 네트워크가 필요합니다.또한,  각 데이터셋이 부분적으로 라벨링 되어 있기 때문에, jointly training이 불가능합니다.

    StarGAN : 다중 도메인에서의 학습 데이터를 얻고, 단일  generator(G)로 모든 가능한 도메인 사이의 맵핑을 학습합니다.

     

    Star Generative Adversarial Networks

     StarGAN을 설명하고 이 모델이 어떻게 다양한 데이터셋을 통합하여 유연하게 image translation을 했는지에 대해 다룹니다.

     

    Mutli-Domain Image-to-Image Translation

    • (a) D : Real Image 와 Fake Image를 구별합니다. 동시에 Real Image 일 때 그것과 상응하는 domain을 분류해내는 것을 학습합니다.
    • (b) G : Input으로 image와 Target domain label을 받고 Fake image를 생성합니다.
    • (c) G : Original domain label을 가지고 Fake Image를 다시 Original Image로 복원합니다.
    • (d) D : Real Image와 구분할 수 없고 D에 의해 Target domain으로 분류 가능한 이미지를 생성하려고 합니다.

    Adversarial Loss

    만들어진 이미지가 진짜 이미지와 구분되지 않도록 만들기 위해, original GAN과 마찬가지로 Adversarial loss를 이용합니다.

     

    • D_src(x) : Discriminator가 이미지를 진짜인지 가짜인지 판별하는 것입니다.
    • G : loss 함수를 최소화 합니다.
    • D : loss 함수를 최대화합니다. 

     

    Domain Classification Loss

    주어진 인풋 이미지 x와 타겟 도메인 라벨 c에 대해 목표는 x를 타겟 도메인 c로 분류된 output image y로 변환하는 것입니다. 예를 들면 여성 이미지 x를 타겟 도메인 라벨 c(남성)으로 변환하는 것입니다.

    이러한 조건을 만족시키기 위해 auxiliary classifier를 추가하고 D와 G를 최적화하는 데 사용합니다. 

     

     

    1). D(판별자)를 최적화하기 위해 사용한 Real Image의 domain classification loss

    • Dcls(c'|x)는 real image x가 주어졌을 때 D 가 계산해낸 domain label c'일 확률분포입니다

     

    2). G(생성자)를 최적화하기 위해 사용한 Fake Image의 domain classification loss

    • G는 target domain c로 분류될 수 있는 이미지를 생성하도록 이 Loss를 최소화하려고 합니다. 

     

    Reconstruction Loss

    여기서 한 가지 Loss를 더 추가하게 됩니다. 왜냐하면 위에서 소개한 Loss 들 만으로는 input image의  target domain에 관련된 부분만을 변화시킬 때 input image의 본래 형태를 잘 보존할 수 없기 때문입니다.. 그래서 Generator에 한 가지  loss를 더 적용하게 됩니다.

    • G는 변환된 image G(x,c)와 original doamin label c'을 input으로 받고 original image x 를 복원합니다.
    • L1 norm으로 계산을 하게 됩니다.

     

    Full Objective

    G와 D에 대한 Objective fucntion입니다.

    • λcls와 λrec는 hyperparameter로, domain 분류와 reconstruction loss들 의 상대적인 중요도를 컨트롤합니다. 각각 1과 10을 사용합니다.

    Training with Multiplel Datasets

     StarGAN의 중요한 이점은, 다른 domain을 가진 datasets들을 동시에 포함하는 것입니다. 그러나 다수의 dataset들을 학습할 때의 문제는  label 정보가 각 dataset에 부분적으로만 있다는 것입니다. 

     예를 들어 Celeb A와 RaFD의 경우에, Celeb A는 hair color와  gender에 대한 attribute만을 가지고  facial expression을 나타내는 happy와 angry 같은 attribute는 가지지 않는다는 것입니다. 

    이것이 문제가 되는 이유는 변환된 image G(x,c)에서 input image x를 reconstruction 하려면 label vector c'에 완전한 정보가 있어야 하기 때문입니다.

     

    Mask Vector

    위와 같은 문제를 해결하기 위해서 mask vector m을 해결방안으로 소개합니다. 이것은 StarGAN이 명시되지 않은 label에 대해서는 무시하게 하고 명시된 label에 대해서는 집중하게 합니다. 여기서 n차원의 one-hot vector를 사용합니다. (n은 dataset의 수)

    ci는 i번째의 dataset의 label들의 vector를 나타냅니다. 또한 ci는 binary attribute를 가진 binary vector 또는 categorical attribute를 가진 one-hot vector입니다.

    여기서 dataset은 Celeb A와 RaFD이기 때문에 n은 2가 됩니다.

     

    mask vector에 어떤 dataset 인지를 명시해 줌으로써 , 해당 dataset의 attribute에 관련된 label에 집중을 한다는 것입니다. 예를 들면 CelebA를 학습시키려고 명시해 주었다면 RaFD에 관련된 facial expression 들은 무시하고 학습하는 것을 말합니다. 

     

    CelebA와 RaFD를 교차시킴으로써 D(판별자)는 두 dataset에서 차이를 구분 짓는 모든 feature들을 학습하게 되고, G(생성자)는 모든 label을 컨트롤하는 것을 학습하게 됩니다. 

     

     

    Experimental Results on CelebA

    실험 결과를 보면 맨 왼쪽의 이미지가 네트워크의 입력값, 오른쪽으로 나열된 이미지가 출력 결과입니다. 

     

    Conclusion

    • 단일 Generator와 Discriminator를 사용하는 다중 도메인 간의 확장 가능한 이미지 변환 모델을 제시하였습니다.
    • Multi-task 학습 환경의 일반화 성능 분석을 통해서 비약적으로 성능을 향상했습니다. 
    • Mask vector 통해서 서로 다른 domain label set를 가진 multiple dateset를 활용할 수 있으므로 사용 가능한 모든 label을 처리할 수 있습니다.

     

     

     

    Reference

    [1] StarGAN : Unified Generative Adversarial Networks for Multi-Domain Image-toImage Translation

    StarGAN - 동빈나

Designed by Tistory.