개발 · 컴퓨터공학 / / 2024. 6. 30. 10:34

초해상도 ESRGAN 논문 요약과 훈련 결과

728x90
반응형

 

초해상도 super resolution에 대한 논문 ESRGAN(Enhanced Super-Resolution Generative Adversarial Networks)을 분석해보았다.

 

 

서론 및 관련연구

초해상도(Super-Resolution) 기술은 저해상도 이미지를 고해상도로 변환하는 기술로써, 다양한 분야에서 활용되고 있다. 의료 영상, 위성 이미지 분석, 보안 감시, 영화 및 비디오 제작 등은 많은 산업 분야세서 해상도 이미지가 활용되는데, 이러한 고해상도 이미지를 사용하는 것은 더 많은 정보를 얻을 수 있고 정확한 분석과 판단이 가능하게 만들어 연구결과에 더 많은 이점을 준다. 초해상도 기술은 저해상도 이미지를 가지고 고해상도 이미지를 생성해 내었을 때, 원본 이미지와 비교하더라도 시각적으로 자연스럽고 인공적인 디테일이나 아티팩트가 없이 현실적인 텍스처를 제공하는 것을  목표로 한다.

 

 최근 딥러닝 인공신경망을 활용한 방법들로 인한 연구들이 선행되었는데, super resolution에 대한 선행 연구들 중 SRGAN(Super-Resolution Generative Adversarial Networks)이 대표적인 초해상도에 대한 연구 논문이다. SRGAN은 단일 이미지 슈퍼 해상도 분야에서 보다 현실적인 이미지 텍스처를 생성할 수 있는 결과를 보여준 논문이다. SRGAN은 GAN(Generative Adversarial Networks) 기법을 사용하여 생성자와 판별자가 서로 경쟁을 거듭하여 성능을 향상시키는 구조로 설계되었고 이러한 구조를 활용하여 단일 이미지 초해상도 분야에서 이미지를 현실적으로 생성하도록 하였다.

 

하지만 SRGAN 논문은 PSNR(Peak Signal to Noise Ratio)을 기준으로 한 방법으로 간혹 가다 인위적인 느낌의 디테일 아티팩트를 생성하는 경우가 있었고 때때로 원본 이미지와는 명백하게 다르게 보여지는 이미지를 생성하여 차이를 보이는 문제가 있었다. SRGAN은 기존의 RSNR-oriented 방법들에 비해서는 결과 이미지를 출력하였을 때 시각적으로 우수한 성능을 제공하였으나, 실제 고해상도 이미지 ground truth 등과 비교하였을 때는 그 차이가 명백하게 났다는 부족함이 있었다. 또한 SRGAN은 BN(Batch Normalization)를 사용하는데 이 방법은 훈련 데이터와 테스트 데이터의 통계적인 차이가 크게 나게 되면 일반화의 성능을 떨어뜨리거나 아티팩트를 생성할 수 있었다.

 

SRGAN의 이러한 한계점들을 개선하고 더 높은 품질의 초해상도 이미지 제공을 위해서 논문에서는 ESRGAN(Enhances Super-Resolution Generative Adversarial Networks) 모델을 제안한다.

논문의 접근 방식

이 논문에서 제안하는 ESRGAN 모델은 SRGAN의 네트워크 구조와 loss function을 개선하여 더 나은 super-resolution을 제공한다. 먼저 네트워크 구조 측면에서 Batch Normalization을 제거하고 (RRDB)Residual-in-Residual Dence Block를 도입하였다. RRDB 도입으로 인하여 네트워크의 일반화 성능을 향상시키고, 계산 복잡도와 메모리 사용량을 줄이는 효과를 얻고 BN의 제거로 인해 발생 가능한 아티팩트 방지 및 안정적 학습을 가능하게 하였다.

 

또한 Relativistic GAN을 통해서 distriminator가 절댓값 대신 상대값을 예측하도록 구조를 변경하였다는 점이다. 기존의 SRGAN의 경우 판별자가 이미지의 진위 여부를 절대적으로 파단했지만, 제안된 방법은 상대적으로 판단한다. 이로써 실제 이미지가 가까 이미지보다 더 현실적일 수 있는 확률을 예측함으로써, 이미지가 생성되었을 때 현실감과 품질을 증가시킨다. 이러한 개선 사항을 통해서 네트워크의 안정성과 계산 효율성이 향상되었다.

 

ESRGAN은 perceptual loss를 개선하여 밝기와 텍스터를 복원하는 차원에서 감독하는 과정이 추가되었다. 기존 SRGAN 에서는 activation이후 feature map을 사용하였지만, ESRGAN은 activation 이전의 feature map을 사용함으로써 기존의 SRGAN에서 발생할 수 있었던 밝기가 왜곡되는 현상을 해결할 수 있었다. 이러한 해결책은 네트워크의 깊이가 증가할 때 종종 발생하는 활성화 문제를 줄이고, deep한 layer에 대한 훈련이 효과적으로 가능하게 되었다. 

논문 결과 분석

제안된 방법인 ESRGAN을 사용하여 생성된 이미지는 더욱 고해상도가 되면서 원본 이미지에 가깝게 현실적으로 개선되는 효과를 보여준다. DIV2K 벤치마킹 결과를 확인해보면 PSNR과 SSIM또한 이전 Super-Resolution 방법들보다 RRBD 방법의 훈련에서 더 우수한 것을 확인할 수 있다. 

직접 훈련 및 평가 결과

공개되어있는 ESRGAN 코드를 기반으로 학습을 진행하였고, 데이터 셋은  DIV2K를 가지고 훈련을 진행하였다. 훈련 횟수는 150,000번 학습을 실행하였고, 위와 같이 SSIM 수치의 동향이 학습 시작 초반에 급격히 증가하다가 증가하는 폭이 줄어드는 경향을 보인다. 위 자료에서 각 point의 위에 있는 숫자는 batch size를 나타내며 해당 학습에서는 variable batch size option을 사용하였기 때문에, 학습 iteration이 진행되는 도중에 batch size를 점점 늘리는 형태로 학습을 진행하였다. 학습에서 설정한 batch_size_per_gpu 값은 12로 설정하였고, 학습을 진행하는 컴퓨터에서 Out Of Memory가 거듭 발생하는 탓에 최종적으로 위와 같은 상태까지만 훈련을 진행할 수 있었다. 진행된 학습에서의 max SSIM은 0.4922, max PSNR은 20.1308로 도출되다. 현재 최종 결과에서 SSIM이 0.5에 도달하지 못하는 경향을 보이지만, 더 많은 iteration이 가능하였다면 더 높은 수치까지 훈련될 수 있을 것으로 예상된다.

부족한 점과 개선사항

직접 모델을 학습시키는 과정에서 variable 하게 batch size를 조절하며 학습이 진행되면서 점차 메모리 요구량이 높아졌기 때문에 시스템 상 Out Of Memory 오류가 빈번하게 발생한 것으로 예상된다. 또한 도중에 batch size가 변한 탓에 학습률이 적절한 수치까지 도달하기 어려웠던 환경에서 훈련을 진행한 것또한 원인으로 예상된다. 특히 학습률이 적절한 수치에 도달하지 못한 주된 원인은 부족한 훈련 횟수로부터 비롯된다. 150,000 회 이상으로 훈련을 진행하였다면 SSIM 수치의 결과가 현재 결과보다 더 높게 나올 수 있을 것이다.

 

 

728x90
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유