아이공의 AI 공부 도전기

ESRGAN(Enhanced Super-Resolution Generative Adversarial Network) Summary

SRGAN에서 더 발전시킨 3가지 중요 Key Points에 대해서 기술합니다.

Model-Architecture, Adversarial Loss, Perceptual Loss

 

1. Residual-in-Residual Dense Block(RRDB) 사용 : 이 때 batch normalization을 사용하지 않습니다.

2. Discriminator가 absolute value(real or fake)보다 relative realness(상대적 진짜스러움?)을 예측할 수 있게합니다.(RaGAN : Relativistic average GAN)

3. Activation 이전 feature들을 사용하여 Perceptual Loss를 향상시킵니다.(기존 SRGAN의 경우 activation 이후 사용하였습니다.)

1. Introduction

SISR(Single Image Super-Resolution)을 위해서는 CNN기반의 SRCNN 이후 PSNR을 측정 방식으로 여러 발전이 있어왔습니다. 그러나 PSNR 기반의 모델들은 detail들을 잘 생성하지 못하고 과도하게 부드러운 결과를 도출하기 위한 경향성이 있습니다.

 

이를 극복하기 위해 pixel space가 아닌 feature space에서의 SR 최적화를 제시하는 Perceptual Loss를 제안합니다. SRGAN이 그 중 하나의 논문이지만 Ground Truth Images에 있어 차이가 확실히 존재합니다. 이에 우리는 3가지 제안을 합니다.(자세한 사항은 위의 3가지를 확인하거나 논문을 참조해주세요.)

 

 

우리는 이를 통해 PIRM-SR Challenge에 참가하여 1위를 하였습니다. 

 

"The 2018 PIRM Challenge on Perceptual Image Super-resolution." In Proceedings of the European Conference on Computer Vision Workshops (ECCVW), 2018.

https://pirm.github.io/

 

Perceptual Quality는 distortion과 tradeoff 관계에 있기 때문에 이에 대한 측정방식으로 Ma's Score와 NIQE를 사용했습니다. 

즉, perceptual index = $\frac{1}{2}((10-Ma) + NIQE)$

낮은 perceptual index가 좋은 perceptual quality를 의미합니다.

2. Related Work

 

 

3. Proposed Methods

3.1 Network Architecture

 

1) Residual Block에서 Batch Normalization 삭제

2) Original Basic Block을 Residual-in-Residual Dense Block(RRDB)로 교체할 것

3.2 Relativistic Discriminator

Relativistic GAN에서 사용된 Discriminator를 통해 성능 향상을 이뤄냈습니다.

SRGAN의 경우 Discriminator는 input image x가 진짜일 확률에 대해 평가하는 것이었던 반면 relativistic discriminator는 생성된 가짜 이미지보다 실제 이미지가 얼마나 더 상대적으로 진짜 같아보이는지에 대한 확률을 이야기하고 있습니다.

Relativistic GAN

254 citations [2020.10.14 기준]

https://arxiv.org/pdf/1807.00734.pdf

Relativistic GAN에서 C는 non-transformed discriminator를 의미하고 $E_x_f$는 mini-batch에서의 모든 fake data들의 평균을 취하는 operation을 의미합니다.

이에 대한 discriminator loss는 아래와 같습니다.

 

generator에서 adversarial loss는 아래와 같습니다.

SRGAN은 오직 생성된 부분에서만 영향을 주는 반면 ESRGAN의 generator는 적대적 훈련을 통해 생성된 이미지와 실제 데이터 양쪽으로부터 gradients를 얻을 수 있는 이점을 보입니다.

이를 통해 Sec4.4에서 설명하 듯 더 날카로운 edge들과 더 상세한 질감들을 표현함을 알 수 있습니다.

3.3 Perceptual Loss

 

activation 이전 feature들을 제한하는 방법이 더 효과적인 perceptual loss $L_{percep}$이다.

기존의 방식은 2가지 단점이 있는데

1) activated feature들은 매우 sparse하다

=> Fig 6에서 확인 가능하듯 오직11.7%의 activated neuron들만이 있고 이는 낮은 성능을 가져온다.

2) activation 이후의 feature들을 사용하는 것은 재구성된 밝음처리에서 비일관성을 유발한다.

 

따라서 Generator의 total loss는 아래와 같다.

 

 

