[논문정리] Enhanced Deep Residual Networks for Single Image Super-Resolution

2019. 12. 24. 23:48Papers/Super Resolution

Enhanced Deep Residual Networks for Single Image Super-Resolution

Bee Lim, Sanghyun Son, Heewon Kim, Seungjun Nah, Kyoung Mu Lee; The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) Workshops, 2017, pp. 136-144

Abstract

  • SR관련 최근 연구들은 DCNN (deep convolutional neural networks)의 발전과 함께 진행되었다.
  • 특히, residual learning 기술은 성능 향상에 기여했다.
  • Enhanced deep super-resoution network (EDSR) 이라는 현재 SOA SR 방법들의 성능을 뛰어넘는 network를 제안함
  • 모델 크기를 확장함으로써 성능을 향상시켰으며 학습 과정을 안전하게 만들었다
  • 또한 새로운 multi-scale deep super-resolution system (MDSR) 을 제안하며 이는 단일 모델에서 크기가 다른 upscaling factors를 사용하여 고 해상도 이미지로 재구축할 수 있다.

Introduction

  • 일반적으로, 저해상도 이미지와 고해상도 원본 이미지의 관계는 상황에 따라 달라질 수 있다.
  • 고해상도의 버전을 bicubic으로 다운샘플 한 것이 저해상도라고 많은 연구들에서 가정하지만, 실제 어플리케이션에서는 blur, decimation 또는 noise들과 같은 다른 성능 저하 요인들도 고려되어 질 수 있다.
  • 최근, 깊은 신경망은 super-resolution 문제에서 PSNR(peak signal-to-noise ratio) 측면에서 성능이 크게 향상되었다.
  • 그러나 이러한 네트워크는 구조 최적화 측면에서 한계가 있다.
  • 첫째, 신경망 모델들의 재구성 성능은 사소한 구조 변경에도 민감하다.
  • 또한 동일한 모델은 다른 초기화 및 훈련 기술에 의해 다른 수준의 성능을 달성한다.
  • 따라서, 신경망 학습에는 신중하게 설계된 모델 구조와 정교한 최적화 방법이 필수적이다.
  • 둘째, 기존 대부분의 SR 알고리즘은 SR에서 서로 다른 스케일 간의 상호 관계를 고려 및 활용하지 않고 서로 다른 스케일 요소의 SR을 독립적인 문제로 취급한다. ( 논문에서는 multi-scale 단일 모델을 학습할 시 다른 스케일 간의 상호 관계가 존재함을 알고 중간 단계의 layer를 공용 사용 할 수 있도록 설계함. 또한 단일 모델에서는 x2 스케일의 모델을 pre-trained로 사용하여 학습 최적화를 수행함 )
  • 따라서 이러한 알고리즘에는 다양한 규모를 처리하기 위해 독립적으로 훈련해야하는 많은 규모 별 네트워크가 필요하다.
  • 예외적으로 VDSR은 단일 네트워크에서 여러 스케일의 SR을 공동으로 처리할 수 있다.
  • 여러 스케일로 VDSR 모델을 교육하면 성능이 크게 향상되고 스케일 별 교육보다 성능이 우수하여 스케일 별 모델 간의 중복성을 의미한다.
  • 그럼에도 불구하고, VDSR 스타일 구조는 입력으로 bicubic 보간된 입력 이미지로 필요로하고, 스케일 별 업셈플링 방식을 사용하는 구조와 비교하여 계산 시간과 메모리가 더 많이 사용한다.
  • SRResNet은 이러한 시간 및 메모리 문제를 우수한 성능으로 해결했지만, 많은 수정 없이 ResNet 아키텍쳐만 간단하게 사용한 것이다.
  • 그러나 원래의 ResNet은 이미지 분류와 검출과 같은 높은 수준의 컴퓨터 비전 문제들을 해결하기 위해 제안되었다.
  • 따라서 SR과 같은 저수준 비전 문제에 ResNet 구조를 직접 적용하는 것은 최적이 아닐 수 있다.
  • SRResNet 구조를 기반으로 이러한 문제를 해결하기 위해 먼저 불필요한 모듈을 분석 및 제거하여 네트워크 구조를 단순화함으로써 최적화한다.
  • 모델을 복잡하게 만들면 네트워크 교육이 쉽지 않다.
  • 따라서 훈련시 적절한 손실 함수신중한 모델 수정으로 네트워크를 훈련시킨다.
  • 둘째, 다른 스케일로 훈련 된 모델에서 지식을 전달하는 모델 훈련 방법을 조사한다.
  • 훈련 중 규모 독립적 정보를 활용하기 위해 사전 훈련 된 소규모 모델에서 대규모 모델을 교육한다. ( x2로 학습된 모델을 x3 또는 x4의 모델 교육에 사용할 수 있다. 이는 위에서 언급했던 다른 스케일 간의 상호 관계가 존재함을 인지하고 한 행위이다. )
  • 또한 다양한 스케일에서 대부분의 매개 변수를 공유하는 새로운 다중 스케일 구조를 제안한다.
  • 제안된 다중 스케일 모델은 다중 단일 스케일 모델에 비해 훨씬 적은 수의 매개 변수를 사용하지만 비슷한 성능을 보여준다.

