Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

cb

[논문리뷰] Pix2Pix 본문

ai - paper

[논문리뷰] Pix2Pix

10011001101 2024. 9. 28. 02:29

Pix2Pix: Image-to-Image Translation with Conditional Adversarial Networks

Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, Alexei A. Efros

https://arxiv.org/pdf/1611.07004

 

0. Abstract


조건부 적대적 신경망(conditional adversarial networks)

image-to-image tranlation problems

input 이미지에서부터 output 이미지로부터 매핑하는 방법을 배움

reconstructing objects, colorizing images 등등을 가능하게 함

이는 별도의 매개변수 조정(parameter tweaking) 없이도 쉽게 적용이 가능할 것을 보임

loss function에 대한 hand-engineering 없이도 reasonable한 결과를 냄

 

 

1. Introduction


image processing, computer graphic, computer vision에서의 많은 문제점은 input image를 output image로 “변환(translating)”하는 것이었다.

사진에서와 같이 street scene에 대한 라벨을 바꾼다거나, edge를 photo로 변환하는 등의 변환을 예로 들 수 있다.

기존 방법론들은 각각의 task에 대해 서로 다른 loss를 만들 수밖에 없었다.

→ 따라서 저자들은 모든 task에 적용 가능한 general framework를 제시한다.

 

기존에는 CNNs을 사용하여 loss 함수를 minimize하는 방식으로 학습을 진행했기 때문에, 효과적인 loss function을 만드는 데에도 많은 노력이 들어가야 했다.

또, 단순히 pixel 간의 Euclidean distance를 줄이도록 학습을 한다면 blurry한 결과를 내기도 했다. (단순히 가능한 output들의 평균 loss를 줄이기만 하면 되므로)

GAN을 사용하면 해결 가능!

 

GAN을 사용하면 GT와 output 간의 단순 mapping이 아닌, 분포를 비슷하게 만들도록 학습하기 때문에 더욱 자연스러운 이미지를 생성해낼 수 있다.

 

 

2. Method


GAN은 random noise vector z에서 ouput image y로의 매핑을 배운다.

그와 비교되게 conditional GANs는 observed image x와 random noise vector z 모두를 y로 보내는 매핑을 배운다. $G : \{x, z\} → y$

 

G는 output이 real image와 분류되지 못하도록 output을 실제와 비슷하게 만들어내고, discriminator D는 generator가 만들어낸 이미지를 fake라고 분류하도록 학습을 진행한다.

 

2.1 Obejct


해당 논문은 CGAN을 기반으로 하는데, CGAN은 다음의 Loss function을 따른다

$$ L_{GAN}(G, D) = E_y[logD(y)] + E_{x,z}[log(1 - D(G(z))] $$

 

G는 loss를 minimize, D는 loss를 maximize하면서 minmax game을 진행하게 된다. 여기서, Conditional GAN은 기존 loss에서 condition x를 추가한 것으로 아래의 형태를 따른다.

$$ L_{cGAN}(G, D) = E_y[logD(x,y)] + E_{x,z}[log(1 - D(G(z))] $$

 

원래는 어떤 output이 나올지 제어할 수 없었다. 그러나 conditional GAN에서는 만들어내길 원하는 클래스의 정보를 D, G의 input과 같이 넣음으로써 원하는 output을 만들어낼 수 있게 되었다.

 

pix2pix에서 conditional information x는 input image가 되고, 다른 연구에서 traditional loss와 GAN loss를 같이 사용하는 것이 효과적이었기 때문에 L1 loss도 함께 사용해 준다.

L1 loss는 위와 같고, 최종적으로 구성된 loss는 아래의 식과 같다.

 

2.2 Network architectures


Generator with skips

image to image translation은 고화질의 인풋을 받아 고화질의 아웃풋을 출력해야 한다. 이는 거의 input의 sturcture를 거의 output에 사용하게 되고, surface appearance만 바꾼다.

이러한 task들에서는 주로 encoder-decoder 형태의 네트워크를 주로 사용하는데, 이는 입력을 점진적으로 down sampling하고 다시 upsampling하는 과정을 거친다.

pix2pix는 이를 기반으로 endcoder-decoder network에 residual connection을 사용하여 input information을 공유하는 방식을 사용한다. 일반적인 U-Net 형태를 따르는데, 이는 계층간 단순 concat을 통해 decoder의 feature와 aggregate할 수 있다.

 

Markovian discriminator (PatchGAN)

L1, L2 loss는 blurry한 result를 잘 내고, 이는 곧 고주파 선명도(high frequency crispness)를 잘 낼 수 없다는 문제로 직결된다. 하지만 이들이 low frequency의 정보는 잘 잡아낸다는 장점이 있기 때문에 pix2pix에서는 L1 loss를 사용하여 low frequency 정보를 잡아내도록 한다.

대신, GAN discriminator를 통해 high-frequency structure를 modeling한다. 이를 위해서는 discriminator architecture로 PatchGAN을 사용한다. PatchGAN의 discriminator는 N*N 패치들을 진짜인지 가짜인지 구별하는 역할을 한다.

이는 전체 이미지 단위가 아닌 patch 단위로 prediction을 진행하기 때문에 더 적은 Parameter를 사용하고, 빠른 running time을 가진다는 장점이 있다.

 

2.3 Optimization and inference

우선 pix2pix는 학습 초기에 Generator가 가짜 이미지를 못 만들어서 생기는 D, G 불균형을 막기 위해 loss를 2로 나누어 D의 학습 속도를 늦추는 방식을 사용한다.

pix2pix는 test imtime에서도 드롭아웃을 그대로 적용하여 stochastic 한 특성을 더욱 높여 주었다. 또, batch normalization 은 train의 statistics 가 아닌 test의 statistics를 사용하였다는 차별점이 존재한다.

 

 

3. Experiments


 

'ai - paper' 카테고리의 다른 글

[논문리뷰] I-JEPA  (1) 2024.10.01
[논문리뷰] One-2-3-45  (1) 2024.09.28
[논문 리뷰] VoxelNet  (0) 2024.08.08
[논문 리뷰] Frustum PoinNet  (0) 2024.08.02
[모델 정리] 딥러닝 논문리뷰 및 정리 II  (0) 2024.05.07