아이공의 AI 공부 도전기

SRGAN 논문 Full Reading

Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network

 

 

Christian Ledig, Lucas Theis, Ferenc Huszar, Jose Caballero, Andrew Cunningham, Alejandro Acosta, Andrew Aitken, Alykhan Tejani, Johannes Totz, Zehan Wang, Wenzhe Shi; The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017, pp. 4681-4690

 

논문 링크 : https://arxiv.org/pdf/1609.04802.pdf

 

Abstract

1. Introduction

2. Method

3. Experiments

4. Discussion and future work

5. Conclusion

Abstract

SISR(single image super-resolution)에서 정확도나 속도를 향상시킬 수 있는 돌파구를 찾은 반면 large upscaling에서 finer texture details(미세한 질감 세부 사항들)을 어떻게 고해상도로 복원할 것인가에 대한 문제가 풀리지 않고있습니다.

 

최근(~2016) Super-Resolution 방법으로 similarity in pixel space(픽셀 공간에서의 유사성)를 추구하는 MSE 기반 reconstruction loss(pixel-wise similarity)를 최소화하여 PSNR을 높이는 방에 초점을 맞춘 반면 우리는 adversarial loss perceptual similarity를 추구하는 content loss로 구성된 perceptual loss function으로 고해상도를 달성한 SRGAN을 제안하고 이를 통해 얻어낸 MOS score가 본 고해상도 이미지의 MOS score와 매우 근접함을 보입니다.

1. Introduction

SR(Super Resolution)은 LR(Low-Resolution)로부터 HR(High-Resolution)을 추정하는 작업을 의미합니다.

최근(~2016)의 작업들은 복원된 HR 이미지와 ground truth(원본 이미지) 간의 MSE를 최소화 하는 알고리즘으로 최적화하였습니다. MSE를 사용함으로써 당시 흔히 SR 알고리즘을 평가할 때 사용하는 PSNR(peak signal-to-noise-ratio)를 최대화할 수 있었습니다. 그러나 high texture detail과 같은 표현에 있어 MSE 그리고 PSNR의 사용은 제한적이었습니다. 구체적으로 아래 그림을 보며 설명하겠습니다.

 

https://arxiv.org/pdf/1609.04802.pdf
SRGAN Figure 2

 

Figure 2에서 각 사용 알고리즘의 이름이 적혀있고 그 아래 PSNR, SSIM 순으로 숫자가 적혀있습니다. SRResNet은 SRGAN보다 PSNR이 높습니다.(23.53dB > 21.15dB) 그러나 자세히 보면 texture detail에서 오히려 SRGAN이 더 좋아 보입니다.

마찬가지로 bicubic의 PSNR과 SRGAN의 PSNR은 비슷해보이지만 SRGAN이 SR에서 더 좋아 보입니다.
PSNR, SSIM에 대해 간략히 알아보기 : 

https://aigong.tistory.com/50

 

우리는 skip-connection과 MSE로 나뉘는 ResNet 구조와 새롭게 정의한 perceptual loss를 이용한 SRGAN을 제안함으로써 4배의 upscaling factor를 가지는 super-resolved photo-realistic image 생성이 가능함을 보이고자 합니다.

 

1.1.2 Design of CNN

 

Deeper Network Architecture : 훈련은 어렵지만 높은 정확도를 가질 잠재력을 가짐

Batch-Normalization : Internal Co-variate Shift를 막아줌

 

최근 논문에서는 internal covariate shift를 감소시키는 것이 아니라 objective function을 smooth해주기 때문이라고 설명하는 논문 또한 있음

How Does Batch Normalization Help Optimization? - Shibani SanturkarDimitris TsiprasAndrew IlyasAleksander Madry

논문 링크 : https://arxiv.org/abs/1805.11604

 

Residual Blocks, Skip-Connections : identity mapping 모델링에 있어 네트워크 구조를 완화함으로써 훈련을 쉽게 도움

Learning Upscaling Filters : 정확도와 속도 관점에서 유용함 

 

1.1.3 Loss Functions

https://arxiv.org/pdf/1609.04802.pdf
SRGAN Figure 3

MSE와 같이 Pixel-wise loss function들은 texture와 같은 High frequency details들을 잃어버린채 복원하는 불확실성을 내제하고 있습니다.

 

반면 GANnatural image manifold에서 재구성된 이미지를 복원하기 때문에 perpetually(지각적으로) 조금 더 설득력 있는 해결책을 제시합니다.

 

Reference 5. J. Bruna, P. Sprechmann, and Y. LeCun. Super-resolution with deep convolutional sufficient statistics. In International Conference on Learning Representations (ICLR), 2016.

