티스토리 뷰
Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 논문 리뷰
provbs 2023. 2. 2. 15:55Abstract
- image-to-image translation은 정렬된 여러 세트의 image pairs들로 학습하여, input image와 output image 사이를 mapping 하는데 목적이 있다.
- 근데 이 학습용 image pairs가 없을 때가 많다. (데이터의 부족)
- 그래서 이 learning to translate an image from a soure X to target domain Y를 pair인 데이터들 없이 가능하게 할 수 있는 어프로치를 제안하려한다.
(오.. 대박..)
- 우리의 목표는 mapping (G: X -> Y)에서 만들어진 G(X) 결과물이, Y에게 구별되지 않도록 하는것 이다. (using an adversarial loss)
- 이 mapping은 굉장히 제약적이기 때문에, 우리는 mapping을 inverse mapping(F : Y -> X)이랑 묶었고, cycle consistency loss로 F(G(X)) ≈ X 를 하려한다
- 해당 방식으로 paired data가 없음에도, collection style transfer, object transfiguration, season transfer, photo enhancement 등 여러 task에서 좋은 결과물을 얻을 수 있었다.
- 그 전 방식들과의 비교에서 우리의 방식이 확실히 효과적임을 입증할 수 있었다.
1. Introduction
- 모네의 그림 당시의 상황을 한번 상상해봄으로 시작함 (모네가 본인의 impression을 어떻게 그림에 투영했는가? brush strokes 등)
- 실제의 모네의 그림이 옆에 있다면, 우리는 모네가 직접 그리지 않더라도 어떤 식으로 그렸을지에 대한 상상이 가능하다
(knowledge of the set of monet paintings + of the set of landscape photographs)
우리는 스타일적으로 다른 두개의 것을 보고 하나의 scene이 "translate"되었을 때를 상상할 수 있다.
- 이 논문에서 우리는 동일한 것을 해낼 수 있는 방법을 소개하려 한다.
목표 :
1) capturing special characteristics of one image collection
2) figure out how these characteristics could be translated into the other image collection
(전부 pair된 이미지가 없을 때)
- 이 문제는 image-to-image translation으로 볼수 있는데, 하나의 image x를 다른 장면의 representation = y로 바꾸는 작업이기 때문이다.
예) 흑백사진을 컬러로 바꾼다거나, edge-map을 실사로 바꾼다거나
- 현재 image pair가 존재한다는 가정아래에 powerful translation system이 이미 supervised 세팅에 존재한다.
- 하지만 pair로 된 데이터 셋을 구하기는 expensive + difficult.
(artistic적인 데이터로 가면 더더욱 구하기가 힘들어진다, zebra <-> horse같은 object transfiguration같은 경우엔 어떤 desired output이 확실히 정의되지 않는 경우도 있다.)
- 그래서 input-output 데이터 pair 없이 가능하게 할수 없을까? 생각했고
- 우리는 영역들 사이의 어떤 관계성이 있을 것이다라고 예상했고, 두개의 다른 이미지를 "같은 장면의 이미지들이다 "라고 가정을 하고 두개의 이미지를 훈련을 시켜, 그 관계성을 찾아본다던지?
- domain X에 한 세트의 이미지를, domain Y에 다른 한 세트의 이미지들을
- 우리는 만들어진 y'를 y와 구별해내기 힘든 결과를 내는 G: X -> Y로 만들어진, y'이 G(X)인 adversary trained mapping을 만들 수 있다.
- 이론적으로, 이 목적(우리가 하려고 하는 것)은 "실증적인 분포 Pdata(y)"랑 매치되는
"y' 대한 output 분포"를 유도하게 됨 (이것은 보통 G가 확률적 특성을 가짐을 요구한다)
- 따라서 optimal G는 domain X를 Y와 분포가 동일한 domain Y'으로 translate 하게됨.
- 하지만, 이 translation이 input x 와 output y에 대해서 의미있게 짝지어져 있다고 확신할 수 없음.
-> mapping G가 y'에 대해서 같은 분포를 유도할 경우는, 무한하게 많다고 볼 수 있음
->심지어, 실제로 해보니, 적대 목표를 나누는 최적화를 찾기 힘들었음 : standard procedure들은 mode collapse를 일으켰음 ( all input images map to the same output image, optimization fails to make progress)
->> 이런 이슈들 때문에 우리는 더 많은 structure들을 우리의 목표에 달기로 했음
->>> translation should be "cycle consistent" :
영어에서 프랑스어로 번역한 뒤 다시 영어로 번역했을 때 똑같은 문장으로 돌아와야하는 것처럼, 동일하게 돌아오길 원한다.
수학적으로 G: X-> Y 그리고 F: Y->X이며, G랑 F랑 서로의 역이면, 두 mapping 또한 1대1로 매칭되어야한다. (bijection)
-> 이를 이용해서 G와 F의 mapping의 학습을 동시에 진행하고, cycle consistency loss를 더해서,
F(G(x)) ≈ x 그리고 G(F(y)) ≈ y 를
이끌어 내려고 한다.
- 해당 loss와 adversarial loss를 합해서 domain X와 Y에 적용시킨다면, unpaired image-to-image translation에 완전한 결과를 만족시켜 줄 것이다.
- 우리는 우리가 만든 방법으로 다양한 적용을 실험하였고 ( collecting style transfer, object transfiguration, season transfer, photo enhancement 등)
- 위의 적용 사례들의 previous approach 들과 비교하여 확실한 성능의 차이를 보여주었다.
- PyTorch와 Torch implementation 두개 전부 제공하였고, 더 많은 결과들은 website에 있다.
2. Related Work
Generative Adversarial Networks (GANs)
- achieved impressive results in image generation, image editing, representation learing
- 최근에는 text2image, image inpainting, future predictions, 3D, videos 영역과 같은 conditional image generation application들과 같은 발상을 적용시키는 트렌드이다
- "GAN의 성공"의 이유는 adversarial loss로 generated image를 진짜 사진과 구별하기 힘들게 만든다는 점에 있다.
- 이 loss는 특히나 image generation에 강해서, 많은 computer graphics의 최적화가 여기에 집중되어 있다.
- 우리는 adversarial loss를 써서 mapping을 학습시켜서, target domain의 image들과 만들어진 image를 서로 구분하지 못하게 할 것이다.
Image-to-Image translation
- Hertzmann의 image analogies에서 non-parametric texture model on a single input-output training image pair에서 시작되었음
- 더 최근의 approach로는 input-output example들이 들어있는 dataset을 이용해서, parametric translation을 CNNs을 통해 학습시킴
- 우리의 approach는 "pix2pix" framework 위에 빌드를 하는데, conditional GAN을 이용해서 input에서 output image를 mapping하는 것을 학습한다
- 비슷한 아이디어들이 generating photographs from sketches, attribute and semantic layouts 등에 사용되었으며,
- 하지만, 과거의 작업들과는 달리, 우리는 paired training examples가 없는데도 mapping을 학습시키는데 성공하였다.
Unpaired Image-to-Image Translation
- 몇가지 다른 방식들이 unpaired setting에 적용되기 시작하는데
- Rosales가 제안한 bayesian framework : a prior based on a patch-based Markov random field -> 한 이미지와 비슷한 term들을 여러개의 style image에서 추출해내어서 계산함
- 더 최근에는 CoGAN과 cross-modal scene network에서 weight-sharing 기술을 사용해서 "common representation across domain"을 학습시킴.. ㄷㄷ
- 우리의 방식과 같은 방향을 지향하는 Liu의 framework : variational autoencoder와 generative adversarial network의 조합으로 위의 framework을 발전?시켰다
- 또 다른 비슷한 연구들을 보면, input과 output이 각자 "style"이 다르더라도 특정 "content"를 share하게 하였다.
- 이러한 방식들은 adversarial network들을 사용하였고, 나오는 output이 input과 최대한 비슷하게 하려고 애썼다.(in a predefined metric space -> class label space, image pixel space, image feature space)
-> 위의 방식들과는 다르게, 우리의 formulation은 task-specific하지 않고, input과 output에 대해서 predefined된 similarity function에도 구애받지 않으며, input과 output이 same low-dimensional embedding space에 있어야 한다고 가정하지도 않는다.
- 이러한 특성 덕분에 우리의 방식이 많은 general purpose solution에 사용될 수 있는 것이다.
- 과거의 접근법들과의 비교는 5.1에서 할것이다.
Cycle consistency
- transitivity를 이용하여 regularize structured data를 하는 것은 꽤 역사가 깊은 방식이다
- visual tracking에서, forward-backward consistency ("일관성 유지" 정도로 기억해두면 될 것 같다)는 standard trick으로 오래 받아들여져 왔다.
- Language쪽에서도 "back translation and reconciliation" 테크닉은 사람이 하는 번역이나 machine이 하는 번역이나 많이 쓰여왔던 방식이다.
- 더 최근에, higher-order(고차원의) cycle consistency가 motion, 3D shape matching, co-segmentation, dense semantic alignment, depth estimation 등에 사용되고 있음을 알 수 있다.
- 이런 고차원 사용들 중에 Zhou와 Godard가 우리(해당논문)의 작업과 제일 유사하다고 할 수 있는데, 그들도 cycle consistency loss를 supervised CNN 학습에 transitivity 관련하여 사용하였기 때문이다.
- 우린 해당 논문에서, 이와 비슷한 G와 F가 서로를 일정하게 유지하게 해주는 loss를 제안할 것이다.
- dual learning in machine translation에 영감을 받은 Yi 도, unpaired image-to-image translation을 위해서 비슷한 objectives들을 사용한다.
Neural Style Transfer
- image-to-image translation을 할 수 있는 다른 방법임
- 하나의 이미지의 컨텐츠를 다른 스타일의 이미지의 스타일과 합쳐서 새로운 이미지를 만들어냄
(Gram matrix statistic of pre-trained deep features와 매칭시켜서)
- 우리의 주된 목적은, 고레벨의 appearance structures들 사이의 유사성을 찾아서, 두개의 이미지 "collections"들 사이의 mapping을 학습하는 것이지, 두 개의 개별 이미지를 학습하는게 아니다
->그러므로, 우리의 방식은 single sample transfer methods들이 잘 못하는 다른 tasks들에도 적용될 수 있다.
(예를 들면 paintings -> photo라던가 object transfiguration)
- 이 두개의 methods들을 5.2에서 비교한다
3. Formulation
논문 리뷰 중 해당 논문 리뷰를 강의로 들어서, 여기까지만 하고 더 진행하지 않기로 함.