2019. 12. 24. 23:48ㆍPapers/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자체가 일정 범위의 값으로 정규화를 하는 것이기 때문에 분류나 검출 문제와는 다르게 해당 기능이 없는 것이 좋은 성능을 보여줌 )
-
-
또한, 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을 사용한다.
- 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과 비교하여 가벼우면서 비슷한 성능을 보여줌