Image Super-Resolution Using Deep Convolutional Networks
이 논문은 image classification 분야에서 성공적으로 사용된 convolutional neural network (CNN)를 단일 이미지 초해상도(Single Image Super-Resolution, SISR)에 본격적으로, 그리고 end-to-end 방식으로 최초 적용한 대표적인 연구 중 하나이다.
논문 링크
위 논문을 읽고, 내용을 요약하였다.
Introduction
배경
- Single image super-resolution은 낮은 해상도의 이미지로부터 높은 해상도로 복구하는 컴퓨터 비전 분야에 고전적인 문제이다.
- 이 문제는 해가 유일하지 않거나 무수히 많을 수 있는 ill-posed 문제로, 일반적으로 prior 정보를 활용해 해 공간을 제한함으로써 해결한다.
- 기존의 sota 모델은 prior information을 학습하기 위해 example-based 전략을 시도했다.
- internal example-based 방법 : 하나의 이미지안에서 유사한 패치 간의 반복성을 활용
- external example-based 방법 : 외부에서 수집한 저해상도/고해상도 쌍 데이터를 통해 매핑 함수를 학습한다.
대표적인 external example-based 방식: Sparse coding 기반 방법
- 이 방식은 다음과 같은 복잡한 파이프라인을 따른다:
- 입력 이미지에서 overlapping된 패치들을 밀집하게 추출하고 전처리
- 각 패치를 저해상도 딕셔너리에 매핑하여 sparse coefficient 생성
- 해당 coefficient를 고해상도 딕셔너리로 전달하여 고해상도 패치 복원
- 겹치는 고해상도 패치들을 weighted averaging으로로 합쳐 최종 이미지 생성
- 많은 external example-based 방법들은 이와 유사한 흐름을 따르며,
- 딕셔너리를 학습/최적화하거나
- 효율적인 매핑 함수 설계에 집중해왔다.
- 하지만, 이 과정에서 나머지 단계들은 통합적으로 최적화되지 않았고, 대부분은 개별적으로 처리되었다는 한계가 있다.
시도
- 기존의 exteranl example based 방법의 복잡한 파이프라인을 CNN으로 통합하여 end-to-end 학습이 가능하다.
- external example based 방법과 달리 딕셔너리나 패치 추출이 필요없다.
- 대신, hidden layer를 통해 자동으로 학습된다
- 패치 추출, 매핑, 재구성까지의 모든 과정이 CNN의 convolution layer로 구현되어, 전체 SR 파이프라인이 학습 가능한 구조로 통합되었고, 사전/사후 전처리도 거의 없이 학습만으로 성능 향상을 이끌어낸다.
→ 이러한 모델을 SRCNN(Super-Resolution Convolution Neural Network)로 이름 붙였다.
평가
-
간단한 구조이지만 높은 정확도
- 기존 sota example-based 방법들보다 우수한 복원 정확도(PSNR, SSIM 등)를 보여줌
-
빠른 연산 속도 (실시간 처리 가능)
- SRCNN은 완전한 feed-forward 네트워크이기 때문에,
- 추론시 복잡한 반복 최적화 과정이 필요 없으므로 단순한 feed-forward 구조만으로도 CPU에서 실시간 처리 가능하다.
-
확장성 있는 성능 향상
- 더 크고 다양한 학습 데이터나 더 크고 깊은 네트워크 사용시 성능이 더 향상될 여지가 있다.
- 기존 방법들은 이런 조건에서 학습과 추론이 어려웠다.
-
컬러 이미지 3채널 동시 처리 가능
- SRCNN은 YCbCr 공간에서 Y 채널만 처리하던 기존 방식과 달리, 3채널(RGB 또는 YCbCr)을 동시에 입력으로 받아 SR 수행 가능하고 더 나은 성능을 낼 수 있다.
Convolutional Neural Networks For Super-Resolution
동작 순서
- Data Preprocessing
- 입력으로 주어진 저해상도 이미지에 대해 bicubic interpolation을 적용하여 원하는 크기로 업스케일링한다.
- 이 이미지 Y는 해상도는 정답 이미지 X와 같지만, 여전히 저해상도 이미지로 간주된다.
- → SRCNN의 유일한 전처리 단계이다. (데이터 준비에 대한 자세한 설명은 Training 부분 확인)
- Patch Extraction and Representation
- 업스케일된 이미지 Y로부터 겹치는(overlapping) 패치들을 추출하고, 각 패치를 고차원 feature vector로 표현한다
- 이러한 벡터들은 곧 feature map 집합으로 구성되며, 그 수는 벡터의 차원 수와 같다.
- Non-linear Mapping
- 각 고차원 벡터를 또 다른 고차원 벡터로 비선형 매핑한다.
- 이 매핑된 벡터는 고해상도 패치의 표현에 해당하며, 이들 역시 새로운 feature map 집합으로 구성된다.
- Reconstruction
- 위에서 얻은 고해상도 패치 표현들을 하나로 통합(aggregate) 하여 최종 고해상도 이미지 F(Y를 생성한다.
- 이 이미지 F(Y)는 ground truth 이미지 X와 유사하도록 학습된다.
이 모든 단계는 각각 convolutional layer로 구성되어 있으며, 전체 과정은 end-to-end로 학습 가능한 구조로 통합되어 있음.
아래는 각 단계에서 기존 이미지 복원 방식과 SRCNN의 방식을 비교하여 서술한다.

Patch Extraction and Representation
기존 이미지 복원 방식
- 패치(patch)를 밀집하게 추출 ****하고, 이를 PCA, DCT, Haar 같은 사전 정의된 basis를 사용해 표현한다.
- 이 과정은 수학적으로 보면, 이미지를 일련의 필터로 convolution하는 것과 같음
SRCNN의 접근 방식
- SRCNN에서는 이러한 basis들을 직접 학습되도록 설계한다. → 즉, 패치 표현을 위한 필터를 end-to-end 학습에 포함
수식

전통적인 방식처럼 사전 정의된 basis를 쓰지 않고, SRCNN은 convolution 필터 자체를 학습 가능한 형태로 포함하여, 입력 이미지로부터 패치 표현을 feature map으로 직접 추출한다.
Non-linear mapping
SRCNN의 접근 방식
- RCNN에서는 첫 번째 레이어에서 추출한 patch feature를 더 복잡하고 추상적인 표현으로 변환하는 비선형 매핑 레이어를 추가한다.
→ 각 patch feature vector (n1-차원)을 n2-차원의 벡터로 변환
- 기본적으로는 각 feature map 위치를 독립적으로 처리하며, 이는 1×1 convolution으로 구현된다.
- 하지만 더 넓은 local context를 반영하기 위해, 이 구조는 3×3, 5×5 필터로 쉽게 일반화될 수 있다.
수식

이렇게 생성된 n2-차원의 벡터는 reconstruction을 위한 고해상도 패치의 표현 으로 볼 수 있다.
즉, 각 위치의 고차원 표현은 최종 이미지 복원을 위한 중요한 중간 표현이다.
Reconstruction
기존 이미지 복원 방식
- 예측된 overlapping 해상도 패치를 전체 이미지를 만들기 위해 평균을 냈다.
- 이 평균 연산은 고정된 방식으로 적용되며, 일종의 사전 정의된 필터처럼 작동한다.
SRCNN의 접근 방식
- SRCNN에서는 마지막 convolution layer를 통해 feature map을 다시 이미지 도메인으로 선형적으로 복원한다. → 각 위치의 고차원 표현을 이미지 픽셀로 복원 → 전통 방식의 averaging을 학습 가능한 필터로 대체
- 이때 중간 표현의 의미에 따라 역할은 두 가지 관점으로 해석될 수 있다:
- 이미지 도메인: feature vector가 픽셀값이라면, 단순히 이를 평균하거나 조합하여 복원하는 역할을 한다.
- 기저 도메인: feature vector가 basis 계수라면, 이를 먼저 이미지로 투영한 뒤 결합하는 역할을 한다.
→ 결과적으로 학습된 선형 필터 집합으로 복원이 수행된다.
수식

이 레이어는 최종적으로 고해상도 이미지를 생성 하는 단계이다.
전통 방식에서의 단순 averaging 대신 학습된 선형 필터 집합을 통해 더 정교한 복원이 가능하다.
Relation to Sparse-coding-Based Methods

- 기존의 Sparse-coding based SR 방법은 구조적으로는 CNN 관점에서 해석될 수 있다.
Patch Extraction and Representaiton
- 입력 이미지에서 f1 크기의 저해상도 patch를 추출
- 이 패치를 저해상도 딕셔너리에 투영 → 이는 수학적으로 n1개의 f1×f1 선형 필터를 적용하는 것과 동일
- 즉, 이 과정은 CNN의 첫 번째 convolution layer와 유사
Non-linear mapping
- sparse coding solver(예: Feature-Sign)는 n1개의 계수를 받아 n2개의 고차원 표현 계수로 변환
- 이 계수들은 고해상도 패치를 표현하는 중간 표현이며, sparse coding solver는 CNN 관점에서 보면 1×1 크기의 특수한 비선형 매핑 연산자처럼 작동
- 하지만, sparse coding은 iterative하고, SRCNN은 feed-forward 방식으로 효율적
Reconstruction
- sparse coding 방식에서는 위에서 얻은 n2 계수를 고해상도 딕셔너리에 투영하여 HR 패치를 복원
- 이후 겹치는 패치들을 평균 → 이는 CNN의 마지막 layer에서 n2개의 feature map에 대해 f3×f3 선형 필터를 적용하는 것과 동일
이러한 비교를 통해, sparse coding 기반 방식 전체가 CNN의 구조와 유사하다는 것을 알 수 있으며, SRCNN은 이 구조를 완전한 end-to-end 학습 가능한 형태로 통합했다는 점에서 차별화된다.
하이퍼파라미터 설계
마지막 레이어 필터 크기 f3
- f3<f1로 설정 → 고해상도 복원 시 중심 영역에 더 집중
- 극단적으로 f3=1이면, 중심 픽셀만 사용하고 averaging은 하지 않음
필터 수 n2<n1
- 출력 표현 차원을 더 작게 설정 → 더 압축된 표현 유도
고해상도 복원 시 사용되는 정보량
- 하나의 고해상도 픽셀 복원 시: (9+5−1)²=169개의 입력 픽셀 사용
- 이는 기존 방식이 활용하는 (5 + 5 - 1)² = 81개의 픽셀보다 훨씬 더 넓은 문맥 정보를 사용함을 의미하며, SRCNN의 성능 향상의 주요 요인 중 하나로 작용한다.
Training
목표
- SRCNN의 목표는 입력 저해상도 이미지 Y로부터 복원된 고해상도 이미지 F(Y;Θ)를 출력하도록 하는 end-to-end 매핑 함수 F의 파라미터 Θ={W1,W2,W3,B1,B2,B3}를 학습하는 것이다.
손실함수

- Mean squared error(MSE)의 경우 PSNR 향상에 유리하며, PSNR은 이미지 품질 평가에 널리 활용된다.
- 다른 손실함수를 사용하고 싶다면 CNN 구조상 쉽게 대체가 가능하다.
최적화
- Stochastic Gradient Descent (SGD) + Backpropagation 사용

데이터 구성 및 처리
- 학습 샘플은 작은 sub-image 단위로 랜덤하게 잘라서 사용
- 저해상도 이미지 Yi 생성 방식:
- Ground truth sub-image에 Gaussian blur 적용
- upscaling factor만큼 다운샘플
- bicubic 업샘플링하여 Yi 완성
- 패딩 없음 → 경계 정보 손실을 방지하기 위해 output은 입력보다 작음 → MSE는 경계 영역을 제외한 중심 영역에만 적용됨
Experiments
실험 구성 요약
- 데이터셋에 따른 성능 차이 분석
- 학습된 필터 시각화
- 네트워크 구조 변화에 따른 성능 비교
- sota 기법들과의 정량적·정성적 비교
→ 기본 실험은 Y 채널(밝기 성분)만 사용
- → 색 공간: YCbCr (용어정리 부분 참고)
- → c=1 (입출력 채널 수)
- → PSNR/SSIM도 Y 채널 기준으로 평가
- color 이미지 전체에 대해 실험 확장
데이터셋에 따른 성능 차이 분석

실험 목적
- 딥러닝은 일반적으로 대규모 데이터에서 성능 향상이 기대됨
- SRCNN도 더 많은 데이터를 학습했을 때 성능이 좋아지는지 확인
사용된 데이터셋
| 데이터셋 | 크기 | 생성된 sub-image 수 | stride |
|---|
| 작은 데이터셋 | 91 images | 약 24,800개 | 14 |
| 큰 데이터셋 | ImageNet (ILSVRC 2013) | 약 5백만 개 | 33 |
- sub-image 크기: 33×33
- 기본 네트워크 설정: f1=9, f2 = 1f, f3=5, n1 = 64, n2=32
- 검증 데이터셋: Set5 (또는 Set14)
성능 비교
| 학습 데이터셋 | PSNR (Set5 기준) |
|---|
| 91 images | 32.39 dB |
| ImageNet | 32.52 dB |
- 성능이 소폭 향상, 하지만 극적인 차이는 없었음
분석 및 결론
- 91 images도 이미 자연 이미지의 다양성을 충분히 포함하고 있다.
- SRCNN은 파라미터 수가 약 8,032개로 상대적으로 작은 네트워크 → 과적합 없이 91개 이미지로도 학습 가능
- 그럼에도 불구하고 이후 실험에서는 ImageNet을 기본 학습 데이터셋으로 채택
학습된 필터 시각화

- upscaling factor 3으로 ImageNet 데이터셋에서 학습된 첫 번째 레이어의 필터 예시를 보여준다.
- 흥미롭게도, 각 필터는 고유한 기능을 갖고 있다.
- 필터 g와 h는 Laplacian 또는 Gaussian 필터처럼 작동하고,
- 필터 a ~ e는 방향이 다른 edge 검출기처럼 보이며,
- 필터 f는 texture extractor와 유사하다

- 각 레이어에서의 특징 맵(feature maps) 예시를 보여준다.
- 첫 번째 레이어의 feature map들은 방향에 따라 다양한 edge 구조를 포함하고 있는 것이 명확하게 드러난다.
- 반면, 두 번째 레이어의 feature map들은 주로 강도 차이만 보여주며, 구조는 비슷하다.
네트워크 구조 변화에 따른 성능 비교
- 하이퍼파라미터에 변경으로 인한 성능과 속도간의 trade-off를 비교했다.
네트워크 폭(Width)과 성능 관계 실험

- 일반적으로 필터 수(n1, n2)를 늘려 네트워크 폭을 키우면 성능이 향상된다.
- 단 연산 속도는 느려진다.
- 성능을 높이려면, 더 넓은 네트워크를 속도를 원하면 작은 네트워크 선택이 가능하다.
필터 크기에 따른 성능 관계 실험

- 기본 구조 (9-1-5): f1=9, f2=1, f3=5 → PSNR: 32.52 dB
- 입력/출력 필터 확장 (11-1-7) → PSNR: 32.57 dB → 더 큰 receptive field → 더 풍부한 구조 정보 학습 가능
- 두 번째 레이어 필터 확장
- (9-3-5) → PSNR: 32.66 dB
- (9-5-5) → PSNR: 32.75 dB
→ 하지만, 필터 크기를 늘리면 성능은 향상되지만, 연산 복잡도도 크게 증가했다, 성능과 속도 사이에서 적절한 타협 필요하다.
네트워크 깊이(Depth)와 성능 관계 실험

- 최근 연구에 따라 CNN 성능이 깊이에 따라 향상될 수 있다는 가설을 검증한다
실험구성
- 기존 3-layer:
9-1-5, 9-3-5, 9-5-5
- 4-layer:
9-1-1-5, 9-3-1-5, 9-5-1-5
- 5-layer 시도:
9-1-1-1-5, 9-3-3-3 등도 실험
실험결과
- 4층 네트워크는 초기 수렴 속도 느리지만 충분한 학습 시간 후에는 3층과 유사한 성능 도달
- 더 깊게 만들수록 성능이 항상 향상되지는 않았다.
- 오히려 학습이 어려워지고 local minimum에 빠질 가능성이 높아졌다.
- 필터 다양성 감소, 성능 정체 또는 오히려 감소가 원인으로 보인다.
sota 기법들과의 정량적·정성적 비교
실험 설정
- 사용 모델:
9-5-5 SRCNN (3-layer, f1=9, f2=5, f3=5, n1=64, n2=32, ImageNet으로 학습)
- 비교 대상 방법들:
- SC (Sparse Coding) – Yang et al.
- NE+LLE – 이웃 임베딩 기반
- ANR / A+ – Anchored Neighborhood Regression
- KK – 가장 강력한 외부 예시 기반 방법
- 테스트 셋: Set5, Set14, BSD200
- 스케일 팩터: ×2, ×3, ×4에 대해 각각 모델 개별 학습
- 평가지표:
- PSNR, SSIM (일반적인 품질 측정)
- IFC, NQM, WPSNR, MSSSIM (인간 시각에 더 근접)
정량 및 정성 평가

-
PSNR 기준으로 SRCNN이 모든 데이터셋에서 최고 성능
-
일부 지표(IFC, NQM)에서 SC가 Bicubic보다 낮게 나오는 현상도 있었음
→ 인간 시각 품질과 일부 지표가 반드시 일치하지 않는다.
-
SRCNN은 학습 초기부터 Bicubic 성능을 능가, 학습 지속 시 더 향상 가능성 높다.
-
시각적 비교 결과

- 가장 날카로운 경계와 선명한 texture를 재현하고 Artifacts가 없다.
-
DNC 방법과 비교

- 다른 deep learning 기반 방법인 DNC 방법과도 비교했을 때, SRCNN이 2.7×10⁷ 반복만으로 DNC를 초월했다.
- 더 긴 학습 시 격차가 더 벌어졌다.
실행 속도 비교

- SRCNN
- A+보다 빠르면서 더 나은 성능
- C++ 순수 구현, 입력 해상도에 선형 시간 비례
- 단순한 feed-forward 방식이므로 속도 우수
- 기존 방법들:
- 복잡한 최적화 문제 해결 필요 (e.g., sparse coding) → 속도 느림
- 속도-성능 트레이드오프:
9-1-5: 가장 빠름, A+보다 나음
9-5-5: 최고 성능, 느림
- 네트워크 단순화/근사화 기법으로 test-time 성능을 유지하면서도 속도를 개선할 수 있을 것으로 보인다.
결론
SRCNN은 기존 최고 성능 기법들을 정량적·정성적으로 모두 초과하며, 실행 속도에서도 feed-forward 구조 덕분에 효율적이다.
특히 PSNR, SSIM 외에 실제 시각 품질에서도 우수함이 입증되었고, 더 깊이 있는 학습으로 성능 향상 여지도 있다.
color 이미지 전체에 대해 실험 확장
기존 접근 방식
- YCbCr 색공간으로 변환 후, Y 채널만 SRCNN 적용, Cb/Cr 채널은 bicubic 보간하여 실험했다.
SRCNN의 확장 가능성
- 네트워크 구조 변경 없이
c = 3 설정으로 RGB 또는 YCbCr 3채널 모두 입력 가능하다.
비교 대상 및 학습 전략

| 학습 전략 | 설명 | 성능 및 평가 |
|---|
| Y only | Y 채널만 학습하고, Cb/Cr은 bicubic 보간 | - 기본 baseline - Y 채널 성능 우수 - 전체적으로 안정적 |
| YCbCr 통합 학습 | Y, Cb, Cr 3채널을 동시에 학습 | - PSNR이 bicubic보다 낮음 - 채널 특성 차이로 학습 실패 - bad local minimum 발생 |
| Y pre-train → 전체 fine-tune | Y 채널만 먼저 학습 후 전체 채널로 미세조정 | - Cb/Cr 성능 개선 - 전체 PSNR은 Y only보다 약간 낮음 |
| CbCr pre-train → 전체 fine-tune | Cb/Cr만 먼저 학습 후 전체 채널로 미세조정 | - 활성화되는 필터 수 적음 - fine-tune 과정에서 성능 저하 |
| RGB 통합 학습 | RGB 3채널을 동시에 학습 | - 전체 PSNR 최고 - 성능은 Y only 수준 유지 - Cb/Cr은 bicubic보다 우수 - RGB 채널 간의 높은 상관관계를 모델이 효과적으로 활용함 |
| KK 방법 (비교 모델) | RGB 각 채널을 개별로 학습 후 YCbCr로 변환 | - Y 채널은 양호 - Cb/Cr은 bicubic보다 낮음 - Y 채널에 치우친 구조적 한계 존재 |
“Y only” 필터 vs “Y pre-train” Cb, Cr 필터 시각화 비교

- "Y pre-train" 전략이 "CbCr pre-train" 전략보다 Cb, Cr 채널의 PSNR이 더 높음
- 원인 분석:
- Cb, Cr 채널은 시각적으로 더 흐릿(blurry)해서 다운샘플링의 영향을 덜 받음 → 학습 난이도 ↓
- 하지만 정보량이 적고 특징이 약해, CbCr 채널만 학습하면 활성화되는 필터 수가 적음 → 파라미터 업데이트가 충분히 이뤄지지 않아 bad local minimum에 빠지기 쉬움.
- 반면, Y 채널은 구조적 디테일이 풍부해서 다양한 필터가 활성화됨 → fine-tuning 시 Cb/Cr 채널도 성능 향상된다.
- 시각화된 결과를 봤을때 “Y pre-train” 전략으로 학습된 첫 번째 레이어의 Cb, Cr 필터들이 기본 필터들과 전혀 다른 패턴을 형성하는 것으로 나타남.
Conclusion
- 기존 sparse coding 기반의 초해상도 방법을 CNN 구조로 재정의하였다.
- SRCNN의 경우,
- End-to-end mapping 학습 가능하다.
- 별도의 복잡한 전처리/후처리 없이도 작동한다.
- 단순하고 가벼운 구조이지만 sota 성능 달성한다.
- 향후 발전 방향 및 적용 가능성
- 추가 성능 개선 가능성
- 더 많은 필터 수 실험, 다양한 학습 전략 적용을 통해 성능 향상이 기대된다.
- 다른 저수준 비전 과제에도 확장 가능
- 이미지 복원 관련 문제에 응용 가능:
- 디블러링 (Deblurring)
- 초해상도 + 노이즈 제거(SR + Denoising)
- 다양한 업샘플링 비율 지원 네트워크 설계
- 현재는 업샘플링 비율마다 별도 모델을 훈련해야 한다.
- 다양한 비율을 한 모델이 처리하는 통합 네트워크 설계에 대한 가능성 제안한다.
용어 정리 (참고)
YCbCr란?
- YCbCr는 이미지를 밝기(Luminance)와 색차(Chrominance)로 분리한 색 공간이다.
| 구성 성분 | 의미 |
|---|
| Y | Luminance (밝기) → 사람 눈이 가장 민감하게 인식함 |
| Cb | Blue-difference chroma (파란색과 밝기 차이) |
| Cr | Red-difference chroma (빨간색과 밝기 차이) |