AI/Hot issue

[Naver Cloud AI Summit 2020] StarGAN v2: Diverse Image Synthesis for Multiple Domains

탈공대 2020. 12. 22. 15:44

개인적으로 이번 네이버 클라우드 AI 서밋 2020에서 가장 기대했던 강의가 바로 StarGAN에 대한 강의였는데 시간이 안 맞아서 라이브로는 못 들었지만 다행히 네이버님께서 강의 다시 보기를 빠르게 올려주셨다.

(Deview2020은 언제 다시보기 올려주시나요...)

www.ncloud-online.com/aisummit/track/?track=3

 

AI Tech / Research-Track-NAVER Cloud AI SUMMIT

AI 기술 연구와 적용, 어디까지 왔을까? 글로벌 기업과 학계 전문가의 기술 이야기. * 8개 세션 다시보기 제공중 (~12.31)

www.ncloud-online.com

다시 보기는 기존 신청자는 등록 정보 그대로 로그인해서 이용 가능하고, 기존에 신청하지 않은 사람도 다시보기 신청을 통해 이용이 가능하다.

연사는 이 분야에서 알 사람들은 다 아는 최윤제님이고, 발표를 잘 한다는 말을 워낙 많이 들었고 Image translation에 대해 어떻게 정리하나 궁금했기 때문에 더욱 기대했던 강의였다.


 

연사 : 네이버 AI랩 - 최윤제님

주제 : Image to image translation

활용사례 : Edge 2 image, semantic image synthesis, animal translation, face image synthesis

 

대표 모델

Image to image trnaslation(pix2pix)

 - Discriminator : 생성한 이미지와 GT 이미지를 입력으로 받아 가짜/진짜를 구별

 - Generator : Discriminator를 속이는 방향으로 아웃풋 생성

 - case : edge 2 handbag / cats / shoes / face

Pix2pix의 edge2cats

Transforming images without paired examples (CycleGAN)

 - pair dataset없이 클래스 레벨만 있어도 학습 가능

 - 실제 사진을 반 고흐 스타일로 변환하기 위해 실제사진 혹은 반 고흐의 그림들로 라벨링만 되어 있으면 됨

 - 얼룩말 - > 말, 겨울 -> 여름, style transfer

 - 한계점 : output image가 하나로 제한됨. 그래서 이후로 다양한 output 만드는 연구들 발전됨

CycleGAN의 구조와 이를 통해 얼룩말을 일반 말로 변환하는 모습

Generating diverse outputs (BicycleGAN & MUNIT)

 - 기존의 cyclegan은 특정 표범 사진이 하나의 고양이로 변환시켰음.

 - 반면 Bicyclegan과 MUNIT같은 모델들은 하나의 표범 사진으로부터 여러 종의 고양이들을 생성 가능.

 - Latent vector : 입력으로 기존 이미지 이외에 latent vector(gaussian random noise)를 추가 입력을 받음. 그래서 이 latent vector에 따라 다양한 출력 제공 가능. 아웃풋 이미지 생성 시 latent vector를 무시하지 않도록 encoder 도입(Latent reconstruction loss 도입)

 - 예시 : 겨울사진을 다양한 여름 사진으로 변환. 개에서 다양한 고양이로 변환.

 - 한계 : image domain이 여러개로 늘어나게 되면 굉장히 비효율적. 도메인마다 generator를 학습시켜야함.

Translating images into multiple domains (StarGAN)

 - 하나의 generator만으로 여러 도메인(성별, 나이, 피부색상, 등) 간의 translation을 학습할 수 있는 모델.

 - input 이미지뿐만 아니라 클래스에 대한 정보도 label 형태로 받아서 이미지를 생성

 - 한계 : 특정 도메인에 대해서 다양한 output 제공 불가. 예를 들면, 특정 표정에 대해 하나의 표정만 생성 가능.

 - 이후 이러한 scalability & diversity에서의 한계를 해결하는 방향으로 발전시킴.

StarGAN의 구조. 제일 큰 특징은 Discriminator의 label에 class에 대한 부분을 추가했다는 점.
StarGAN이 하나의 Generator로 다양한 도메인의 아웃풋을 출력하는 모습

StarGANv2(제안기법)

 - 기존의 latent vector는 specific feature(남자의 경우 수염, 여자의 경우 진한 화장, 긴 머리 등)을 잘 표현하지 못하기 때문에 latent reconstruction 시 style vector를 복원하도록 함

 - 이 방법을 통해 해당 도메인의 특징들을 더 잘 살려서 영상을 생성 가능

StarGANv2의 구조
도메인에 따른 특징들을 더 잘 생성하는 것을 확인할 수 있다

학습

 - 두가지 학습 방식 : Latent-guided synthesis, Reference-guided synthesis

 - Latent-guided synthesis

   1) Latent code(Random gaussian)를 특정 네트워크(ex:FCN)를 통해 style code로 변환

   2) Generator는 입력이미지와 style code를 이용하여 아웃풋 이미지 학습

   3) Style encoder는 아웃풋 이미지를 style code로 복원

   4) Discriminator는 도메인에 맞게끔 adversarial loss로 학습

 - Reference-guided synthesis : Latent-guided synthesis와의 차이점은 style vector를 뽑는데 있어서 참조 이미지를 사용한다는 것. 그 이외에는 모두 동일.

 

실험결과

 - 데이터셋 : AFHQ(8종의 동물), CelebA-HQ(Celeb의 얼굴을 남성/여성의 두가지 도메인으로 구성)

 - 이미지 품질이나 다양성 측면에서 기존 베이스라인 모델들보다 우수

 - FID, LPIPS같은 정량적 품질에서도 우수한 것 확인

 


Image translation 분야의 baseline 모델들에 대해 깔끔하게 정리하고, 비교해줘서 굉장히 고마운 강의였다.

StarGANv1, v2가 왜 나오게 되었는지에 대해서도 자명하게 이해가 되었고, 구현이 잘 되었다는게 상당히 놀라운 사실이었다.

앞으로도 v3 등 뛰어난 생성 모델을 만들기를 기대해봅니다 :-)