[Paper Review] MocoGAN-HD: A Good Image Generator Is What You Need for High-Resolution Video Synthesis
업데이트:
- Paper :
MocoGAN-HD
: A Good Image Generator Is What You Need for High-Resolution Video Synthesis (ICLR 2021) (arxiv, code, project) - GAN-Zoos! (GAN 포스팅 모음집)
MocoGAN-HD
: 기존의 SoTA generator인 StyleGAN과 BigGAN의 pre-trained model을 이용하여 latent vector를 manipulation하는 방식으로 비디오를 생성하는 모델이다. Generator는 고정시킨 상태에서 latent vector만을 조절하여 이미지를 생성하는 컨셉이라 새롭지는 않았다.특이했던 점은 이 모델이 pose를 찾는 방식으로
motion generator
라는 LSTM model을 이용했다는 점이다. LSTM 모델을 적용하여 disentangle한 latent trajectory를 찾았다는 점이 흥미로웠다.
저자들이 주장한 contribution
- High-resolution videos를 생성할 수 있지만, computation resource가 많이 안듦
- 🤔: baseline model로 biggan과 stylegan을 사용해서 그런거라.. 당연한 수순이 아닌가 싶음..
- content와 motion이 disentangle한 상태에서 원하는 latent trajectory를 찾을 수 있는 motion generator 발견
- cross-domain video synthesis: 다른 domain의 dataset들에 대하여 image & motion generator를 훈련하여 비디오를 합성할 수 있음
1. Generator
1.1 pre-trained Image Generator $G_I$
- Image Generator로는 StyleGAN과 BigGAN의 pretrained model을 사용
- 훈련과정에서 fix되기 때문에 image content의 video motion이 disentangle할 수 있으며, 서로 다른 domain에서의 video 합성이 가능해짐
- voxceleb dataset으로 motion을 capture한 후, ffhq-stylegan의 generator를 이용하여 비디오를 합성하는 방식(cross-domain)
1.2 pre-trained Motion Generator $G_M$
LSTM network
Motion Generator
: 두 개의LSTM network(LSTM encoder, LSTM decoder)
를 이용하여 latent motion trajectory 를 예측latent motion trajectory
: $\mathbf{Z}=\left{\mathbf{z}{1}, \mathbf{z}{2}, \cdots, \mathbf{z}_{n}\right}$- $n$: number of frames
- latent vector: BigGAN은 normal distribution $p_z$에서, StyleGAN은 MLP에서
- LSTM encoder로 initial hidden state와 cell state를 얻은 후, 이후부터는 LSTM decoder를 통해 $n-1$개의 continuous hidden state를 계산
- $\epsilon_{t}$ : noise vector
- image generator의 input으로 latent vector를 넣어 비디오의 이미지들을 생성: $\tilde{\mathbf{x}}_{t}=G_I(z_t)$
- real video clip
Motion Disentanglement
- SeFA나 GanSpace 처럼 latent space의 interpretable direction을 찾기
- PCA(principal component analysis)로 latent vector에 대한 기저벡터 $V$를 구한 후, 현재 프레임 $z_t$에 대한 motion direction을 추정
Motion Diversity
motion mode collapse
: 위에 LSTM 식에서 motion을 다양하게 조절하기 위해 noise $\epsilon_{t}$ 를 추가했지만, LSTM decoder가 이를 무시하는 문제가 있었다고 함- $G_M$이 다양한 motion pattern을 capture하지 못하고, 특정 latent code에 대해서 비슷한 motion들만 만들어냄
- 이를 해결하기 위해 $L_m$ loss를 도입하여 hidden vector $h_t$와 noise vector $\epsilon_{t}$ 의 mutual information이 maximize되도록 함
2. Discriminator
2.1 Multi-Scale Video Discriminator $D_V$
- Discriminator로는 multi-scale video discriminator $D_V$ 를 사용.
- PatchGAN architecture 기반
- 2D 보다 3D conv layer가 modeling을 더 잘하므로 3D conv 사용
- Adversarial 하게 학습
- 다만
L_Dv Loss
만을 이용하여 학습을 하면, $\tilde{\mathbf{x}}{t}$ 의 identity(content)가 첫번째 생성 이미지 $\tilde{\mathbf{x}}{1}$ 와 달라질 수도 있음 ➡ Contrastive Image Discriminator를 도입 !
2.2 Contrastive Image Discriminator $D_I$
$\tilde{\mathbf{x}}{t}$ 과 $\tilde{\mathbf{x}}{1}$ 간의 content와 image quality가 match 되는지를 판별
Quality Matching
\[\mathcal{L}_{D_{\mathrm{I}}}=\mathbb{E}_{\mathbf{z}_{1} \sim p_{z}}\left[\log D_{\mathrm{I}}\left(G_{\mathrm{I}}\left(\mathbf{z}_{1}\right)\right)\right]+\mathbb{E}_{\mathbf{z}_{1} \sim p_{z}, \mathbf{z}_{t} \sim G_{\mathrm{M}}\left(\mathbf{z}_{1}\right) \mid t>1}\left[\log \left(1-D_{\mathrm{I}}\left(G_{\mathrm{I}}\left(\mathbf{z}_{t}\right)\right)\right)\right]\]Content Matching
- 이미지간의 content가 같도록 constrastive loss function $L_{constr}$ 도입
3. Full Objective
\[\min _{G_{M}}\left(\max _{D_{\mathrm{V}}} \mathcal{L}_{D_{\mathrm{V}}}+\max _{D_{\mathrm{I}}} \mathcal{L}_{D_{\mathrm{I}}}\right)+\max _{G_{\mathrm{M}}}\left(\lambda_{\mathrm{m}} \mathcal{L}_{\mathrm{m}}+\lambda_{\mathrm{f}} \mathcal{L}_{\mathrm{f}}\right)+\min _{D_{\mathrm{I}}}\left(\lambda_{\text {contr }} \mathcal{L}_{\text {contr }}\right)\]Result
댓글남기기