본문 바로가기
  • 책상 밖 세상을 경험할 수 있는 Playground를 제공하고, 수동적 학습에서 창조의 삶으로의 전환을 위한 새로운 라이프 스타일을 제시합니다.
Computer Vision

[2025-1] 주서영 - SRDiff : Single image super-resolution with diffusion probabilistic models

by 영써 2025. 2. 1.

SRDiff

 

SRDiff: Single Image Super-Resolution with Diffusion Probabilistic Models

Single image super-resolution (SISR) aims to reconstruct high-resolution (HR) images from the given low-resolution (LR) ones, which is an ill-posed problem because one LR image corresponds to multiple HR images. Recently, learning-based SISR methods have g

arxiv.org

  • Neurocomputing 2021
  • 611회 인용

※ 참고

SR3

 

Image Super-Resolution via Iterative Refinement

We present SR3, an approach to image Super-Resolution via Repeated Refinement. SR3 adapts denoising diffusion probabilistic models to conditional image generation and performs super-resolution through a stochastic denoising process. Inference starts with p

arxiv.org

  • 같은 연도에 Google Brain에서 발표된 SR3
  • Single image super-resolution을 위한 diffusion model이며 본 논문과 매우 유사함

1. Introduction

SISR(Single image super-resolution)

single image super-resolution 전반적인 구조
  • 저해상도(LR; Low Resolution) 이미지로부터 고해상도(HR; High Resolution) 이미지를 복원하는 문제 → Image to Image
  • 하나의 LR 이미지가 여러 개의 HR 이미지에 대응할 수 있기 때문에 잘못 설정된(ill-posed) 문제
    LR 이미지를 기반으로 다양한 HR 이미지가 가능하지만 대부분 하나의 단일 HR 이미지만 예측하는 한계 (One-to-Many)

Super Resolution을 위한 3가지 딥러닝 방법

1. PSNR 방법(ex. SRCNN)의 over-smoothing 문제

  • PSNR 중심 방법(ex. L1 Laplacian, L2 Gaussian)은 이미지를 과도하게 smoothing하여 이미지의 고주파 성분(ex. 가장자리, 텍스처, 경계선)을 반영하지 못할 수 있음 ⇒ MSE가 모든 픽셀의 차이를 동일한 가중치로 평균화하는 경향이 있기 때문
  • 정성적인 성능 지표인 PSNR과 SSIM

$$
MSE=\frac{1}{mn}\sum_{i=0}^{m-1}\sum_{j=0}^{n-1}[I(i,j)-\hat{I}(i,j)]^2
$$

$$
PSNR=10\log_{10}\Big(\frac{{MAX}_I^2}{MSE}\Big)\\ where\,{MAX}_I=maximum\,value\,of\,image
$$

2. GAN(ex. SRGAN) 방법의 mode collapse 문제

  • over-smoothing 문제를 해결하기 위해 VGG Content Loss와 Adversarial Loss를 결합(⇒ Perceptual loss) 하여 좋은 품질의 이미지를 생성
  • GAN 방법은 생성된 SR 이미지가 다양성이 부족한 이미지만 생성하는 mode collapse가 발생할 수 있음
  • 학습 과정에서 수렴이 쉽지 않고 학습에는 판별자(Discriminator)가 필요하지만 추론 시에는 사용하지 않음

3. Flow(ex.SRFlow) 기반 방법의 large model footprint 문제

  • 훈련 불안정성을 피할 순 있지만 높은 훈련 비용

 

2. Contributions

1. LR Encoder

  • RRDB (Residual-in-Residual Dense Block)로 구성
  • 사전학습된 LR Encoder를 활용하여 저해상도 이미지를 hidden condition으로 변환
  • 입력된 LR 이미지의 정보를 효과적으로 활용

2. Conditional Noise Predictor

