Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
chullhwan-song opened this issue · 1 comments
chullhwan-song commented
chullhwan-song commented
What?
- cyclegan
- pixel2pixel 연구가 기반.
- 하지만, 이 연구는 다음처럼 이미지 매칭 Pair 데이터가 있어야한다.
- 실제로 이러한 학습셋은 구하기 어렵다.
- cyclegan에서는 이러한 문제를 해결한다. 즉, image to image 가 아니라, domain to domain() 관계로 설정한다. 이러한 논리는 선행 연구인 pixel2pixel의 학습셋 문제를 해결
- 여기에 또하나의 특징이 있는데 이름(cyclegan)에서 언급했듯이, 거꾸로 가는 형태(왔다갔다) 즉, 의 개념을 추가한다. 이는 G에서 발생된 Y를 마치 새로운 Input으로 하고 G(Y)가 원래 X처럼 나오길 바라는 형태이다.
- X > G(X) > Y > G(Y) > X 형태이기때문에, CycleGAN으로 이름을 지은듯하다.
data set 구성
Pixel2Pixel
- Pixel2Pixel에서는 l2 loss 이외에 gan loss를 추가
- l2 loss 만으로는 그냥 중간값을 취하려는 형태로 generator하지만, gan loss를 추가함으로써, 좀더 디테일한 결과를 얻을수 있다.
CycleGAN
- 앞에서 언급한거와 같이 Pixel2Pixel은 나쁘지 않는 결과를 얻을 수 있다. 하지만, 학습셋 구성에 있어서, image2image pair를 구성해야하는데 이는 쉽게 구할수 없다.
- 그래서 다음과 같은 pair로 주어졋을때, 즉, 특정 화가의 풍경사그림이 주어졌을때, 실제 그 풍경과 매칭되는 똑같은 장소의 사진이 아니라, 그냥 매칭되지 않는 풍경 실제사진을 주어졌을때의 문제를 cyclegan이 푼다.
Formulation
-
목표는 Domain X를 Doman Y로 mapping 하는 function을 학습하는것이다. 이를 위해 위에서 언급한 두개의 매칭 함수를 학습.
-
- X > G(X) > Y를 생성하고, G(X) 를 진짜인지 가짜인지 구분하는 D(Y)를 학습 > D(Y)가 위의 예제처럼 실제 이미지처럼 만드는지?
- 반대로, Y>G(Y) >를 생성하고, G(Y)가 실제 X와 동일하게 만드는지( D(X)를 학습. > D(X)가 위의 예제처럼 반대로 특정 화가풍으로 만드는지..(여기서는 실제 X와 동일하게만드는지를 보는것같다.)
-
실제로 이 개념하에서, 이 논문은 크게 두개의 loss가 제안한다.
-
Cycle Consistency Loss
-
Generator G : network