[22’ PAML] SR3: Image Super-Resolution via Iterative Refinement
카테고리: Generation
태그: Diffusion
0. Abstract
- 저자들은 conditional DDPM을 적용하여 SR3(Super-Resolution via Repeated Refinement)이라는 iterative refinement 방법을 제안한다.
- 다양한 magnification factor에 대해 잘 작동하고, face 및 nature dataset에 대해 잘 작동한다.
- Human evaluation 결과 fool rate가 거의 50%로, photo-realistic한 이미지를 생성한다.
1. Conditional Denoising Diffusion Model
저자들은 conditional denoising diffusion model을 정의하여 사용하였다. 먼저 데이터셋 $\mathcal{D} = \lbrace x_i, y_i \rbrace _ {i=1} ^ N$이라고 하자. 여기서 $x_i$는 low-resolution image이고, $y_i$는 high-resolution image이다. 여기서 저자들은 low-resolution image를 diffusion model의 condition으로 간주하고, $p(y \vert x)$를 DDPM을 통하여 근사하고자 한다.
즉, source image $x$를 additional side information으로 간주한 neural denoising model $f_\theta$를 훈련하는 것이다. 이를 위해서는 input으로 source image $x$와 noisy target image $\tilde{y}$가 필요할 것이다. Diffusion model의 forward process의 특징으로부터 $\tilde{y}$는 다음과 같이 $y_0$에서 바로 생성할 수 있다.
\[\tilde{y} = \sqrt{\gamma} y_0 + \sqrt{1 - \gamma} \epsilon, \quad \epsilon \sim \mathcal{N}(0, \mathbf{I})\]그리고 시간 $t$를 넣어주는 대신 noise를 예측하기 쉽도록 $\gamma$를 넣어주어 모델을 $f_\theta (x, \tilde{y}, \gamma)$로 모델링한다. 이때 objective는 다음과 같다.
이때 $p \in \lbrace 1, 2 \rbrace$는 norm을 의미하고, $\gamma \sim p(\gamma)$는 noise schedule을 의미한다. 저자들은 noise schedule이 학습 결과에 큰 영향을 끼친다고 이야기한다. 실제로는 WaveGrad 논문의 schedule을 사용하였다고 하는데, DDPM의 것과 숫자만 바뀐 linear schedule이어서 구체적으로 다루지는 않겠다.
Conditional reverse Markovian process를 다음과 같이 정의할 수 있다.
\[\begin{aligned} p_\theta (y_{0:T} \vert x) &= p(y_T) \prod_ {t=1} ^ T p_\theta (y_{t-1} \vert y_t, x) \\ p(y_T) &= \mathcal{N}(y_T \vert 0, \mathbf{I}) \\ p_\theta (y_{t-1} \vert y_t, x) &= \mathcal{N}(y_{t-1} \vert \mu_\theta (x, y_t, \gamma_t), \sigma_ t ^ 2 \mathbf{I}) \\ \end{aligned}\]이때 mean $\mu_\theta$는 다음과 같이 parametrize할 수 있다.
\[\mu_\theta (x, y_t, \gamma_t) = \frac{1}{\sqrt{\alpha_ t}} \left( y_t - \frac{1- \alpha_t}{\sqrt{1- \gamma_t}} f_\theta (x, y_t, \gamma_t) \right)\]따라서 다음과 같은 training 및 inference 알고리즘을 따르는 것을 이해할 수 있다.
구현에서의 중요한 점은 이러한 condition $x$를 U-Net 구조 $f_\theta$에 어떻게 주입했는지일 것이다. 먼저 bicubic interpolation을 통해 $x$의 크기를 $y$와 같게 만들어주고, 이를 $y_t$와 channelwise concatenate하여 $f_\theta$에 넣어주었다. 그 외에 FiLM과 같은 더 복잡한 conditioning 방법도 시도했지만 성능 개선이 없었다고 한다.
2. Experiments
2.1. Qualitative Results
정성적인 결과는 다음과 같다. 단순 regression 모델은 전반적으로 oversmoothing되는 경향이 있지만, SR3은 fine details를 잘 생성하는 것으로 보인다.
2.2. Benchmark Comparision
2.2.1. Automated Metrics
저자들은 다음과 같은 automated metrics를 사용하였다.
- Similarity: PSNR, SSIM
- Sample Quality: FID, IS, Classification Accuracy
- Consistency: MSE between $x$ and downsampled $\hat{y}_ 0$
그런데 저자들은 automated similarity metrics가 human perception과 일치하지 않는다고 이야기한다. 즉, PSNR, SSIM은 high-frequency details를 생성해내면 오히려 그것이 reference image와 완벽히 맞지 않아 낮은 점수를 준다는 것이다. 따라서 photo-realistic한 이미지를 생성하면 오히려 점수가 낮아진다. 따라서 SR3은 다른 모델보다 similarity metric에서는 결과가 좋지 않지만, sample quality 및 consistency metric에서는 좋은 결과를 보인다.
2.2.2. Human Evaluation
따라서 이를 평가하기 위해 human evaluation을 진행하였다. 여러 논문에서 MOS(Mean Opinion Score), 즉 얼마나 이미지를 잘 만들었는지를 1점~5점 중 평가하는 방법을 많이 사용하는데, 최근에는 두 이미지를 주고 둘 중 어느 것이 더 좋은지 선택하게 하는 방법이 더 정확하다고 한다. 이를 two-alternative forced choice (2AFC)라고 한다. 저자들은 두 개의 task를 진행하였다.
- Task 1: Image quality and consistency
- 설정: Low resolution input + (generated output vs ground truth)
- 질문: “Which of the two images is a better high quality version of the low resolution image in the middle?”
- Task 2: Photo-realism
- 설정: (generated output vs ground truth)
- 질문: “Which image would you guess is from a camera?”
이때 fool rate는 ground truth 대신 model output을 선택한 비율을 말한다. 만약 50%라면 이는 랜덤한 선택과 같기 때문에, ground truth와 model output을 구별할 수 없다는 것을 의미한다. 결과는 다음과 같다.
PULSE는 Task 2에서는 높은 점수를 받았지만 Task 1에서는 낮은 점수를 받았다. 즉, photo-realistic하긴 하지만 consistent하지 않은 이미지를 생성했다는 것이다. 반면 regression 모델은 Task 1에서는 높은 점수를 받았지만 Task 2에서는 낮은 점수를 받았다. 즉, consistent하지만 photo-realistic하지 않은 이미지를 생성했다는 것이다. 즉 디테일이 떨어지는 blurry한 이미지를 생성했다는 것이다. SR3은 두 task에서 모두 높은 점수를 받았다. 특히 Task 1에서는 54.1%라는 50%를 넘는 성적표를 받았는데 이는 SR3이 만든 이미지가 실제 이미지보다 더 현실에 가깝게 느껴졌다고 해석할 수 있다. 아래 예시 이미지를 보면 납득할 만한 결과라고 생각된다.
2.3. Cascaded High-Resolution Image Synthesis
저자들은 이에서 한발 더 나아가 cascaded high-resolution image synthesis를 시도하였다. 이미지 생성과 이미지 super-resolution을 연속적으로 시도하는 것이다. 아래 모델은 $64 \times 64$ 이미지를 먼저 diffusion model로 생성한 후, 두 번의 SR3 모델을 통해 차례대로 $256 \times 256$, $1024 \times 1024$ 이미지를 생성한 것이다.
저자들은 추가로 ablation study를 통해 학습 시 $x$에 Gaussian Blurring을 주는 것이 성능을 높이는 것을 확인하였고, objective는 $L_1$ norm이 $L_2$ norm보다 살짝 좋다는 것을 확인하였다.
3. Discussion
이론적으로 diffusion model과 같은 log-likelihood based objective를 사용하는 모델들은 GAN과는 달리 data distribution의 mode를 잘 cover해야 한다. 그러나 저자들은 SR3 모델에서 mode dropping의 문제가 발생한 것으로 보인다고 했다. 즉 동일한 $x$ condition에서는 거의 동일한 이미지만을 계속 생성했다는 것이다. 또한, 얼굴 이미지에서는 모공, 피어싱과 같은 디테일을 제거하고 아주 부드러운 피부 텍스쳐만 생성하는 경향이 있었다. 저자들은 강력하게 SR3은 이러한 bias issue가 해결되기 전까지는 real world super-resolution task에 사용되지 말아야 한다고 이야기한다.
💡 Summary
- SR3은 super-resolution task를 위해 low-resolution image를 reverse Markovian process의 condition으로 모델링하는 diffusion model을 제안하였다.
- SR3은 photo-realistic한 이미지를 잘 생성한다. 그러나 이를 평가할 때 PSNR, SSIM과 같은 평가 방법은 high frequency detail을 잘 생성한 모델에게 오히려 낮은 점수를 줄 수 있어 human evaluation을 활용하였다.
- Ablation study를 통해 low-resolution image input에 Gaussian Blurring을 주는 것이 성능을 높이는 것을 확인하였다.
- Opinion 1: 간단한 컨셉의 논문으로 좋은 결과를 내는 것이 인상적이다. 다만 human evaluation 말고는 좋은 평가 방법이 없었을까 하는 생각이 든다. 언제나 human evaluation을 손쉽게 할 수 없는 경우가 많기 때문이다. 고민해보았지만 역시 대안이 잘 떠오르지는 않는다.
- Opinion 2: low-resolution image conditioning 시에는 단순 concatenation을 사용하였다. FiLM과 같은 더 복잡한 방법을 사용해도 성능이 좋아지지 않았다고 한다. 그러나 concatenation은 직관적으로 suboptimal하다는 생각이 들고, 따라서 condition의 embedding 방법은 조금 더 고민할 필요가 있다고 생각한다.
댓글 남기기