![[CVPR 2022] DiffusionCLIP: Text-Guided Diffusion Models for Robust Image Manipulation 논문 리뷰](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsQQA6%2FbtsIPxnuvaW%2FtX8RKeM4bIEvibebLBgXXK%2Fimg.png)

Introduction
GAN, Diffusion과 같은 생성모델로 이미지를 생성할 때 text를 guide로 주어 이미지를 편집하거나 변환하는 연구 분야가 있습니다. 생성 시에 pretrained된 text encoder로 생성한 text embedding을 loss에 사용하여 text의 semantic한 의미와 같은 이미지를 만들어 내는 것입니다. cvpr 2022에 publish된 DiffusionCLIP이라는 본 논문은 diffusion model에 CLIP loss를 사용하여 text-guided된 robust한 이미지를 생성하는 연구입니다. 컨셉이 간단하기 때문에 loss가 어떻게 구성되어있는지만 확인하면 쉽게 이해되는 내용이었습니다. 그럼 컨셉과 loss에 대해 소개하겠습니다.
Related work
StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery(CVPR 2021)는 먼저 진행되었던 GAN based의 text-guided 이미지 생성 연구입니다. text prompt를 guide로 주는 방법은 매우 다양합니다. 그 중 StyleCLIP에서는 이미지의 latent code를 직접 text에 optimization합니다. StyleGAN으로 생성한 이미지와 guide를 주고자하는 text prompt가 있을 때, 이 둘의 CLIP embeddings의 cosine distance가 가까워지도록 loss를 적용하는 방식입니다. 이 때 생성모델인 StyleGAN과 CLIP 모델은 pretrained된 모델을 사용하여 freeze하며, 오직 image embedding만을 업데이트하여 text embedding과 가까워지는 방향으로 optimization하는 것입니다.
위 식은 optimization에 사용된 loss 수식입니다. $\omega$는 업데이트되는 image embedding, $G$는 생성모델인 StyleGAN, $t$는 text prompt로, consine distance에 해당하는 부분이 수식의 맨 첫번째 항입니다.
DiffusionCLIP
DiffusionCLIP은 image embedding을 직접 optimization을 하는 것이 아니라, 생성모델을 finetuning 하는 방식이라는 점에 차이가 있습니다. 후자의 방식이 더 효과적이었기 때문에 채택했다고 하며 이에 대한 실험은 Supplementary section에 있습니다.
위 그림에서 $ (x_{0} , Face)$가 source이고 $(\hat{x}_{0}(\hat{\theta}), Angry Face)$가 target이라 할 때 이 4개의 embeddings으로 CLIP loss를 구성하여 Diffusion모델을 finetuning합니다.
Fine-tuning
finetuning에 사용한 loss는 크게 $L_{direction}$인 CLIP loss와 $L_{id}$인 identity loss 로 구분됩니다. CLIP loss는 target text guide를 주는 역할이고, identity loss는 기존의 사람 얼굴이라는 semantic 정보를 유지하도록 하는 역할입니다. 화난 표정으로 바뀌더라도 사람의 얼굴과 눈코입에 대한 정보는 유지가 되어야하기 때문에 최종 원하는 이미지를 생성하기 위해선 identity loss가 필요합니다.
1) CLIP loss
CLIP loss는 global target loss와 local directional loss 이렇게 두가지 방법이 있습니다.
첫번째로 global target loss는 생성된 이미지($x_{gen}$)와 target 텍스트($y_{tar}$)와의 consine distance를 최소화하는 방법입니다. CLIP space 상에서 두 인코딩 벡터의 거리를 좁히는 방향으로 text guide를 준다는 아주 직관적인 방식입니다. 그러나 이렇게 가이드를 주었을 경우 생성되는 이미지의 다양성이 줄어들어 계속 똑같은 이미지만을 생성해내는 mode collapse 문제가 발생하거나 adversarial attacks에 취약하다는 단점이 있습니다.
따라서 보다 다양한 이미지를 생성해낼 수 있고, avdersarial attacks에도 robust한 local directional loss로 이러한 문제를 개선하고자 합니다. local directional loss는 source domain의 이미지와 텍스트, 그리고 target domain의 이미지와 텍스트를 모두 사용하는 방법입니다. CLIP space상에서 생성된 이미지와 reference 이미지의 차이($\Delta I$)가 target 텍스트와 reference 텍스트와의 차이($\Delta T$)를 따라가도록 하는 방식입니다. 이렇게 이미지끼리, 텍스트끼리의 direction이 align될 수 있게 하므로 local directional loss라고 합니다. 본 논문에서는 이 후자의 방식을 채택했습니다.
2) Identity loss
Identity loss는 이미지에서 변형하고자 하는 부분 이외의 다른 특징들은 유지가 되도록 하기 위해 사용합니다. 저자는 이 loss로 general한 $l_{1}$ loss를 사용하였고, human face image manipulation을 할 때만 face identity loss를 추가해주었습니다.
reference 이미지($x_{0}$)와 생성 이미지($\hat{x}_{0}(\hat{\theta})$)의 차이의 절댓값을 loss로 주며, 앞에 곱해진 $\lambda_{L1}$은 loss weight로 상수입니다.
Experiments
본 논문은 위와 같은 방법으로 다양한 조건에서 reverse process 파라미터를 finetuning하며 실험을 진행했습니다.
그 결과 TediGAN, StyleCLIP, StyleGAN-NADA 와 같은 기존 SOTA text-driven manipulation methods들과 비교했을 때 턱에 손을 괴고 있는 포즈를 왜곡없이 잘 만들고, 다른모델은 교회 이미지를 생성할 때 아예 새로운 건물을 만드는 것과 달리 제안 모델은 건물 구조를 그대로 유지하면서 style만을 변형한다는 것을 확인할 수 있었습니다.
이 외에도 다양한 manipulation에 대한 정성, 정량 평가가 있습니다. image manipulation 연구의 figure는 이렇게 시각적으로 풍부하고 직관적인 결과가 많아서 읽기에 재미있는 것 같습니다. 본 글에서는 자세한 실험 결과는 생략하도록 하겠습니다.
마치며
이 논문을 통해 text-driven image manipulation 방법에 직접 이미지 latent code를 변형하는 방식과, 생성 모델 자체를 finetuning 방식이 있다는 것을 알게 되었고, 이 방법이 단순한 loss의 추가로 가능하다는 것이 흥미로웠습니다. 최근 diffusion model과 multimodal에 대한 연구가 활발한데 이러한 추세와 더불어, 본 논문에서 제안한 manipulation 방식 기반의 활용 연구가 무궁무진하게 있을 것 같다는 생각이 들었습니다.
References
1.Diffusionclip: Text-guided diffusion models for robust image manipulation

도움이 되셨다면 "공감"과 "댓글" 부탁드립니다. 저에게 공감과 댓글은 더 좋은 글을 작성하는 원동력이 됩니다. 감사합니다.