본문 바로가기

컴퓨터비전/논문리뷰

CR-GAN : Learning Complete Representations for Multi-view Generation 논문 리뷰







CR-GAN : Learning Complete Representations for Multi-view Generation

(Yu Tian et al.)

 

 

  이번 논문은 어떤 시점에서 찍은 사진을 다른 시점에서 찍은 사진으로 바꾸는 기술인 view synthesis를 다룬 논문입니다. 2018년에 IJCAI에서 발표된 논문으로 GAN을 활용하여 기존의 방법보다도 상당히 개선된 이미지를 생성하였는데요. 어떤 아이디어가 반영되었는지 살펴보겠습니다.

 

 

 

1. 개념소개(Abstract/Introduction)

  GAN을 활용하여 view synthesis 시도한 사례는 여러가지가 있었다. 다만 트레이닝한 데이터를 기반으로 하는 것이기 때문에, 트레이닝 되지 않은 데이터들이 들어오면 다소 부자연스러운 사진이 생성되었다.

 

<figure 1> Yu Tian, Xi Peng, Long Zhao, Shaoting Zhang and Dimitris N. Metaxas(2018), CR-GAN : Learning Complete Representations for Multi-view Generation, IJCAI-18

  그 결과 <figure 1>의 1열에서 보는 것처럼 학습된 데이터 영역에서 이미지를 생성하면 상당히 자연스러운 사진을 생성할 수 있었지만, 그렇지 않은 경우에는 2열에서처럼 부자연스러운 사진을 생성하였다.

 

  이 논문에서는 이 이유를 다음과 같이 분석했다. 위에서 보는 것 처럼 이미지를 인코딩할 때, 인코더(E)는 이미지 영역(X)에 있는 데이터를 Z영역으로 맵핑하게 된다. 그리고 제너레이터(G)는 이 Z영역의 데이터를 받아 이미지를 생성하도록 트레이닝 된다.

  이 때 학습하는 이미지는 한정되어있기 때문에 Z영역의 모든 부분을 생성하지는 않고 데이터에 따라 <figure 1>에서 네모로 나타나는 영역만 만들어지게 되는 것이다. 이렇게 트레이닝 된 시스템에 동그라미나 세모가 생성되는(Z영역에 맵핑했을 때) 이미지를 인풋으로 주게되면 G는 제대로된 이미지를 만들어 내지 못하는 것이다.

 

<figure 2> Yu Tian, Xi Peng, Long Zhao, Shaoting Zhang and Dimitris N. Metaxas(2018), CR-GAN : Learning Complete Representations for Multi-view Generation, IJCAI-18

  이 영역에 추가적인 기법을 적용해 Z역역을 확장하여 적용하였고 그 결과 <figure 2>에서 처럼 다른 이미지에 대해서도 기존 방법들에 비해 월등히 자연스러운 사진을 얻었다. 이렇게 Z영역의 대표값들을 완전하게 체워준다고 하여 "complete representation"이라는 표현을 썼고 이 앞글자를 따서 CR-GAN이라 명명했다고 한다.

<figure 3> Yu Tian, Xi Peng, Long Zhao, Shaoting Zhang and Dimitris N. Metaxas(2018), CR-GAN : Learning Complete Representations for Multi-view Generation, IJCAI-18

  이 방법을 그림으로 가장 간단하게 표현한 것이 <figure 3>에서 나타난 이미지이다. 그러면 이제 관건은 E에서 생성되지 않은 Z역역을 어떻게 만들어낼 것인가 하는 것이고, 아래의 Proposed Method에서 다뤄보겠다.

 

 


2. 개념소개(Proposed Method)

  이 방법은 크게 두갈래의 학습경로를 만들어 트레이닝하여 이미지를 생성한다. 또한, self-supervied learning을 통해 학습한 후 두가지의 파라미터를 공유하여 최종적인 시스템을 만든다. 여기서의 주안점은 Z영역의 모든 데이터를 다룰 수 있도록 하여 실재와 가장 비슷한 이미지를 만들어내는 것이다.

 

(1) Generation Path(Supervised Learning)

  첫번째는 일반적인 생성기(G)에 대한 학습이다. 여기서는 인코더(E)에 대한 학습은 고려하지 않으며, 생성기(G)와 판별기(D)의 학습을 통해 성능을 높이는 것이 목표이다.

 

  우선 생성기는 무작위의 잡음(random noise)과 함께 사진을 찍은 시점에 대한 정보를 입력받는다. 그리고 여러각도에서의 사진데이터를 생성해야한다. 잡음영역을 z, 샘플사진영역을 x, 시점 라벨을 v라고 하자.

  그러면 생성기(G)는 잡음을 입력받아 사진을 만들어야 하고 이때, 시점라벨을 같이 입력 받는다. 따라서, G(v, z) = x̄ 가 되는 것이다.

  판별기(D)는 G로 생성된 이미지는 가짜라고 판별하고 x영역에 있는 이미지는 진짜라고 구분해야 한다. 따라서 판별기(D) 아래의 (1)식을 최소화하는 방향으로 트레이닝 해야한다.

  G에 의해 생성된 이미지는 가짜(=0)으로 샘플(x) 이미지는 진짜(=1)로 판별해야하는 것이다.

 

  반편 생성기(G)는 본인이 만들어낸 이미지를 진짜(=1)로 속여야하기 때문에 아래의 (2)식을 최대화 하는 방향으로 트레이닝 해야한다.

 

(1), (2)의 Supervised Learning과정을 나타내면 Algorithm 1과 같다.

 