$L_1$은 생성 이미지와 Ground Truth 간 차이를 나타내는 1-norm인 content loss를 이야기한다.

 

3.4 Network Interpolation

GAN의 noise를 제거하고 좋은 perceptual quality를 유지하기 위해 network interpolation이라는 방법을 사용할 것입니다. 

방법

1) PSNR기반 network $G_{PSNR}$를 훈련시킵니다.

2) fine-tuning에 의한 GAN 기반 network $G_{GAN}$를 얻습는다.

3) 이 두 모델을 파라미터를 사용하여 interpolate하여 $G_{INTERP}$를 구합니다.

 

$\alpha$=0~1

이를 통한 2가지 장점이 있습니다. 

장점 1. artifact(잘못 나온 결과물) 없이 유의미한 결과를 생성할 수 있습니다.

장점 2. 모델의 재훈련 없이 지각적 질과 신뢰도의 균형을 맞출 수 있습니다.

 

PSNR 기반 모델과 GAN 기반 모델 간 균형을 맞추기 위한 다른 대안들에 대해서도 찾아보았지만 pixel간 interpolation만으로는 noise와 blur 간 좋은 trade-off를 얻는 것이 어려우며 content loss와 adversarial loss를 조율하는 것 역시 연속적인 이미지 스타일을 조작하여 성취하는데 어려움을 겪습니다.

자세한 내용은 4.5 참조, Fig 10 참조

4. Experiments

4.1 Training Details

HR 이미지들을 Down-Sampling하여 LR 이미지들을 구합니다.(MATLAB bicubic kernel function

mini-batch size=16

HR 이미지 patch crop은 128x128을 사용합니다. 참고로 큰 patch size를 사용하는 것이 더 많고 의미있는 정보들을 담아 도움을 줄 수 있기에 크게 사용하는 것이 좋으나 훈련 시간이 늘어가고 컴퓨터 자원을 많이 사용합니다. 이런 현상은 PSNR 기반 방법들에서 관찰이 가능합니다. supplementary material를 참조

 

훈련 과정은 2 단계

1) L1 loss를 사용하는 PSNR 기반 모델 훈련 - learning rate $2 \times 10^{-4}$으로 시작해서 $2 \times 10^{5}$의 minibatch update마다 2배씩 감소시킵니다.

2) 훈련된 PSNR 기반 모델을 generator로 사용하는데 이 때 loss function은 equation 3 사용. $\lambda =5 \times 10^{-3}, \eta=1 \times 10^{-2}$, learning rate는 $1 \times 10^{-4}$에서 [50k,100k,200k,300k]의 반복 때마다 반씩 줄어듭니다.

 

pixel마다의 loss로 구성된 pre-training은 GAN 기반 방법에 더 좋은 결과를 얻을 수 있도록 도움을 줍니다.

이유 1) generator가 local optima에 빠지는 위험을 피할 수 있습니다.

이유 2) pre-training 이후 discriminator는 초기 가짜 이미지들(검정 혹은 노이즈가 낀 이미지들)에 비하여 상대적으로 더 좋은 해상도의 이미지들을 사용합니다. 이는 더 좋은 texture discriminator가 될 수 있도록 도움을 줍니다.

 

Optimization에 $\beta_1=0.9, \beta_2=0.999$인 Adam 사용

generator와 discriminator 한 번씩 사용

generator는 2 setting 존재 - 하나는 16개 residual blocks(SRGAN과 비슷)을 보유한 모델, 다른 하나는 23 RRDB block들 존재하는 깊은 모델

PyTorch Framework 사용

NVIDIA Titan Xp GPUs 사용

4.2 Data

800개의 2K resolution 이미지들로 구성된 DIV2K dataset을 사용하여 훈련합니다. 또한 마지막에는 2650개의 2K HR 이미지들로 구성된 Flickr2K datasetOutdoorSceneTraining(OST) dataset또한 사용.

풍부한 texture들을 보유하는 큰 데이터세트를 사용하는 것은 generator가 더 자연스러운 결과를 도출할 수 있도록 도움을 줍니다. Fig 8 참조

좌우 반전, 90도 회전들을 통해 Augment하였으며 Set5, Set14, BSD100, Urban100, PIRM val data(PIRM-SR Challenge에서 제공한 데이터)를 benchmark에 사용하였습니다.

4.3 Qualitative Results

