Unpaired Image-to-Image Translationusing Cycle-Consistent Adversarial Networks (CycleGAN)

2021. 6. 10. 12:16Computer vision 논문 & 코드리뷰

728x90

Abstract

Image-to-Image translation은 vision과 graphics 문제 중 하나. 목적은 input 이미지와 output이미지를 mapping하는 것을 학습하는 것. 정렬된 이미지 쌍의 training set을 사용하여.

많은 tasks에서 paired training data는 사용 불가

paired examples없이 X→Y 변환하는 것을 배우는 접근법을 제시

mapping G: X→Y 매핑을 배우는 것이 목표.

G(x)의 분포가 Y와 구분 불가능 하도록 → adversarial loss를 이용하여

왜? 이 mapping은 매우 under-contrained(? 제약이 심하다?)하기 때문에 우리는 이것을 inverse mapping F: Y→X로 짝짓고 cycle consistency loss를 소개한다

이는 F(G(X)) ≈ X 하도록 한다 (그 반대도 )

collection style transfer, 객체 구성(object transfiguration), season transfer, 사진 향상(photo enhancement) 등을 포함하여 paired 훈련 데이터가 존재하지 않는 몇 가지 작업에 대한 정성적 결과(Qualitative results)가 제시된다. 몇 가지 이전 방법에 대한 정량적(Quantitative) 비교는 CycleGAN 접근 방식의 우수성을 보여준다.

 

Introduction

한 이미지 collection의 특별한 특징들을 캡쳐하고 이 특징들이 다른 이미지 collenction에 어떻게 번역될 수 있는지 보여줄 것. 어떠한 paired dataset없이도.

이 문제는 넓게는 image-to-image translation 문제로 볼 수 있음.

주어진 장면의 한 표현 x를 다른 y로 변환하는 e.g., grayscale→color, semantic labels/edge-map → photo

컴퓨터비전, 영상처리, 그래픽 등 수년의 연구는 supervised setting(지도학습, paired dataset)에서의 강력한 translation system을 생성해냈음.

paired dataset을 얻는 건 당연히 어려움 특히 artistic stylization같은 graphical tasks에서는 더 어렵고 복잡함 왜냐면 얻고자하는 output이 매우 복잡하고 artistic authoring(예술가의 작업?)이 필요하기 때문이다. 또, 많은 task에서 (zebra→horse같은 object trasfiguration) 원하는 output은 잘 정의되지 않는다.

그래서 이제 Unpaired Dataset 에서 도메인간 변환 알고리즘을 찾았음. 도메인간 잠재된 관계가 잇을 것이라고 추정했음 그리고 그것을 찾았음.

예를 들어서 동일한 기본 세계(underlying world)의 서로 다른 두 렌더링 paired example의 형태의 supervision(감독?)은 부족할지라도 set level에서의 supervision을 이용할 수 있음

이미지 하나하나의 쌍(정답)을 통해 학습을 시킬 수는 없지만, X데이터 세트의 특징, Y데이터 세트의 특징 이런식으로 세트 수준에서의 감독을 통해 학습을 시킬 수는 잇음

 

이론적으로 objective는 emperical distribution(경험적 분포)와 일치하는 ^y에 대한 output 분포를 유도할 수 있음(이것은 일반적으로 G가 확률적일 것을 요구) - 확률적이라는게 정확히 무슨 의미일까?확률적 분포 ex. 가우시안 분포 를 따른다는 의미일까?

이상적인 G는 따라서 X를 이상적인 Y의 분포를 따르는 ^Y로 변환

 

그러나! 이런 translation은 각 input과 output(x, y)가 의미있는 방향으로 paired된다는 것을 의미하지는 않는다. 왜냐면 무한히 많은 mapping G가 존재한다. 게다가 현실에선, 우리는 adversarial objective를 단독으로 최적화하는 것이 어렵다는 것을 알았다

표준적인 절차는 보통 mode collapse의 잘 알려진 문제를 야기한다. (모든 input image map이 같은 output image를 만들어내고, optimization은 진전에 실패.)

이 문제는 CycleGAN의 objective에 더 많은 구조를 추가하도록 만들었음.

그러므로 translation은 "cycle consistent"해야 한다는 특징을 이용한다. 영어→불어 , 불어→영어 번역할 때에 처음의 영어문장 = 마지막의 영어문장 이어야 한다는 의미와 일맥상통

수학적으로 표현하면 translator G: X→Y가 있고 F: Y→X가 있으면 G와 F는 서로를 inverse해야 한다! 두 매핑 모두 bijections여야 한다

biijection = 전단사 함수, 수학에서, 전단사 함수는 두 집합 사이를 중복 없이 모두 일대일로 대응시키는 함수이다. 일대일 대응이라고도 한다.

그래서 이 structural assumption을 G와 F를 동시에 학습시키는 것으로 적용. → cycle consitency loss 를 이용. cycle consistency loss는 F(G(x)) ≈ x, G(F(y)) ≈ y를 장려하는 방향으로 학습

이 loss를 adversarial losses와 합침 → CycleGAN의 unpaired image-to-image translation의 full objective

 

Related work

