rueki

ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks 본문

Gan

ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks

륵기 2021. 3. 3. 16:21
728x90
반응형

Abstract

 

SRGAN은 Single image super resolution에서 realistic texture를 만들어낼 수 있었지만,  썩 좋지않은 결과를 불러내기도 했다. 시각적으로 품질을 향상시키기 위해서 Enhanced SRGAN(ESRGAN)을 소개한다고 한다. 여기서 사용되는 새로운 개념으로 RRDB(Residual in Residual Dense Block)이 소개되는데, 기본 네트워크에서 BN(Batch Normalization)이 제외된 네트워크 구조이다. 그리고 절대적인 값보다 상대적인 현실성을 예측하는 Discriminator를 relativistic Gan에서 아이디어를 가져왔다고 한다. 그리고 Activation 이전에 feature를 사용함으로써 perceptual loss를 향상시킬 수 있었다. 이는 일관적인 밝기와 texture 복원에 있어 강력한 supervision을 제공할 수 있었다.

ESRGAN을 통해서 기존의 SRGAN보다 현실적이고 자연스러운 복원을 할 수 있었고, PIRM2018-SR Challenge에서 1등을 한 Network라고 한다.

 

1. IntroDuction

Single Image Super Resolution의 목표는 저해상도에서 고해상도로 복원을 하는 것인데, Deep CNN을 통해서 많은 발전을 이루어 냈다. 아무리 Super Resolution의 성능이 좋아졌다고 하지만, PSNR(Peak Signal to Noise Ratio, 최대 신호 대 잡음비율)은 사람 관측의 관점에서 주관적인 평가에 허용이 되지 않기에, 고주파 부분들을 무시하고 over-smoothed 한 결과를 내보내는 경향이 있다고 한다. 이는 즉, 사람이 느끼는 부분과 일치하지 않은 점수를 산출하는 것이 원인이라고 볼 수 있다.

 

* PSNR

출처 : bskyvision.com/392

MAX : 해당 영상의 최대값, MSE : Mean Squared Error

I : m x n 의 Gray Scale image

K : I에 noise가 추가된 이미지

 

MSE가 작을수록 더 큰 PSNR 값을 갖게 된다. -> PSNR이 클 수록 품질이 좋은 이미지

 

Gan을 통해서 더 자연스러운 이미지 결과를 낼 수 있는데, 이전의 이미지를 통해서 이미지 복원 품질을 향상시키는 기법을 추가로 사용했다. 이는 residual block을 기반으로 설계가 되었는데, Gan에서 perceptual loss를 통해서 optimize 했다.

위의 결과를 보면 Ground Truth와 SRGAN을 비교하면 Smooth하게 된 경향이 많이 보이는데, ESRGAN은 SRGAN에 비해 그런 점이 현저히 덜한 것을 볼 수 았다. ESRGAN에는 Residual in Residual Dense Block을 통해서 모델을 발전시켰고, Batch Normalization을 없애고, residual sacling과 smaller initialization을 통해서 deep network train을 잘 할 수 있었다. 그 다음으로 RaGAN(Relativistic Average Gan)을 이용해 dricriminator을 향상시켰다. 이를 통해서 real or fake라는 것에서 다른 것들보다 사실적인건지에 대한 판별이 가능하게 되었다. 세번째로 activation 이전의 VGG feature을 통해서 perceptual loss가 를 향상시킬 수 있었다.

 

 

2. Related Work

Super Resolution 문제에서 DNN을 통해서 해결을 할 수 있는데, SRCNN을 통해서 저해상도에서 고해상도로 mapping하는 방법이 먼저 제시가 되었고, 월등한 성능을 보여주었다. 이후 residual learning, Laplacian pyramid 구조, recursive learning, densely connected network, deep back projection, residual dense network 등 많은 네트워크 구조가 등장했다. 특히 배치 정규화 layer를 없애고 모델 크기를 확장시킨 EDSR 모델 구조를 통해서 많은 발전을 이끌어냈다. 그리고 Effective residual dense block을 통해서 PSNR 성능부분에서 좋은 결과를 얻었다. 

Train을 안정되게 하고, 성능 향상을 위해서 residual path가 개발이 되게 되는데, Residual scaling이라는 것이 EDSR에 사용을 하게 되었다. 그리고 배치 정규화가 없느 VGG 네트워크에 대해 initialization method를 제안이 되었었다. 그리고 residual in residual dense block을 통해서 perceptual quality를 높일 수 있었고, 깊은 층의 네트워크 훈련을 용이하게 할 수 있었다고 한다.

