본문 바로가기
AI/AI Paper review

[CVPR-2017] Enhanced Deep Residual Network for Single Image Super-Resolution

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

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

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

 

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

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


 

[논문 요약]
Enhanced Deep Residual Network for Single Image Super-Resolution

 

 

서울대학교에서 나온 논문으로, 무려 현 글 작성시점 기준 Citation 5772회에 해당하는 슈퍼논문입니다.

EDSR이라는 약어로 많이 불리며, Super Resolution 즉, 저해상도에서 고해상도로 이미지 품질을 향상시키는데 사용되는 모델입니다. 특히, 본 논문은 SISR(Single Image Super Resolution)을 타게팅하며, 당시 벤치마크 데이터셋에서 NTIRE2017 Super Resolution Challenge에서 우승을 차지했던 모델입니다.

 

저도 연구하고 있는 분야 중 하나로, NVH(Noise Vibration Harshness) 데이터를 활용한 Super Resolution 쪽이 있습니다. 음성데이터의 Spectrogram에 대해 어떤식으로 Noise Reduction을하고 Super Resolution을해서 고품질 데이터를 만들까 하는쪽으로도 논문이나 프로젝트를 조금 진행했었는데.. 그 과정 중 아주 큰 도움이 되었던 논문입니다.

 

Contents

 

 

본 논문에서 제안하는 Residual 스킬 중, 기존 기술과의 가장 큰 차이점은 Batch Normalization의 유무입니다.

위의 Figure에서도 확인할 수 있다시피, 기존 논문에서 Batch Normalization을 제외한것 말고는 큰 차이가 없습니다. 본 저자들이 말하는 바로는, Up-scailing 즉 Super Resolution을 진행할때는 Batch Normalization 과정이 오히려 성능에 안좋은 영향을 줄 수 있다고 합니다.

 

그리고 위 Figure에는 나타나있지않지만, Scailing Factor라고 하여 Residual block을 지난것과 원본 데이터간의 비율을 맞추는 과정도 있습니다. 논문에서는 Residual scaling factor라고 부르며 0.1로 둔다고합니다.

(저도 이것을 256x256 to 1024x1024 SR쪽을 하면서 요리조리 바꾸어보기도했는데, 제가 학습한 데이터상으로는 0.3이하이면 큰차이가 없었습니다.)

 

본 논문에서는 Single Scale Architecture(EDSR)과 Multi scale Architecture(MDSR)을 제안하는데, 둘다 Super Resolution을 위한 모델이지만, EDSR은 특정한 업스케일링 비율, 예를들면 4배 이런식으로 정해진 SR을 목표로 동작하는것이며, MDSR은 다중 스케일 아키텍처로 서로 다른 업스케일링 비율의 SR문제를 다루는 것입니다.

 

 

쉽게말하면, EDSR은 이런식으로 마지막에 4배를 Up-Scailing한 SR모델이기때문에, 예를들면 256x256이미지를 1024x1024로 바꿀때 사용가능하다는것입니다.

하지만 MDSR은 이런식으로 2배, 3배, 4배... 여러 Up-Scailing로 학습한 SR모델이기때문에 다양한 배율에 대해 학습 및 검증이 가능합니다.

 

본 연구의 가장 큰 장점으로는 간단한 모델 설계라는 점입니다.

Batch Normalization도 없으며, Layer 깊이는 32, Filter 갯수는 256 정도입니다. 파라미터수가 적은것은 아니지만, 모델을 구현하는 부분에 있어서는 굉장히 단순한 코딩으로도 구현할 수 있다는 큰 장점이 있습니다.

그리고 저자분이 Layer 깊이를 32로 유독 깊게 하신 이유는, Residual Block을 쓰기때문에 깊이 설계할수있다는 장점도 있지만, Filter 갯수를 늘리는것보다 Layer를 늘리는게 동일 성능 대비 메모리를 훨씬 덜 사용할수있기 때문이라고 합니다.

(MDSR은 깊이 80, 필터갯수 64로 더욱 극단적으로 깊이를 늘림)

 

이렇게 간단한 설계에도 불구하고, 당시 기준으로 SOTA 성능을 달성했으며 특히 제가 인사이트를 느꼈던 부분은 L1 Loss를 사용한다는 점이였습니다. 저는 본디 시계열 딥러닝을 하던사람이기에 자연스럽게 L2 Loss를 쓰고있었고.. EDSR 첫 구현할때도 저도모르게 L2 Loss로 사용하고 있었습니다. 이런 Super Resolution쪽에서는 PSNR이나 SSIM같은 다른 Loss들도 있는데, L2 Loss는 이것보다 한참 못한 성능을 보여준다고 합니다.

저도 이후, L1 Loss+PSNR로 Loss를 짰는데 L2 Loss가 수렴은 빠르게 잘하나, epoch을 길게보고 학습할수록 L1 Loss+PSNR의 성능이 더 좋아지는것을 확인했었습니다. (데이터마다 차이가있겠지만)

 

 

결과로는 당시 NTIRE2017 SR Challenge SOTA 성능을 보여주었으며, 위의 Figure에 의하면 34.78dB를 보여주었다고 합니다.

34.78dB면 사실 사람눈으로는 왠만해서는 구분이 안되는 지경입니다. 25dB만 넘어도 꽤나 괜찮게 보이고, 27~30dB를 보면 육안으로는 캐치할수없을정도인데요, 위의 사진을 보시면 그 차이를 확인하기위해 확대하고 확대해서 새의 깃털 방향까지 보는것을 확인할 수 있습니다. 

 

Results

 

Citation 5000회를 가뿐히 넘는 논문이 한국에서 나온것은 아주 기쁜일입니다.

같은 연구자로써(CV쪽은 아니지만), 한국에서 Nature나 혹은 CVPR ICML... 좋은 학회에서 인정받고 citation, 높은 IF를 받는것은 정말 자랑스럽습니다.

저도 제가 연구하는 분야와 일맥상통하여, 예전에 사용하였던 기술인데, 모델 구성자체도 깔끔/간결하고 성능도 좋아 현재까지도 많이 사용되는 모델입니다.

 

댓글