(2) Reconstruction Path(Supervised Learning)

  여기서는 생성기(G)는 고정을 해둔 상태에서 인코더(E)와 판별기(D)만 트레이닝을 한다. 생성기(G)의 경우 잡음을 통해 먼저 트레이닝을 했기 때문에, 이를 고정한 상태에서 인코더(E)를 트레이닝 하게 되면 z영역에서 complete representations가 가능하게 되는 것이다.

 

  i와 j가 다를 때, 시점 i에서 찍은 사진을 xi라하고 시점 j에서 찍은 사진을 xj라고 하자. 이때, 인코더에서 xi를 입력받아 생성기에서 최종적으로 xj를 출력하는 것이 목표이다.

  따라서, 인코더에서는 E(xi)를 입력받고 이를 z̄로 매핑한다. 그 이후 생성기는 이 z̄와 출력하고자하는 시점의 라벨인 vj를 입력받아 j를 출력하도록 맵핑하는 것이다.

  * 인코더에서 E(xi)를 입력받고 이를 z̄로 매핑할 때 시점에 대한 라벨인 v̄도 같이 출력하도록 트레이닝하는데 이는 이후에 이루어지는 Self-superviesd Learning에서 사용된다.

 

  그러면 판별기인 D에서는 생성된 이미지는 가짜(=0)로 진짜 이미지는 진짜(=1)로 판별해야하기 때문에 아래의 (3)식을 최소화 하는 방향으로 트레이닝 되어야 한다. 여기서 x̃j = G(Vj, Ez(xi))이다.

 

  한편, 생성기(G)는 판별기에서 자신이 생성한 이미지를 진짜(=1)라고 속여야하기 때문에 아래의 (4)식을 최대화 하는 방향으로 트레이닝 해야한다.

  * 이때, x̃j가 xj의 reconstruction이 되도록 L1 loss를 사용하고, 시점 라벨의 추정치와 실제값을 맞추도록 Lv를 사용하여 인코더가 시점에 대해서도 추정할 수 있도록 사용한다.

 

(3) Self-supervised Learning

  여기서 트레이닝은 다시 두 단계로 나뉘는데 1단계에서는 Algorithm 1에서 했던 2~7과정을 반복하여 트레이닝 한다. 이 단계를 통해서 시점에 대한 정보(v)가 없는 사진이 들어오면 시점 정보를 추정(v̂)할 수 있다.

  이렇게 시점을 추정하는 학습이 완료되면, 이어서 E, G, D를 트레이닝하여, view synthesis를 위한 알고리즘을 완성한다.

 

  먼저, 인코더와 판별기를 트레이닝한다.

  인코더(E)를 통해 시점에 대한 추정치(v̂)와 함께 z̄영역의 값을 맵핑한다. E(v̂, E(x))

  그리고 이를 제너레이터에 입력으로 넣어 이미지를 생성한다. G(E(v̂, E(x)))

  이때, 판별기(D)는 이렇게 생성된 이미지와 원본이미지를 구분할 수 있도록 학습되어야 하며, 아래의 (5)식을 최소화하는 방향으로 트레이닝된다.

  인코더(E)의 경우 시점에 대한 추정치와 z영역에 매핑된 값들을 통해 원본이미지에 가까운 사진을 만들어내야하기 때문에 (4)식의 원리와 유사하게 아래의 식을 최대화 시켜야 한다.

 

 

  다음으로, 생성기와 판별기를 트레이닝한다.

  먼저 판별기는 (1)식과 유사한 원리로 아래의 (7)식을 최소화하는 방향으로 트레이닝한다.

  생성기(G)는 (2)식과 유사한 원리로 (8)식을 최대화 하는 방향으로 트레이닝 된다.

 

(4) 정리

  이렇게 Supervised-Learning과 Self-Supervised-Learning을 통해 데이터를 얻는 과정을 요약하면 <figure 4>의 (d) CR-GAN과 같다.

<figure 4> Yu Tian, Xi Peng, Long Zhao, Shaoting Zhang and Dimitris N. Metaxas(2018), CR-GAN : Learning Complete Representations for Multi-view Generation, IJCAI-18

  이렇게 2단계의 과정을 통해 트레이닝 하는 방법과 Self-Supervised-Learning을 통해 얻은 파라미터들을 서로 공유하여 인코더를 거쳐온 데이터가 z영역의 모든부분을 다룰 수 있도록 해주는 방식이다.

 

 


3. 실험결과(Experiments)

<figure 5> Yu Tian, Xi Peng, Long Zhao, Shaoting Zhang and Dimitris N. Metaxas(2018), CR-GAN : Learning Complete Representations for Multi-view Generation, IJCAI-18

<figure 5>의 1열은 single-pathway를 사용한 방법이고 2열은 two-pathway를 사용한 방법이다. 2열의 방법이 더 자연스러운 사진을 얻은 것을 알 수 있다.

<figure 6> Yu Tian, Xi Peng, Long Zhao, Shaoting Zhang and Dimitris N. Metaxas(2018), CR-GAN : Learning Complete Representations for Multi-view Generation, IJCAI-18

  <figure 6>에서 1열은 supervised-learning을 이용한 것으고 2열은 self-supervised-learning을 이용한 것이다. 눈썹 등 주요 특징들이 2열의 사진에서 더 비슷한 것을 알 수 있다.

 


여기까지 view synthesis의 방법을 제시한 CR-GAN의 논문을 리뷰해보았습니다. 이미지를 생성하는데 있어 Latent영역을 고려해 정확도를 높였다는 아이디어가 고무적이었습니다. 사람 얼굴뿐만 아니라 다른 데이터를 사용해서도 분석해보고 개선점을 찾는 다면 재미있는 연구주제가 될 것 같습니다.