지금까지 Super Resolution은 많은 방법들이 등장해왔다. 딥러닝이 영상처리 분야에서 눈에 띄는 성과를 보여주기 시작했고 이는 Super Resolution 문제에도 마찬가지로 적용됐다. 이번 발표에서는 1달 동안 3 가지 딥러닝 SR 모델을 구현한 경험담과 이를 통한 딥러닝 SR의 동향을 얘기하고자 한다. 딥러닝 SR이 기존의 SR을 어떻게 대체했는지 SRCNN을 소개로 시작하며 그 이후 딥러닝 SR의 발전과 현재 어디까지 왔는지 VDSR과 RDN을 통해 설명하겠다. 마지막으로 구현하면서 느낀 점들과 앞으로의 SR에 대한 생각을 얘기하려 한다.
2. 목차
• Super Resolution 이란?
• 딥러닝 SR의 시작 – SRCNN
• 딥러닝 SR의 발전 – VDSR
• 딥러닝 SR의 현재 – RDN
• MSE / GAN
• 결론
3. Super Resolution?
• Low-Resolution 영상을 High-Resolution 영상으로 복원시키는 문제
• 기존의 여러가지 SR 기법들이 존재
- State-of-the-art 한 SR 기법들은 대부분 Example-based SR
• 전통적인 SR 기법들의 예) ScSR, ANR, A+, IA, SelfExSR …
4. SRCNN – 2014/Chao Dong
• Low-Resolution Y : Input image
• High-Resolution F(Y) (restored) : Output image
• Ground truth X : Label image
• Trained by ‘L2 loss’
5.
6. PSNR (Peak Signal-to-Noise Ratio)
• 최대 신호대 잡음비
• 주로 영상 또는 동영상 화질 손실 정보를 평가할때 사용
• 손실이 적을 수록 높은 값을 갖는다
• MAXi 는 해당 이미지의 픽셀 값의 최대값. (MAXi = 2B−1)
11. Color Space
• Y 채널만 학습하고 CbCr 채널은 bicubic 보간법을 적용.
• YCbCr 3 채널 전부 학습하면 오히려 안 좋다.
• RGB 채널을 학습 시키면 더 좋은 성능을 얻을 수 있다.
12. OpenCV? Matlab?
• Bicubic interpolation : 서로 다른 값의 상수를 이용함
- Matlab : -0.5 / OpenCV: -0.7
• 최종 interpolate 된 이미지들이 약간 다르게 나온다.
- PSNR 측정 시 약간 수치가 다르기 때문에
테스트 셋과 트레이닝 셋 전부 동일한 함수(Tool)로 interpolation 해야 된다.
13. 의미하는 바
• 최초의 딥러닝 SR 모델
• 간단한 구조로도 기존의 SR 방법을 능가
• 이후 more deep한 모델에 대한 과제 제시
16. VDSR - 2015 / Jiwon Kim
• Low-Resolution X : Input image and Skip-Connection image
• High-Resolution Y(restored) : Output image
• Ground truth : label image
• Very deep layers : 20 layers
• Trained by ‘L2 loss’
17. SRCNN
• 작은 이미지 영역의 context
- 13x13 의 reception field
• 느린 학습 수렴 속도
– 최소 12시간
• 단일 Scale factor에 대한 모델
VDSR
• 확장된 이미지 영역의 context
– 41x41 의 reception field
• 빠른 학습 수렴 속도
– 6시간 이내
– Residual learning
– 높은 learning rate (점차 줄어듬)
– Gradient clipping
• 다중 Scale factor에 대한 모델
– 2x, 3x, 4x 동시에 학습
26. 실험 후기
논문
• 빠른 학습 수렴을 위해 높은 learning rate 사용 (Momentum Optimizer)
– Learning rate 를 1e-1 로 할당하고 20 epoch 마다 0.1배씩 줄어들게 한다.
• Gradient clipping
– 높은 learning rate 는 exploding gradient 가 발생하기 때문에 엄격한 기준으로
gradient 를 clip 해준다.
개인 실험
• AdamOptimizer 와 낮은 learning rate 사용 (1e-4)
– 충분히 안정적으로 빨리 수렴하는 것을 확인
• Gradient clipping
– 위의 방식으로 진행 할 경우 gradient exploding 문제를 해결 할 수 있기 때문에
굳이 적용하지 않아도 되는 것을 확인
27. 의미하는 바
• 네트워크 깊이가 매우 깊어짐
• 여전히 간단한 구조
• VDSR 에서는 Global Skip connections 만 이용했지만
여러 Residual 구조의 가능성을 보여줌
28. ESPCN - 2016
EDSR - 2017
- 특징: 각 feature maps 이 High-resolution 의 pixel 로 매핑
- 특징1: Resnet을 적용한 최초의 SR 모델은 아니지만 BN,
Relu 등의 불필요한 요소를 제거하고 더 깊은
Residual block 을 쌓아서 성능을 높임
- 특징2: L2 loss 가 아닌 L1 loss 를 사용함
Loss Definition
29. 이전의 SR (upscaling X)
• 먼저, bicubic interpolation 으로 down
scaling
• 다시 원본 사이즈만큼 bicubic 으로 up
scaling
• Upscaling 된 이미지는 흐리게 된 이미
지 (Blur)
이후의 SR (upscaling O)
• Bicubic interpolation 으로 down
scaling
• RGB 채널 학습 위주
• Blur 한 이미지들은 데이터를 훼손한다
고 간주
originalbluroriginal
lowlow
30. 기존의 Residual SR
• Just Residual model
– VDSR 모델은 하나의 Skip-connection 만 존재
– SRresnet 모델은 Residual block 과 local skip-connection 적용
– EDSR 모델은 SRresnet 구조에서 발전된 모델
• 문제점:
– 각 convolutional layer 의 정보들을 충분히 사용하지 못하고 무시해버린다.
32. RDN – 2018 / Yulun Zhang
• 선행 Residual block(RDB)의 정보를 현재 RDB에서 직접 접근
• 선행 RDN의 features을 Global Feature Fusion 으로 합침
• Efficient sub-pixel(ESPCN) 기법으로 upscaling
33. Previous RDB
Current RDB
Next RDB
• Contiguous memory : 선행의 RDB 정보가 현재의 RDB 내부로
직접 전달
• Dense connection : 선행 local layers의 features를 직접 전달
• Local Feature Fusion : RDN 안의 local layers 의 features 를
합치는 과정
34. 세 가지 방식의 모델
• BI model : Just bicubic downsampling (2x, 3x, 4x)
• BD model : Blur 한 HR image를 bicubic donwsampling (3x). Blur
처리는 7x7의 Gaussian Kernel 로 처리
• DN model : LR image 에 Gaussian noise 을 추가
35. D: the number of Residual blocks / C: the number of local layers / G : the number of feature-maps
40. 정리
• 2014 : Deep learning Super Resolution의 시작 – SRCNN
• 2015 : VGG-net 과 Resnet의 등장 후 SR 영역으로 확대 – VDSR
• 2016 : Residual 구조의 여러 방향과 Upscaling의 관점 제시 – ESPCN, VDSR
• 2017 : Resnet 구조의 적용과 발전, 그리고 GAN을 이용한 SR 모델 등장
– SRresnet, ESDR, SRGAN
• 2018(진행중) : Residual 과 Dense의 결합을 통한 새로운 Residual SR 모델 제시 - RDN