목차
- Text-to-Image Generation (T2I)
- History of GAN and Diffusion
- Stable Diffusion Architecture
- Text-guided Image Editing
- How to preserve the original structure well?
- prompt-to-prompt: cross-attention map injection, plug-and-play: feature injection
- Null-text Inversion
- challenge: non-rigid edit
- Imagic, MasaCtrl
- The limitation of current Image Editing Method
- Dreambooth, Break-A-Scene
- Metric
- How to preserve the original structure well?
1. Text-to-Image Generation
1-1. History of GAN and Diffusion
Original GAN 모델은 2014년에 처음 arxiv에 공개된 이후 NIPS 2015에 정식으로 게재되었다. 이후 사용자가 원하는 정답 label을 줘서 원하는 이미지를 생성하는 CGAN이 나올 때까지는 그리 오래걸리지 않았다. GAN은 2015년 이후부터 지금까지 꾸준히 계속 연구되어 왔다.
하지만 GAN 모델로 이미지를 생성하는데 문제점이 있었는데, 바로 human face와 같이 한정된 데이터 범위 내에서만 성공적이었고 크고 일반적인 데이터셋에 대해서는 잘 되지 않았다는 점이다. 오히려 GAN이 아니라 기대하고 있지 않았던 VAE를 사용한 이미지 생성이 더 좋은 성능을 보였다. 기존 VAE가 가지고 있던 문제들 (posterior collapse)을 vector quantization 방식을 사용해서 해결한 VQ-VAE는 GAN보다도 더 일반적인 이미지들에 대한 생성이 가능했다. 2017년의 일이다.
💡 VAE의 posterior collapse 문제
VAE는 reconstruction loss와 KL divergence 사이의 균형을 맞추며 학습된다.
- Reconstruction Loss: 이 loss term은 입력 데이터를 복원한 것과 원본 데이터 사이의 차이를 측정한다. 다시 말해 원본 데이터를 얼마나 잘 복원하는지를 의미한다. 이 손실이 낮을수록, VAE는 원본 입력을 더 정확하게 재현할 수 있다.
- KL Divergence: 이는 인코딩된 latent vector의 분포와 사전 분포(prior, 일반적으로 표준 정규 분포) 사이의 차이를 측정한다. 이 손실이 낮을수록, 잠재 공간의 분포가 이 사전 분포에 더 가까워진다.
만일 위의 두 loss term의 균형이 맞지 않으면, 모델이 latent space를 잘 활용하지 않고, 어느 한쪽에 치우치게 된다. VAE는 연속적인 latent vector 값을 가지고 있는데, 이로 인해 VAE는 종종 reconstruction loss를 최소화하는 가장 쉬운 경로를 찾아버리게 되어 학습이 진행되지 않고 계속 찾은 값을 “치팅”하는 현상이 일어난다. 즉, KL divergence를 무시하고 reconstruction loss에만 집중하게 되는 것이다. 이렇게 되면 이미지에 내재된 latent space를 학습하지 못하고, 그저 input image를 똑같이 복원하기만 하는 문제가 발생한다.
심지어 KL divergence는 항상 상대적으로 작은 값을 가지는 경향이 있다. 특히 표준정규분포와 같은 간단한 prior distribution을 사용할 때, KL divergence 값은 작은 값을 가지며 상대적으로 reconstruction loss가 더 커지게 된다.
⇒ VQ-VAE는 vector space를 이산화시키는 vector quantization 기법을 사용해 기존 VAE가 가지고 있었던 불안정한 문제를 해결했다. codebook을 look-up해서 latent vector를 바꾸는 기법은 기존 posterior collapse가 보였던 “치팅” 문제를 효과적으로 해결했다. 이미지가 가진 latent vector를 효과적으로 학습할 수 있게 되었다.
2017년 이후 GAN 모델은 style transfer, colorization 등 좀 더 specific한 분야에 적용되었다. 특정한 데이터셋에 대해서 image generation 및 edit을 하는데(style transfer, virtual try-on) 강력한 퍼포먼스를 보였지만, 여전히 일반적인 이미지를 생성하는데는 어려움이 있었다. 2018년에는 대규모 이미지를 학습해 어느정도 일반화된 이미지를 생성할 수 있는 BigGAN이 등장했고, 2019년에는 기존 VQ-VAE를 계층 구조로 나누어 더 큰 이미지를 다룰 수 있는 VQ-VAE2 모델이 나왔다. 2021년에는 VQ-VAE2에 transformer를 접목시켜 이미지 생성성능을 매우 높인 DALLE가 공개되었다. DALLE는 VQ-VAE2에 transformer decoder를 추가해 text token과 image token을 auto-regressive하게 학습함으로써 text-to-image generation에서 매우 높은 성능 향상을 보였다. 이렇듯 2019-2021년 사이에는 GAN 기반과 dVAE 기반의 모델들이 업치락 뒤치락하며 image generation에 활발히 사용되었다.
이렇게 text-to-image generation 분야에서 GAN과 dVAE 기반의 모델 연구가 진행되는 한편, Diffusion 모델은 조용히 빠른 발전을 이루었다. DDPM [NeurIPS, 2020]은 2015년에 나왔었던 <Deep unsupervised learning using nonequilibrium thermodynamics> 논문을 다시 재조명하며 diffusion이 이미지 생성을 꽤 잘한다는 것을 보였다. 이후 DDIM, Improved DDPM과 같은 diffusion 모델들이 나왔고 특정 dataset에서는 GAN보다 더 좋은 성능을 보였지만, 다른 dataset에서 밀리는 모습을 보였다. 2021년 <Diffusion Models Beat GANs on Image Synthesis> 논문에서 Classifier Guidance를 활용해 기존 diffusion model의 성능을 향상시켰다. 이 논문에서 사용된 모델인 ADM은 BigGAN을 뛰어넘는 FID score를 보이며, diffusion이 GAN을 완전히 뛰어넘게 되었다.
1-2. Stable Diffusion Architecture
Diffusion model은 위에서 언급했던 2021년에 나왔던 <Diffusion Models Beat GANs on Image Synthesis> 논문을 기점으로 ADM 모델을 pipeline 삼아 많은 발전이 이루어졌다. 2021년부터 2022년 사이에 diffusion 기반의 T2I 모델들이 집중적으로 연구되었고, GAN이나 dVAE와는 비교할 수 없는 생성 퀄리티와 다양성을 보였다. Glide, VQ-Diffusion, LDM (Stable Diffusion), DALLE2, Imagen 등이 있다. Glide는 DALLE2와 Imagen의 backbone이 되는 중요한 역할을 했으며, DALLE-2 는 DALLE-1과는 다르게 dVAE를 사용하지 않고 diffusion 모델인 Glide를 baseline으로 사용했다. 이러한 모델들은 text를 입력으로 주면 매우 좋은 퀄리티의 이미지를 생성해냈고, GAN을 제치고 Diffusion 모델의 연구가 메인 스트림으로 자리잡았다.
하지만 diffusion의 이면에는 몇가지 연구적인 어려움이 있었다. 바로 엄청나게 많은 이미지-텍스트 pair 데이터를 학습시켜야 한다는 점이었다. DALLE-2, Imagen 등은 엄청난 규모의 데이터로 학습시킨 모델들이었고, 당연히 학습 데이터 뿐만 아니라 모델 구조가 아예 공개되지 않았다. 따라서 연구자들에겐 T2I generation 모델을 사용하는 것은 그저 그림의 떡에 불과했다.
LDM(Stable Diffusion) 모델은 뮌헨 대학교 Machine Vision & Learning Group (CompVis) 연구실에서 연구되었는데, Stability AI와 Runway ML 등의 지원을 받아 개발된 딥러닝 인공지능 모델이다. Stable Diffusion은 DALLE-2나 Imagen과는 다르게 모델과 학습된 파라미터를 모두 공개하며 T2I generation 연구에 박차를 가했다. 이후 수많은 연구들이 Stable diffusion 모델을 기반으로 하였고, T2I generation 뿐만 아니라 image-to-image editing 모델에도 모두 stable diffusion 모델이 기반이 되었다. Imagen은 google research에서 발표한 논문인데, 추후 구글의 연구에서 종종 보일 뿐 일반적으로 많이 활용되지 못했다.
Stable diffusion은 Latent Diffusion Model이 정식 명칭인데, 이전 diffusion model과는 다르게 먼저 이미지를 VQ-VAE encoder를 통해 latent space 상으로 보낸다는 차이가 있다. 기존 Glide, Imagen 등의 논문은 pixel space 자체에서 diffusion 모델이 동작했지만, Stable diffusion은 이미지를 64x64 latent space로 보낸 후 diffusion 모델에 들어간다. 이를 통해 T2I generation은 본래 매우 많은 GPU가 필요하고 많은 시간이 걸렸지만, 훨씬 가볍고 빠른 연산이 가능해졌다.
Stable diffusion을 이용해 이미지 생성을 학습하는 과정을 설명하자면, 가장 먼저 image는 diffusion 모델로 들어가기 전에 VQ-VAE encoder를 통해 64x64 이미지로 latent space로 embedding된다. 이후 64x64 이미지는 Inversion 과정을 통해 noise vector가 된다. (이 과정은 one step으로 한번에 일어난다. 현재 대부분의 diffusion은 DDIM Inversion 방식을 사용하는데, 이는 DDPM과는 다르게 stocastic한 항을 없애서 latent vector로 변하는 것을 제어할 수 있다. 또한 DDIM Inversion은 0-50 step 사이에서 random으로 숫자 하나를 선택하고, 그 만큼 noise를 입히는 과정이다.) 이렇게 0-50번 사이의 선택된 값만큼 noise가 더해진 이후에야 diffusion model의 input으로 들어가게 된다. 이후 과정을 UNet이 64x64 latent vector에 더해진 noise를 벗겨낸다고 해서 “denosing” 과정이라고 한다. 이 과정은 stable diffusion이 학습되는 방법 기반으로 설명한 것이다.
💡 정리하면, diffusion 기반의 image generation은 “DDIM Inversion” 과정을 통해 원본 이미지에 noise를 추가하고, 이후 “denosing UNet” 을 통해 noise를 벗겨내는 과정을 학습한다. 여기서 UNet은 noise를 한땀한땀 벗겨내고, 이때 UNet이 학습하는 것은 noise 자체이다.
2. Text-guided Image Editing
Text-guided Image Editing은 Text-to-Image (T2I) generation보다 좀 더 어려운 task에 속한다. 왜냐면, T2I는 text input에 따라 그에 맞는 이미지를 생성해주면 되는 반면, text-guided image editing은 원본 이미지와 text를 input으로 받고, 최대한 원본 이미지를 똑같이 보존하며 edit해야할 부분만 바꿔야 하기 때문이다.
💡 Text-to-Image generation의 input은 text, output은 생성된 image 이다.
- input: text ⇒ output: image
Text-guided Image Editing의 input은 원본 이미지와 원본 이미지를 설명하는 source prompt, 그리고 edit을 요구하는 edit prompt이다. output은 edit된 이미지이다.
- input: source image, source prompt, edit prompt ⇒ output: edit image
GAN에도 editing을 수행하는 모델들이 있었는데, human face와 같이 적은 범위 내에서만 잘 동작하고, 여전히 diverse한 데이터셋에 대해서는 잘 되지 않았다. 이후 diffusion이 GAN의 성능을 넘자, diffusion 기반의 text-guided image editing이 연구되기 시작했다. 초반에는 사용자가 edit할 영역을 지정하는 masking 방식인 blended latent diffusion이 등장했다. 하지만 mask와 같은 추가적인 input을 받지 않고, 오로지 text로만 이미지를 edit하는 방식이 연구되며, 대표적으로 prompt-to-prompt, plug-and-play 논문이 이를 해결했다.
2-1. How to preserve the original structure well?
GAN은 diversity가 낮은 대신 fidelity가 높다. diversity가 낮은 구조일수밖에 없는게 discriminator만 속이면 되기 때문에 쉬운 sample만 계속 찍어내는 것이다. 이게 mode collapse 문제가 생기는 이유이기도 하다. 따라서 GAN으로 image editing을 한다면 보다 세밀한 editing이 가능했다. 특히 StyleGAN과 같이 사람 얼굴에 따른 edit에 매우 성공적이었다. 다만 보다 광범위한 데이터셋에 대한 edit이 어려웠다.
하지만 diffusion은 GAN과는 다르게 diversity가 높은 대신 fideltiy가 낮다. 사실 이것은 diffusion과 같은 VAE 류의 특징이기도 했다. 따라서 diffusion 모델을 활용하면 원본 이미지를 그대로 보존하는 것이 매우 어려웠다. 만약 강아지가 있고, 강아지의 색을 바꾸고 싶다면 diffusion 모델은 원본 이미지의 강아지를 그대로 잘 보존하지 못했다. 강아지의 색만 바꾸고 싶은데 자꾸만 원본과는 다른 다른 강아지로 변하는 것이다.
Plug-and-Play Diffusion Features [2022.11, arxiv] [CVPR 2023] & Prompt-to-Prompt [2022.08, arxiv] [ICLR 2023 notable top 25%]
prompt-to-prompt와 plug-and-play는 위 그림과 같은 방식을 사용해 원본 이미지에 있는 특성을 그대로 유지하는데 성공했다.
- 먼저 원본 이미지를 복구함. 이 과정에서 diffusion UNet의 cross attention map 혹은 key, value feature들을 저장해놓는다.
- 이젠 edit되는 이미지를 생성. 이때 미리 구해놓은 cross-attention map 혹은 key, value feature들을 injection 한다.
이렇게 하면 원본 이미지의 structure를 유지하면서도 edit prompt로 조금 바뀐 이미지가 생성이 가능했다. 이 과정은 따로 학습도 필요 없다. stable diffusion과 같이 pretrained UNet 모델을 사용하면 edit이 가능한 셈이다. 요약하면 다음과 같다.
💡 1st stage: original image의 latent vector + original prompt ⇒ UNet ⇒ original image로 복구
💡 2nd stage: original image의 latent vector + edit prompt ⇒ UNet ⇒ edit image 생성
여기서 1st stage를 먼저 실행하고, UNet의 cross attention map을 저장해놓는다. 이후 2nd stage를 실행할 때 구해놓은 cross attention map injection을 통해 원본 이미지의 structure를 최대한 보존한다.
cross-attention map 전체를 2nd stage로 injection 하는 방식을 prompt-to-prompt, cross-attention map 전체가 아니라 특정 key, query value만 injection 하는 방식을 plug-and-play 논문이 제안했다. 이 두 논문은 이러한 방식으로 diffusion 모델을 사용하면서도 원본 이미지의 layout을 최대한 유지하며 사용자가 원하는 edit이 이루어지도록 했다.
2-2. Null-text Inversion [2022.11, arxiv] [CVPR 2023]
사실 위에서 언급한 prompt-to-prompt 방식은 “1st stage”인 원본 이미지를 그대로 복구할 수 있어야 한다는 가정이 있다. 즉, noise map에서 본래 이미지로 그대로 복구할 줄 알아야 edit도 최대한 원본 이미지에서 크게 벗어나지 않게 할 수 있다는 의미이다. 하지만, 실제로 diffusion model은 원본 이미지를 DDIM Inversion으로 noise map으로 만든 후, 이것을 다시 denoising UNet으로 nosie를 벗겨내어 본래 이미지로 만들어내지 못했다. 계속해서 원본과는 미세하게 다른 이미지가 생성되었다. 이것을 해결하기 위해 제안된 논문이 Null-Text Inversion이다.
위 그림에서 input image인 z*_0가 있을 때, 여기서 DDIM Inversion 과정을 통해 T번 만큼 noise를 씌운 이미지를 z*_T라고 한다. 이때 z*_T를 다시 denoising UNet을 통해 본래 이미지로 복구할 수 있을까? 기존의 방법으로는 불가능했다. 그 이유는 Classifier-free guidance (CFG) 때문이다. z*_T에서 다시 z_0로 돌아오는 동안 denoising UNet은 CFG를 통해 원래 이미지로 돌아오게 되는데, CFG 항에는 conditional 항에서 unconditional 항을 빼며 의도치 않게 null값에 대한 항이 고려되어 오차가 누적되기 때문이다. 위 그림을 보면 원래 trajectory에서 점점 멀어지는 모습을 볼 수 있다. 이렇게 되면 원본 이미지와는 다른 이미지가 생성된다. 따라서 본래 trajectory로 돌아오도록 다시 방향을 잡아주어야 한다.
이러한 연구를 수행한 것이 Null text Inversion이다. Null text Inversion은 DDIM Inversion 과정에서 모든 z*_t feature를 저장해놓고, denoising 과정에서 계속 어긋나는 z_t에 대해 기존 trajectory 상에 있던 z*_t feature와 같아지도록 null text를 입력으로 주고 L2 loss term을 이용한다. 즉, z*_t (정답 trajectory)와 z_t (어긋난 trajectory) 사이를 null text의 embedding 값을 최적화시켜 같아지도록 해주는 것이다. 이렇게 null-text들은 어떤 임의의 값으로 모두 바뀌고, 50번의 denoising 과정동안 모두 일어나게 된다.
이러한 방식을 통해 Null text Inversion은 diffusion 모델을 통해 원본 이미지를 그대로 복구할 수 있도록 만들었고, 이를 기반으로 editing 모델들의 성능이 매우 올라가게 되었다. 즉, 매우 미세한 control이 가능하게 되었다.
하지만 Null text Inversion의 단점은 시간이 매우 오래걸린다는 점이다. 한 이미지당 180s 정도가 걸린다. 그 이유는 50번의 denoising 과정에서 null-text optimization이 일어나야 하기 때문이다. 따라서 나는 여기에 아이디어를 얻어, 모든 이미지마다 50번의 null-text optimization이 필요 없다고 생각했고, 실제로 이미지마다 특정 step까지만 null-text optimization이 진행되어도 괜찮다는 사실을 발견했다. (이번 ICASSP 제출한 논문)
Null-Text Inversion이 시간이 오래걸린다는 단점을 극복하기 위한 연구들이 최근에 수행되고 있는데, Null-Text Inversion보다 좋은 성능을 내는 것은 아직 없었다. 아래는 Text-based Image Editing SOTA board 인데, 현재까지도 Prompt-to-prompt에 Null-Text Inversion을 적용시킨 것이 2위에 rank된 것을 알 수 있다. 1위인 direct inversion 논문을 읽어보았는데, code를 reproduce 해볼 예정이다.
2-3. Non-rigid Editing
Null-Text Inversion 방식은 효과적으로 원본 이미지를 그대로 복구해냈고, 이를 토대로 원본 이미지의 layout을 그대로 유지하면서도 edit하는 방식이 가능해졌다. 하지만, 원본 이미지를 너무 많이 따르는 나머지 style transfer 정도만 가능하고 더 다양한 edit은 불가능했다. 특히 prompt-to-prompt 방식이나 여기에 null-text inversion까지 사용한다면 non-rigid editing; motion이나 view change 등과 같은 image editing은 불가능에 가깝다. 보다 자유롭고 의미론적인 editing이 가능하려면 새로운 방식이 필요하다.
Imagic [2022.08, arxiv] [CVPR 2023]
Imagic은 non-rigid editing을 가능하게 만들었다. 주요 아이디어는 input 이미지와 함께 edit prompt를 넣고, 이것이 원본 input 이미지가 되도록 하는 것이다. 이때 diffusion model은 frozen 되어 있고, edit prompt의 embedding에만 backpropagation이 흘러 embedding이 바뀌도록 한다. 원래 edit prompt를 e_tgt라고 하고, 이렇게 바뀐 edit prompt를 e_opt라고 하자. 그럼 이후에 e_opt와 e_tgt의 interpolation을 해서 diffusion process에 넣으면 신기하게도 non-rigid editing이 가능하다. Google Research 팀의 연구이다. 하지만 이러한 방식의 단점은 pretrained 모델을 이미지 하나에 대해서만 fine-tuning 시켜야 한다는 점이다.
실제로 구현해서 테스트해본 결과 완전히 content가 깨지는 문제가 자주 발생했다. 또한 미세한 control이 아예 불가능했다 - 예를 들어 가만히 있던 새가 날개를 피는 것은 되는데, 점프한다던지 그 이상의 행동을 요구하면 전혀 다른 새가 생성되었다.
MasaCtrl [2023.04, arxiv] [CVPR 2023]
Imagic보다 non-rigid edit이 더 잘 되는 모델로 MasaCtrl이 있다. 이 논문은 기존 image editing stream과 같이 두 번의 denoising UNet 구조를 사용해 edit을 수행한다. 역시, 먼저 원본 이미지 I_s를 먼저 reconstruction 하고, 여기서 구한 mask를 이용해 edit image를 생성한다. 이때, 원본 이미지의 mask와 edit되는 이미지의 mask를 이용해 foreground object와 background를 구분해낸다. 기존에는 object와 background를 구분해내는 방법이 atlas 기법이 있었는데, 이 논문에서는 mask 기반으로 사진 내의 object와 background를 구분해냈다. 이를 통해 바꿔야 하는 region (object) 과 아닌 region (background)을 알 수 있고, object인 부분이 원본 semantic 정보를 유지하면서도 잘 변할 수 있게 한다.
MasaCtrl 방식은 pretrained UNet을 그대로 사용할 뿐 추가적인 학습이 일어나지 않는다. 미세한 control이 가능하고, 추가적인 fine-tuning이 없다는 점에서 Imagic보다 훨씬 좋은 방향성이라고 생각된다.
2-4. The limitation of current Image Editing Method
MasaCtrl 모델은 non-rigid edit을 가능하게 했지만, 이것 역시 완벽하지 않다. 강아지가 뛰는 것 정도의 간단한 동작은 잘 수행되지만, 그 이상의 복잡한 non-rigid edit은 수행되기 어렵다. 가령 view change나 해당 물체를 전혀 다른 포즈로 바꾸는 것 등은 완전히 불가능하다. 즉, 강아지가 뛰는 것이 아니라 춤을 추는 모습은 아예 불가능하다. 왜냐하면 MasaCtrl 역시 prompt-to-prompt 모델을 backbone으로 하여, Stage 1에서 원본 이미지를 복구하면서 얻는 self-attention map을 Stage 2에 injection 하기 때문이다. 따라서 원본 이미지의 전체적인 구조 자체가 거의 보존될 수 밖에 없다. 좀 더 non-rigid edit이 가능하려면 cross-attention map을 injection 하는 것이 아닌, 보다 근본적인 해결책이 필요할 것으로 보인다.
해결책으로는 personalized text-to-image diffusion model을 editing에 접목시키는 방법이 있다. DreamBooth는 stable diffusion이 모르는 개인이 찍은 사진 (가령, 내가 키우는 강아지)을 몇개만 학습시키면 해당 강아지를 다른 motion이나 view로 나타내주는 모델이다. 마치 NeRF와 같은 새로운 방식의 view synthesis 방법이다.
Dreambooth [2022.08, arxiv] [CVPR 2023]
방법은 다음과 같다. 기존 diffusion model에서 text encoder는 주로 clip을 사용하는데, clip은 당연히 내가 찍은 강아지에 대해 모른다. 따라서, 앞에 identifier라고 불리는 [V] 표시자를 붙여서 “[V] dog” 이라고 명칭을 바꾼 이후, 나의 강아지 “[V] dog”을 tokenizer의 dictionary에 등록하면 된다. 그럼 clip text encoder는 [V] dog이 내가 찍은 강아지라는 것을 인식하고, diffusion으로 이미지를 생성할 때 해당 강아지가 나오도록 guidance를 줄 수 있다. 이때 [V]는 tokenizer의 vocabulary에서 상대적으로 rare한 token을 찾는 과정을 통해 결정된다. (어떤 text encoder를 쓰는지에 따라 다름)
그리고 나서 text에 “[V] dog”을 추가하고 몇개의 이미지들과 diffusion UNet 모델을 fine-tuning 시키면 내가 찍은 강아지인데 새로운 view 혹은 motion을 취하는 이미지가 나오게 된다.
기존 DreamBooth의 문제점은 학습시킬 수록 내가 찍은 강아지와는 다른 강아지가 나오는, 즉 점점 기억을 잊어가는 문제가 있었다. 또한 “여러 concept”, 즉 한 이미지에 강아지와 사람이 동시에 등장하는 경우 “[V1] dog and [V2] person” 으로 설정하면 강아지와 사람이 그대로 나오는 새로운 이미지를 잘 생성하지 못했다.
Break-A-Scene [2023.03, arxiv] [SIGGRAPH Asia 2023]
Multi concept 문제를 해결하는 모델들이 최근 연구되고 있고, 대표적으로 Break-A-Scene이 있다. 이 연구는 한 이미지에서 여러 concept을 분리해낼 수 있고, 이것을 기반으로 새로운 view를 다시 합성해낼 수 있다. Image Editing 및 Video Editing에 이러한 personalization 연구가 융합된다면 보다 다양한 edit이 가능할 것으로 보인다.
3. Metric
- Text-to-Image Generation에는 다음과 같은 metric들이 사용된다.
- FID (Frechet Inception Distance): FID는 합성된 비디오 프레임과 실제 비디오 프레임을 비교함으로써 생성된 비디오의 품질을 평가한다. 이 과정에서 이미지는 일관된 스케일로 정규화되기 위해 전처리되고, InceptionV3를 통해 실제 및 합성된 비디오에서 특징을 추출한 다음, 평균과 공분산 행렬을 계산한다. 이 통계적 데이터는 FID 점수를 계산하는 데 사용된다.
- PSNR (Peak Signal-to-Noise Ratio) 및 SSIM (Structural Similarity Index): PSNR과 SSIM은 픽셀 수준의 지표들이다. SSIM은 원본과 생성된 이미지의 밝기, 대비, 그리고 구조적 특징을 평가하며, PSNR은 최대 신호와 평균 제곱 오차(MSE) 사이의 비율을 나타내는 계수로 작용한다. 이 두 지표는 재구성된 이미지 프레임의 품질을 평가하는 데 널리 사용되며, 초고해상도 및 인페인팅과 같은 작업에 적용된다.
- CLIPSIM: CLIPSIM은 이미지-텍스트 상관성을 측정하는 방법이다. CLIP 모델을 기반으로 하여 이미지와 텍스트 특징을 추출한 후, 그들 사이의 유사성을 계산한다. 이 지표는 텍스트 조건부 비디오 생성이나 편집 작업에 자주 사용된다.
이외에도 SSIM, LPIPS 등과 같은 metric들이 있다.
- Image-to-Image Editing에는 다음과 같은 metric들이 사용된다.
- Background PSNR
- Background LPIPS
- Structure Distance
- CLIPSIM
Image Editing의 경우 edit되지 않은 영역은 원본 이미지와 똑같아야 하기 때문에, background 부분에 대해서만 PSNR, LPIPS 등의 metric을 적용하곤 한다. 하지만 이것이 매우 정확하진 않아서, 아예 reconstruction에 대해서만 PSNR, LPIPS를 측정하는 경우도 있다.
'Paper > Diffusion' 카테고리의 다른 글
Diffusion 공부 모음 정리 (0) | 2023.07.17 |
---|