- Neurocomputing 2021
- 611회 인용
※ 참고
- 같은 연도에 Google Brain에서 발표된 SR3
- Single image super-resolution을 위한 diffusion model이며 본 논문과 매우 유사함
1. Introduction
SISR(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를 사용하여 고해상도 이미지 $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
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}}$를 이용
참고
SR for Medical Imaging