그리고 GAN을 통해서 현실적인 사진을 만드는데 이르렀는데, GAN에서의 효과적인 method에 대한 여러가지들이 계속 나오고 있다. WGAN에는 Wasserstein distance 개념과, weight clipping을 통해 discriminator를 정규화 하는 방법이 등장했으며, RaGan에서의 Relativistic discriminator에서는 생성 모델에 대한 결과가 real하게 하는 확률을 높일 뿐 아니라, real data가 real일 확률을 동시에 낮추는 것이 등장했다. ESRGAN에서는 relativistic average GAN의 개념을 적용해서 SRGAN을 한단계 발전시킨 것으로 볼 수가 있다.

 

3. Proposed Methods

ESRGAN의 목표는 Super Resolution의 perceptual quality를 향상시키는 것이다.

위의 구조는 SRGAN에서 나온 SRResNet의 구조이며 여기서 이제 앞으로 소개되는 추가적인 method가 적용이 될 것이다.

 

3.1 Network Architecture

SRGAN에서 성능 향상을 위해서 2가지 수정을 했다고 한다.

1. Batch Normalization layer 삭제

2. 기존의 block을 Residual in Residual Dense Block(RRDB)로 교체하기

 

Batch Normalization layer를 없애면, Super Resolution과 Deblurring과 같은 PSNR oriented task에서 성능이 향상되고, 계산 복잡성이 즐어드는 것으로 증명이 되었다고 한다. 배치 정규화가 만약 train 때와 test 때 dataset이 통계적으로 차이가 많을 경우, generalization을 제한하고, unpleasant artifacts를 일으킨다고 했다. 그리하여 BN layer를 stable한 훈련과 지속적인 성능을 위해서 없앴다고 한다. 추가로 없앰으로써, generalization ability와 메모리 사용 및 계산 복잡도 감소 등의 효과를 볼 수 있었다고 한다. 

위의 구조에서 나왔듯이, 많은 layer와 connection을 통해서 성능을 향상시킬 수 있다라는 것에 기반하여, RRDB라는 것을 사용하게 되었다. 이는 SRGAN에서 residual block 보다 복잡하고 깊은 네트워크로 구성이 되어있다. 특징이라 하면, Dense Connection을 사용함으로써 network capacity가 좋아졌다고 한다.

추가로, residual scaling과 smaller initialization을 사용함으로써 깊은 층의 네트웍에서 더 훈련이 잘 되었다고 한다.

 

1. residual scaling

main path에 추가하기전에 0 ~ 1 사이의 상수를 곱함으로써 스케일을 축소한다.

 

2. smaller initialization

residual architecture에서 파라메터 분산이 작아지면 train하기가 더 쉬워진다고 한다.

 

 

3.2 Relativistic Discriminator

 

Residual in Residual Dense Block을 통해서 Generator를 발전시켰다면, Discriminator도 같이 발전하는데, Realtivistic Gan을 기반으로 발전한다. SRGAN에서의 Discriminator과의 차이라면, SRGAN에서는 이미지가 real or fake인지에 대해서 판별을 한다면, ESRGAN에서는 Real image Xr이 Fake image Xf보다 realistic할 확률을 예측하는 것이라고 한다.

- Standard Discriminator in SRGAN

- Relativistic Discriminator(RaD)

E : 기대값 (미니배치에서 모든 fake에 대한 average operation)

σ : Sigmoid function

 

 

- Discriminator Loss

 

- Adversarial loss for generator

Xf : Generator에 Low Resolution Image를 input으로 넣은 output

 

SRGAN에서는 Generator 부분에서만 영향이 있는 반면, ESRGAN에서는 Adversarial loss를 통해서 generated data, real data 둘 다 train이 가능해졌다.

 

 

3.3 Perceptual Loss

 

SRGAN에서는 Activation 이후 feature 학습을 했다면, ESRGAN에서는 activation 이전에 feature들을 constraining 함에 따라 Perceptual loss를 더 효과적으로 발전시킬 수 있었다고 한다.

