본문 바로가기
AI

[논문리뷰]StarGAN

by Reodreamer 2022. 1. 18.
반응형

그림[1] StarGan을 CelebA와 RaFD데이터 셋으로 학습하여 입력 이미지를 다른 도메인으로 변환한 결과

 

 

StarGAN 이전 모델:

두개의 도메인에 대한 Image-to-Image Translation 가능케 했다.

하지만, 두개 이상의 도메인을 다룰때는 SCALabitiy robustness 가 부족한 특징이 있었다. 

 

StarGAN 

하나의 단일 뉴럴 네트워크로 다수의 도메인에 대한 이미지 변환이 가능 하다. 

 

Image-to-Image Translation : 주어진 이미지를 특정 특징을 가진 이미지로 변환 하는것을 의미한다. 위의 그림의 맨 왼쪽의 이미지를 각 열별로 상단에 표기된 특징에 따라 변환하는 것으로 이해할 수 있다.

 

용어정리

-  Attribute = 이미지에 내재된 유의미한 feature hair color, gender, age가 있다

-  Attribute value = 앞서 언급한 attribute가 가지는 값으로, 예를들면  hair color에는, black, blond, brown, gender에는
   male/female
가 있다

-  Domain = 동일한 Attribute value를 가지는 이미지 셋, label값으로 이해해도 무방

- Image-to-Image Translation : 주어진 이미지를 특정 특징을 가진 이미지로 변환 하는것을 의미한다. 위의 그림의
  맨 왼 쪽의 이미지를 각 열별로 상단에 표기된 특징에 따라 변환하는 것으로 이해할 수 있다.

 

Introduction

 

데이터

- CelebA – 40 attributes eg.hair color, 성별, 나이

- RaFD – 8 labels eg happy, angry, sad

 

 

그림[2] Cross Domain모델과 StarGAN 모델의 아키텍쳐

Cross-domain models

k 개의 도메인의 매핑을 학습하기 위해선 k(k-1)개의 generator가 필요하다. 그림[2]의 (a)는 Cross-domain model의
아키테처로 4개의 도메인을 학습하기 위해서는 총 12개의 generator가 필요한 것을 보여준다. 이는 모든 도메인으로
부터 학습할 수 있는 특성이 존재함에도 불구하고 각각의 generator는 k개의 도메인 중 두개의 도메인만 학습이 가능하여 전체 학습데이터를 온전히 사용할 수 없는 한계점이 존재한다. 또한 이런 모델들은 각각의 데이터셋이 부분적으로 label이 되어있어 모든 데이터셋을 결합하여 학습할 수 없다. 

 

StarGAN 

하나의 generator를 이용항여 가용가능한 모든 데이터셋의 도메인을 학습할 수 있다. 이는 입력값으로 이미지와 도메인정보 둘 모두를 받아들여 유동적으로 주어진 이미지데이터와 그것이 상응하는 도메인을 학습한다.  학습시, 먼저 임의 타겟 도메인을 생성하고 모델이 유동적으로 해당 타겟 도메인 정보에 따라 변환되도록 모델을 학습한다. 그렇게 함으로서 테스트 단계에서 이미지가 의도한 도메인(라벨)의 이미지로 변환되는 것을 통제한다. 

 

이 논문의 주요 conribution은 다음과 같다 

 

1. 1개의 generator1개의 discriminator를 이용하여 멀티플 도메인을 학습하는 StarGAN 소개한다

2. StarGAN으로 하여금 이용하여 다수의 데이터셋으로부터 다수의 도메인 이미지 변환을 학습이 가능하게 한
   Mask vector
를 소개한다

3. StarGAN을 이용하여 얼굴특징과, 표정합성에서 다른 모델보다 양적 및 질적 측면에서 더 뛰어난 결과를 보여준다 

 

Related Work 

1) Generative Adversarial Networks(GAN)

 이미지 변환, 초고해상도 이미징, 안면 이미지 합성과 같은 컴퓨터 비전 과제에 좋은 결과를 거두었다. GAN 모델은 discriminator와 generator 이 2가지의 모듈로 이루어져있다.

  - discriminator : 실제 이미지와 위조 이미지를 구분하는것을 학습

  - generator : 실제 이미지와 비교 시 구분할수 없는 위조이미지를 생성하는것을 학습

 

2) Conditional GAN

이전 GAN 모델과 대부분 유사하지만 Conditional GAN 모델은 주어진 정보와 높은 관련이 있는 특정 이미지를 생성하는것에 집중한다.

 

Star Generative Adversarial Networks(starGAN)

 

그림[3] StarGAN OVerview

StarGAN 모델은 앞서 말한것처럼 1개의 Discriminator인 D, 1개의 generator G 로 이루어져 있다.

 

위 그림[3]의 (a) 단계에서 D는 실제이미지와 위조이미지를 구분하는것을 구분하고 실제 이미지를 이에 상응하는 도메인으로 분류하는것을 학습한다.  

(b) 단계에서는 G가 이미지와 타겟 도메인을 입력받아 위조 이미지를 생성하낟. 

(c) 단계에서는 G가 생성된 위조이미지로 부터 원본이미지를 원래 주어진 도메인 라벨에 맞게 재생성한다. 

