RePaint : DDPM Inpainting 리뷰 (A.Lugmayr 2022 논문 리뷰)

2024. 5. 17. 19:10머신러닝&딥러닝/생성모델

728x90

본 포스팅에서는 RePaint: Inpainting using Denoising Diffusion Probabilistic Models 논문을 리뷰하려고 한다.

 

DDPM은 이미지에 노이즈를 추가하여 완전한 random noise sample이 되는 과정을 학습하여, random noise 에서 새로운 이미지를 생성한다. RePaint는 input 이미지의 일부를 마스크로 가리고, 해당 부분에 대해서만 generation하여 새로운 이미지를 만드는 foundation model이다.

 

이러한 task를 free-form inpainting이라고 한다. 마스크를 씌운 영역에 대해서는 이미지 생성을 자유롭게 조율할 수 있는 것이다. 이 모델이 중요한 이유는, 마스크 모양에 구애받지 않고 이미지를 생성할 수 있기 때문이다. RePaint 모델은 두 가지로 구성된다.

  • Pretrained unconditioned DDPM
  • 변형한 reverse diffusion

이러한 모델은 기존 불규칙 마스크 형태에 대한 생성 모델이었던 autogressive, GAN 기반 모델들보다 5~6 종류의 마스크에서 좋은 성능을 보인다.

 

Introduction

RePaint는 pretrained unconditioned DDPM만을 활용하여, reverse diffusion 과정 동안 주어진 픽셀에서 샘플링함으로써 생성 과정을 조건화한다. 즉, inpainting 작업 자체에 대해 훈련된 것이 아니므로, 어떤 마스크에 대해서도 일반화할 수 있다. 또한, 본 모델에서는 향상된 denoising 전략을 도입하여 이미지를 더 잘 조건화했다. 이러한 접근은 CelebA-HQ와 ImageNet을 이용한 실험에 적용하여 다른 최신 inpainting 방법들과 비교하였고, 일반화 능력이 더 뛰어나고 의미 있는 인페인팅 영역을 생성했다.

 

Related Works

  1. Deterministic Image Inpainting: 미리 주어진 규칙에 따라 일관적으로 mask 부분을 채우는 기술
  2. Diverse Image Inpainting: deterministic과 달리, mask 부분의 모양에 맞게 다양한 그림을 채우는 기술
  3. Usage of Image Prior: 특정 작업을 수행하기 위해 이미지의 일반적인 통계적 특성이나 구조적 정보를 활용하는 방법
  4. Image Conditional Diffusion Models: 주어진 조건에 맞게 이미지를 생성하는 diffusion model

Preliminaries

DDPM이 무엇인지에 관해서는 이전 포스팅을 참고하자. https://cascade.tistory.com/59

 

DDPM을 통한 이미지 생성 및 보간 (J. Ho 2020 논문 리뷰)

DDPM이란?DDPM(Denosing Diffusion Probabilistic Model)은 발전된 형태의 diffusion 생성모델로, 이미지에 gaussian noise 를 조금씩 첨가하여 완전한 noise image로 만들어지는 과정 (q) 을 학습하여, 완전한 noise 이미지

cascade.tistory.com

 

DDPM의 log likelihood 식을 전개하면 아래 세 개 항의 합으로 바뀐다. 이때, 네트워크의 학습에 영향을 주는 항은 두 번째인 Lt-1 항이다.

또한, 이 식에서 q항은 gaussian distribution 이므로, Lt-1은 오로지 p에 대해 나타낸 식이 된다. 이를 parametrization 하는 가장 좋은 방법은 이미지 xt에 더해지는 노이즈 epsilon_0 을 예측하는 것이며, 이를 잘 풀어내면 아래와 같이 목표 확률분포인 p_theta 평균의 예측값을 parametrization할 수 있다.

또한, 위 식의 L_t-1을 아래와 같이 단순화하여 학습시킬 수 있다.

Method

 

RePaint 모델의 핵심은 denoising 과정을 known part와 unknown part로 쪼개서, known part를 샘플링하여 unknown part를 생성하는 것이다.

Known Region에서의 conditioning

 

Known Region은 변화하지 않기 때문에, noising 과정에서 이용되었던 알파 값을 이용하여 그대로 reverse process를 진행한다.

Unknown Region은 이 알파, 베타로 학습된 분포 p_theta로부터 도출된 뮤, 시그마 값을 이용하여 만들어진다. 전체 슈도코드를 보면 아래와 같다.

 

Resampling

 

이러한 sampling 과정을 한 번만 하면, 생성된 unknown 영역이 known 영역과 semantic 정보가 불일치할 때가 있다. 따라서, 여러 번 resampling하여 정확도를 높인다.

Experiments

CelebA-HQ 데이터셋으로 RePaint 모델을 사용해 본 결과이다. 일반적인 도형 형태가 아닌 line 형태의 mask에도 생성이 잘 이루어지는 것을 확인할 수 있었다.

CelebA-HQ와 ImageNet 데이터에 대한 결과치는 아래와 같다. LPIPS와 Votes를 평가 지표로 사용하였다. LPIPS는 AlexNet, VGG, Squeezenet 등 인간과 feature map 이 비슷한 CNN을 사용한 평가 지표이다.

반응형