Perceptual loss는 pre-trained된 네트워크의 활성화 층 이전에 정의가 되는데, 이는 activated된 feature들 간의 거리를 최소화 하는데 의미를 두고 있다. 그러나 활성화 층 이전에 feature들을 사용함으로써, 기존 구조의 두 가지 단점을 극복하였다.

 

1. 네트워크가 깊을 수록, activated feature들이 매우 sparse하게 된다.

2. Activation 이후 feature들을 사용하면, 실제 이미지 데이터에 비해 밝기가 일관되지 않는다.

오른쪽의 VGG19-54를 보면 activate neuron의 평균 비율이 11.17%인데, Sparse activation은 약한 supervision과 안 좋은 성능을 보인다. 

 

- Generator Total Loss

 

- G(x)와 Ground-truth y 사이의 L1 norm distance

content loss

 

일반적으로 Imagenet에서 훈련된 VGG pretrained Network를 통해 perceptual loss를 사용하는 반면에, 본문에서는 SR - MINC loss를 소개하는데 이는 Material recognition을 위해 fine-tuned 된 VGG-network를 사용해서, object보다 textures에 초점을 두었다.

 

 

3.4 Network Interpolation

좋은 Perceptual quality를 유지 목적으로 Gan method에서 unpleasant noise를 없애기 위해 새로운 strategy가 제안이 되는데, 이것이 network interpolation이다.

첫번째로 PSNR-oriented network Gpsnr 을 train 하고 이후에 fine tuning한 Ggan을 포함시킨다. 두 네트워크 간에 상응하는 파라메터들을 보간해서 interpolated model G interp가 도출된다.

Interpolated Parameters

alpha value는 0 ~ 1 사이의 interpolation parameter이다.

제안된 network interpolation을 통해서 두 가지 장점은 아래와 같다.

 

1. Interpolated model은 소개된 artifact없이도 실현 가능한 a를 위한 의미있는 result를 만들 수 있다.

2. model을 retrain 하지 않고서도, perceptual quality와 fidelity의 균형을 계속 유지할 수 있다.

 

추가적으로 PSNR-oriented Method와 Gan-based Method를 효과적으로 균형을 이룰 method를 계속 연구하고 있는데,

예로 네트워크 파라메터를 보간하는 것 대신에 output 이미지를 보간할 수 있다고 한다. 그러나 이의 단점으로 noise와 blur 사이에 적절한 trade off가 이루어 지지 않는다고 한다. interpolated image가 너무 blur하거나 noise가 너무 발생할 수 있기때문이라고 한다. 다른 method로는 content loss와 adversarial loss의 weights를 튜닝하는 것인데, 이는 tuning loss weights와 fine tuning한 네트워크가 필요해서 이미지 스타일을 계속 다루기에는 너무 cost가 많이 든다는 단점이 있다.

 

4. Experiments

 

4.1 Training Details

bicubic kernel function을 이용해서 HR image에서 down sampling 한 LR image를 포함했다.

mini-batch size는 16으로 설정, HR-patch 사이즈는 128 x 128로 설정을 했다. 확장된 receptive field가 더 많은 semantic information을 캡쳐하는데 도움이 되기에 더 큰 patch 크기에서 deep neural network를 훈련하는 것이 유용하다는 것을 알 수 있다. 그러나 이렇게 하기위해서는 자원가 비용이 훈련하는데 많이 든다고 한다.

훈련 process는 two stage로 나뉘는데, 첫 번째는 L1 loss로 PSNR-oriented model을 train 시킨다. 학습률은 2 x 10 ^-4로 설정하고 decay factor는 2로 설정했다고 한다. 그리고 trained된 PSRN-oriented model을 Generator를 초기화 하는데 사용한다. 그리고 loss function은 앞에서 소개한 loss function을 사용한다. 그리고 pixel-wise loss에 대한 pretraindms Gan 기반 method가 시각적으로 만족할만한 결과를 얻는데 도와준다고 한다.

그에 대한 이유는 첫번째로 generator로 부터 local optima를 피할 수 있으며, 그 다음 이유로 pre-training 이후, discriminator는 fake-image 대신 super resolved image를 얻을 수 있다는 것이다. 이는 처음부터 texture에 초점을 두었기 때문이다.

optimization을 위해서 adam parameter로 B1 = 0.9, B2 = 0.999를 사용한다. 그리고 SRGAN과 비슷하게 16개의 residual block을 사용하고, 23개의 RRDB block을 통해서 더 깊은 모델을 구성했다고 한다.

 

