이미지의 도메인간 변화를 다루는 문제인 image to image translation을 처음으로 정의함.
흑백 사진 -> 컬러화, 스케치 그림 -> 페인팅 그림
기존 image 관련 문제는 convolutional neural nets(CNNs)를 사용해 왔다. 그러나 CNNs을 학습할 때 효과적인 loss를 설계하는 것은 어려운 일이다. 간단하게 학습 방향을 소개한다면 유클리디언 거리를 줄이는 방법으로 loss를 줄일 수 있다. 그러나 이렇게 한다면 모델은 흐릿한 이미지를 출력하게 된다.
유클리디언 거리
이미지에서 유클리디언 거리를 계산하는 방법.
두 이미지 간 같은 위치의 픽셀 값 차의 제곱을 모두 더하여 루트를 씌운 값이다.
이러한 문제를 해결하기 위해 이미지 처리 문제에서는 GANs(Generative Adversarial Networks)을 많이 이용한다. GANs은 생성 모델(generative model)과 판별 모델(discriminative model)을 경쟁적으로 학습한다. 이 방법으로 실제와 유사한 이미지를 만들 수 있게 된다.
pix2pix 논문에서는 조건을 넣을 수 있는 conditional GANs(cGANs)를 선택하였다. 생성 모델과 판별 모델에 조건으로 이미지를 넣어 학습하면 생성 모델은 입력 이미지에 따르는 결과 이미지를 생성할 수 있게 된다.
목표
수식을 살펴본다. G, D를 각각 생성 모델과 판별 모델이라 하고 x, y, z를 각각 입력 이미지, 출력 이미지, 노이즈 라고 가정한다.
cGAN의 목표는 다음과 같이 정의되는 cGAN loss를 최소화하는 것이다. 이 과정을 통해 G는 입력 이미지 x와 노이즈 z로부터 출력 이미지 y로의 맵핑을 배우게 된다.
Binary Cross Entropy와 비슷한 구조를 가지고 있다.
전항은 판별자가 진짜를 찾기 위하여 학습하는 값이고 후항은 판별자가 가짜를 찾기 위해서 학습하는 식이다.
G의 추가 Loss
L1 loss를 추가하여 CNN과 같이 전체적인 비교를 통하여 오차를 최소화 하였다.
L1 loss는 image의 low-frequency content를 학습할 수 있다.(전체적인 구조를 파악)
전체 Loss 식
네트워크 구조
생성 모델과 판별 모델의 구조를 살펴본다. 두 모델은 convolution-BatchNorm-Relu 형태의 모듈로 한 레이어를 구성한다.
Generator model network
저자는 이미지 변환에서 입력 이미지와 출력 이미지 사이의 표면의 형태는 다르지만 구조 정보를 그대로 가져가야 하는 경우를 고려해서 모델을 설계했다고 한다.(전체적인 구조는 비슷하게 만들어야 함을 의미하는 듯)
생성 모델은 U-Net처럼 가운데 병목이 있는 형태로 설계 되었다. 이러한 구조는 Low-level의 정보를 전달하기에 좋은 구조라 한다.(예시로, 이미지 채색 문제의 경우 입력과 출력 사이에서 중요한 엣지 정보를 공유하게 된다. 윤곽 같은 느낌)
병목 지역을 통해서 누락된 정보를 보완할 방법으로 skip connection을 추가하였다는 점이 특이하다.
Discriminator model network
논문에서 생성 모델의 L1 distance로 low-frequency에서의 정확함을 요구했으므로 판별 모델은 high-frequency 구조만을 모델링해도 충분하다고 판단함.
그리고 high-frequency를 모델링 할 때, 지역 이미지 만을 고려해도 충분하다고 생각하였다. 그래서 판별 모델은 NxN개의 작은 구역의 이미지 각각을 판별하고 각 결과의 평균을 구하게 된다.
결과적으로 통째로 이미지를 입력받아 판별하는 것보다 NxN 구역으로 나누어서 판별하는 것이 더 나은 결과를 내놓았다고 한다. 또한 이 방식은 계산량을 줄여주고, 빠르게 판별할 수 있고, 매우 큰 이미지에도 적용 가능하다는 장점이 있다.
결과
저자는 photo generation, semantic segmentation, colorization 등을 비롯해 다양한 비전 테스크를 수행하였다.
하지만 일반적이지 않은 입력이 들어오거나 sparse한 이미지가 입력으로 들어왔을 때 이상한 이미지가 나오는 현상을 관찰하였다.
Introduction
이미지의 도메인간 변화를 다루는 문제인 image to image translation을 처음으로 정의함.
흑백 사진 -> 컬러화, 스케치 그림 -> 페인팅 그림
기존 image 관련 문제는 convolutional neural nets(CNNs)를 사용해 왔다. 그러나 CNNs을 학습할 때 효과적인 loss를 설계하는 것은 어려운 일이다. 간단하게 학습 방향을 소개한다면 유클리디언 거리를 줄이는 방법으로 loss를 줄일 수 있다. 그러나 이렇게 한다면 모델은 흐릿한 이미지를 출력하게 된다.
이러한 문제를 해결하기 위해 이미지 처리 문제에서는 GANs(Generative Adversarial Networks)을 많이 이용한다. GANs은 생성 모델(generative model)과 판별 모델(discriminative model)을 경쟁적으로 학습한다. 이 방법으로 실제와 유사한 이미지를 만들 수 있게 된다.
pix2pix 논문에서는 조건을 넣을 수 있는 conditional GANs(cGANs)를 선택하였다. 생성 모델과 판별 모델에 조건으로 이미지를 넣어 학습하면 생성 모델은 입력 이미지에 따르는 결과 이미지를 생성할 수 있게 된다.![image](https://user-images.githubusercontent.com/54474501/135581269-f514772e-de32-4ad4-ad12-6fa3bc142ca8.png)
목표
G의 추가 Loss
전체 Loss 식
네트워크 구조
Generator model network
Discriminator model network
결과
Reference
1. Link 2. Link