공개적인 benchmark dataset을 사용하여 본 저자들의 모델들을 비교할 것입니다. PSNR 기반 방법인 SRCNN, EDSR, RCAN 그리고 지각적인 접근을 시도한 SRGAN, EnhanceNet과 비교군을 설정하여 살펴볼 것입니다. 

 

 

현재까지 지각적 질을 평가할 수 있는 표준 metric이 없는 관계로 PSNR과 perceptual index를 사용하여 비교할 것입니다.

 

ESRGAN이 다른 접근들에 비하여 sharpness와 detail들이 우수함을 보였습니다. 반면 PSNR 기반 방법들은 흐릿한 결과물들을 보였고 GAN 기반 방법들은 좋지 못한 noise를 포함하고 자연스럽지 못한 texture들을 확인할 수 있었습니다.

SRGAN에서 좋지못한 artifact들이 간혹 나타나곤 했는데 ESRGAN에서는 그런 artifact를 제거하고 자연스러운 결과물들을 생성합니다.

4.4 Ablation Study

제안된 ESRGAN의 각 성능별 효과를 연구하기 위해 SRGAN을 baseline으로 하여 점진적으로 수정해나간 상황들을 아래 결과와 함께 살펴보겠습니다.

 

 

BN Removal

BN layer들을 전부 없애는 것은 불편한 artifact를 보지 않은채 안정적이고 균일한 성능을 얻을 수 있습니다. BN을 제거하는 것은 성능의 하락으로 이어지지 않지만 많은 컴퓨터 리소스와 메모리 사용을 절약할 수 있습니다. 깊이가 깊어지는 네트워크이고 복잡할수록 BN을 가진 모델의 경우 불편한 artifact들을 많이 생성합니다. 자세한 내용은 supplementary material에서 추가로 확인하세요.

 

Before activation in perceptual loss

 

activation이전에 feature map을 사용하는 것은 재구성된 이미지의 밝기를 더 정확하게 만듭니다. 위에 보이시는 것과 같이 Ground Truth Image 빨간 선 분포에 가까운 것은 activation 이전에 feature map을 사용한 녹색 선임을 Fig 9 (a)에서 확인하실 수 있습니다.

더 나아가 날카로운 edge들이나 더 풍성한 texture들을 호가인할 수 있었음을 Fig 9b에서 확인이 가능합니다.

 

RaGAN

RaGAN의 사용은 더 날카로운 edge들과 더 나은 texture detail들을 학습하도록 돕는 relativistic discriminator을 사용합니다.

 

Deeper network with RRDB

 

앞에서 제안된 RRDB의 Deeper model은 더 회복된 texture들을 확인할 수 있습니다. 의미있는 정보를 잡아낼 강력한 표현 가능성을 지닌 deep model은 이를 가능하게 합니다.

4.5 Network Interpolation

 

network interpolation과 image interpolation 전략에 대해 살펴보고자 한다. 단순한 linear interpolation을 사용할 것인데 이 때의 parameter $\alpha$는 0~1사이의 값을 가질 것이다.

Fig 10에서 묘사하듯 GAN 기반 방법은 더 날카로운 edge와 풍성한 texture들을 생성하지만 약간의 불편한 artifact가 존재한다. 반면 순수 PSNR 기반 방법들은 cartoon 스타일의 흐린 이미지들의 결과를 나타낸다.

network interpolation 방법을 사용함으로써 불편한 artifact들은 texutre들은 유지한채 숫자가 감소하는 것을 확인할 수 있지만 image interpolation은 이런 artifact를 없애는 것에 실패하였다.

흥미롭게도 network interpolation 전략은 perceptual 질과 신뢰도의 균형을 부드럽게 조절함으로써 제공하는 것을 관찰할 수 있었다.

 

 

4.6 The PIRM-SR Challenge

 

5. Conclusion

(Abstract 반복)

1) BN layer가 없으며 RDDB block들로만 구성된 새로운 Architecture를 제안하였습니다.

2) Residual Scaling이나 작은 initialization을 통한 깊은 모델 훈련에 용이한 기술적 내용들을 제안

3) Relativistic GAN의 Discriminator을 제안함으로써 Generator가 더 자세한 texture들을 복원할 수 있게 도움을 줍니다.

4) activation 이전에 feature들을 활용하는 Perceptual loss를 통해 더 좋은 성능 향상

 

결론 : SR분야에서의 ESRGAN은 좋다.~

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading