SlideShare a Scribd company logo
딥러닝 Super Resolution, 어디까지 왔니?
한국외국어대학교 컴퓨터공학과
남기현
E-mail : devkihyun@naver.com
Github: https://github.com/DevKiHyun
목차
• Super Resolution 이란?
• 딥러닝 SR의 시작 – SRCNN
• 딥러닝 SR의 발전 – VDSR
• 딥러닝 SR의 현재 – RDN
• MSE / GAN
• 결론
Super Resolution?
• Low-Resolution 영상을 High-Resolution 영상으로 복원시키는 문제
• 기존의 여러가지 SR 기법들이 존재
- State-of-the-art 한 SR 기법들은 대부분 Example-based SR
• 전통적인 SR 기법들의 예) ScSR, ANR, A+, IA, SelfExSR …
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’
PSNR (Peak Signal-to-Noise Ratio)
• 최대 신호대 잡음비
• 주로 영상 또는 동영상 화질 손실 정보를 평가할때 사용
• 손실이 적을 수록 높은 값을 갖는다
• MAXi 는 해당 이미지의 픽셀 값의 최대값. (MAXi = 2B−1)
Pre-Processing
전처리 전처리
전처리
!!!
Pre-Processing
• ’91’ dataset / Sub-images : 33x33 / Stride : 14 (Matlab 적용)
• RGB-to-Ycbcr : Use only Y channel (Matlab 적용)
– Y channel : 휘도 성분, CbCr: 색차 성분
• Bicubic Interpolation(resize) (Matlab 적용):
 
Bicubic Bicubic
blurOriginal
low
Color Space
• Y 채널만 학습하고 CbCr 채널은 bicubic 보간법을 적용.
• YCbCr 3 채널 전부 학습하면 오히려 안 좋다.
• RGB 채널을 학습 시키면 더 좋은 성능을 얻을 수 있다.
OpenCV? Matlab?
• Bicubic interpolation : 서로 다른 값의 상수를 이용함
- Matlab : -0.5 / OpenCV: -0.7
• 최종 interpolate 된 이미지들이 약간 다르게 나온다.
- PSNR 측정 시 약간 수치가 다르기 때문에
테스트 셋과 트레이닝 셋 전부 동일한 함수(Tool)로 interpolation 해야 된다.
의미하는 바
• 최초의 딥러닝 SR 모델
• 간단한 구조로도 기존의 SR 방법을 능가
• 이후 more deep한 모델에 대한 과제 제시
이후의 딥러닝 SR 논문들
VGG-net Resnet
SR 모델들에 영향을 준 구조들
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’
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 동시에 학습
VDSR
SRCNN
SSIM (Structual Similarity Index)
• 구조적 유사 지수
• 시각적 유사도를 평가할 수 있다
Pre-Processing
전처리 전처리
전처리
!!!
Pre-Processing
• ’291’ dataset / Sub-images : 41x41 / Stride : 41 (Matlab 적용)
– No Overlap
– 0°, 90°, 180°, 270° rotation
• RGB-to-Ycbcr : Use only Y channel (Matlab 적용)
Pre-Processing
Bicubic Interpolation(resize) (Matlab 적용) : 2x, 3x, 4x scale

4x Bicubic
Bicubic
3x Bicubic
2x Bicubic
blurOriginal
실험 후기
논문
• 빠른 학습 수렴을 위해 높은 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 문제를 해결 할 수 있기 때문에
굳이 적용하지 않아도 되는 것을 확인
의미하는 바
• 네트워크 깊이가 매우 깊어짐
• 여전히 간단한 구조
• VDSR 에서는 Global Skip connections 만 이용했지만
여러 Residual 구조의 가능성을 보여줌
ESPCN - 2016
EDSR - 2017
- 특징: 각 feature maps 이 High-resolution 의 pixel 로 매핑
- 특징1: Resnet을 적용한 최초의 SR 모델은 아니지만 BN,
Relu 등의 불필요한 요소를 제거하고 더 깊은
Residual block 을 쌓아서 성능을 높임
- 특징2: L2 loss 가 아닌 L1 loss 를 사용함
Loss Definition
이전의 SR (upscaling X)
• 먼저, bicubic interpolation 으로 down
scaling
• 다시 원본 사이즈만큼 bicubic 으로 up
scaling
• Upscaling 된 이미지는 흐리게 된 이미
지 (Blur)
이후의 SR (upscaling O)
• Bicubic interpolation 으로 down
scaling
• RGB 채널 학습 위주
• Blur 한 이미지들은 데이터를 훼손한다
고 간주
  
originalbluroriginal
lowlow
기존의 Residual SR
• Just Residual model
– VDSR 모델은 하나의 Skip-connection 만 존재
– SRresnet 모델은 Residual block 과 local skip-connection 적용
– EDSR 모델은 SRresnet 구조에서 발전된 모델
• 문제점:
– 각 convolutional layer 의 정보들을 충분히 사용하지 못하고 무시해버린다.
Residual + Dense
RDN – 2018 / Yulun Zhang
• 선행 Residual block(RDB)의 정보를 현재 RDB에서 직접 접근
• 선행 RDN의 features을 Global Feature Fusion 으로 합침
• Efficient sub-pixel(ESPCN) 기법으로 upscaling
Previous RDB
Current RDB
Next RDB
• Contiguous memory : 선행의 RDB 정보가 현재의 RDB 내부로
직접 전달
• Dense connection : 선행 local layers의 features를 직접 전달
• Local Feature Fusion : RDN 안의 local layers 의 features 를
합치는 과정
세 가지 방식의 모델
• 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 을 추가
D: the number of Residual blocks / C: the number of local layers / G : the number of feature-maps
Pre-Processing
• ’DIV2K’ dataset(800 images) / Sub-images : 96x96(2x) / Stride : 96 (Matlab 적용)
– No Overlap
– 0°, 90°, 180°, 270° rotation
– Randomly extract 30 images in ‘DIV2K’ dataset
– Input size : 48x48(fixed) / Label size : input_size x2, x3, x4
• Use only RGB channel
Super-Resolution Benchmark by Devkihyun
정리
• 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
MSE? GAN?
MSE? GAN?
• MSE 기반으로 추정한 Output은 약간 뭉게진 듯 하게 보인다.
• GAN 기반은 Real patch images 분산을 학습해서 패턴을 만들었기 때문에
굉장히 뚜렷하게(사실처럼) 보이지만 label과 같다곤 할 수 없다.
Where are we going?
Q & A
감사합니다

More Related Content

What's hot

Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
Electronic Arts / DICE
 

What's hot (20)

Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
Photo-realistic Single Image Super-resolution using a Generative Adversarial ...
 
Deep learning for image super resolution
Deep learning for image super resolutionDeep learning for image super resolution
Deep learning for image super resolution
 
動作認識におけるディープラーニングの最新動向1 3D-CNN
動作認識におけるディープラーニングの最新動向1 3D-CNN動作認識におけるディープラーニングの最新動向1 3D-CNN
動作認識におけるディープラーニングの最新動向1 3D-CNN
 
SinGAN - Learning a Generative Model from a Single Natural Image
SinGAN - Learning a Generative Model from a Single Natural ImageSinGAN - Learning a Generative Model from a Single Natural Image
SinGAN - Learning a Generative Model from a Single Natural Image
 
Super resolution
Super resolutionSuper resolution
Super resolution
 
Perception distortion-tradeoff 20181128
Perception distortion-tradeoff 20181128Perception distortion-tradeoff 20181128
Perception distortion-tradeoff 20181128
 
Cascades Demo Secrets
Cascades Demo SecretsCascades Demo Secrets
Cascades Demo Secrets
 
Deeplabv1, v2, v3, v3+
Deeplabv1, v2, v3, v3+Deeplabv1, v2, v3, v3+
Deeplabv1, v2, v3, v3+
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correction
 
Moving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based RenderingMoving Frostbite to Physically Based Rendering
Moving Frostbite to Physically Based Rendering
 
論文紹介 Pixel Recurrent Neural Networks
論文紹介 Pixel Recurrent Neural Networks論文紹介 Pixel Recurrent Neural Networks
論文紹介 Pixel Recurrent Neural Networks
 
Image Fusion
Image FusionImage Fusion
Image Fusion
 
Optic flow estimation with deep learning
Optic flow estimation with deep learningOptic flow estimation with deep learning
Optic flow estimation with deep learning
 
Global illumination
Global illuminationGlobal illumination
Global illumination
 
Survey of Super Resolution Task (SISR Only)
Survey of Super Resolution Task (SISR Only)Survey of Super Resolution Task (SISR Only)
Survey of Super Resolution Task (SISR Only)
 