GAN, Image-to-Image Translation, Unpaired Image-to-Image Translation, Cycle Consistency, Neural Style Transfer이렇게 다루고 있는데, Cycle Consistency, Neural Network만 살펴보면 될 듯 하다.

  • Cycle Consistency
    structured data를 정규화(regularize)하는 방법으로서 타동성(행동이 객체에 미치는 문법 특성(국어사전)으로서 움직임과 전이가 일어난다는 개념을 반영)을 사용하는 아이디어. 역사가 길다. visual trakcing에서 simple forward-backward consistency를 강화하는 것은 수십년동안 표준적 트릭이었음. language도메인에서, 역번역과 재협상?(reconsiliation)을 통해 검증하고 개선하는 것은 인간 번역가 뿐 아니라 기계들에 의해서도 사용되는 기법. 더 최근에는 higher-order cycle consistency가 structure from motion, 3D shape matching, co-segmentation, dense semantic alignment, depth estimation 등에서 사용됨.
  • Neural Style Transfer
    image-to-image translation의 또 다른 방법. Gram matrix statics of pre-trained deep features를 매칭시켜 한 새로운 이미지를 한 이미지의 content와 다른 이미지의 style(보통은 그림)을 합치는 방법으로 합성한다. 반면 저자의 포커스는 두 특정 두 사진들 간의 매핑이 아닌 도메인간의 매핑을 higher level appearance structures간의 관련성을 캡쳐하고자 노력함으로써 학습하는 것이다. higher level이라는게 어떤 방향일까? 그러므로 cyclegan은 single sample transfer methods가 잘 작동하지 않는 다른 task에도 적용될 수 있다 . painting→ photo, object transfiguration, etc. Section 5.2에서 이를 비교한다

Formulation

 

두개의 오토인코더를 학습시키는 것으로 볼 수 있음

Auto Encoder 1. F ◦ G : X → X

Auto Encoder 2. G ◦ F : Y → Y

이 오토인코더들은 각각 특별한 내부 구조를 가지고 있음 : 한 이미지를 그 이미지가 다른 도메인으로 translation된 이미지인 중간 표현 ( intermediate representation ) 을 통해서 그 이미지 자신에게 매핑한다.

이런 setup은 오토인코더의 보틀넥레이어를 임의의 타겟 분포에 매치시키기 위해 학습시킬 때 adversarial loss를 이용하는 "adversarial autoencoders"의 특별한 케이스로 보여질 수 있다.

CycleGAN의 케이스에서, X→X 오토인코더를 위한 타겟분포는 도메인 Y의 분포이다

Implementation

Network Architecture

Perceptual Losses for Real-Time Style Transfer and Super-Resolution https://arxiv.org/abs/1603.08155 의 generative networks를 응용 → neural style transfer과 super resolution에서 인상적인 결과를 보여준 아키텍쳐

→ 두 개의 stride 2 conv 와 많은 residual blocks, 두개의 1/2 stride conv 포함, instance normalization 사용

discriminator networks를 위해서는 70x70 Patch GANs를 사용 → 70x70 overlapping image patches대해서 real / fake 분류

→ 이런 patch level discriminator 아키텍쳐는 full-image discriminator비해 더 적은 파라미터 수를 가지고, 완전히 conv방식으로 임의의 크기의 이미지에 적용할 수 있다 = 어떤 이미지 사이즈든지 적용 가능하다.

 

Training Details

  1. L_GAN 대해서는 negative log likelihood objective를 least square loss로 대체 → training동안 더 안정적이게 작용하고 더 좋은 퀄리티의 결과를 생성 → 이렇게 바뀐다
  2. model oscillation(모델변동)을 줄이기 위해, Shrivastava et al’s strategy를 따라 Dx와 Dy를 가장 최근의 generative networks를 통해 생성된 것들만 이용하지 않고 생성된 이미지들의 history를 이용하여 업데이트 한다.
    → image buffer에 50 개의 이전에 생성된 이미지들을 저장
    실험적으로 full objective 식에서 λ = 10 으로 세팅
    100 epochs동안은 같은 lr 유지하고, 다음 100 epochs동안은 선형적으로 0까지 줄여나갔다.
    batch size1 Adam Solver사용했고(Adam Optimizer) 모든 네트워크는 lr 0.0002로 아주 처음부터, 밑바닥부터 학습됨

 

Results

처음으로 paired dataset 사용한 image-to-image translation과 비교. 이후 adversarial loss와 cycle consistency loss의 중요성을 연구 후 full method를 여러 변수들로 비교.

마지막으로 알고리즘의 일반성 입증 → paired dataset이 없는 넓은 범위의 응용에서 실험

 

pix2pix에서의 데이터셋과 메트릭 이용

많은 baselines 와 정성적, 정량적 두 부분 모두에서 비교

semantic labels↔photo ( Cityscapes datasets)

map↔aerial photo (Google Map data)

  • Evaluation Metrics
  1. AMT perceptual studies
  2. FCN Score
  3. Semantic Segmentation metrics
  • Baselines
  1. CoGAN
  2. SimGAN
  3. Feature loss + GAN
  4. BiGAN / ALI 5.pix2pix

Fig 5: Pix2Pix 와 CycleGAN 비슷해보이고 다른 모델보다 확연히 좋음,

 

Table 4와 Table 5에서, 우리는 전체 loss의 절제들과 비교한다.

GAN Loss을 제거하면 결과가 상당히 저하되고, cycle-consistency loss도 마찬가지.

따라서 두 항 모두 결과에 매우 중요하다고 결론을 내립니다.

또한 한방향에서만 cycle loss를 적용한 경우도 비교해봄-> 학습 불안정해지는 결과, mode collapse 야기

Fig 7 에서 정성적 결과

 

 

 

728x90