(d) 단계에서는 G는 실제 이미지와 구분이 안되고 D로 하여 타겟 도메인으로 분류가능한 이미지를 생성한다. 

 

StarGan의 가장 주된 목표는 하나의 generator로 다수의 도메인을 모두 학습할 수 있는 모델 생성하여 이를 통해 효과적이고 효율적인 이미지 변환을 가능케 하는 것이다. 

 

3.1 Loss functions

 

1) Adversarial Loss - 

2) Domain Classification Loss for discrimanator 

3) Domain Classification Loss for generator

4) Reconstruction Loss

 

- x : 원본 이미지

- c : 변환하고자 하는 목적 도메인으로 one-hot vector를 사용한다

- c' : 변환전 입력 데이터의 도메인

 

3.2 다중데이터셋을 이용한 학습 

 

StarGAN 모델의 중요한 이점은 각각 다른 유형의 라벨을 가진 여러개의 데이터셋을 활용가능 하다는 점이다. 하지만 이과정에서 각각의 데이터셋별로 부분적으로 라벨정보가 주어진다는 점이다. 이 논문에서 사용한 CelebA와 RaFD 데이터셋을 예로들어 설명하면 첫번째 데이터셋은 hair color와, gender와 같은 도메인 정보가 있지만, RaFD가 가지고 있는 얼귤표정에 대한 정보는 없는 이슈가 발생한다. 이 이슈는 변환된 이미지로부터 다시 원본이미지를 재생성할때 문제가 된다. 

 

Mask Vector 

StarGAN은 언급된 문제점을 극복하기 위해서 Mask Vector를 이용했다. 이는 활용하는 데이터셋들의 라벨값을 통합하여 one-hot vector를 생성하고 이를 기반으로 특정 데이터셋이 제공하는 라벨값을 활용하고 특정되지않은 라벨은 무시하며 원활한 학습이 가능하다.

 

Training Strategy

CelebA 데이터셋의 데이터가 200,000이상이고 RaFD의 데이터는500여개로 데이터수의 차이가 커 일반 배치로 학습시, CelebA 데이터에 크게 편향될 수 있는 문제가 발생한다. 그래서 CelebA는 10epoch, RaFD는 100epoch로 두 데이터셋의 학습 epoch 수의 차이를 두어 학습했다.  

 

결과

StarGAN의 성능을 비교하기 위해 DIAT, CycleGAN, IcGAN 모델과 비교했다. 

맨 왼쪽열의 이미지가 입력 이미지이고 그 우측열들의 이미지들은 각 열 상단의 값으로 변환된 이미지를 보여준다. 그리고 맨 우측 4개열의 이미지들은 2개이상의 도메인으로 이미지를 변환한결과이다. 그림으로도 충분히 StarGAN의 성능이 다른 모델들 보다 낫다는것을 알 수 있다. 

 

양적인 평가를 위해 Amazon Mechanical Turk(AMT)를 이용한 설문조사를 통해 지각적리얼리즘, 특성변환의 질, 원본의 이미지의 대상읭 보존성에 주안점을 두고 단일 도메인에대한 변환과 다중 도메인의 대한 변환 결과를 비교하였다.

 

표[1] 모델별 단일 도메인 변환 성능 평가 결과

비록 성별에 대한 변환시에, StarGAN과 DIAT 모델의 성능의 차이가 크지 않지만, 모든 모델 중에서 StarGAN의 단일

도메인에 대한 이미지 변환 결과가 가장 우수한걸 알 수 있다. 

 

표[2] 모델별 다중 도메인 변환 성능 평가 결과

하지만 모든 모델 중에서 StarGAN의 다중 도메인에 대한 이미지 변환 결과가 다른 모델들과 큰 차이를 보이며 가장
우수한걸 알 수 있다. 

 

여기서 다시한번, k(k-1)개의 신경망을 사용하는 다른 모델과 달리, 단일 신경망을 이용하는 StarGAN의 신박한 성능을 

강조할 필요를 느낀다. 

 

느낀 점

처음으로 올리는 논문 리뷰라 시간이 꽤 오래 걸렸던 것 같다. 하지만 논문을 조금더 자세히 보고 제대로 이해하려는
노력을 했다. StarGAN 논문을 읽으면서 GAN에 대해 더 깊이 공부해보고 싶은 마음이 들었다. 또한 신박한 아이디어와 이를 제대로 구현한것이 놀라웠다. 논문의 저자가 자신의 GitHub에 PyTorch로 StarGAN을 구현한 코드를 공개했는데 이를 참고하며 더 깊이 배우고 이해해봐야겠다.

 

논문저자의 GitHub:

 

GitHub - yunjey/stargan: StarGAN - Official PyTorch Implementation (CVPR 2018)

StarGAN - Official PyTorch Implementation (CVPR 2018) - GitHub - yunjey/stargan: StarGAN - Official PyTorch Implementation (CVPR 2018)

github.com

 

반응형

'AI' 카테고리의 다른 글

[논문리뷰]Word2Vec  (0) 2022.09.05
[ML]회귀(Regression)  (0) 2022.05.20
객체지향 프로그래밍-Object Oriented Programming(OOP)  (0) 2022.04.27
Data Augmentation  (0) 2022.01.13
Dense layer를 이용한 Fashion Mnist 예측모델 구현  (0) 2022.01.07

댓글