[논문 리뷰] Multimodal Unsupervised Image-to-Image Translation

2022. 2. 22. 22:48논문리뷰/GAN

1. Translate Image Task

(왼쪽) inpainting, (가운데) colorization, (오른쪽) style transfer

출처(왼쪽): https://medium.com/jamieai/image-inpainting-with-deep-learning-dd8555e56a32
출처(가운데): https://pyimagesearch.com/2019/02/25/black-and-white-image-colorization-with-opencv-and-deep-learning/
출처(오른쪽): https://stats.stackexchange.com/questions/400165/what-type-of-neural-network-is-used-for-image-style-transfer

computer vision분야에서 이미지의 domain을 다른 domain으로 translate하는 문제는 매우 다양하게 존재한다. 그 예로는 super-resolution, colorization, inpainting, attribute transfer, style transfer등이 있다.

 

 

domain translation은 크게 paired datasets을 사용하는 모델과 unpaired datasets을 사용하는 모델로 나눌 수 있다. 전자의 예로는 pix2pix와 simple regression model등이 있고, 후자는 CycleGAN을 예로 들 수 있다. 본 논문에서는 non-pair datasets을 사용한 unsupervised image-to-image 모델을제안한다.

 

Multimodal

cross-domain mapping에서 주관심 분야중 하나는 "multimodal"이다. 예를 들어, 겨울의 한 장면을 여름 style로 transfer한다고 했을 때 날씨와 시간, 밝기등 수 많은 변경 요소들이 존재하게 된다. 하지만 이전에 소개되었던 방식들은 보통 deterministic하거나 unimodal mapping만을 가정한다는 문제가 있다.

 

즉, 이전 방식들은 하나의 모델로 1대1 domain mapping만 된다는 것이다. 예를 들어, 고양이도 종류에 따라 그 스타일이 천차만별인데 한 가지 style의 고양이로만 domain mapping이 가능하다.

 

논문에서는 이러한 문제를 해결하기 위해서 Multimodal Unsupervised Image-to-image Translation framework를 제안한다. 

 

 

여기서 몇 가지 가정이 존재하는데, 첫번째는 이미지의 latent space가 content space와 style space로 분리될 수 있다는 것이다. 두번째로는 다른 domain을 가지는 이미지들이 같은 content space를 공유하면서 다른 style space를 가진다는 것이다. 예를들어, 위 이미지에서 왼쪽 leopard와 오른쪽 고양이는 매우 비슷한 포즈와 형태(content)를 가지므로 content space를 공유하지만 domain(style)이 다르기 때문에 style space는 서로 다른 것을 볼 수 있다.

 

저자들은 이미지를 target domain으로 매핑하기 위해서 이미지의 content code를 target style space의 random style code와 재결합하는 방식을 사용한다. 이때 style space에서 다른 style code들을 샘플링함으로써 다양하고 multimodal outputs을 만들 수 있다. 예를들어, 고양이 style space 중에서 랜덤으로 style code를 뽑아내 이와 recombination함으로써 여러 style(종류)의 고양이들로의 매핑을 배우게 된다. 

**논문에서 설명하는 multimodal mapping은 완전히 다른 여러 개의 domain으로의 mapping을 말하는 것이 아니라 한 domain(고양이)에서 여러 개의 style(종류)로의 mapping을 말하는 것이라고 생각한다.

 

2. Multimodal Unsupervised Image-to-Image Translation

2.1 Assumptions

저자는 제안된 framework에 몇 가지 assumptions을 고려한다.

$x_1 \in \chi_1$과 $x_2 \in \chi_2$를 서로 다른 domain을 가지는 이미지라고 해보자. unsupervised manner에서는 pair image가 아니기 때문에 joint distribution $p(x_1, x_2)$에 대한 접근 없이 두 개의 marginal distributions $p(x_1)$과 $p(x_2)$로부터 data sampling을 하게 된다. 이때 목표는 learned image-to-image translation models $p(x_{1\rightarrow 2}|x_1)$과 $p(x_{2 \rightarrow 1}|x_2)$과 함께 $p(x_2|x_1)$과 $p(x_1|x_2)$를 추정하는 것이다. 이 말은 결국 $x_1$의 domain을 가지는 $x_2$와 $x_2$의 domain을 가지는 $x_1$ 이미지를 추정하고 싶다는 것이다.

 

