본문 바로가기
컴퓨터비전(CV)/논문 리뷰

[논문 리뷰] Real-ESRGAN

by jun0823 2022. 7. 6.
반응형

https://openaccess.thecvf.com/content/ICCV2021W/AIM/papers/Wang_Real-ESRGAN_Training_Real-World_Blind_Super-Resolution_With_Pure_Synthetic_Data_ICCVW_2021_paper.pdf

 

0. Abstract

 

지금까지 SR problem에서 training을 진행하기 위해 unknown and complex degradations을 통해 LR image를 만들어왔다.

하지만 이러한 인공적인 degradation들은 real world degraded image를 여전히 표현하지 못하고 있다.

 

이에 1. high-order degradation modeling process를 통해 complex real-world degradations들을 simulation 할 수 있도록 하였고, 2) synthesis process에서 ringing, overshooting 현상들을 다룰 수 있도록 하였다. 또한 3) U-Net discriminator 를 사용하여 capability 와 training에서 stable한 점을 보장할 수 있도록 하였다.

 

 

1. Introduction

 

SR 과정은 LR image로부터 HR image를 reconstruction 하는 과정에 초점을 맞추어 진행된다.

 

하지만 대부분의 approach들은 bicubic kernel을 통해 downsampling을 하지만 이는 real degradation들과는 거리가 있다.

이러한 mismatch는 real-world scenario와 동떨어진 결과를 낳을 수 있다.

 

또한 degradation process에 따라 explicit modeling / implicit modeling으로 구분할 수 있다.

 

Classical degradation model 은 blur, downsampling, noise and JPEG compression으로 구성되어 있고, 이는 Explicit modeling methods로 채택된 방법이다.

 

하지만 real-world 에서의 degradations들은 너무 복잡해서 위 언급한 degradation들을 겸쳐서 사용하는 것 만들로는 표현할 수 없기 때문에 real-world sample들로는 쉽게 복원에 실패하게 된다.

 

그래서 Implicit modeling 방법들은 degradation model을 얻기 위해 GAN 방식을 사용하고, 이는 data distribution(데이터들의 분포)을 활용한다.

 

이 연구에서는 더욱 practical 한 degradation process를 이용하여 training pair를 만들어 냄으로써 general한 real-world LR image를 저장한다.

 

실제 세상에서의 degradation들은 imaging system of cameras, image editing and Internet transmission들의 이유로 발생한다.

예를 들어 휴대폰으로 사진을 찍게 되면, 사진은 camera blur나 sensor noise, sharpening artifacts, and JPEG compression들로 degradation 된다. 또한 social app으로 편집하거나 업로드하는 과정에서도 unpredictable noise가 발생한다.

 

second-order degradation model

이에 더욱 실제 세계에서의 degradation을 고려하기 위해, classical "first-order" degradation model에서 "high-order" degradation modeling의 방법을 사용하게 되었다. 이러한 high-order degradation은 더욱 flexible하고 generation process에서 더욱 사실같은 degradation을 따라할 수 있다.

그리고 실험을 통해 "second-order" degradation model이 simlicity와 effectiveness 사이의 balance가 가장 좋다는 결론을 도출했다.

 

또한 이 논문에서는 sinc filter를 결합하여 common ringing 현상과 overshoot artifact 현상을 simulate할 수 있도록 하였다.

 

degradation space가 기존 ESRGAN 때보다 더욱 커졌기 때문에, training 역시 더욱 힘들어졌다.

 

1) 생성되는 img가 더욱 실제와 같아졌기 때문에 discriminator의 성능이 더욱 좋아져야 한다. 따라서 기존 사용하던 VGG-style의 discriminator 대신 U-Net design의 discriminator를 사용하여 더욱 정확하게 discriminate하도록 한다.

 

2) U-Net structure와 복잡한 degradation 과정은 training 시 instability를 발생시키게 된다.

때문에 Spectral normalization(SN) Regularization 과정을 추가시켜 training 과정을 안정화 시킨다.

 

 

-요약

 

1) high-order degradation process를 제안하여 더욱 practical한 degradation을 수행하고, sinc filter를 통해 ringing 현상과 overshoot artifacts 현상을 다룰 수 있도록 하였다.

 

