StarGAN v2 는 기존 모델인 StarGAN의 후속 모델로, 다양한 이미지 도메인 간의 스타일 변환에 중점을 두었다. 새로운 이미지를 생성하는 GAN을 기반으로 만들어져서 기존에 존재하지 않는 새로운 이미지를 만들어내는 모델이다.
기존의 StarGAN v1은 한 개의 모델만을 사용하여 여러개의 도메인에서 이미지 변환을 시켰다. 이는 원본 이미지에 따라 각 도메인 마다 비슷한 결과를 낸다는 단점이 있었다.
StarGAN v2는 이러한 단점을 보완하고 생성하는 이미지의 다양성을 증가시키고, 다양한 도메인에 대해 확장성을 갖추었다.
Generator -> Style Encoder -> Mapping Network -> Discriminator
Loss Function 4가지
1. Adversarial Loss
2. Style Reconstruction Loss
3. Diversity Sensitive Loss
4. Cycle Consistency Loss
아래의 주소는 stargan v2의 공식 깃허브이다
https://github.com/clovaai/stargan-v2
다음 코드로 레포를 clone 한다
git clone https://github.com/clovaai/stargan-v2.git
cd stargan-v2/
dependencies를 설치한다
conda create -n stargan-v2 python=3.6.7
conda activate stargan-v2
conda install -y pytorch=1.4.0 torchvision=0.5.0 cudatoolkit=10.0 -c pytorch
conda install x264=='1!152.20180717' ffmpeg=4.0.2 -c conda-forge
pip install opencv-python==4.1.2.30 ffmpeg-python==0.2.0 scikit-image==0.16.2
pip install pillow==7.0.0 scipy==1.2.1 tqdm==4.43.0 munch==2.5.0
데이터셋으로는 CelebA-HQ와 AFHQ가 있고 아래의 코드로 다운 가능하다
CelebA-HQ
bash download.sh celeba-hq-dataset
bash download.sh pretrained-network-celeba-hq
bash download.sh wing
AFHQ
bash download.sh afhq-dataset
bash download.sh pretrained-network-afhq
Image와 Interpolation video 만들기
CelebA-HQ
python main.py --mode sample --num_domains 2 --resume_iter 100000 --w_hpf 1 \
--checkpoint_dir expr/checkpoints/celeba_hq \
--result_dir expr/results/celeba_hq \
--src_dir assets/representative/celeba_hq/src \
--ref_dir assets/representative/celeba_hq/ref
AFHQ
python main.py --mode sample --num_domains 3 --resume_iter 100000 --w_hpf 0 \
--checkpoint_dir expr/checkpoints/afhq \
--result_dir expr/results/afhq \
--src_dir assets/representative/afhq/src \
--ref_dir assets/representative/afhq/ref

https://github.com/clovaai/stargan-v2