하지만 일반적으로 $p(x_2|x_1)$과 $p(x_1|x_2)$는 복잡하고 multimodal 분포(ex. 여러 종류의 고양이)를 가지기 때문에, deterministic translation model이 좋은 성능을 내기 매우 어렵다. 따라서 저자들은 "partially shared latent space assumption"을 만들어낸다. 이는 두 domain이 공유하는 content latent code $c \in C$domain 별로 다른 style latent code $s_i \in S_i$로부터 각 이미지 $x_i \in \chi_i$가 만들어진다는 것을 말한다.

$$x_1 = G_1^*(c, s_1), \ \ x_2=G_2^*(c, s_2)$$

여기서 $G_i^*$은 deterministic functions이고 inverse encoder $E_i^* = (G^*_i)^{-1}$를 가지고, 이러한 Generator G와 encoder E를 학습시키는 것이 목표이다.

**encoder와 decoder는 deterministic이지만, $p(x_2|x_1)$은 $s_2$에 의해 달라지기 때문에 continuous distribution이 된다.

 

2.2 Model

실제로 모델이 어떻게 이루어져있는지 살펴보자.

 

먼저 transition model(a)은 각 domain마다 encoder $E_i$와 decoder $G_i$로 이루어져 있다. 이미지 $x_i$으로부터 content code $c_i$와 style code $s_i$를 분리해내고, 이 둘을 다시 합쳐서 만들어진 이미지 $\hat{x}_i$가 원래 이미지와 비슷해지도록 GAN loss를 적용한다. 이는 이미지가 content code와 style code로 이루어져 있다는 2번째 가정을 나타내고 있다.

 

다음으로 image-to-image translation은 content code를 swapping하여 domain mapping을 한다. 아까 설명했듯이, content space는 이미지의 자세나 위치, 형태등의 정보를 담고 있다. 이를 서로 바꾸어주고 style code $s_i$는 prior distribution $q(s_i) ~ N(0,I)$에서 랜덤하게 뽑아서 이를 결합해 decoder로 이미지를 생성하면 target 이미지의 style을 가지면서 원래 이미지의 전체적인 structure 정보는 유지되도록 만드는 것이다. 


Question point

style space가 gaussian prior를 가지도록 하는데, 이는 GAN에서 일반적으로 latent vector를 gaussian으로 초기화하는 것과 비슷한 맥락이라고 생각이 든다. 결국 central limit theorem에 의해서 어떠한 공간을 gaussian으로 초기화하는 것이 대부분의 경우에서 최선이라는 것이다. 하지만 styleGAN 논문에서 볼 수 있듯이, 이렇게 가우시안으로 만들어진 공간은 원래 이미지가 가지는 style space를 제대로 표현하지 못하기 때문에 feature entanglement 문제가 발생하게 된다. 즉, style interpolation을 했을 때 다른 원치 않는 style까지 같이 바뀌어져버린 다는 것이다. 이러한 점에서 보았을 때, gaussian으로 prior를 주는 것이 옳은 선택인가에 대한 의문이 든다.


2.3 loss

논문에서는 decoder가 encoder의 inverse가 되도록 하기 위해서 "bidirectional reconstruction loss"를 사용한다. 또한, translated image가 target domain에서의 image distribution과 같아지도록 "adversarial loss"도 적용한다.

**target domain의 image distribution과 같아지도록 만든다는 것은 translated image가, 실제 있을 법한, target style을 가지는 이미지가 되도록 유도한 다는 것이다. 예를 들어, 사람을 고양이로 매핑할 때 자연스러운(실제 있을 법한) 고양이 얼굴이 되도록 유도한다 생각하면 된다.

 

Bidirectional Resconstruction loss