URL : https://arxiv.org/pdf/1511.05666.pdf

 

Reference 33. J. Johnson, A. Alahi, and F. Li. Perceptual losses for real-time style transfer and super- resolution. In European Conference on Computer Vision (ECCV), pages 694–711. Springer, 2016

URL : https://arxiv.org/pdf/1603.08155.pdf

 

Reference 5, 33에서 제안한 VGG Network로부터 추출한 feature map들 간의 Euclidean Distance를 기반으로 한 loss function으로 구성하였고 이를 통하여 SR이나 style transfer에 유의미한 결과를 도출할 수 있었습니다.

 

1.2 Contribution

 

- MSE에 최적화된 Deep ResNet(SRResNet) 16 blocks들로 구성하여 PSNR, SSIM의 SR(Super Resolution) 측정방식에 대한 기술 상태를 새로이 설정함.

 

- 새로운 perceptual loss를 제안 : MSE-based content loss를 VGG network의 feature map으로 계산된 loss로 교체

 

- 새로운 benchmark로 제안하는 MOS(Mean Opinion Score) test 기반

2. Method

SISR(Single Image Super Resolution)의 목표는 LR input image로부터 SR image를 추정하는 것

 

우리들의 궁극적인 목표LR input image로부터 HR image를 생성하는 Generating fucntion G를 훈련시키는 것입니다.

 

 

2.1 Adversarial network architecture

 

 

SRGAN이 하는 방식은 real part에서는 HR image를 넣음으로써 Discriminator가 HR image로 구분하게 하고 fake part에서는 LR image로 Generator가 생성한 이미지를 넣음으로써 SR image를 HR image로 속이는 적대적 학습을 한다는 것이 핵심입니다. 이 결과로 Generator는 Discriminator를 속이기 위해 HR image를 만들어낼 것입니다.

 

 

Figure 4에서 보이는 k는 kernel size, n은 channel, s는 stride입니다.

Generator에서 보이는 activation function은 PReLU를 사용했는데 자세한 내용은 아래 URL을 참조하세요

PReLU : https://aigong.tistory.com/54

Discriminator에서는 Leaky ReLU를 사용합니다.

마지막은 sigmoid로 0,1로 구분합니다.

 

2.2 Perceptual loss function

이 논문에서 가장 중요한 부분으로 Reference 33,5를 향상시킨 방법으로 정의한 loss function은 위와 같습니다.

크게 2 파트로 나뉘는데 content loss와 adversarial loss입니다.

 

2.2.1 Content loss

일반적으로 사용되던 MSE loss 이 논문에서는 사용하지 않음

보통 MSE를 기반으로 사용할 때 equation 4와 같이 pixel-wise MSE Loss를 사용합니다. 앞에서부터 이야기해오듯 이 방법은 과도하게 texture를 smooth하기 때문에 high frequency content details를 온전하게 구성하지 못하고 blur하게 보이는 특징이 있습니다.

 

때문에 이 논문에서는 pretrain된 VGG19의 activation function ReLU를 기반으로 feature map에서 

과 

간의 Euclidean Distance를 구함으로써 content loss를 구성합니다.

 

이해를 돕기위해 VGG19 그림을 잠시 보고가겠습니다.

(아래 그림은 구글에서 괜찮은 이미지를 찾는 와중에 발견한 그림으로 출처는 아래 URL을 남깁니다.)

https://mc.ai/extract-features-visualize-filters-and-feature-maps-in-vgg16-and-vgg19-cnn-models/

여기서 보는 것과 같이 우리가 쓸 content loss는 빨간색 박스 즉 max pooling하기 이전 5개의 conv block을 발견할 수 있습니다.

이 표기법에 의거하면 i=1, j=1,2는 첫 번째 maxpooling layer 이전에 1,2번째 conv를 이야기를 하는 것을 의미합니다.

 

2.2.2 Adversarial loss

 

이 부분은 minimizing하기 위한 일종의 trick으로 gan에서 주로 사용하는 방식입니다. 기본적으로 log(1-x)는 훈련 초기 gradient가 flat한 경향이 있어 이것을 역으로 바꾼 -log(x) 방식을 사용하는데요. 이렇게 바꾸면 gradient 초기값이 매우 큰 것을 알 수 있습니다. 이런 식으로 바꾸면 학습이 더 잘 됩니다.

 

다만 이 부분을 따로 넣은 이유는 Generator가 고해상도인 상태로 훈련되기를 희망하기 때문입니다.

 

Introduction to deep super resolution - Hiroto Honda https://medium.com/@hirotoschwert/introduction-to-deep-super-resolution-c052d84ce8cf

 

