딥러닝/논문리뷰

[논문리뷰] ESRGAN: Enhanced Super-Resolution Generative Adversarial Network

ZeroAct 2022. 1. 17.
728x90
반응형

이전 논문리뷰를 기반으로 설명해야해서 안 읽으신 분들은 한번 가볍게 보고 오시는 것을 추천합니다.

https://zeroact.tistory.com/entry/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-Photo-Realistic-Single-Image-Super-Resolution-Using-a-Generative-Adversarial-Network

 

[논문리뷰] Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network

요즘 Super Resolution을 공부하기 시작해서 앞으로 SR 관련 논문 리뷰를 하게 될 것 같습니다. 이 논문 이전에 base가 되는 논문들이 있지만, 내용이 딱히 어렵지 않아서 그냥 필요할 때 키워드만 찾아

zeroact.tistory.com

 

오늘 읽을 논문은 ESRGAN 모델을 제안한 논문으로 기존 SRGAN을 Enhanced 시킨 버전입니다. (저자는 다름)

당연하게 받아들여지는 중복되는 내용들은 생략하고 어떻게 성능을 올렸는지 다루겠습니다. (SR 이 뭐고~, 뭐가 문제였고~)

서론

본 논문은 SRGAN의 network architecture, adversarial loss, perceptual loss 를 연구하고 발전시켜 ESRGAN을 만들었다고 합니다.

SRGAN이 기존 PSNR-oriented method 들 보다 시각적으로 많은 성능 향상을 시킨건 맞으나,

아직까지는 여전히 ground-truth HR image와는 명백한 차이가 보입니다.

본 논문에서는 SRGAN의 성능향상을 위해 크게 세가지를 바꿨습니다.

  1. Residual-in-Residual Dense Block
  2. Relativistic GAN
  3. Perceptual Loss

1. Residual-in-Residual Dense Block

우선 SRGAN에서는 Batch Normalization 을 사용했었습니다.

하지만, training dataset과 test dataset의 statistics가 많이 달라서 오히려 BN을 사용하면 artifact 가 생기게 되고, 일반화 성능또한 저하된다고 합니다.

이는 range flexibility가 제거되기 때문인데요, 일반적으로 edge는 양쪽으로 밝기차가 많이납니다.

하지만 feature가 normalize 되면서 이러한 밝기의 범위도 좁아지기 때문에 smooth한 결과가 나옵니다.

또한, BN layer를 제거함으로써 computatianal complexity와 memory usage에서 많은 이점을 얻을 수 있습니다.

 

제안하는 Architecture 는 다음과 같습니다.

RRDB

기존 SRResNet 구조는 그대로 가져가면서 Block만 교체했습니다.

BN layer가 빠지고 단순히 Residual conntection을 사용한 것이 아닌 Dense connection도 함께 사용했습니다.

 

BN 유무 실험 결과입니다.

확실히 BN을 사용했을때보다 더 sharp한 결과물이 나온 것 같습니다.

원본, with BN, without BN

2. Relativistic GAN

기존 GAN의 Discriminator 의 역할은 입력 이미지가 real이냐 fake이냐를 분류하는 것이었습니다.

하지만 Relativistic GAN의 Discriminator는 a가 b보다 진짜 같은지를 판단합니다.

식으로 표현하면 다음과 같습니다.

Standard GAN, Relativistic GAN

loss function은 다음과 같습니다.

ESRGAN Discriminator Loss
ESRGAN Generator Loss

기존 Standard Gan과의 차이점은 Generator를 학습할 때는 보통 real data 항은 Generator에 영향을 주지 않기 때문에 무시되지만 Relativistic Gan에서는 real data가 Generator 업데이트시 영향을 준다는 것입니다.

 

본 논문에서는 Relativistic average Gan을 사용하였습니다.

결과물을 보면 훨씬 더 sharp하고 texture가 자연스러운 것을 볼 수 있습니다.

SGAN, RaGAN

3. Perceptual Loss

이전 논문(SRGAN)에서는 Perceptual loss를 VGG loss와 Gan loss를 통틀어서 Perceptual Loss라고 네이밍을 했는데,

이번 논문에서는 VGG loss만을 Perceptual loss라고 정했습니다.

 

기존에는 activation 이후의 feature map을 사용했지만 본 논문에서는 activation 이전의 feature map을 사용합니다.

activation 이후의 feature map을 사용하면 층이 깊어질 수록 sparse 해진다는 단점이 있었습니다.

VGG19-54 layer(마지막 maxpooling 직전의 layer)의 활성화된 뉴런의 비율은 11.17% 밖에 되지 않습니다.

이러한 sparcity는 약한 supervision을 제공하며 성능을 낮추게 됩니다.

(상) before activation, (하) after activation

또한, ground-truth 이미지와 밝기 복원에 있어서도 성능차이가 생깁니다.

왼쪽 그래프를 보면 빨간색이 gt, 파란색이 after activation, 초록색이 before activation을 사용한 것입니다.

after activation을 쓴 경우 확실히 전체적으로 원본보다 어두워 지는 현상이 발생합니다.

그리고 classification을 위해 학습된 VGG가 아닌 material recognition을 위한 fine-tuned된 VGG를 사용하였다고 합니다.

이로인한 성능상향은 미미하지만 이런 perceptual loss에 대한 연구가 앞으로도 중요할 것이라고 언급합니다.

Total loss

최종 loss 식에는 perceptual loss, RaGan loss, L1 loss가 사용되었습니다.

λ = 5 x 10^-3, η = 1 x 10^-2

L1 loss가 추가된 이유는 정확히 명시되어 있지는 않지만 training 과정을 PSNR-oriented 방식으로 먼저 1차 학습을 한 후, 그 가중치를 사용하여 GAN과 perceptual loss를 더해 이어서 학습하기 때문인 것 같습니다. (너무 새로운 loss로 인해 튀지 않도록)

 

이렇게 L1 loss로 먼저 학습을 함으로써 두가지 이점이 있다고 합니다.

  1. local optima를 피할 수 있다.
  2. 초기에 완전히 fake한 이미지를 생성하지 않아서 학습을 texture에 집중할 수 있도록 도와준다.

Network Interpolation

PSNR-oriented 방식으로 학습한 초기 가중치와 최종 가중치를 interpolation 해서 사용하는 기법입니다.

아무래도 GAN 방식이다 보니 학습이 진행되면서 perceptual quality는 좋아져도 artifact가 생기는 문제가 발생합니다.

이를 해결하기위해 단순히 가중치를 곱해서 더하는 것 만으로 다음과 같은 결과를 얻을 수 있다고 합니다.

결론

SRGAN을 업그레이드 시킨 ESRGAN을 알아보았습니다.

 

DIV2K 벤치마크 결과를 보면 PSNR과 SSIM은 다른 모델에 비해 우수하지는 않지만 눈으로 봤을 때는 훨씬 낫다는 것을 보았습니다.

(데이터셋을 늘려서 학습하면 PSNR, SSIM 성능이 더 좋아진다고는 하지만...)

 

728x90
반응형

댓글