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회 인용
※ 참고
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=1mnm−1∑i=0n−1∑j=0[I(i,j)−ˆI(i,j)]2
PSNR=10log10(MAX2IMSE)whereMAXI=maximumvalueofimage
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를 사용하여 고해상도 이미지 x0를 반복적으로 복원
- Contracting Path와 Expansive Path 사이에 Residual Block을 배치하고 각 단계와 연결된 skip connection으로 연결
- t−1 timestep에서 노이즈(ˆϵt−1) 예측
- 단순한 업스케일링이 아닌 diffusion의 샘플링 과정을 활용하여 이미지를 더 정교하게 생성하도록 함
3. Residual Prediction
- HR 이미지와 업샘플링된 LR 이미지 간의 차이(Residual)를 입력으로 활용하여 이미지의 고주파 정보를 더 효과적으로 복원
※ 여기서의 Residual은 Resnet의 residual과 다른 개념
3. Algorithm
Diffusion process
xt(x0,ϵ)=√ˉαtx0+√1−ˉαtϵ,ϵ∼N(0,I)
Reverse process
pθ(x0,⋯,xT−1∣xT):=T∏t=1pθ(xt−1∣xt), pθ(xt−1∣xt):=N(xt−1;μθ(xt,t),σθ(xt,t)2I)
μθ(xt,t):=1√αt(xt−βt√1−ˉαtϵθ(xt,t)), σθ(xt,t):=˜β12t,t∈{T,T−1,…,1}
Training 의사코드

- 원본 HR 이미지를 직접 예측하는 대신 HR 이미지와 업샘플링된 LR 이미지의 차이인 Residual Prediction(xr)를 예측함
Inference 의사코드

- Conditional Nosie Predictor인 ϵθ를 사용하여 반복적으로 노이즈를 제거함으로써 xT를 xr로 변환
- t=1일때 z=0이 되고 최종 xr인 x0에 업샘플링된 xL을 추가하여 SR 이미지를 얻음
4. Experiment
- Dataset
- Face SR (8×) : CelebA
- General SR (4×) : 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 σ를 사용
5. Comparison



6. Extensions
- Content Fusion : 두 개의 이미지에서 특정 콘텐츠를 결합하여 새로운 이미지를 생성 (ex. 눈의 정보 제공 + 얼굴의 나머지 정보 제공)
- Latent Space Interpolation : SRDiff가 생성한 두 개의 SR 결과를 잠재 공간(latent space)에서 선형 보간(linear interpolation)하여 새로운 이미지를 생성
- ˉxˉt=λxˉt+(1−λ)x′ˉt ⇒ xt와 x′ˉt를 이용

참고
SR for Medical Imaging
