SinGAN: Learning a Generative Model from a Single Natural Image
subinium opened this issue · comments
Subin An commented
Subin An commented
Introduction
- 1장의 이미지로 훈련하여 이미지를 생성하는 방법론 (Single Image)
- unconditional하게 noise로 부터 image 생성
- general purpose한 적용 방법 제안
- 1장의 이미지에서 어떻게 internal distribution을 잘 배울 수 있는 unconditional generator를 만드는가 가 이 논문의 핵심
Multi Scale Architecture
- 이 논문의 핵심 구조는 이 아키텍쳐.
- G_0, G_1, G_N의 생성자 피라미드 구조
- 생성되는 이미지 스케일은 r배 downsampling (r > 1)
- 총 8개의 scale 사용 r은 약 4/3
- Discriminator는 patch 단위 (Patch-GAN)
- stage 별로 학습을 마치면 G는 fix, D는 사용하지 않음
- Coursest to Fine (거친 것부터 세세한 것으로 학습)
- 작은 이미지에서는 patch 사이의 관계로 전체적인 특성을 파악
- 큰 이미지의 patch에서는 세부적인 물체들을 파악
- 아래 설명에서 receptive field를 보면 될 듯
Single scale generation
- 너무 capacity를 크게 가져가면 trainging image를 외우는 문제 발생
- 적은 capacity를 갖도록 설계
- [conv 3x3 - BatchNorm - LeakyReLU]를 5개 쌓음
- 11x11만한 receptive field
ETC
- Adversarial Loss (WGAN-GP Loss)
- Reconstruction Loss
- metric (AMT, SIFID)
Application
결과는 논문 참고 (상당히 재미있는 결과들이 많다)
- Single Image Super Resolution
- Paint-To-Image Style Transfer
- Editing
- Harmonization
- Single Image Animation
개인적으로 실험해보고 싶은 논문 1순위인듯
윤제님 수업에서 배운 추가 내용
SinGAN의 핵심 구조는 2가지.
- PatchGAN
- Multi-Stage Training
- 없으면 반복적인 patern을 생성할 것.
- zero padding 덕분에 잘 됨 (테두리)
- positional encoding