1) Image reconstruction(image -> latent -> image)

$$L^{x_1}_{recon} = \mathbb{E}_{x_1~p(x_1)}[||G_1(E^c_1(x_1), E^s_1(x_1))-x_1||_1]$$

 

2) Latent reconstruction(latent -> image -> latent)

$$L^{c_1}_{recon} = \mathbb{E}_{c_1~p(c_1),s_2~q(s_2)}[||E^c_2(G_2(c_1, s_2))-c_1||_1]$$

$$L^{s_2}_{recon} = \mathbb{E}_{c_1~p(c_1),s_2~q(s_2)}[||E^s_2(G_2(c_1, s_2))-s_1||_1]$$

 

논문에서는 Reconstruction loss로 $L_1$을 사용하였다. $L_2$는 average하는 경향이 있기 때문에 $L_1$을 사용했을 때 더 sharp한 이미지를 만들 수 있다고 한다. $L^{s_i}_{recon} \ loss$는 style code에 따라 다양한 output을 만들어낼 수 있도록 하고, $L^{c_i}_{recon} \ loss$는 translated image가 input image의 semantic content 정보(ex. pos, shape)는 유지하도록 한다.

 

Adversarial loss

$$L^{x_2}_{GAN} = \mathbb{E}_{c_1~p(c_1),s_2~q(s_2)}[log(1-D_2(G_2(c_1, s_2)))] + \mathbb{E}_{x_2~p(x_2)}[logD_2(x_2)]$$

 

여기서 discriminator $D_2$는 translated image와 real image를 구별하려 하고, $G_2$는 $D_2$를 속이려고 한다. 

Total loss

$$min_{E_1, E_2, G_1, G_2} max_{D_1, D_2} L(E_1, E_2, G_1, G_2, D_1, D_2) = L^{x_1}_{GAN} + L^{x_2}_{GAN}$$

$$+\lambda_x(L^{x_1}_{recon} + L^{x_2}_{recon})+\lambda_c(L^{c_1}_{recon}+L^{c_2}_{recon})+\lambda_s(L^{s_1}_{recon}+L^{s_2}_{recon})$$

**$\lambda$는 각 loss term들의 가중치를 조절하기 위한 파라메터이다.

 

3. Experiments

3.1 Architecture

 

실제 architecture가 어떤지 살펴보자. 다른 구조는 일반적인 인코더 디코더와 같고, 추가로 Adaptive Instance Normalization(AdaIN)을 사용하였다. AdaIN은 style transfer에 많이 사용되는 방법인데, 

 

위와 같이 한 이미지의 한 채널만을 normalization하는 방식을 instance normalization이라 하는데, style transfer에서 이러한 feature(channel)가 어떠한 style을 나타낸다고 생각할 수 있고, 이를 content code에 적용해줌으로써 style을 부여한다라고 이해하면 된다.

 

3.2 Quantitative Evaluation

 

위 표는 proposed architecture(MUNIT)와 다른 methods를 quantitative 측면에서 비교하고 있다. proposed method가 더 높은 quality를 가지면서 diversity 또한 높은 것을 확인할 수 있다.

 

3.3 Qualitative Evaluation

 

위 이미지는 마찬가지로 proposed method와 다른 methods를 qualitative 측면에서 평가하고 있다. 다른 methods들은 1대1 매핑 밖에 못하는 반면에 MUNIT은 여러가지의 style(multimodal)로 매핑하는 것을 볼 수 있다.


개인적으로 multimodal이라는 개념이 헷갈렸던 논문이었다. 본인이 생각한 multimodal은 예를 들어 사람이 있으면 이를 고양이, 개, 토끼 등 여러 domain으로 translation을 시키는 것이었는데, 논문에서는 하나의 domain(ex. 고양이)에서 여러 종류(style)로 mapping하는 것을 multimodal이라 칭하는 것 같다. 그리고 척봐도 복잡한 loss와 네트워크를 보니 처리 시간이 꽤 걸리지 않을까 하는 생각을 해본다...