(2016)Image-to-Image Translation with Conditional Adversarial Networks

Gyuha Park·2021년 8월 13일
0

Paper Review

목록 보기
13/33
post-thumbnail

0. Abstract

본 논문은 conditional adversarial networks를 일반화된 이미지 변환 문제에 테스트하였다. 이 네트워크는 단지 input-output mapping만 배우는 것이 아니라 이를 학습하기 위한 loss function까지 배운다. 따라서 전통적으로 매우 다른 loss function을 쓰던 문제들도 이 접근법을 적용할 수 있다. 본 논문은 이 접근법이 label과 동기화, 경계선만 있는 이미지를 restoration, 흑백 이미지 colorization 등의 문제에 효과적임을 보였다.

1. Introduction

이미지를 이미지로 변환할 뿐인 수많은 문제들은 그 세팅이 똑같음에도 각각 따로 연구되어 왔다(위에서 말한 이미지 변환 문제들). 이러한 변환 문제를 위한 일반적인 framework를 개발하는 것이 목표이다.

이쪽 방향으로는 이미 CNN이라는 좋은 도구가 있다. CNN은 결과의 품질을 알려주는 loss function을 최소화한다. 그러나 학습 과정 자체는 자동화되어 있지만 결과를 잘 나오게 하기 위해서는 여전히 수동으로 조절해야 할 것이 많다. 즉, 무엇을 최소화 해야 하는지 CNN에게 알려주어야 한다. 만약 단순히 결과와 정답 사이의 유클리드 거리를 최소화 하라고 만 하면 blurry한 이미지를 생성하게 된다. 이는 유클리드 거리는 그럴듯한 결과를 평균 했을 때 최소화되기 때문이고, 결과적으로 이미지가 흐려진다. 실제 같은 이미지를 얻기 위해서는 더 전문 지식이 필요하다.

만약 원하는 것을 high-level goal로 말할 수만 있다면, 네트워크는 스스로 그러한 목표에 맞게 loss를 줄여나갈 것이다. 본 논문은 cGAN이라는 조건부 생성 모델을 사용한다. Input image라는 조건을 줄 것이고 그에 맞는 output image를 생성할 것이기 때문에 이는 이미지 변환 문제에 적절하다.

본 논문이 기여하는 바는

  • conditional GAN이 넓은 범위의 문제에서 충분히 합리적인 결과를 가져다 줌을 밝혔다.
  • 좋은 결과를 얻기에 충분한 간단한 framework를 제안하고 여러 중요한 architecture의 효과를 분석하였다.
  • Structures losses for image modeling: 이미지 변환 문제는 per-pixel classification 또는 regression 문제로 다뤄졌다. 이러한 공식화는 output space는 “unstructured”이며 각 결과 픽셀은 다른 픽셀에 독립적인 것처럼 다룬다. cGAN은 structured loss를 학습하며 많은 논문들이 이러한 loss를 다룬다.
  • conditional GANs: 사실 이 논문에서 GAN을 처음 사용한 것은 아니다. 그러나 조건부 GAN을 이미지 변환 문제에 사용한 적은 없었다.

3. Method

GAN은 random noise vector zz로 부터 output image yy를 생성하는 G:zyG:z\rightarrow y를 학습하는 생성모델이다. 이에 비해 CGAN은 zz와 observed image xx로 부터 yy로의 mapping인 G:x,zyG:x,z\rightarrow y를 학습한다.

4. Objective

cGAN의 목적 함수는 다음과 같다.

LcGAN(G,D)=Ex,y[logD(x,y)]+Ex,z[log(1D(G(z,y)))]L_{cGAN}(G,D)=\mathop{\mathbb{E}}_{x,y}[\log D(x,y)]+\mathop{\mathbb{E}}_{x,z}[\log (1-D(G(z,y)))]

DD를 조건부로 학습하는 것을 중요하게 여겨, DDxx를 관측하지 못하도록 unconditional variant를 비교하도록 했다.

DD의 할일은 그대로이지만, GG는 단지 DD를 속이는 것뿐만 아니라 L2 distance에서의 ground truth에도 가깝도록 만들어야 한다. 사실 L2보다는 L1을 사용하는 것이 덜 흐린 이미지를 생성하는 데 도움이 되었다.