Related Works

  • SR 문제를 해결하기 위해서 interpolation(보간) 기술을 사용했다.
  • 그러나 realistic textures과 같은 상세한 부분에 있어서 제한이 존재한다.
  • 이전 연구는 더 나은 고해상도 이미지를 재구성하기 위해 자연 이미지 통계를 문제에 적용했습니다.
  • 보다 향상된 방식은 LR와 HR 이미지 쌍 사이의 매핑 기능을 배우는 것을 목표로 한다.
  • 패치 공간을 클러스터링하고 해당 기능을 학습하는 다른 접근 방식을 도입함.
  • 최근 심층 신경망의 등장으로 인해 SR이 크게 향상됨.
  • SR에 대한 다양한 CNN 구조가 연구됨.
  • 보다 깊은 네트워크 구조를 훈련하기 위해 residual 네트워크를 도입하여 우수한 성능을 달성함. (ResNet)
  • 특히, skip connection과 재귀 convolution이 네트워크에서 identity 정보를 운반하는 부담을 경감시키는 것을 보여줬다.
  • 많은 딥러닝 기반 SR 알고리즘에서, 입력 이미지는 네트워크에 공급되기 전에 bicubic 보간을 통해 업샘플링됩니다.
  • 보간된 이미지를 입력으로 사용하는 대신에 네트워크의 맨 끝에서 업 샘플링 모듈을 훈련할 수도 있다. (SRGAN과 같은 방식)
  • 이렇게하면 피처의 크기가 줄어들기 때문에 모델 생산 능력을 잃지 않고 많은 계산을 줄일 수 있다.
  • 그러나 이러한 종류의 접근 방식은 VDSR와 같은 단일 프레임 워크에서 멀티 스케일 문제를 처리 할 수 없는 단점이 존재한다.
  • 따라서 해당 연구에서는 이러한 다중 규모 훈련과 계산 효율성의 딜레마를 해결한다.
  • 각 스케일에 대해 학습된 기능의 상호 관계를 활용하는 것 뿐만 아니라 다양한 스케일에 대한 고해상도 이미지를 효율적으로 재구성하는 새로운 다중 스케일 모델을 제안한다.
  • 몇몇 연구는 또한 네트워크 모델을 더 잘 훈련시키기 위해 손실 함수에 초점을 맞추었다. ( 모든 deep learning 문제에서 동일한 문제 )
  • MSE 또는 L2 손실은 일반적인 이미지 복원에 가장 널리 사용되는 손실 함수이며 이러한 문제에 대한 주요 성능 측정 (PSNR)이다.
  • 그러나 L2 손실 함수 훈련이 PSNR과 SSIM 측면에서 다른 손실 함수와 비교하여 더 나은 성능을 보장하지 않는다는 보고서가 있다.
  • 실험을 통해, L1으로 훈련된 네트워크는 L2로 훈련된 네트워크에 비해 성능이 향상된 것을 볼 수 있다.

Proposed Method

  • 특정 SR을 처리하는 단일 스케일 구조(EDSR)와 단일 스케일 모델에서 다양한 스케일의 SR을 재구성하는 다중 스케일 구조(MDSR)을 제안한다.

  • Residual Blocks

    • 최근 residual 네트워크는 하위 수준에서 상위 수준 작업에 이르기까지 컴퓨터 비전 문제에서 우수한 성능을 발휘했다.

    • SRRestNet에서 ResNet 구조를 성공적으로 적용한 것을 토대로, 해당 논운에서는 더 나은 ResNet구조를 채택하여 성능을 더욱 향상 시켰다.

    • 아래의 그림과 같이 기존에 존재했던 BN(batch normalization)을 제거한다.

    • BN은 정규화 작업을 하기 때문에 SR 문제에서는 오히려 범위의 유연성을 제거하므로 기능을 제거하는 것이 좋다. ( normalization자체가 일정 범위의 값으로 정규화를 하는 것이기 때문에 분류나 검출 문제와는 다르게 해당 기능이 없는 것이 좋은 성능을 보여줌 )

