본문 바로가기

논문 분석

Encoding in Style: a StyleGAN Encoder for Image-to-Image Translation - 논문 분석

728x90

원본 : https://arxiv.org/pdf/2008.00951.pdf

 

Pixel2Style2Pixel이라 불리는 Pix2Pix 기반 imagetoimage 프레임워크를 제안한다.

 

개요

  • Pixel2Style2Pixel: ImagetoImage 프레임워크 PsP를 제안. 일련의 style vector를 직접 생성하는 새로운 인코더와 사전 훈련된 StyleGan 생성자를 사용한다.
  • 인코더는 추가 최적화 없이 실제 이미지를 W+ 임베딩 할 수 있다. 임베딩: 사람이 사용하는 자연어를 컴퓨터가 이해할 수 있도록 바꾸는 것
  • 본 논문은 새로운 GAN을 제안하는 것이 아닌 인코더를 제안함.

 

들어가며

  • StyleGAN은 고해상도 이미지에서 품질이 좋으며 제어 및 편집 기능ㅇ르 제공하는 W라는 Latent Space를 가지고 있다. 이러한 방법은 Inver first, edit later라는 접근 방식을 따른다.
  • 시간이 지나며, W에서 W+로 코딩하는 것이 일반적이게 되었고 이는 StyleGAN의 각 입력 레이어에 하나씩 18개의 서로 다른 512차원 w 벡터에 연결에 의해 정의된다.
  • 이렇게 단일 이미지를 W+로 변환하는데에는 이미지마다 최적화를 하기 때문에 몇 분이 소요되므로 이를 빠르고 정확하게 변환시키는 것은 여전히 어려운 과제이다.
  • pix2pix와 동일한 아키텍쳐를 사용하여 보다 일반적인 프레임워크를 정의한다.
  • p2p는 훈련 과정의 단순화 외에도 Adversary discriminator를 훈련시킬 필요가 없어 사전 훈련된 StyleGAN Generator를 사용하면 몇 가지 이점을 가진다.

The pSp Framwork

  • pSp 프레임워크는 사전 훈련된 StyleGAN Generator와 W+ Latent space 기반으로 한다. 각 입력 이미지를 인코딩하는 간단한 기술은 인코더의 마지막 Layer에서 얻은 단일 512차원 vector사용하여 주어진 입력 이미지를 W+ 로 직접 인코딩하여 18가지 vector를 모두 학습하는 것이다.

  1. 피쳐맵 추출 (Resnet backbone에 feature pyramid 구조를 이용)
  2. 0~2 단계 해상도의 작은 피쳐맵, 3~6 단계 해상도의 중간 피쳐맵, 7 ~18 단계의 큰 피쳐 맵에서 각 각 단계의 style을 추출한다.
  3. 맵핑 네트워크는 제일 오른쪽 위 그림에서 보는 것처럼 convolutional network로만 이루어진 네트워크다. stride를 2로 줘서 매번 해상도를 반으로 줄여 최종적으로 한 스타일 당 1x1x512 w latent intermediate vector를 추출하는 것이다.
  4. 그게 기존 stylegan 논문의 generator에 들어간다. 각 layer 별 vector가 Affine 변환을 거쳐 스타일을 생성하고, upsampling을 거쳐 최종 이미지를 합성한다.즉, 적절한 Latent Vector를 생성자에 삽입하여 생성자에서 샘플링을 진행한다.
  • Bottom Up Pathway 후 Top Down Pathway 를 진행하여 map2style StyleGan Generator에 Style을 각각 입혀준다. map2style은 8x8x512 → 4x4x512→ 식으로 stride가 2인 콘볼루션 처럼 진행된다.

 

  • Pixel space → Style space → Pixel space
  • 인코더 네트워크는 한 번 학습하고 나면 이미지를 입력으로 넣어서 전체 네트워크에 한 번 forward 하면 latent codes를 직접적으로 얻을 수 있다.

  • 본 논문에서 average style vector로 w bar를 사용하며 실질적으로 인코더 부분을 학습하여 W+ space의 vector를 찾는다. w space의 경우 finer details의 표현이 어렵다.
  • 학습 난이도 관점에서 평균적인 얼굴에서의 residual를 찾는 것이 더 쉬울 수 있다.
  • 즉, 평균적인 얼굴에서 출발하도록 만든다.
  • pSp(x) → x 이미지를 인풋으로 받아서 image to image 할 경우 생성자 G는 E(x) + average style vector를 사용하여 이미지를 생성한다. 즉 인코더는 E(x) 값을 더욱 잘 찾도록 학습이 된다. 실제 사례는 다음과 같다.

 

  • step 0 일 때이다. 오른쪽 결과와 가운데 타겟이 전혀 비슷하지 않다.

  • step 2400 일 때 이다. 오른쪽 결과와 타겟이 점점 비슷해져감을 볼 수 있다. 평균적인 이미지에서 계속 바뀌어 가는 것이다.

  1. 생성된 이미지와 원본 이미지 x 사이의 pixel wise L2 loss 가 적도록
  2. 생성된 이미지의 퀄리티가 높도록
  3. facial identity를 유지하도록 사전학습된 ArcFace 네트워크 사용. deep face 기술에서도 사용하는 방식 https://arxiv.org/pdf/1801.07698v1.pdf
  4. 평균적인 얼굴과 가깝도록

  • 동물 데이터셋에 대하여 실험을 진행했을 때에도 좋은 결과를 얻을 수 있었다.
    • 사람 얼굴 이미지가 아니므로 LID를 제외한 다른 loss들을 적절히 사용하여 pSp encoder를 학습하였다.
    • pSp는 사전 학습된 StyleGAN2가 필요하지만, StyleGAN2-ADA를 통해 적은 양의 데이터로 네트워크 학습이 가능하다.