4.2 Data

본문에서는 DIV2K 데이터셋을 사용하는데 이는 image restoration task를 위한 고화질의 이미지 데이터 셋이다. 그리고 또 훈련을 하기위해 다양한 texture가 있는 데이터셋을 찾는데, 추가로 Flickr2K 데이터셋을 사용한다. 그리고 OST 데이터 셋까지 해서 훈련 데이터를 늘렸다. 이를 통해서 generator가 더 natural한 결과를 도출할 수 있게 되었다고 한다.

Augmentation 기법으로 horizontal flips, 90 degree rotation을 사용하고, RGB channel을 사용했다.

 

 

4.3 Qualitative Results

SRCNN과 EDSR, RCAN 등 여러 모델과 quality를 비교했을때의 결과이다.

Peceptual quality에 있어서 표준 평가 지표는 없지만, 시각적으로 ESRGAN이 좋은 것을 확인할 수 있는데, sharpness, detail에 있어 성능이 두드러진다.

 

 

4.4 Ablation Study

기존의 SRGAN의 모델을 수정하면서 ESRGAN을 설계했는데, 시각적 비교는 아래와 같다.

- BN removal

첫번째로 먼저, artifact를 제외하고 안정적이고 지속적인 성능을 위해 배치 정규화 층을 제거했다. 제거했다고 성능이 감소하는 것은 아니며, 메모리 사용량과 컴퓨팅 자원의 소모를 줄일 수 있었다고 한다. 그리고 네트워크가 깊어지고, 복잡해질수록 배치정규화가 있는 model은 unpleasant artifact를 내보인다. 

 

- Before activation in perceptual loss

Activation 하기 이전에, feature를 사용한 결과, reconstructed image에서 밝기가 더 정확해질 수 있었다. 그리고 texture와 color의 영향을 없애기 위해서 이미지에 가우시안 커널 필터와 그레이 스케일의 히스토그램을 그렸다.

왼쪽의 brightness influence를 통해서 활성화 전후의 결과를 확인할 수 있다. activate feature를 사용했을때, 분포가 왼 쪽으로 치우친 왜도 현상을 보이고 있다. 활성화 전의 feature를 사용하면 ground-truth image의 밝기 분포와 거의 비슷한 결과를 얻을 수 있다고 한다. 

결과적으로 ESRGAN에서는 SRGAN이 네트워크가 깊어질수록 train하기 어렵다는 결론에 반해, BN을 없앤 RRDB를 통해서 훈련이 잘 되었고, 좋은 성능을 보였다고 한다.

 

 

4.5 Network Interpolation

PSNR-oriented model과 Gan base method의 결과를 균형있게 하는데 있어 network interpolation과 image interpolation의 효과를 비교하는데 여기서는 linear interpolation 기법을 사용한다. 아래 사진은 interpolation parameter인 a값에 따른 결과 비교이다.

 

4.6 The PIRM-SR Challenge

ESRGAN에서는 residual block 16개를 사용하고 경험적으로 계속 수정을 해나갔는데, MINC loss는 perceptual loss의 변형된 형태로 사용되었고, perceptual index에 대해 얻을 수 있는것이 한계적임에도 불구하고, texture에 중심을 두고 perceptual loss를 다루는 것이 Super Resolution에 중요하다고 여겼다고 한다.

결과적으로 ESRGAN은 PIRM-SR Challenge에서 best perceptual index를 얻음으로써 1등을 한 모델이 되었다고 한다.

 

5. Conclusion

ESRGAN은 Super Resolution method에서 이전의 어떤 모델보다 좋은 perceptual quality를 내보였다.

배치 정규화가 없는 RDDB block을 모델 구조에 넣었고, residual scaling, smaller initialization을 통해서 deep model 훈련이 잘 이루어지게 되었다. 그리고 Discriminator에서는 relativistic Gan을 사용하여, 이미지가 realistic한지 안 한지 판별할 수 있게 함으로써, 이를 통하여 Generator는 더 세부적인 texture의 복원이 가능 하였다. 그리고 feature들을 activation 이전에 사용함으로써 perceptual loss 부분에서 향상시킬 수 있었다. 결과적으로 정확한 밝기와 사실적인 texture를 복원할 수 있었다.

 

728x90
반응형
Comments