[Naver Cloud AI Summit 2020] StarGAN v2: Diverse Image Synthesis for Multiple Domains
개인적으로 이번 네이버 클라우드 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
Transforming images without paired examples (CycleGAN)
- pair dataset없이 클래스 레벨만 있어도 학습 가능
- 실제 사진을 반 고흐 스타일로 변환하기 위해 실제사진 혹은 반 고흐의 그림들로 라벨링만 되어 있으면 됨
- 얼룩말 - > 말, 겨울 -> 여름, style transfer
- 한계점 : output image가 하나로 제한됨. 그래서 이후로 다양한 output 만드는 연구들 발전됨
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에서의 한계를 해결하는 방향으로 발전시킴.
StarGANv2(제안기법)
- 기존의 latent vector는 specific feature(남자의 경우 수염, 여자의 경우 진한 화장, 긴 머리 등)을 잘 표현하지 못하기 때문에 latent reconstruction 시 style vector를 복원하도록 함
- 이 방법을 통해 해당 도메인의 특징들을 더 잘 살려서 영상을 생성 가능
학습
- 두가지 학습 방식 : 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 등 뛰어난 생성 모델을 만들기를 기대해봅니다 :-)