728x90
Abstract
- CLIPDraw는 natural language를 통해 이미지를 합성하는 모델이다.
- 추가 학습이 필요하지 않으며 pre-trained CLIP languate-image encoder는 주어진 묘사와 생성된 이미지의 유사성을 극대화하기 위한 metric으로 사용된다.
- pixel image가 아닌 vector strokes에서 작동하기 때문에 사람이 인식할 수 있는 단순한 모양으로 도면이 편향된다.
- 본 논문에서 하고자 하는 것
- CLIPDraw와 다른 최적화 합성 방법을 비교함
- CLIPDraw의 다양한 흥미로운 동작을 강조함
- 애매한 text를 만족하는 이미지 합성 만족하는 여러 가지 방법
- 다양한 스타일의 이미지를 안정적으로 합성
- stroke이 증가함에 따라 단순한 시각적 표현을 복잡한 시각적 표현으로 확장함
- 별도의 훈련 없이 Pre-trained CLIP language-image encoder를 사용하여 text로부터 이미지를 생성하는 모델
Introduction
- 사람은 Scene에 대한 묘사를 들었을 때 그것이 무엇인지 쉽게 상상할 수 있다
- 반대로 머릿속에 이미지(mental image)를 떠올릴 때, 쉽게 Scene을 묘사할 수 있다.
- 사람은 어느 정도 수준에서 일상생활을 이해하는 핵심적인 text와 시각적 구조에 대한 결합된 표현을 가지고 있다
- 일상생활에서 쓰는 text와 이미지를 매칭해서 생각하는 능력을 말하는 듯함
- 이중 언어 encoder(dual language - image encoder)인 CLIP은 text와 visual information을 통일하기 위한 큰 step이다.
- 본 연구에서는 natural language input을 통해 새로운 이미지를 합성하는 알고리즘인 CLIPDraw를 발표한다.
- 별도의 학습이 필요하지 않으며 주어진 설명과 합성된 이미지 간의 유사성을 나타내는 metric의 역할을 한다.
- 사실적인 이미지가 아니지만 prompt에 만족하는 simple drawings 이미지를 합성한다.
- 따라서 CLIPDraw는 vector strokes를 최적화시키며 사람이 인식할 수 있는 단순한 모양으로 도면을 편향시킨다.
- 본 연구의 목표는 language-image relationships를 탐색하고 AI-assisted artwork을 합성하기 위한 CLIPDraw testbed를 제시하는 것이다.
- 그뿐만 아니라 미묘한 차이를 가지는 다양한 method를 보여준다.
- 다른 optimization-based text-to-image methods와 비교했을 때 아래의 흥미로운 동작이 강조된다.
- 묘사 형용사를 조정함으로써 엄청나게 다른 스타일의 이미지를 생성할 수 있다.
- 창의적인 방법으로 이미지와 묘사 prompt를 일치시킨다.
- 적은 stroke로 CLIPDraw를 실행하면 Cartoon 스러운 이미지가 생성되고 높은 stroke로 실행하면 사실적인 이미지가 생성된다.
- CLIPDraw에 '행복'과 '자아'같이 추상적인 prompts를 제공함으로써 우리는 시각적 개념과 CLIP모델이 어떻게 연관되는지 살펴볼 수 있다.
Method
- CLIPDraw의 목적은 주어진 묘사 prompt와 일치하는 이미지를 합성하는 것이다. Pre-trained CLIP는 판독기로 사용된다.
- CLIP model은 image encoder와 textual encoder를 포함하고 있다. 각 encoder는 각각의 입력을 512 벡터의 shared encoding space에서 매핑한다.
- Similarity는 두 인코딩의 Cosine distance를 통해 측정된다.
- 따라서 CLIPDraw의 목표는 CLIP을 통해 인코딩할 때 prompt의 CLIP 인코딩과 일치하는 이미지를 생성하는 것이다.
- CLIPDraw Drawing은 differentiable RGBA Bézier curves의 집합으로 그려진다.
- 각각의 curves는 두께 및 RGBA vector와 함께 3~5개의 제어점으로 매개변수화 된다.( Bézier curves는 점을 통해 곡선을 그리는 것이기 때문에 점의 갯수가 3~5개 라는 뜻)
- Drawing은 처음에 흰색 배경에 이미지 전체에 무작위 분포로 된 커브로 시작한다.
- Optimization 동안 커브와 control points의 수는 고정되어 있으나 두께와 색상 벡터와 함께 포인트 위치는 최적화된다.
- CLIPDraw는 evaluation-time gradient descent방법을 사용한다.
- curves의 색과 위치를 변경하며 최적화함
- 첫 번째로 이미지에 대한 묘사는 CLIP을 통해서 encoding 되며 랜덤 한 N개의 Bézier curves의 집합으로 초기화된다.
- 학습동안 curves는 differentiable renderer을 통해 pixel이미지로 렌더링 되고 결과 이미지를 복제한 후 다양한 방법으로 이미지를 증강한다.
- 증강된 이미지는 CLIP모델로 전달되고 설명 문구와 cosine distances를 합산하여 Loss를 구한다.
- 모든 연산이 미분 가능이기 때문에 loss를 줄일 수 있다.
- Initialize Curves: N개의 RGBA Bézier curves를 random으로 초기화한다.
- 각 커브는 두께 및 RGBA color vector와 함께 3~5개의 control point로 parameterize 됨
- 흰 배경이 초기값임
- optimazation동안 curve와 control point의 수는 고정이고, Thickness와 color vector는 학습됨
- Render Curves to Pixels: 매 iteration 마다 Curves를 pixel image로 rendering 하는 것
- Augment the Image: 2개의 이미지를 D번 augmentation 하는 것
- Encoding Image: 위의 augmented image batch를 CLIP model로 encoding 하는 것
- Compute Loss: text encoding값과 Cosine sililarty rPtks
- Backpropagation
Data augmentation
- 이미지 증강의 목표는 다양한 왜곡을 통해 drawing을 인식하는데 집중하기 위해서다.
- 이미지 증강 없이 synthesis-through-optimization은 수치적 목표는 충족하지만 unrecognizable 한 Drawing을 합성한다.
- 본 연구에서 증강 기법 선택은 크게 영향을 끼치지 않음
- 일반적인 CLIPDraw의 점진적 합성 과정
- random초기화로 인해 초기에는 무작위성이 보이지만 여러 번 실행하면 다른 drawing이 나올 수 있다.
Results
- 다양하고 흥미로운 CLIPDraw의 행동을 다양한 예제를 통해 강조한다.
- qualitative observations, unusual behavior, recurring trends in CLIPDraw image synthesis에 중점을 둔다
- optimization-based synthesis는 사전학습이 필요하지 않음
- 대신 주어진 목표를 최대화하는 것을 목표로 evaluation-time optimization loop를 통해 이미지를 생성한다.
- 특히 prompt CLIP encoding과 일치하는 이미지를 합성하는데 중점을 두고 아래의 방법을 비교한다
- CLIPDraw: RGBA Bézier curves 집합으로 curves의 두께, Control point, colors를 조정할 수 있다.
- Pixel Optimization: 224x224x3 matrix of RGB pixels을 최적화한다. 그 회에는 CLIPDraw와 동일하다.
- BigGAN Optimization: pre-trained BigGAN generator를 사용하고 가중치는 고정되어 있으며 latent vector만 최적화된다.
- VQGAN Optimization: VQGAN codebook을 샘플링하여 이미지를 생성함
- CLIPDraw는 human-recognizable doodles를 생성하는 경향이 있음
- Pixel Optimization은 interesting textures를 생성하지만 모양이나 색을 구성하지 못함
- BigGAN, VQGAN Optimizatoin은 고해상도 이미지를 생성하지만 부자연스러움
- CLIPDraw without image augmentation는 수치상으로는 좋은 성능을 보이지만 사람이 보기에 이상함
What kinds of visual techniques does CLIPDraw use to satisfy the textual description?
- CLIPDraw를 사용하면 description prompts와 일치하지 않는 예상외의 이미지가 만들어질 수 있음
- " A painting of a starry night sky" 의 그림에는 달이 중요하게 떠있고 별이 흩어져있는 하늘이 있다. 캔버스 안에는 고흐의 "The Starry Night"를 연상하게 하는 그림이 그려져 있음
- CLIPDraw의 흥미로운 점은 단어 자체를 그린다는 점이다. 위의 그림 중 단어와 유사한 그림이 그려져 있는 것을 확인할 수 있음
- 때로는 Google 지도 스크린샷과 유사한 그림이 그려질 수 있음
- Prompt의 모호함도 결과로 나타남, Fast Food이 경우 맥도널드의 로고가 표시되고 Fast라는 또 다른 해석으로 joggers를 그림 이는 CLIP이 jogging과 햄버거를 모두 fast food과 연관이 있다고 인식하고 있음을 보여줌
Can CLIPDraw reliably produce drawings in different styles?
- CLIP의 유용한 기능은 drawing의 내용뿐만 아니라 style도 조정할 수 있다는 점이다.
- 이게 가능한 이유는 curve-based images의 견고함 때문이다. pre-trained GAN generator와 비교하였을 때 CLIPDraw는 natural images space에 제한되지 않는다.(y 없이 CLIP 기반으로 생성하기 때문에 더 자유롭다는 것을 말하는 거 같음)
- 따라서 다양한 style의 drawing을 생성할 수 있으며 text를 통해 쉽게 변경이 가능하다.
- 설명 묘사에 따라 달라지는 그림
- 각 묘사에 따라 합성되는 이미지가 달라지며 몇 개의 style은 Japanese woodblock prints에 영향을 받아 빨간색과 초록색등 특정 색상에 평향된 것이 특징이다.
- 흥미로운 점은 설명 adjectives에 따라 구조적 표현도 변하는 것이다. 그림의 경우 평면적인 그림을 그려내고 3D의 경우 깊이와 그림자가 있는 고양이를 생성한다.
How does the stroke count affect what drawings CLIPDraw produces?
- Stroke는 simple과 Complex를 결정하는 parameter로 낮으면 추상적이나 만화같은 표현은 생성하는 경향을 가지고 Stroke가 증가할수록 그림이 복잡하고 자세해진다.
What happens if abstract words are given as a description prompt?
- 해석이 없는 추상적인 prompt가 주어지면 CLIPDraw는 문화적 연관성을 활용해서 관련된 시각적 개념을 생각해 낸다.
- Happiness에는 웃는 얼굴과 불꽃놀이가, "Translation"에는 영어와 일본어가 적혀있는 등 관련된 상징이 포함되게 그림을 그린다.
- 가끔은 합성된 이미지가 더 복잡한 관계의 개념을 보여준다.(CLIP이 이해하는 복잡한 관계의 개념)
- "Self"의 경우 여러 개의 머리를 가진 몸이 합성되는 데 이는 한 사람의 자아가 여러 개다라는 것을 포함할 수 있다는 생각을 떠올리게 한다.
- "What do you look like, CLIPDraw?"의 경우에는 CLIPDraw와 유사한 word가 생성되고 “The space between infinity”의 경우 무한대의 기호가 있는 은하수 가득한 하늘과 같은 풍경을 보여준다.
Can synthesized drawings be fine-tuned via additional negative prompts?
- AI assisted 이미지 합성은 결과물을 제어하기 힘들다는 문제가 있다.
- CLIP-based methods는 제어력을 높이기 위해 negative prompts를 사용한다.
- CLIP-encoded drawing와 the description prompt의 유사도는 최소화한다.
- drawing, a set of negative prompts의 유사도는 최대화한다.
- 0.3의 negative prompts를 통해 미세 조정이 가능하다.
- "Hashtag"에는 “Words and text”에 Penalty를 부여하여 더 적은 수의 단어가 포함되게 한다.(잘 모르겠음)
- "A torii gate"는 보라색과 빨간색에 Penalty를 부여하여 torii gate를 녹색으로 표현한다.
- "many sailboats”라는 penalty를 부여하여 배를 하나만 그리게 한다.
- negative prompts는 CLIP 기반 방식에서 이미지 합성 미세 조정이 가능하게 하는 풍부한 의미적 방법을 제공하지만 의도된 동작을 일관되게 유도하는 것은 여전히 까다롭다.
- negative prompts는 무시해도 될 정도의 효과를 가진 경우가 많다.
- "a low-quality drawing”과 같은 품질 개선을 위한 Prompt는 효과가 미미하다.
Discussion
- CLIP language-image encoder 기반의 CLIPDraw를 소개한다.
- CLIPDraw
- 모델 학습이 필요하지 않음
- evaluation time 동안(학습 없이 평가를 통해 이미지가 개선되는 방법) 최적의 그림을 합성함
- evaluation-time optimization를 사용한 최초의 연구는 아님(evaluation-time optimization를 위해 CLIP을 사용한 것으로 보임)
- 이미지 합성을 RGBA Bézier curves으로 제한함으로써 사람이 인식할 수 있는 개념의 스케치를 배우게 됨
- 본 논문의 목표
- CLIPDraw의 동작의 미요한 차이를 조사하는 것이며 합성된 이미지와 특정 questions 관찰에 중점을 두는 것이다.
- prompt ambiguity, the compositionality(구성성) of styles and content은 흥미로운 문제이며 향후 CLIP-based work에 적용된 가능성이 높아 보인다.
Limitations
- high-resolution이미지를 생성하는 것이 어려움
- classic pitfall in synthesis-through-optimization methods와 관련이 있음
- 이미지가 CLIP objective에 가까울 수 있지만 사람이 인식하기 힘든 이미지를 합성할 수 있다.
- 따라서 CLIP objective뿐만 아니라 보조 objective, constraints를 사용하는 것이 중요하다.
- CLIPDraw의 경우 the Bézier curve representation이라는 constraints를 사용한다. 그러나 GAN 판별기를 속이는 것과 같이 엄격한 constraints를 적용하면 품질이 더욱 향상할 수 있다.
- 본 연구는 간단한 이미지 증강만으로 CLIP 표현의 견고성을 높여 인식 가능한 이미지를 생성할 수 있음을 보여준다.
Conclusion
- 전반적으로 이 연구의 목적은 natural language image synthesis을 쉽게 접근할 수 있는 시작접으로 CLIPDraw를 소개하는 것이다.
- photorealistic rendering이 아닌 drawings에 중점을 두기 때문에 language-image relationships를 조사할 수 있는 간단한 방법을 제시한다.
- Colab에서 1분 이내로 합성 가능함
- https://colab.research.google.com/github/kvfrans/clipdraw/blob/main/clipdraw.ipynb.
런타임 > 런타임 다시 시작 및 모두 실행으로 실행해야 오류가 안뜸
728x90
'PAPER REVIEW' 카테고리의 다른 글
Conditional Generative Adversarial Nets(2014) (0) | 2023.11.18 |
---|---|
Software Engineering for Machine Learning: A Case Study (0) | 2023.10.30 |
Entity-Level Sentiment Analysis(ELSA): An exploratory task survey (0) | 2023.08.29 |
A BERT Framework to Sentiment Analysis of Tweets 2023 (0) | 2023.08.21 |
[Recommendation] CAPER: Context-Aware PersonalizedEmoji Recommendation (0) | 2023.08.16 |