Stats & AI tech blog - '일단 시도함'

[논문] Accurate Image Super-Resolution Using Very Deep Convolutional Networks (VDS 본문

Paper Review

[논문] Accurate Image Super-Resolution Using Very Deep Convolutional Networks (VDS

justdoit ok? 2024. 4. 18. 14:54

이번 포스팅에서 리뷰할 논문은 저해상도의 이미지를 고해상도의 이미지로 변환하는 초해상도(SR, Super Resolution) 모델 중 하나인 VDSR 모델에 대한 논문이에요. VDSR은 기존 SR분야에서 SOTA 성능을 보이는 SRCNN의 한계점을 극복하면서도 좋은 성능을 보인다고 해요.
 
 

Introduction

SRCNN이 초해상도 분야에서 딥러닝 기술을 성공적으로 적용하였지만 아래 몇 가지 한계점들이 존재해요.
1. 작은 이미지 영역의 context에 의존
2. 수렴(convergence)이 너무 느림
3. Single scale을 위한 네트워크
 
본 연구에서 이런 문제점들을 실용적으로 해결하는 새로운 방법을 제안해요.
 
1. Context 
작은 이미지 영역은 세부적인 recovery에 필요한 충분한 정보를 포함하지 않을 수 있기 때문에,
VDSR은 큰 이미지 영역에서의 정보 (contextual information)을 활용해요.
 
2. Convergence 
아주 깊은 네트워크에서는 수렴률이 매우 낮아 학습이 느리다는 한계가 존재해요.
VDSR 모델에서는 학습 속도를 올리는 두 가지 방법을 제안하고 있어요.  
2-1) Residual learning

LR(Low Resolution)과 HR(High Resolution) 이미지는 같은 정보를 공유하기 때문에, 두 이미지 사이 차이인 Residual으로 학습하는 것이 매우 효과적이에요.

2-2) 아주 높은 Learning rates
또, VDSR은 학습 속도를 개선하기 위해 SRCNN모델보다 10^4배 높은 Learning rates을 가지는데, 이 때 발생할 수 있는 기울기 소실 문제를 해결하기 위해 Gradient clipping 방법을 사용해요.
 
3. Multi-Scale Factor 
일반적으로 하나의 scale factor를 다루기 위해 하나의 네트워크 모델을 만들게 돼요. 하지만 다양한 scale을 다루기 위해서 필요한 모든 scale-dependent model을 학습하고 저장하는 것은 실용성이 떨어지겠죠?
본 연구에서는 하나의 convolutional network가 Multi-scale factor에 대한 Super Resolution에 효과적이라고 제시하고 있어요.
 
 
 

Proposed Method & Understand Properties

VDSR은 처음과 마지막 층을 제외하고는 3x3x64 사이즈의 64개 filter(channel)를 사용하는 d개의 layer를 사용해요.
첫번째 층은 input 이미지를 다루고 마지막 층은 이미지 재구성을 위해 3x3x64의 single filter로 구성돼요.

 
먼저 네트워크는 보간법(interpolate)을 사용하여 저해상도의 이미지로부터 디테일을 예측하고,
interpolated lower resolution(ILR) image를 input으로 사용해서 image details(residuals)를 예측하게 돼요.
이 과정에서 이미지 가장자리에 0으로 padding을 주면서, final 이미지가 작아지지 않게 하고 가장자리에 가까운 pixels을 잘 예측해요.
이미지의 디테일(Residuals)이 예측되면 다시 input ILR이미지와 더해져 최종 HR 이미지를 제공해요.
 
x : Interpolated LR (ILR) 
y : HR 
f : model
loss function : MSE
 
Residual Learning
loss layer에는 아래 3가지 input이 전달돼요.
1) residual estimate
2) network input image (ILR)
3) ground truth HR image
 
먼저 예측된 디테일(residual estimate)에 네트워크의 input이었던 ILR을 더해서 reconstructed image를 만들고,
이것과 실제 고해상도 이미지(ground truth HR image)와의 유클리디언 거리를 계산하는 방법으로 학습이 진행돼요.
 
미니배치 경사하강법으로 역전파를 진행하고, momentum을 0.9로 weight는 감소하게 설정하여 학습한 결과,
non-residual network보다 residual network가 빠르게 수렴하고 좋은 성능을 보였다고 제시하고 있어요.

Hight learning rate
아주 깊은 모델은 수렴에 실패할 가능성이 크고, 학습률을 높게 잡으면 기울기 소실 문제가 일어나기 때문에,
문제 해결을 위해 gradient clipping을 제안했어요.
 
Adjustable Gradient Clipping
Gradient vanishing을 막기위해 본 연구에서는 Gradient의 범위를 제한하는 Gradient Clipping이라는 방법을 사용했어요.
학습 속도를 개선하여 4시간 만에 20개의 layers network를 학습할 수 있다는 것을 보여주었어요.

 
Multi-Scale
scale이 여러개(x2, x3, x4)인 train dataset을 가지고 학습을 진행했어요.
mini-batch방법으로 진행하는데 하나의 batch에 여러개의 scale이 포함될 수 있다고 해요. ex) {2,3}, {2,4}, {3,4}, {2,3,4}
그 결과 large scale(3,4)에서 multiple scale로 학습하는 것이 single scale network보다 좋은 성능을 보인다는 것을 보여주었어요.

 
 
 
 

정리해보자면, 아주 깊은 네트워크 모델에서는 수렴률이 매우 낮아서 학습이 어려워질 수 있는데, VDSR모델에서는 Residual-learning과 매우 높은 Learning rates를 이용해서 깊은 네트워크을 빠르게 최적화하고, 이때 발생할 수 있는 기울기 소실(Vanishing Gradient) 문제를 Gradient clipping 방식으로 해결했어요. 또 여러 scale에 대해 학습을 진행했을 때 single scale로 학습된 network보다 더 좋은 성능을 보인다는 것도 보여주었죠.
마지막으로 여러 벤치마크를 통해 VDSR이 SRCNN의 한계점을 보완했을 뿐만 아니라 뛰어난 성능을 보이는 것을 증명한 연구였어요.

* 논문 링크
https://arxiv.org/pdf/1511.04587.pdf