[논문리뷰] Unsupervised Image Super-Resolution using Cycle-in-Cycle GAN

Dokyeong Kwon·2020년 9월 8일
3

Paper Review

목록 보기
3/6
post-thumbnail
post-custom-banner

👉Paper
안녕하세요, 오늘 소개 해 드릴 논문은 Super-Resolution문제를 Cycle GAN과 결합하여 해결 한 CinCGAN이라는 논문입니다. Cycle in Cycle 구조를 이용해서 Real-World의 Super-Resolution문제를 해결하였는데, Perceptual Quality도 좋고, 구조도 특이해서 읽어보면 좋을 것 같습니다.

Abstract

이 논문은 기존의 전통적인 SR과는 달리 더 noise하고 blurry한 low-resolution image를 input으로 한다. 이런 input으로부터 고해상도 이미지로 복원하기 위해서 이 논문에서는 unsupervised learning을 SR에 적용하였다. 또한 이 논문에서는 Cycle-in-Cycle network structure를 제안하였다. Cycle-in-Cycle network structure는 첫 cycle에서 noisy하고 blurry한 input을 noise-free low-resolution space로 바꾸어준다. 그리고 이 결과물을 pre-trained된 deep model을 이용하여 SR을 시키며, 이 두 모듈을 cycle을 이용하여 end-to-end로 fine-tune시킨다.

Introduction

Real-world scenarios에서 정통적인 SR은 작동하기가 어렵다. 왜냐하면 기존과 같은 pair한 datasets를 사용할 수 없으며, downscaling method가 무엇인지 알 수 없고, input image 자체가 noisy하고 blurry하기 때문이다.

그래서 위의 사진과 같이 기존의 전통적인 SR algorithms들은 지저분한 input이 들어왔을 때 잘 작동하지 못하는 것을 확인할 수 있다.

이러한 문제를 해결하기 위해 시도 된 것으로 blind SR이 있고, down-sampling kernel을 estimation하는 방법으로 해결해왔다. 하지만 noisy한 input이 들어왔을 때 down-sampling kernel은 추정하는 정확도가 떨어지게 된다. 이런 문제를 해결하기 위해 가우시안 noise를 LR image에 적용하기도 하지만 이 역시 real-world scenario의 noise와 똑같지는 않다. 그래서 이 논문에서는 image-to-image translation에서 사용되는 CycleGAN과 같은 unsupervised learning으로부터 아이디어를 얻었다.


🚩 CycleGAN : unpaired training data를 이용해서 하나의 image 도메인에서 다른 image 도메인으로 바꾸는 deep learning model이다. 아래의 이미지와 같이 image-to-image translation에 사용된다.
CycleGAN은 두 도메인 양쪽에 대응되는 pair한 데이터 없이 문제를 풀고자 하였으며, pair한 데이터가 없는 상황에서는 L1 loss를 사용하기 어렵기 때문에 Cycle Consistency를 기반으로 한 Cycle Loss를 제안하여 문제를 해결하였다.


이 논문은 위에서 언급한 CycleGAN의 전략들을 가지고 새로운 network structure인 Cycle-in-Cycle structure (CinCGAN)을 제안한다.

이 논문의 contribution은 아래와 같다.

  • General한 SR문제를 해결하고자 한다.
  • Unsupervised training strategies를 SR에 사용하였다.
  • CinCGAN이라는 새로운 structure를 제안한다.

Proposed Method

우선 제안하는 논문의 전체적 Flow Chart는 아래의 그림과 같다.

전체적으로 2개의 Cycle로 구성이 되어 있으며, 안쪽 Cycle에서는 clean하지 않은 LR을 clean LR로 바꾸는 역할을 하고, 바깥에서는 SR을 통해 clean한 LR을 고해상도 이미지로 바꾸게 된다.

우선 LR Image Restoration part부터 살펴보면, 2개의 Generator와 1개의 Discriminator로 구성이 되어있다. 1st Generator는 주어진 input image로부터 clean한 LR 영사을 만드는 역할을 한다. 그리고 Discriminator는 이 image가 진짜 clean한 image인지 판단을 하게 되며, 사용되는 "y"는 HR로부터 bi-cubic down-sampling된 image가 사용된다.

GAN Loss는 아래와 같다.

2st Generator는 Cycle consistency를 위해 사용되며 Generator 1으로 부터 만들어진 image를 원 상태 즉, 지저분한 image로 바꾸는 역할을 한다.

이때, 사용되는 Cycle Loss는 아래와 같다.

이 두 Loss 외에도, color의 variation을 유지하기 위해 identity loss를 사용하였으며, 식은 아래와 같다.

또한 image의 전채적인 spatial smoothness를 위해 total variation loss도 사용하였다.

두번째 cycle은 SR을 진행하는 부분이다. SR model로는 pre-trained된 EDSR을 사용하였다.


🚩 EDSR : state-of-the-art SR method였으며, 2017 NTIRE Challenge에서 우승을 한 method이다.


두번째 cycle에서 사용되는 discriminator는 SR결과와 실제 HR이미지를 가지고 어떤 것이 더 고해상도 이미지인지 판별하는 역할을 한다.

GAN Loss는 아래와 같다.

사용되는 전체적인 loss는 안쪽 cycle과 동일하다. 3번째 Generator 또한 SR 된 영상으로부터 noisy한 input을 만들어내며 cycle을 유지하기 위해 사용된다.

이 Network에서 discriminator로는 PatchGAN을 사용하였다.

Training data

제안하는 논문은 NTIRE 2018 Super-resolution challenge에서 사용된 track 2 dataset을 사용하였다.

Results

Result는 위의 그림과 같으며, 기존의 SR algorithms들에 비해 훨씬 더 선명한 결과를 볼 수 있다. GAN을 기반으로 했기 때문에 PSNR은 비교적 높은 수치를 보이지는 않는다.


Review

CinCGAN은 새로운 구조를 제안한 것이 가장 큰 것 같다. 또한, base SR model을 가지고 제안한 구조를 최대한 활용하면서 Real-world SR problem이 잘 해결될 수 있도록 한 것 같다.

profile
Go with the flow
post-custom-banner

0개의 댓글