가장 좌측의 있는 그림은 기본적인 ResNet의 residual block 구조이며 중간의 그림은 SRResNet에서 사용한 block이다 두 block의 차이점은 Addition이후의 activation function 유무이다. 해당 논문의 block은 여기서 추가적으로 batch_norm layer들도 전부 제거를 한 것이다. 이를 통해 이점을 얻는다.

  • 또한, BN은 선행 convolution layer와 동일한 양의 메모리를 소비하므로 GPU 메모리 사용량도 충분히 줄어 든다.

  • BN이 없는 보델은 SRResNet에 비해 훈련 중 메모리 사용량이 약 40% 절약한다.

  • 결과적으로 제한된 계산 리소스 하에서 ResNet구조보다 우수한 성능을 가진 더 큰 모델을 구축할 수 있다. (줄어든 메모리만큼 레이어를 더 깊게 쌓을 수 있는 장점이 존재 )

  • Single-scale model

    • 가장 간단한 네트워크 모델의 성능을 향상시키는 방법은 파라미터의 수를 증가시키는 것이다.
    • CNN에서, 모델의 성능은 많은 레이어를 쌓거나 필터의 수를 증가시킴으로써 강화시킬 수 있다.
    • B = 레이어의 수 F = feature channel의 수
    • 계산 리소스를 제한을 고려할 경우 B대신에 F를 증가시키는 것은 모델의 능력을 최대화시킬 수 있다.
    • 그러나, feature maps을 어떤 수치 이상으로 높일 경우에는 훈련 절차가 불안정해질 수 있다.
    • 이를 해결하기 위해서 residual scaling factor를 0.1로 적용한다.
    • 각 residual block의 마지막 convolution layer 뒤에 추가한다.
    • 이를 통해 많은 수의 필터를 쓰더라도 모델을 안정화 시킬 수 있다.
    • baseline ㅇ모델의 경우에는 residual scaling layers를 쓰지 않았다. 이유는 feature map의 채널이 64로 크지 않기 때문이다.
    • EDSR에서는 B = 32 , F = 256으로 scaling factor를 0.1을 사용한다.

ResBlock의 구조는 위에서 보여준 bn이 없는 구조와 동일하다. 추가적으로 EDSR의 경우에는 마지막  Conv뒤 scaling factor 0.1을 곱해주는 작업이 추가된다. 해당 그림에서는 Mult 레이어이다. Upsampling의 경우에는 SRGAN과 마찬가지로 Shuffle을 사용하여 upsampling 레이어 또한 학습을 통해 이루어진다.

- upsampling factor를 X3과 X4로 학습할 때, 모델의 파라미터 초기화를 x2로 사전학습된 모델의 파라미터로 초기화한다.
- 이는 아래의 도표를 보면 알 수 있듯이 좋은 성능을 보여줌을 알 수 있다.

- upscaling이 X4일 경우, 만약 사전학습된 모델을 사용하여 진행할 경우(파란색 선), 랜덤 초기화(초록색 선)를 했을 경우보다 빠르게 수렴하는 것을 알 수 있다.

  • Multi-scale model
    • 위의 도표를 통해, 여러 규모의 SR은 서로 관련된 것임을 인지한다.
    • VDSR처럼 상관관계를 활용하는 멀티 스케일 구조를 만들고자 한다.
    • 다른 스케일의 파라미터들을 공유하는 구조를 만들었다.
    • 멀티 스케일 구조에서는 다양한 스케일로 SR을 처리할 수 있는 스케일 별 처리 모듈을 보여준다.
    • 먼저, 전처리 모듈은 네트워크의 가장 앞에 위치하여 다양한 스케일의 입력 이미지로부터의 편차를 줄인다.
    • 각각의 전처리 모듈은 5X5 커널을 가진 두 개의 Residual 블록으로 구성된다.
    • 사전 처리 모듈에 더 큰 커널을 채택함으로써 규모 별 부분을 얕게 유지하면서 더 큰 수용 필드는 네트워크의 초기 단계에서 다룰 수 있다.
    • 멀티 스케일 모델의 끝에서 스케일 특정 upsampling 모듈은 멀티 스케일 재구성을 처리하기 위해 병렬로 배치된다.
    • upsampling모듈의 구조는 이전에 언급한 단일 스케일 모델(EDSR)의 구조와 유사하다.
    • B = 80, F = 64로 최종 멀티 스케일 모델(MDSR)을 구성한다.
    • 3개의 다른 스케일에 대한 단일 스케일 기준 모델에는 각각 약 1.5M의 매개변수로 3개의 스케일을 한다고 가정하면 4.5M인 반면, baseline 다중 스케일 모델에는 3.2M 매개 변수만 필요로 한다.
    • 그럼에도 불구하고 멀티 스케일 모델은 단일 스케일 모델과 비슷한 성능을 나타낸다.
    • 또한 멀티 스케일 모델은 깊이(B) 측명에서 확장이 가능하다. (매개변수양이 줄었기 때문에 그만큼 더 깊이 쌓을 수 있다.)
    • 최종 MDSR은 baseline 멀티 스케일 모델에 비해 깊이가 약 5배가 높지만 residual block이 스케일 별 부분보다 가벼우므로 2.5배 더 많은 매개 변수만 필요하다.
    • MDSR은 규모 별 EDSR과 비슷한 성능을 보여준다.


