-
Notifications
You must be signed in to change notification settings - Fork 0
[Paper]Photo Realistic Single Image Super Resolution Using a Generative Adversarial Network
"Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network" published in CVPR 2017, written by C. Ledig et al.,
Arxiv : Link
기존의 대부분의 연구들은 ground truth와 resotred image간 error의 L1 norm 혹은 L2 norm을 loss로 하고있다. 하지만 L1 norm이나 L2 norm을 loss로 하게 되면 edge 와 같은 high frequency 성분을 잘 복원해내지 못한다. 또한 L1/L2 norm 방식을 사용하면 PSNR은 높게 나오지만 PSNR이 높다고 하여 실제 눈으로 보았을때 좋게 복원 되었다고 느껴지지 않는다.
해당 논문은 GAN방식을 SR에 적용하여, detail texture 등을 잘 복원하고, PSNR이 높지는 않지만 실제로 perceptual한 부분에서 잘 보여지도록 복원하는 방법을 제시한다.
해당 논문의 contribution은 아래와 같다.
- 해당 논문이 발표된 시점에서 SOTA SR network 구조(SRResnet)를 제시하였다.
- 대부분 방식에서 사용하는 MSE based loss가 아닌 perceptual loss를 사용하는 방식을 제시하였다.
- SR과 GAN방식을 접목시켰으며, 제시하는 방식이 MOS test(human evaluation)에서 최고 성능임을 보였다.
해당 논문에서는 Residual network 기반 SR network를 제시하였다. SRResNet은 MSE를 이용하여 학습을 한 경우 PSNR measure 기준으로 SOTA임을 해당 논문에서 밝히고 있다.(해당 논문 출간 기준)
GAN방식에서는 generator와 discriminator를 alternative하게 학습한다. 그렇기 때문에 해당 논문에서는 어떠한 이미지가 들어왔을 때, 이 이미지가 실제 이미지인지 generator가 만든 이미지인지를 구별해주는 discriminator를 제시하였고 구조는 위와 같다. (Input 이미지가 실제 존재하는 이미지일 확률을 output 해준다.)
대부분의 SR paper들은 pixel-wise MSE loss를 사용한다. 실제로 높은 PSNR을 얻고싶은 경우 MSE를 사용하는것이 일반적이지만, high frequency 성분이 잘 복원되지 않기 때문에 해당 논문에서는 MSE loss를 사용하지 않고 새로운 loss function을 제시한다.해당 논문에서는 high frequency 성분을 잘 복원하기 위하여, 기존의 MSE가 아닌 VGG loss를 제시하였다. VGG19 net의 feature map을 이용하여 만든 loss function인데, i번째 max pooling layer 이전에서, j번째 convolution layer(activation 이후) feature map을 이용하여 계산하게 된다.
GAN 방식을 적용하기 위해서 content loss를 제외하고 별도의 loss가 필요하다. 그렇기 때문에 해당 논문에서는 위와 같은 adversarial loss를 추가로 제시하였다. 아래 식은 discriminator의 adversarial loss를 의미하고, log(1-prob)보다 학습이 안정적으로 진행되기 때문에 위의 식을 사용하였다.Generator의 loss function은 위와 같다.
학습과정은 아래와 같다
- MSE loss를 이용하여 SRResNet을 학습시킨다. (10^6 iteration)
- 위의 학습된 모델로 부터 fine tuning을 진행한다. 이때 부터 adversarial 하게 학습을 하게 된다. Generator loss는 위에 소개된 Overall loss를 사용하고, discriminator loss 역시 위에 소개된 것으로 진행하게 된다.
2단계로 나누어서 학습을 진행시키는 것은 처음부터 VGG19 loss를 사용하면 non-optimal point로 수렴할 가능성이 높다고 한다. 실제로 1번 단계없이 바로 adversarial하게 학습을 하는 경우 SR의 성능이 낮아지게 된다.
SRResNet이라고 적힌 network가 위 학습과정에서 1번만 마친 network를 의미하고, SRGAN이 adversarial하게 학습을 마친 network를 의미한다. PSNR은 SRGAN이 좀 더 낮지만, high frequency 성분이나 detail texture이 좀 더 잘 복원되었음을 알 수 있다.
위 표에서 MOS measure는 human evaluation measure로, 복원된 사진에 점수를 1점에서 5점까지 매기게 시켰을때 평균 점수라고 생각을 하면 된다.
PSNR이나 SSIM measure기준으로는 SRResNet이 해당 논문이 출간된 시점에서는 SOTA이다. SRResNet에서 fine tuning을 진행한 SRGAN이 MOS measure 상으로 SOTA이기 때문에 실제 high frequency 성분을 포함해 perceptual한 성분들을 잘 복원하였다고 할 수 있다.