Generating Diverse High-Fidelity Images with VQ-VAE-2
Generating Diverse High-Fidelity Images with VQ-VAE-2Generating Diverse High-Fidelity Images with VQ-VAE-2
Generating Diverse High-Fidelity Images with VQ-VAE-2
 
[PR12] image super resolution using deep convolutional networks
[PR12] image super resolution using deep convolutional networks[PR12] image super resolution using deep convolutional networks
[PR12] image super resolution using deep convolutional networks
 
Training Neural Networks
Training Neural NetworksTraining Neural Networks
Training Neural Networks
 
Super Resolution
Super ResolutionSuper Resolution
Super Resolution
 
Deep Learning for Video: Action Recognition (UPC 2018)
Deep Learning for Video: Action Recognition (UPC 2018)Deep Learning for Video: Action Recognition (UPC 2018)
Deep Learning for Video: Action Recognition (UPC 2018)
 

Similar to Deep learning super resolution

247 deview 2013 이미지 분석 - 민재식
247 deview 2013 이미지 분석 - 민재식247 deview 2013 이미지 분석 - 민재식
247 deview 2013 이미지 분석 - 민재식
NAVER D2
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
devCAT Studio, NEXON
 

Similar to Deep learning super resolution (20)

Review EDSR
Review EDSRReview EDSR
Review EDSR
 
Simple Review of Single Image Super Resolution Task
Simple Review of Single Image Super Resolution TaskSimple Review of Single Image Super Resolution Task
Simple Review of Single Image Super Resolution Task
 
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal NetworksFaster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
 
Review SRGAN
Review SRGANReview SRGAN
Review SRGAN
 
09_Bilateral filtering/Reprojection Cache 소개
09_Bilateral filtering/Reprojection Cache 소개09_Bilateral filtering/Reprojection Cache 소개
09_Bilateral filtering/Reprojection Cache 소개
 
247 deview 2013 이미지 분석 - 민재식
247 deview 2013 이미지 분석 - 민재식247 deview 2013 이미지 분석 - 민재식
247 deview 2013 이미지 분석 - 민재식
 
위성이미지 객체 검출 대회 - 1등
위성이미지 객체 검출 대회 - 1등위성이미지 객체 검출 대회 - 1등
위성이미지 객체 검출 대회 - 1등
 
Encoding in Style: a Style Encoder for Image-to-Image Translation
Encoding in Style: a Style Encoder for Image-to-Image TranslationEncoding in Style: a Style Encoder for Image-to-Image Translation
Encoding in Style: a Style Encoder for Image-to-Image Translation
 
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
Semantic Image Synthesis with Spatially-Adaptive Normalization(GAUGAN, SPADE)
Semantic Image Synthesis with Spatially-Adaptive Normalization(GAUGAN, SPADE)Semantic Image Synthesis with Spatially-Adaptive Normalization(GAUGAN, SPADE)
Semantic Image Synthesis with Spatially-Adaptive Normalization(GAUGAN, SPADE)
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
 
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
(Paper Review)Kernel predicting-convolutional-networks-for-denoising-monte-ca...
 
Progressive Growing of GANs for Improved Quality, Stability, and Variation Re...
Progressive Growing of GANs for Improved Quality, Stability, and Variation Re...Progressive Growing of GANs for Improved Quality, Stability, and Variation Re...
Progressive Growing of GANs for Improved Quality, Stability, and Variation Re...
 
Deep Object Detectors #1 (~2016.6)
Deep Object Detectors #1 (~2016.6)Deep Object Detectors #1 (~2016.6)
Deep Object Detectors #1 (~2016.6)
 
Deep neural networks cnn rnn_ae_some practical techniques
Deep neural networks cnn rnn_ae_some practical techniquesDeep neural networks cnn rnn_ae_some practical techniques
Deep neural networks cnn rnn_ae_some practical techniques
 
