ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Image-to-Image] Image-to-Image Translation with Conditional Adversarial Networks 번역 및 정리 (Pix2Pix)
    Paper review/Image-to-Image 2022. 1. 6. 13:45

    @ 굵은 글씨 중요한 내용, 빨간 글씨는 내가 추가한 내용

     

    https://arxiv.org/pdf/1611.07004.pdf

     

    주요 기여

    •  

     


     

    0. Abstract

    Image-to-image translation에 대한 범용 솔루션으로서 conditional adversarial networks를 탐색

    • 이러한 network는 input 이미지에서 output 이미지로의 매핑을 학습할 뿐만 아니라 이 매핑을 훈련시키기 위한 손실 함수를 학습
    • 이를 통해 label map에 사진을 합성하고, edge map에서 object를 재구성하고, image를 컬러화하는 데 효과적이라는 것을 입증
    • mapping 함수와 손실 함수를 수작업으로 설계하지 않고도 합리적인 결과를 얻을 수 있음

     

    1. Introduction

    Image-to-Image

    • CV task에서 Input image와 output image를 mapping하는 것
    • 영어가 프랑스어로 번역되는 것 처럼, 하나의 장면은 RGB이미지, edge map 등으로 translation될 수 있음
    • 이러한 언어 번역 task와 유사하게, 한 장면을 다른 표현으로 변환하는 작업을 image-to-image task라 함

    하지만 image2image는 각 특수 task마다 별도로 처리되었고, 본 논문은 이 task들을 모두 다룰 수 있는 공통 framewokr를 제안한다.

     

    GAN은 'output을 real과 구분할 수 없게 한다'는 목표를 갖고 있지만, 이로인해 흐릿한 이미지를 생성하는 문제가 있다. 따라서 추가적인 손실함수를 필요로 한다 (본 논문에서 추가 loss를 제안함).

    기존 GAN이 데이터의 생성 모델을 학습하는 것 처럼 CGAN도 조건부 생성 모델을 학습한다. 이것이 input image를 조건화하고 상응하는 output image를 생성하는 image2image task에 적합하다. 따라서 본 논문은 Image-to-Image translation을 위한 범용 솔루션으로서 이미지 conditional GAN을 사용한 Pix2Pix를 제안한다. 코드는 https://github.com/phillipi/pix2pix 에서 확인할 수 있다.

     

    2. Related work

    Structured losses for image modeling

    Image-to-Image translation 문제는 보통 픽셀 단위 분류 또는 회귀로 공식화 된다. 이러한 공식은 각 output 픽셀이 주어진 input 이미지의 모든 것들에 대해 conditionally independent라고 간주된다는 점에서 output space를 “unstructured”로 취급한다. Conditional GANs은 대신 structured loss를 학습한다. Structured loss은 output의 joint configuration에 불이익을 준다. Conditional GAN은 loss가 학습된다는 점에서 다르며, 이론적으로 output과 target 사이에 다른 possible structure에 불이익을 줄 수 있다.

     

    3. Method

    GAN은 random noise vector z에서 output 이미지 y, G : z → y까지의 매핑을 학습하는 생성 모델이다. 반면, conditional GAN은 observed image x와 random noise vector z에서 y, G : {x, z} → y로의 매핑을 학습한다.

     

    Generator G는 generator의 "fake"를 탐지하도록 학습된 Discriminator D가 "real" 이미지와 구별할 수 없는 output을 생성하도록 학습된다 (D는 data가 real일 확률을 output).

    이 학습 절차는 다음과 같다.

    3.1. Objective

    Conditional GAN의 목적함수는 다음과 같다.

    여기서 G는 loss를 최소화하려 하고, adversarial D는 loss를 최대화하려 한다 (G∗ = arg minG maxD LcGAN (G, D)). Fake 이미지를 만드는 G는 D가 선택하는 확률이 0.5가 되게끔 학습하고, input image가 real일 확률을 얻는 D는 확률 0으로 fake 이미지를 판별할 수 있게끔 학습한다.

    더보기

    기존 CGAN 손실함수

    위의 식에서 x (조건 image) = 아래 식에서 y

    위의 식에서 y (real) = 아래 식에서 x

    위의 식에서 z = 아래 식에서 z

     
     
    D의 학습의 중요성을 테스트하기 위해, D가 x (조건)를 관찰하지 않는 unconditional variant과 비교한다 (기본 GAN).

    D의 역할은 변하지 않지만, G는 D를 속일 뿐만 아니라 L2 distance에서의 ground truth에도 가깝도록 만들어야 한다 (=흐리지 않게 + real에 가깝게 이미지 생성). 그리고 L2보다 L1을 사용하는 것이 덜 흐린 이미지를 생성하는 데 도움이 된다.

    최종 목적함수는 다음과 같다.

    z가 없으면 network는 x에서 y까지의 매핑을 학습할 수 있지만 결정론적 output을 생성하므로 delta function 이외의 어떤 분포와도 일치하지 않는다 (주어진 이미지에 대해 오직 하나의 output만을 생성). 과거 conditional GAN은 이를 인정했으며, x 외에 가우스 노이즈 z를 G에 대한 input으로 제공한다.

     

    초기 실험에서, 우리는 이 전략이 효과적이지 않으며, G는 단순히 noise를 무시하는 법을 학습하는 것을 발견한다. 대신 최종 모델의 경우 학습 및 test 시간에 G의 여러 layer에 적용되는 dropout 형식으로만 noise를 제공한다. 

     

    3.2. Network architectures

    G와 D는 모두 convolutional 형태의 모듈을 사용하고, 주요 기능은 아래와 같다.

     

    3.2.1 Generator with skips

    Image2Image translation은 고해상도 input을 고해상도 output에 mapping 필요하다. 다른 표현을 가지지만 동일한 구조라고 생각할 수 있다. 이를 기반으로 아키텍처를 설계한다.

     

    이전의 image2image 모델들은 encoder-decoder network를 통해 해결했다. 

     

    이미지 번역 task의 경우 input과 output 사이에 공유되는 낮은 수준의 정보가 매우 많으며, 이 정보를 직접 netwokr를 가로질러 순환하는 것이 바람직하다.

    이와 같은 병목 현상을 피하기 위해 "U-Net" 구조를 따라 skip 연결을 추가한다 (특히 각 layer i와 layer n-i 사이에 추가, n은 총 layer 수).

     

     

     

    3.2.2 Markovian discriminator (PatchGAN)

    L2 loss와 L1 loss가 이미지 생성 문제에 대해 흐릿한 결과를 생성한다.

    • 이러한 손실은 저주파는 정확하게 포착하지만, 고주파에서는 그러지 못한다.
    • 이미지에서의 고주파는 색차이가 큰 부분, 저주파는 색 차이가 적은 부분을 의미 (즉, 경계를 의미).

     

    3.3. Optimization and inference

    아키텍처는 GAN의 표준 설정을 따르고,

    추론 시 학습단계와 동일한 방식으로 G를 수행한다.

     

     

    4. Experiments

    이 논문의 정성적 결과

    failure cases

     

    4.1. Evaluation metrics

    4.2. Analysis of the objective function

    L1, cGAN, L1+cGAN 비교 결과

    L1이 실제보다 더 좁은 분포로 이어지고, 평균적으로 회색빛을 조장함. cGAN의 분포는 실측값에 더 가까워짐

     

    4.3. Analysis of the generator architecture

     

    4.4. From PixelGANs to PatchGANs to ImageGANs

     

    4.5. Perceptual validation

     

    4.6. Semantic segmentation

    segmentation은 다른 image 생성보다 덜 복잡함. L1만으로도 충분히 좋은 성능을 보임.

     

    4.7. Community-driven Research

    이미지를 학습된 표현으로 변환하는 모델 (동영상 너무 신기..)

    https://vimeo.com/260612034

     

    5. Conclusion

    이 논문의 결과는 conditional adversarial networks가 많은 이미지 변환 작업, 특히 고도로 구조화된 그래픽 출력을 포함하는 작업에 유망한 접근 방식임을 시사한다. 이러한 network는 직면한 task와 데이터에 적응한 loss를 학습하므로 다양한 분야에 적용할 수 있다.

    댓글

Designed by Tistory.