본문 바로가기
AI/AI Paper review

[CVPR-2018] ESRGAN : Enhanced Super-Resolution Generative Adversarial Networks

by 노마드공학자 2023. 12. 11.

논문 전문 : https://arxiv.org/abs/1809.00219

[출처] https://doi.org/10.48550/arXiv.1809.00219

 

※ The picture and content of this article are from the original paper.

This article is more of an intuitive understanding than academic analysis.


 

[논문 요약]
ESRGAN : Enhanced Super-Resolution Generative Adversarial Networks

 

 

본 논문은 GAN을 활용한 Super Resolution(이하 SR)에 거의 시초격인 논문입니다.

GAN 네트워크야 CNN으로 짜면 얼마든지 원하는 모델을 만들수있고, 이게 완전한 처음은 아닐수있지만 SR에 GAN을 활용하여 성능을 낼 수 있다는 상징성을 보여준 논문이라고 생각합니다. (SR-GAN과 더불어)

이런 논문은 꼭 누군가라서 작성할수있었다기보단, 시간이 지나면 누군가는 이 주제로 논문을 썼을듯한 논문입니다.

이런거를 누가 처음 선점하여 쓰느냐도 상당히 중요한것 같습니다. 이렇게 간단한 컨셉도 Citation이 3800회이상으로 초대형 논문이 될수있기 때문입니다.

 

Contents

 

이미지 출처 : https://baechu-story.tistory.com/12

 

먼저 본 논문을 이해하려면 GAN이라는것에 대해 알아야합니다.

지금은 거의 아무도 안쓰는 기술이 되었지만, VAE(Variational AutoEncoder)류와 함께 생성형 AI의 첫 시초라고 볼수있죠

Ian GoodFellow가 쓴 논문으로, Citation 6만회가 넘는 말도 안되는 논문입니다.

저도 이쪽으로 석사때 연구를 했었는데요, GAN의 첫 논문을 봤을때 도대체 어떻게 이런생각을 할수있지? 라는 생각이 제일 먼저 떠올랐던것 같습니다. 그만큼 임팩트가 컸었죠

 

대략적으로는 개념이 이렇습니다.

도둑과 경찰이 있는데, 도둑에게는 위조화폐를 계속 그리도록하고, 경찰에게는 도둑이 그린 위조화폐와 실제화폐를 대조해가며 구분(1/0)을 합니다.

이 과정을 무한번 반복한다면, 결국 도둑은 경찰이 구분할 수 없는 완벽한 위조화폐를 그린다는것이 컨셉입니다.

이런 컨셉에 딥러닝을 적용하여 이미지 생성 및 복제를 하는것이 GAN입니다.

Generative Adversarial Network라는 이름답게, 도둑과 경찰이 경쟁(Adversarial)적으로 학습하여 데이터를 생성(Generative)하는것을 목표로합니다.

 

KL-Divergence를 기반으로 데이터간 분포의 유사도를 학습하는 컨셉이기에, 초기 논문은 다소 불안정한 부분이 많았으나 Wasserstein GAN같은 새로운 학습 Loss를 개발함으로써 안정성도 많이올려, 실제로 Instagram이나 MS에서 GAN을 기반으로 Product가 나온적도 있습니다.

하지만, Diffusion Model이라는 컨셉이 나온 이후로, GAN은 사실상 거의 아무도 안쓴다고 봐도 무방하게되었습니다.

Diffusion Model은 컨셉으로는 GAN과 큰차이가 없으나, 도둑에게 Noise로 넣어주던것을 원본 이미지에 노이즈를 점차 추가하는 방식으로 진행함으로써, 입력과 출력간의 학습분포에 대해 더욱 정확하게 학습할수있게되었고 특히 Stable Diffusion으로 잘알려진 Diffusion Moment이후로 연구 메인스트림이 다 이쪽으로 넘어가게 되었습니다.

 

하지만, 낭만이 있는 그런기술이고.. 컨셉 자체가 매우 재미있고 인사이트있는 기술입니다.

 

 

돌아오면, 결국 GAN은 도둑-경찰의 학습을 통해 새로운 데이터를 생성해내는 것입니다.

입력/출력은 자유로이 할수있구요

그럼 입력에 저해상도 이미지, 출력에 고해상도 이미지를 세팅하여 학습하게되면, 당연하게도 학습이 잘됩니다.

도둑은 저해상도 이미지를 입력으로 받고 Fake 고해상도 이미지를 계속 그려냅니다. 경찰은 계속 이것을 판별하구요.

이것을 무한대로 반복하게되면 결국 도둑은 저해상도 이미지를 입력으로 받을때 고해상도 이미지를 출력으로 완벽하게 그려낼수있게됩니다.

 

https://limitsinx.tistory.com/288

이 전에 정리한 상기 EDSR 논문과도 마찬가지로, SR에서는 기본적으로 Batch Normalization을 빼는것이 정설이 되었습니다. Loss도 일반적으론 L1 Loss를 쓰거나 GAN같은 경우에는 Wasserstein+L1 이런식으로 쓰는것들이 많구요

Perceptual Loss나 SSIM, PSNR도 쓰는 경우가 있는데 GAN에서는 Adversarial 학습을 위해 데이터 기반 Loss만으로는 한계가 있습니다.

 

 

결과적으론 상기와 같습니다. ESR-GAN의 원조격인 SR-GAN과 성능을 비교하고 있습니다.

저도 ESR-GAN이든, SR-GAN이든 다 만들어서 돌려봤는데요.. 저자들이 제안하는 장비와 데이터셋, 학습시간이 워낙 넘사벽이라 상기와 같은 정도의 퀄리티는 개인적으로 뽑아본적이 없습니다.

Transfer Learning으로 갖다써도 이정도로는 잘안되던데.. 재구현이 잘안되는것 같습니다.

 

위의 결과를 보면, 선형대수학 표지로 유명한 바분 이미지 전체를 봤을때는 SR의 성능차이가 별로 안나보이지만, 고주파가 많은 입주변 털들을 확대해서보면 확실하게 차이가 납니다.

SR-GAN 대비 ESR-GAN이 고주파를 확실히 더 잘잡아내고 그려내는 모습입니다.

 

이미지 출처 : https://github.com/xinntao/ESRGAN

 

ESR-GAN 성능에 대해 아주 잘 정리해주신 xinntao님 github를 보면, 더욱 성능을 한눈에 확인할 수 있습니다.

이 전, EDSR논문에서도 봤지만 Bicubic이 성능이 나쁜 기술이 전혀 아닙니다. 경우에 따라서는 PSNR 30dB수준까지도 끌어올리는것을 봤는데요, 그렇지만 ESR-GAN과 차이가 엄청나게 많이남을 보실 수 있습니다.

 

Results

EDSR과 GAN을 섞은 논문입니다.

Batch Normalization을 사용하지 않는 Residual Block들을 통해 네트워크를 설계하고, 전체 적인 네트워크를 GAN과 같이 그렸습니다.

당시 기준으로 SOTA에 달할 정도의 성능이였으나, 몇년전부터는 GAN이라는 모델을 거의 쓰지않고 있습니다.

지금 SR을 하시려고 하는 분들은 GAN에 대해서는 본 글과 같이 개념적, 컨셉만 이해해도 충분하고 Diffusion Model로 넘어가심을 추천드립니다.

 

참조

[1] https://doi.org/10.48550/arXiv.1809.00219

[2] https://github.com/xinntao/ESRGAN

 

댓글