2) discriminator의 capability와 stabilize를 위해 U-Net discriminator와 Spectral Normalization을 사용하였다.

 

3) 더욱 많은 양의 real-world img들을 restore하기 위해, Real-ESRGAN은 pure synthetic data로 학습을 진행하고, 더욱 좋은 performance를 내게 되었다고 한다.

 

2. Related Work

 

추후 수정

 

3.Methodology

 

3.1 Classical Degradation Model

 

Blind SR은 unknow, complex degradation 과정을 거친 LR img에서 HR img로 복원시키는 과정에 초점을 맞춘다.

 

Classical Degradation Model은 보통 LR img로 합성하는 과정에서 사용된다.

 

classical degradation 과정 수식

 

Ground truth image y는 처음 blur kernel k(가우시안 필터)와 convolve되어 이후 scale factor r만큼 downsampling을 진행한다.

이후 noise n을 추가하고, JPEG compression을 통해 real-world img에서 가장 널리 사용되는 compression을 사용하여 LR x img를 생성한다.

여기서 D는 degradation process를 의미한다.

 

3.2 High-order Degradation Model

 

classical degradation model을 사용하면 일부 real samples들을 training시에 다룰 수 있게 된다. 하지만 아직 복잡한 real world에서의 degradation들은 resolve하기 어렵고, unknown noise들이나 complex artifacts들이 존재하는 문제점이 있다.

이는 아직 classical degradation model을 통해 합성된 LR img가 실제 realistic degraded img과 큰 gap이 존재하기 때문이다.

 

또한 classical degradation model은 fixed number of basic degradation들만 포함할 수 있기 때문에(first-order modeling) real-life에서의 degradation은 완전히 포함할 수 없다.

 

n-order degradation

n-order model은 n개의 반복되는 degradation processes를 의미하고, 각 degradation process는 classical degradation model의 procedure를 차용하지만 hyper-parameter는 다르게 설정한다.

 

 

3.3 Ringing and overshoot artifacts

 

ringing and overshooting examples

 

Ringing artifacts는 보통 급격하게 변하는 가짜 edge 주변에서 발생한다.(often appear as spurious edges near sharp transitions in an image)

 

Overshoot artifacts는 ringing artifact와 같이 edge transition에서 increased jump가 발생했을 때 나타난다.

 

이러한 artifacts들은 JPEG compression과 같은 sharping algorithm을 사용하였을 때 자주 나타난다.

 

 

3.4 Networks and Training

 

ESRGAN generator

 

이 연구에서는 ESRGAN에서와 같이 RRDB(Residual-In-Residual Dense Block)를 사용한 같은 generator를 사용하였다.

또한 ESRGAN 자체가 매우 heavy network이기 때문에 첫번째로 pixel-unshuffle 기법을 사용하여 spatial size를 줄이고, channel size를 크게한다.

이는 더욱 작은 resolution space에서 연산이 수행될 수 있도록 하고, GPU memory와 computational resources consumption을 줄이는 효과를 얻을 수 있다.

 

U-Net discriminator with spectral normalization(SN)

 

Real-ESRGAN은 ESRGAN보다 더욱 큰 degradation space를 다루어야 하기 때문에 더욱 좋은 discriminative power를 필요로 하게 되었고, ESRGAN에서 사용하였던 discriminator는 더 이상 맞기 않게 되었다. 

A u-net based discriminator for generative adversarial networks.,CVPR 2020/ Fine grained attention and feature-sharing generative adversarial networks for single image super-resolution. IEEE 2021 의 논문에 의해 VGG style discriminator보다 U-Net 기반의 discriminator를 사용하였다.

 

U-Net output은 픽셀 단위로 realness value를 도출하고, generator에 픽셀단위로 detailed feedback를 제공할 수 있다.

 

하지만, U-Net structure와 복잡한 degradation들은 training instability들을 증가시키기도 하는데, spectral normalization regularization을 사용하여 안정화를 시키는 방법을 채택하였다.

 

또한 SN 작업이 over-sharp 현상을 완화시키는 역할을 수행하고, GAN training시 어쩔 수 없이 발생하는 artifacts를 무시하는 이점이 있다고 한다.

 

 

4. Experiments

 