Conditional Noise Predictor는 U-Net을 사용하여 입력 데이터를 처리 → $x_t$, $t$ (단계 정보), LR Encoder의 출력

  • Conditional Noise Predictor를 사용하여 고해상도 이미지 $x_0$를 반복적으로 복원
    • Contracting Path와 Expansive Path 사이에 Residual Block을 배치하고 각 단계와 연결된 skip connection으로 연결
    • $t-1$ timestep에서 노이즈($\hat{\epsilon}_{t-1}$) 예측
  • 단순한 업스케일링이 아닌 diffusion의 샘플링 과정을 활용하여 이미지를 더 정교하게 생성하도록 함

3. Residual Prediction

  • HR 이미지와 업샘플링된 LR 이미지 간의 차이(Residual)를 입력으로 활용하여 이미지의 고주파 정보를 더 효과적으로 복원

여기서의 Residual은 Resnet의 residual과 다른 개념

 

3. Algorithm

Diffusion process

$$
x_t(x_0,\epsilon) = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon, \quad \epsilon \sim \mathcal{N}(\mathbf{0}, \mathbf{I}) $$

Reverse process

$$
p_\theta(x_0, \cdots, x_{T-1} \mid x_T) := \prod_{t=1}^{T} p_\theta(x_{t-1} \mid x_t),\
p_\theta(x_{t-1} \mid x_t) := \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t),\,\sigma_\theta(x_t, t)^2 \mathbf{I})
$$

$$
\mu_\theta(x_t, t) := \frac{1}{\sqrt{\alpha_t}}
\left( x_t - \frac{\beta_t}{\sqrt{1 - \bar{\alpha}_t}} \epsilon_\theta(x_t, t) \right),\
\sigma_\theta(x_t, t) := \tilde{\beta}_t^{\frac{1}{2}},\,\,t \in \{T, T-1, \dots, 1\}
$$

Training 의사코드

  • 원본 HR 이미지를 직접 예측하는 대신 HR 이미지와 업샘플링된 LR 이미지의 차이인 Residual Prediction($x_r$)를 예측함

Inference 의사코드

  • Conditional Nosie Predictor인 $\epsilon_\theta$를 사용하여 반복적으로 노이즈를 제거함으로써 $x_T$를 $x_r$로 변환
  • $t=1$일때 $z=0$이 되고 최종 $x_r$인 $x_0$에 업샘플링된 $x_L$을 추가하여 SR 이미지를 얻음

 

4. Experiment

  • Dataset
    • Face SR (8$\times$) : CelebA
    • General SR (4$\times$) : DIV2K, Flickr2K

→ Bicubic 커널로 HR 이미지를 다운 샘플링하여 LR 이미지를 얻었음

  • 채널 설정
    • Conditional Noise Predictor : 첫 번째 Contracting 단계의 채널 수 c=64
    • LR Encoder:
      • CelebA 데이터셋: 8개의 RRDB 블록, 채널 크기 = 32
      • DIV2K 데이터셋: 15개의 RRDB 블록, 채널 크기 = 32
  • Diffusion process
    • Diffusion Step $T$ = 100
  • 평가 지표로 PSNR, SSIM, LPIPS, LR-PSNR, 그리고 SR 이미지의 다양성을 나타내는 Pixel Standard Deviation $\sigma$를 사용

 

5. Comparison

8 x SR CelebA에서 다른 모델과 비교한 결과
4 x SR General SR에서 다른 모델과 비교한 결과

 

6. Extensions

  • Content Fusion : 두 개의 이미지에서 특정 콘텐츠를 결합하여 새로운 이미지를 생성 (ex. 눈의 정보 제공 + 얼굴의 나머지 정보 제공)
  • Latent Space Interpolation : SRDiff가 생성한 두 개의 SR 결과를 잠재 공간(latent space)에서 선형 보간(linear interpolation)하여 새로운 이미지를 생성
  • $\bar{x}_{\bar{t}} = \lambda x_{\bar{t}} + (1 - \lambda) x'_{\bar{t}}$ ⇒ $x_t$와 $x'_{\bar{t}}$를 이용

λ값을 이용하여 inerpolation 결과를 관찰하는데 1.0에 가까워질수록 웃고 입이 더 넓게 벌어진 얼굴로 변화

참고

SR for Medical Imaging