URL : https://medium.com/@hirotoschwert/introduction-to-deep-super-resolution-c052d84ce8cf

 

그래도 이해가 안 가실 분들을 위해 위 URL에서 좋은 그림을 올려주신 분의 그림을 가져왔는데요. 

Generator를 통해 생성한 이미지를 pretrained VGG19에서의 feature map으로 content loss를 구하고 Generator로부터 생성된 이미지가 Discriminator를 통과하면서 adversarial loss를 통해 작동하는 것이 큰 그림입니다.

 

이 그림에서는 나오지않았지만 HR 원본 고화질 그림을 Discriminator를 통과함으로써 True로 판단하게끔하는 부분도 있습니다.

3. Experiments

benchmark로 사용하는 데이터 세트인 Set5, Set14, BSD100을 활용했습니다.

4 scale factor로 실험을 수행했으며, PSNR,SSIM의 공평한 측정을 위해 중앙 crop을 수행했습니다. 다른 method로 nearest neighbor, bicubic, SRCNN, SelfExSR, DRCN, SRResNet를 사용했습니다.

 

NVIDIA Tesla M40 GPU로 훈련 시켰고 ILSVRC dataset 350,000개 image 중 랜덤한 것을 사용했습니다.

LR input image scale range [0,1]

HR image scale range [-1,1]

MSE Loss intensity range [-1,1]

 

Adam Optimization, beta1=0.9

SRGAN 

iteration동안 learning rate=

그 이후

iteration동안 learning rate=

Generator에는 16개의 동일한 Residual blocks로 구성

test동안 batch-normalization off

Implementation : Theano & Lasagne

 

3.3 Mean opinion score(MOS) testing

 

일종의 사람이 직접 확인하는 방식으로 rater 평가자들을 동원하였다.

1(bad quality) ~ 5(excellent quality)

PSNR은 낮지만 MOS에서 높은 점수를 받는 SRGAN

 

많은 부분에 있어 HR에 비견할만한 화질을 SRGAN이 갖추었다는 것을 확인할 수 있습니다.

4. Discussion and future work

보이는 것과 같이 detail면에서 SRGAN-VGG54가 더 좋은 texture를 보임을 알 수 있습니다.

SRResNet은 PSNR,SSIM에서 최고등급을 받았고 SRGAN에서는 Mos testing에서 최고 득점을 한 것을 확인할 수 있습니다.

 

MOS testing을 통하여 SRGAN의 우월적인 지각적 성능(perceptual performance)을 확인할 수 있었고 PSNR, SSIM은 올바른 image quality 평가 방법이 아닌 것을 확인할 수 있었습니다. 그럼에도 SRResNet을 통하여 기존의 평가방식인 PSNR, SSIM의 최고 성능을 받았습니다.

또한 우리는 (VGG19을 사용했지만) 더 깊은 구조 예를 들어 ResNet design에서 상당한 성능의 효과를 보일 것으로 추측합니다.

 

깊어지는 layer들의 feature map이 온전히 content에 초점을 맞췄고, adversarial loss는 texture에만 초점을 맞췄기 때문에 깊은 NN은 상당한 잠재력을 가졌다고 평가합니다.

 

우리는 이상적인 loss function은 응용 범주에 의존한다고 생각합니다. medical 또는 surveillance 상황에 finer detail은 불필요하기 때문에 다른 적용방식을 찾아야하는 것처럼 응용하는 곳에 많은 것이 달려있습니다.

5. Conclusion

우리는 PSNR 중심의 Image Super Resolution 이미지 초고해상도 평가 방법의 한계에 대해 강조하며 content loss function를 추가시킨 adversarial loss를 사용한 SRGAN을 소개합니다. 더불어 이 모델을 기반으로 MOS testing의 확장성으로 최신의 reconstruction이 가능한 upscale을 보였습니다.

 

 

이외 Youtube에 흥미있는 영상이 있어 올립니다.

 

SRGAN으로 영상 Resolution을 높인 Youtube 영상

 

참조

1. 

PR-030: Photo-Realistic Single Image Super Resolution Using a Generative Adversarial Network

https://www.youtube.com/watch?v=nGPMKnoJTcI

 

2.

Single Image Super Resolution using Deep Learning Overview

https://hoya012.github.io/blog/SIngle-Image-Super-Resolution-Overview/

 

3.

Introduction to deep super resolution - Hiroto Honda

https://medium.com/@hirotoschwert/introduction-to-deep-super-resolution-c052d84ce8cf

 

4. 

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

https://d-tail.tistory.com/25

 

5. etc 수많은 블로그들

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading