SDEDIT: GUIDED IMAGE SYNTHESIS AND EDITING WITH STOCHASTIC DIFFERENTIAL EQUATIONS[2022 ICLR]

이한결·2025년 7월 28일
0

이미지를 변형하기 위해서 사용자의 입력을 잘 반영하면서도 결과가 자연스러워 합니다. GAN을 이용해서 자연스러운 결과를 얻을 수 있지만 복잡한 훈련이 필요했습니다. SDEdit에서는 학습 없이 사용자 입력에 대한 자연스러운 결과를 나타냅니다. 어떻게 이를 가능하게 했는지 살펴보도록 하겠습니다.

Background

SDE(Stochastic Differential Equation)의 해는 시간에 따라 바뀌는 확률적인 값입니다. 원래의 이미지 분포 X(0)에서 점점 노이즈를 추가하면서 x(t)의 상태로 변환되는데 이 과정을 SDE라고 합니다.

SDE는 시간이 갈수록 노이즈가 점점 커지는 VE-SDE(Variance Exploding), 데이터의 양과 노이즈의 양을 항상 일정하게 유지하는 VP-SED(Variance Preserving) 방식이 존재합니다. 이후에 설명하는 과정은 VE-SDE를 기반으로 하고, VP-SDE는 Appendix C에 자세히 설명됐습니다.

Image synthesis with VE-SDE

SDE 정의하에서 우리는 노이즈를 제거는 reverse SDE 과정을 통해서 원본 이미지 x(0)를 얻을 수 있습니다.

노이즈가 섞인 이미지를 보고 원래의 노이즈를 얼마나 잘 예측하는지에 대한지는 denoising score matching을 통해서 예측할 수 있습니다.

Score model (sθ(x(t),t)s_{\theta}(x(t),t))를 통해서 xlogpt(x)∇_x log p_t(x)를 추정하고, 이를 Euler-Maruyama 라는 간단한 수치 방법을 사용해서 reverse SDE를 계산합니다.

GUIDED IMAGE SYNTHESIS AND EDITING WITH SDEDIT

Setup

사용자가 제공하는 간단한 RGB 픽셀을 ‘guide’ 이미지라고 부릅니다.

단순히 색칠한 굵은 선 몇개가 있는 high-level guide

실제 사진 위에 덧칠한 형태인 mid-level guide

실제 사진에서 특정 패치를 잘라 넣은 것처럼 정밀한 정부가 일부 들어있는 형태인 low-level guide가 존재합니다.

이러한 guide들은 전문가가 아니어도 쉽게 만들 수 있고, 이를 바탕으로 SDEdit은 현실감 있고, 입력 가이드와 유사한 결과를 내도록 하는 목표를 갖습니다. 현실감과 입력의 충실도는 항상 같이 증가하지 않기 때문에 어느 정도의 균형이 필요하고 실제 이미지와 guide와의 수학적 정의가 주어지지 않았기 때문에 기존의 reverse 기법을 적용할 수 없고 새로운 문제 설정이 필요합니다.

Procedure

Reverse 과정은 지금까지 t=1부터 시작했지만 꼭 t=1에서 시작할 필요는 없습니다.

따라서 t=1이 아닌 중간 시점 t0t_0에서 시작해서 t=0인 원본 이미지로의 reverse 과정을 진행한다! 이게 SDEdit의 procedure이라고 생각하시면 됩니다.

Realism-faithfulness trade-off

중간 시점 t0t_0이 클수록 노이즈가 많이 추가되어 현실적이 이미지가 나오지만 guide의 영향은 적어지고, 반대로 t0t_0이 작을수록 노이즈가 적게 추가되어 guide의 영향은 강해지지만 비현실적인 이미지가 나올 수 있습니다. 즉 현실성과 충실도의 trade-off가 생깁니다.

이를 확인하기 위해서 논문에서는 LSUN 데이터셋으로 high-level guide에 대한 실험을 진행했습니다. 현실성을 측정하기 위해서 KID(Kernel Inception Distance)지표를 사용해서 값이 낮을수록 현실적이고, 입력 가이드 이미지와 L2 distance를 측정해서 얼마나 잘 입력을 반영하는지 측정했습니다.

위의 결과를 통해서 guide image가 현실적인 이미지에서 멀어질수록 노이즈를 추가해서 현실적인 결과를 얻어야합니다.

위의 수식은 t0t_0의 값이 커질수록 결과는 guide이미지에서 점점 멀어진다(L2 distance가 커진다)는 것을 나타냅니다. 증명 과정은 Appendix A를 참조하시면됩니다.

Choice of t0t_0

t0t_0가 0.3~0.6의 값을 갖을 때 좋은 결과가 나타나는 것을 확인했습니다. 하지만 만약 guide가 흰색 픽셀만 존재하는 것처럼 무의미하다면 t0t_0의 값을 크게 설정해야 됩니다. 따라서 사용자가 0.3~0.6 사이의 값을 선택한 후 결과를 보고 더 현실적인 결과를 원하면 더 큰 값을, 더 입력에 충실한 결과를 원할 경우 더 작은 값을 t0t_0으로 선택해야 됩니다.

Detailed algorithm and extensions

SDEdit의 핵심은 결국 reverse SDE를 중간 시점 t0t_0에서부터 진행하는 과정입니다. 만약 우리가 수정하고 싶지 않은 부분이 있다면 mask를 추가적인 채널에 추가해서 해당 영역을 보존할 수 있습니다.

Summary

위의 그림은 SDEdit의 전체 동작 과정을 시각적으로 설명한 것입니다. 입력 guide 이미지(파란색 분포)가 어떻게 점진적으로 현실적인 이미지(초록색 분포)로 바뀌는지를 보여줍니다.

먼저 guide 이미지에 SDE를 통해 노이즈를 추가하면, 파란색 분포가 점점 가우시안 노이즈 도메인으로 이동하며 초록색 분포와 확률 공간상에서 더 가까워집니다 (2번째 이미지처럼). 이후에는 reverse SDE 과정을 통해 이 노이즈 상태에서 점진적으로 노이즈를 제거하면서, 이미지가 점차 현실적인 분포(초록색)로 수렴하게 됩니다. 결과적으로, 입력 가이드의 구조를 어느 정도 유지하면서도, 현실감 있는 최종 이미지를 생성할 수 있습니다.

Experiments


profile
열정으로 가득할 페이지

0개의 댓글