LL1(G)=Ex,y,z[yG(x,z)1]L_{L1}(G)=\mathop{\mathbb{E}}_{x,y,z}[||y-G(x,z)||_1]

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

G=argminGmaxDLcGAN(G,D)+λLL1(G)G^*=\arg\min\limits_{G}\max\limits_{D}L_{cGAN}(G,D)+\lambda L_{L1}(G)

zz가 없이도 네트워크는 xyx\rightarrow y mapping을 학습할 수 있지만, 결정론적인 결과를 생성할 수 있고, 따라서 delta function 이외의 어떤 분포와도 맞지 않을 수 있다. 과거의 conditional GAN은 이를 인정하여 xx에 더해 gaussian noise zz를 입력으로 주었다.

초기 실험에서 우리는 noise를 단순히 무시하도록 했지만, 최종 모델에서는 dropout 시에만 noise를 제공하여 학습과 테스트 시 모두에 GG의 여러 layer에 적용되도록 하였다.

5. Network architectures

네트워크는 DCGAN을 GGDD의 기본 모델로 하였고 둘 다 convolution-BatchNorm-ReLU 구조를 따른다.

1) Generator with skips

이미지 변환 문제에서 어려운 점은 고해상도 input grid를 고해상도 output grid로 mapping하는 것이다. 심지어 표면의 외관은 다른데 각각 같은 근본적인 구조를 가진다는 것이다.

많은 이전 연구들은 encoder-decoder 네트워크를 사용한다. 이러한 네트워크에서는 ottle neck layer를 통과하기 때문에 정보의 손실이 필연적으로 발생할 수밖에 없다. 그래서, skip-connection을 추가한 U-Net 이라는 구조를 사용했다. 정확히는, 전체 layer 개수를 nn이라 할 때 모든 ii번째 layer와 nin-i번째 layer를 연결했다. 각 연결은 단순히 concatenate 한 것이다.

2) Markovian discriminator (PatchGAN)

High-frequency 모델링을 위해서는 집중할 부분을 local image patch 단위로만 제한하는 것으로 충분하다. 그래서 DD를 PatchGAN 구조로 만들었다. 즉, DDN×NN\times N개의 각 pathch 별로 진짜인지 가짜인지 판별한다.

실험 단계에서는 NN이 작아도 전체 이미지를 한번에 보는 것보다는 더 좋은 결과를 얻을 수 있음을 보였다. 이는 더 작은 PatchGAN은 더 적은 parameter를 가지고, 더 빠르며, 더 큰 이미지에 적용하는 데에서도 이점이 있음을 보여준다.

DD가 이미지를 Markov random field처럼 보는 것이 효과적인 모델링 방법이므로, patch의 지름보다 더 먼 pixel들은 독립적이라고 보았다. 이러한 접근은 이미 연구된 바 있고 texture/style 모델에서 자주 사용되고 있는 방법이다. 따라서 PatchGAN은 texture/style loss면에서 적절한 모델이다.

실험 결과 70X70 patch에서 가장 좋은 결과를 얻었다.

6. Optimization and inference

Original GAN에서 log(1D(x,G(x,z))\log(1-D(x,G(x,z))를 최소화 하지만 본 연구에서는 logD(x,G(x,z))\log D(x,G(x,z))를 최소화 하였다. 또한 minibatch SGD와 Adam을 사용하였다. 또한 batch sizeㄴ느 실험에 따라 1 ~ 10으로 조정하였다.

7. Experiments

conditional GAN의 보편성을 테스트하기 위해, 다양하게 진행하였다.

8. Conclusion

본 논문에서는 image-to-image translation 문제에 대해, 특히 고도로 구조화된 그래픽 결과에 대해 conditional adversarial networks가 괜찮은 접근법 이라는 것을 보여주었다. 이 네트워크는 문제와 데이터에 대한 loss를 학습함으로써 넓은 범위의 문제에 대해 적합함을 보여주었다.

9. Apply to synthetic crane images

GitHub

A Domain : 크레인 합성 이미지 라벨

B Domain : 크레인 합성 이미지

1) Loss

2) Test (90 epoch)

profile
Live on mission ✞

0개의 댓글