실험을 해보았을 때 shapening ground-truth images로 trainging을 진행하였을 때 sharpness의 balance를 더욱 좋게 해주고, overshoot artifact suppression을 좋게 해준다는 것을 확인하였다.(이렇게 training한 model을 Real-ESRGAN+로 지칭)

 

SOTA 모델들과 비교한 이미지

ESRGAN이나 BSRGAN 모델의 출력 이미지를 보면 CK 주변에 ringing 현상을 개선하지 못했다는 것을 확인할 수 있지만, Real-ESRGAN과 Real-ESRGAN+는 주변에 ringing 현상이 개선된 것을 확인할 수 있고, Real-ESRGAN+의 경우 Real-ESRGAN보다 경계가 더 뚜렷한 것을 확인할 수 있다(더욱 sharpening 함)

SOTA 모델들과 비교한 이미지

 

ESRGAN이나 BSRGAN 모델의 출력 이미지를 보면 모자 주변에 원본이미지에는 없어야할 흔적이 출력된 것을 확인할 수 있는데, 이는 complicated artifacts들이 unpreditable하게 생성되었다는 것을 확인할 수 있다.

Real-ESRGAN과 Real-ESRGAN+는 artifacts들이 없는 것을 확인할 수 있다.

 

SOTA 모델들과 비교한 이미지

또한 다른 모델들의 출력을 보면, realistic 하거나 natural한 질감 표현이 제대로 이루어지지 않는 것을 확인할 수 있지만, Real-ESRGAN과 Real-ESRGAN+, 특히 Real-ESRGAN+ 에서 현실적인 질감표현이 이루어지는 것을 확인할 수 있다.

 

second-order가 있고 없고의 차이

 

위 두사진의 second-order degradation이 있고 없고의 차이가 확연히 들어나게 되는데

왼쪽 집 사진을 보면 원본사진에는 없어야할 흰색 벽에 noise들이 보이는 것을 확인할 수 있지만 second-order를 사용한 경우에는 noise가 제거된 상태의 이미지가 출력되는 것을 확인할 수 있다.

 

sinc filter가 있고 없고의 차이 확인

 

sinc filter가 없는 경우에 object 주변에 ringing 현상이 발생하는 것을 확인할 수 있는데 sinc filter를 적용시킨 경우 ringing 현상이 사라지게 되는 것을 확인할 수 있다.

 

 

-U-Net discriminator with SN regularization

VGG vs U-Net

ESRGAN에서는 VGG style의 discriminator와 loss weights를 사용하였다.

 

하지만 위 사진에서 보다시피 VGG를 사용한 경우에는 detail한 texture(bricks and bushes)를 충분히 복구시키지 못하고, 심지어 원본사진에는 없던 artifacts들을 생성하는 것을 확인할 수 있다(in bush branches)

 

U-Net을 사용한 경우에 이와 같은 local detail들을 개선시킬 수 있었는데, 여전시 부자연스러운 texture를 보이고 있고, training시에 instability가 존재하였다.

 

SN regularization은 texture를 improve 시킬 수 있음과 동시에 trainging 시에도 stabilizing을 보장할 수 있다.

 

 

4.4 Limitations

 Real-ESRGAN은 더 많은 real-world image들을 담고 있지만, 여전히 한계점이 존재하는데,

 

1) 복구된 이미지들이 aliasing issue(비슷한 패턴이 반복되는 경우)로 인해 휘어저 보이게 된다.(왼쪽 첫번째 건물사진)

 

2) GAN training시 불필요한 artifact들이 여전히 생성된다.(두번째 사진 brick의 질감)

 

3) out-of-distribution 문제를 해결하기 어려움. 또한 이부분에서는 artifacts들을 생성할 수 있다.

 

 

 

5. Conclusion

 

 

이 논문에서는 더욱 practical한 degradation을 합성하기 위해, high-order degradation process를 제안하였고, sinc filter를 적용하여 ringing 현상과 overshoot 현상을 개선시키고자 하였다.

 

또한 U-Net discriminator with SN regulazation을 사용하여 discriminator capability를 증가시키고, training시에 안정성을 확보하였다.

 

합성된 data(sharpening 된 dataset)로 training 한 Real-ESRGAN의 경우 detail이 더욱 개선되고, real-world image의 artifact들을 무시하고 이미지를 생성할 수 있도록 한다.(Real-ESRGAN+)

반응형

댓글