[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_spark[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_spark
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipeline
 

More from NAVER Engineering

More from NAVER Engineering (20)

React vac pattern
React vac patternReact vac pattern
React vac pattern
 
디자인 시스템에 직방 ZUIX
디자인 시스템에 직방 ZUIX디자인 시스템에 직방 ZUIX
디자인 시스템에 직방 ZUIX
 
진화하는 디자인 시스템(걸음마 편)
진화하는 디자인 시스템(걸음마 편)진화하는 디자인 시스템(걸음마 편)
진화하는 디자인 시스템(걸음마 편)
 
서비스 운영을 위한 디자인시스템 프로젝트
서비스 운영을 위한 디자인시스템 프로젝트서비스 운영을 위한 디자인시스템 프로젝트
서비스 운영을 위한 디자인시스템 프로젝트
 
BPL(Banksalad Product Language) 무야호
BPL(Banksalad Product Language) 무야호BPL(Banksalad Product Language) 무야호
BPL(Banksalad Product Language) 무야호
 
이번 생에 디자인 시스템은 처음이라
이번 생에 디자인 시스템은 처음이라이번 생에 디자인 시스템은 처음이라
이번 생에 디자인 시스템은 처음이라
 
날고 있는 여러 비행기 넘나 들며 정비하기
날고 있는 여러 비행기 넘나 들며 정비하기날고 있는 여러 비행기 넘나 들며 정비하기
날고 있는 여러 비행기 넘나 들며 정비하기
 
쏘카프레임 구축 배경과 과정
 쏘카프레임 구축 배경과 과정 쏘카프레임 구축 배경과 과정
쏘카프레임 구축 배경과 과정
 
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
플랫폼 디자이너 없이 디자인 시스템을 구축하는 프로덕트 디자이너의 우당탕탕 고통 연대기
 
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
 
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드
200819 NAVER TECH CONCERT 03_화려한 코루틴이 내 앱을 감싸네! 코루틴으로 작성해보는 깔끔한 비동기 코드
 
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기
200819 NAVER TECH CONCERT 10_맥북에서도 아이맥프로에서 빌드하는 것처럼 빌드 속도 빠르게 하기
 
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
 
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출
200819 NAVER TECH CONCERT 05_모르면 손해보는 Android 디버깅/분석 꿀팁 대방출
 
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
 
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
 
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
 
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
 
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기
200820 NAVER TECH CONCERT 11_빠르게 성장하는 슈퍼루키로 거듭나기
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
 

Deep learning super resolution

  • 1. 딥러닝 Super Resolution, 어디까지 왔니? 한국외국어대학교 컴퓨터공학과 남기현 E-mail : devkihyun@naver.com Github: https://github.com/DevKiHyun
  • 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)
  • 7.
  • 8.
  • 10. Pre-Processing • ’91’ dataset / Sub-images : 33x33 / Stride : 14 (Matlab 적용) • RGB-to-Ycbcr : Use only Y channel (Matlab 적용) – Y channel : 휘도 성분, CbCr: 색차 성분 • Bicubic Interpolation(resize) (Matlab 적용):   Bicubic Bicubic blurOriginal low
  • 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한 모델에 대한 과제 제시
  • 15. VGG-net Resnet SR 모델들에 영향을 준 구조들
  • 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 동시에 학습
  • 18.
  • 20.
  • 21.
  • 22. SSIM (Structual Similarity Index) • 구조적 유사 지수 • 시각적 유사도를 평가할 수 있다
  • 24. Pre-Processing • ’291’ dataset / Sub-images : 41x41 / Stride : 41 (Matlab 적용) – No Overlap – 0°, 90°, 180°, 270° rotation • RGB-to-Ycbcr : Use only Y channel (Matlab 적용)
  • 25. Pre-Processing Bicubic Interpolation(resize) (Matlab 적용) : 2x, 3x, 4x scale  4x Bicubic Bicubic 3x Bicubic 2x Bicubic blurOriginal
  • 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
  • 36.
  • 37.
  • 38. Pre-Processing • ’DIV2K’ dataset(800 images) / Sub-images : 96x96(2x) / Stride : 96 (Matlab 적용) – No Overlap – 0°, 90°, 180°, 270° rotation – Randomly extract 30 images in ‘DIV2K’ dataset – Input size : 48x48(fixed) / Label size : input_size x2, x3, x4 • Use only RGB channel
  • 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
  • 42. MSE? GAN? • MSE 기반으로 추정한 Output은 약간 뭉게진 듯 하게 보인다. • GAN 기반은 Real patch images 분산을 학습해서 패턴을 만들었기 때문에 굉장히 뚜렷하게(사실처럼) 보이지만 label과 같다곤 할 수 없다.
  • 43. Where are we going?
  • 44. Q & A