Experiment

Dataset

  • DIV2K 데이터셋은 고품질(2K 해상도) 이미지 데이터셋으로 이미지 복원 업무를 위해 제공된다.
  • DIV2K 데이터셋은 800 학습 이미지, 100 검증 이미지 그리고 100 테스트 이미지로 구성되어 있다.
  • 대표적인 성능 비교 benchmark 데이터셋으로는 Set5, Set14, B100 그리고 Urban100이 있다.Training Details
  • 학습을 위해 LR이미지에서 48X48 크기의 RGM 입력 패치를 해당 HR 패치와 함께 사용한다. ( 2K 이미지를 통채로 넣기에는 모델의 크기가 버티지 못한다. 따라서 2K 이미지를 잘라서 넣어주는 방식을 활용 )

Training Details

  • Data augmentation 방법으로는 수평 뒤집기와 90회전을 사용한다. ( 이 두가지의 방식을 조합하면 90 , 180 , 270 회전이 가능함 )
  • 최적화 방식으로는 ADAM을 사용한다
  • 우선적으로 2배 스케일의 모델을 학습한 후 이를 활용하여 다른 모델의 파라미터들로 활용한다.
  • MDSR의 경우에는, 미니배치할 시 임의로 2,3,4배수를 선택한다.
  • 오직 일치하는 경우에만 업데이트가 진행된다.
  • 따라서 선택한 스케일 이외의 다른 스케일에 해당하는 스케일 특정 residual block 및 upsampling 모듈은 활성화 또는 업데이트되지 않는다.
  • L2대신 L1 loss를 사용한다.
  • L2 loss를 최소화하는 것은 일반적으로 PSNR을 최대화할 경우 선호되었다.
  • 하지만 경험적으로 L1 loss가 L2 loss보다 좋은 성능을 보여주는 것을 확인했다.
  • 학습기간은 EDSR과 MDSR은 각각 NVIDIA Titan X GPU에서 4일, 8일이 소요되었다.

Geometric Self-ensemble

  • 테스트하는 동안 입력 이미지를 7개의 이미지를 data augmentation을 통해 생성하여 총 8개의 이미지를 생성한다.
  • 생성한 이미지와 기존 이미지 총 8개의 이미지를 입력 이미지로 사용하여 8개의 SR이미지를 생성한다.
  • 8개의 SR이미지를 원래의 이미지로 변환하여 이의 평균의 값을 통해 결과를 도출한다.

  • 이는 추가적인 별도의 모델을 필요하지 않고 추가적인 성능을 얻을 수 있는 방법이다.
  • 모델 크기 또는 학습 시간에 대해서 이점이 존재한다.
  • 모델 이름의 마지막에 '+'라고 추가함으로써 해당 기법을 사용한 것을 표시한다.
  • 해당 방법은 bicubic down sampling과 같은 대칭 down sampling의 경우에만 유효하다.

Result


Conclusion

  • 새로운 SR 방법은 제안함.
  • 기존 ResNet 구조에서 불필요한 모듈을 제거함으로써 향상된 결과를 얻을 수 있었다.
  • 대형 모델을 안정화시키기 위해 Residual scaling 기술을 사용한다 (0.1)
  • EDSR의 경우 해당 시기에 SOTA를 달성함.
  • 모델의 크기와 교육 시간을 줄이기 위해 MDSR을 사용함.
  • MDSR을 통해 다중 스케일을 효과적으로 처리할 수 있다.
  • MDSR은 EDSR과 비교하여 가벼우면서 비슷한 성능을 보여줌