2023-05-29 새로 편집본, 좋은 논문이라 다시 읽고 핵심만 정리해봄
이전 버전
저자는 language text guidance를 사용해 실제 이미지의 일부 부분을 편집하는 접근법을 보인다.
생성된 이미지가 아닌 실제 이미지들에 text 기반 방법에 초점을 두었다. 유저가 지정한 지역만 수정하고 나머지 부분은 보존한다. 원활하게 편집된 결과를 내놓고 똑같은 입력을 한 결과들에도 생성된 여러개가 나오는 특성이 있다고 한다. 왜냐하면 one-to-many 처리 능력 때문이다.
저자의 목표를 달성하기 위해, 저자는 pretrained 모델들에 two pretrained 모델들을 활용하는데 DDPM과 Contrastive Language-Image Pretraining (CLIP)이다.
CLIP 모델은 유저가 제공한 text prompt에 맞추어 조작하기 위한 guide로 사용한다.
저자는 DDPM과 CLIP의 naive combination이 이미지 배경을 보존을 못하고 부자연스러운 경우가 많음을 보여준다. 그래서 이 대신에, 새로운 방법을 제시하는데 각 diffusion step에 입력 이미지의 적절한 노이즈된 버전과 함께 CLIP-guided diffusion latents를 섞어 diffusion process를 leverage하는 방법이다.
그리고 재밌는 점은 추가적인 학습없이 pretrained model 두개를 활용한다.
요약하자면 저자의 주요 목표는 아래와 같다.
(1) 저자는 다양한 이미지들, 실제에 적용, natural language guidance 활용, general-purpose region-based 이미지 편집을 위한 솔루션을 제안한다.
(2) 저자의 배경과 같은 대체 못하는 영역들은 완벽히 보존된다.
(3) 저자는 간단한 augmentation 기술이 adversarial 결과들의 rist를 줄이고 gradient-based diffusion guidance를 사용한다.
이미지 $x$, guiding text prompt $d$ 그리고 이미지 안에 interest 영역이란 표시인 binary mask $m$, 저자의 목표는 수정된 이미지 $x_b$를 생성하는 거다. $s.t.$ $x_b⊙m$는 text description $d$와 일관하고, 영역을 채우기 위한 영역은 기존 이미지에 가능한 가까워지도록 한다.
$i.e. x⊙(1−m) ≈ x_b⊙(1−m),$
$x_0$를 얻기위해 each step $ϵ_θ(x_t, t)$를 측정해서 $x_t$에 추가한다. 따라서 $x_0$는 공식 2를 통헤 $ϵ_θ(x_t, t)$로부터 얻어진다.
CLIP-based loss DCLIP은 text prompt의 CLIP embedding과 estimated clean image $x_{b}$의 embedding 사이에 cosine 거리를 정의한다.
$D_c$는 cosine distance이다.
따라서 $D_{CLIP}$은 masked region 안을 편가한다, 이는 이미지 모든 부분에 영향을 준다. 입력 이미지 방향 영역 주변을 휘젓기 위해 배경 보존하는 loss $D_{bg}$는 마스크 밖에 diffusion을 가이드하기 위해 추가한다.
diffusion guidance loss는 가중치의 합으로 결정된다.
그리고 방법의 결과는 알고리즘 1에 요약되었다.
위에 two guidance terms 사이에 내재된 trade-off가 존재한 걸 발견했다. Fig 3을 보면 $λ = 1000$ 경우를 보면 배경은 대략적으로 보존되고 전경은 심각하게 훼손된다. 만약 100이거나 10000이면 결과가 한쪽만이라도 좋은 걸 확인이 가능하다.
guiding prompt와 masked region compiles 원활한 결과를 만들기 위해, 이미지 남은 부분은 기존 input과 동일하다, 저자는 입력이미지의 noisy 버전과 상응하는 GLIP-gided process에 의해 noisy images progressively 생성하여 공간적으로 각각 이미지를 섞은다.
저자의 주요 insight는 각 step마다 두 noisy 이미지들을 섞은 결과는 일관성(coherent)을 보장하지않는다. 그래서 각 blend를 따르는 denoising diffusio step은 다음 manifold에 projection하여 일관성을 복원한다.
background 보존하기 위한 naive way는 CLIP guided diffusion proccess에 어떤 constraints 없이 생성된 이미지 $x_b$이다.(setting λ = 0 in Algorithm 1)
문제는 2이미지를 합쳐 일관성과 원활한 결과 생성에 실패하는 거다.
2 이미지는 Laplacian pyramids의 각 level에 분할한 blending에 의해 부드럽게 섞인다. 저자는 diffusion process에 다른 노이즈 levels에 합친다.
저자의 주요 가설은 diffusion process 각 step 동안, noisy latent는 순수 이미지들의 manifold에 확실한 level에 noised가 있는 다양한 이미지를 내놓는다. 2 이미지들을 섞는 동안 manifold 외부에 있을 가능성이 있는 결과가 생성되지만 다음 diffusion step은 다음 level manifold에 투영하여 불일치한 결과를 개선한다.
두 latents는 마스크를 사용해 blended 한다. $x_{t−1} = x_{t−1,fg} ⊙ m + x_{t−1,bg} ⊙ (1 − m)$과 이 과정을 반복한다.
잘알려진 현상으로 이미지에 pixel 값들이 최적화할때 일으키는 거다. 적대적 노이즈를 더하는 것은 사람이 인지할 수 없을 수 있지만 classification은 잘못 될 수 있다.
비슷하게 CLIPguided diffsuion에 의해 pixel 값들을 점차 바꾸면 이미지에 high-level 의미있는 변화가 생성 없이 CLIP loss는 감소하는 결과를 보인다. 저자는 이 형상을 실제로 많이 발생한다고 말한다.
이 현상은 각 diffusion step에 중간 결과를 측정하여 각 augmentation 수행으로 완화될 수 있다한다. 그리고 augemtation들 각각 CLIP을 이용해 gradients 계산한다.
실제로 저자는 이 simple augmentation 기술이 이 문제를 완화한다고 말한다. 주어진 $x_{b}$ 결과를 측정하고 CLIP loss를 직접 gradients에 취하는 대신 저자는 이미지의 복사본들을 transformed하여 각각 계산한다. 이 기울기들은 다같이 평균낸다. 저자는 이 기술을 “extending augmentation” 기법이라 칭한다. 위에 이미지를 보면 결과를 볼 수 있다.