Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLIPDraw: Exploring Text-to-Drawing Synthesis through Language-Image Encoders #62

Open
kzmssk opened this issue Jul 1, 2021 · 0 comments

Comments

@kzmssk
Copy link
Member

kzmssk commented Jul 1, 2021

CLIPと微分可能レンダラを組み合わせた勾配法ベースのベクタ画像生成

論文本体・著者

  • Frans, Kevin, L. B. Soros, and Olaf Witkowski. 2021. “CLIPDraw: Exploring Text-to-Drawing Synthesis through Language-Image Encoders.” arXiv [cs.CV]. arXiv. http://arxiv.org/abs/2106.14843.

解きたい問題

  • テキストからのNon-Photorealisticなベクタ画像生成
    • テキストからイメージを生成するText-to-Image SynthesisはConditional-GANなどを使ったビットマップを直接生成するものが多い
      • 事前に大規模データセットを使った学習を行う必要がある
    • 画像を学習済みニューラルネットモデルを使って直接最適化するSynthesis through optimization
      • 事前学習が不要
      • Photorealistcな画像を生成できるが、損失項を計算するニューロンの働きが理解しづらくコントロールが難しい
      • 特定のテクスチャやパターンのような不自然な表現が獲得されがち

新規性

  • Contrastive Language-Image Pre-training(CLIP)を使って入力テキストを反映しつつシンプルな絵(ベクタ画像)を生成する
    • GANのように事前学習を行わず、Synthesis through optimizationで生成
    • CLIPが持つ汎化性能を活かして多様な絵を生成できる
      • "water color", "3D rendering"のような形容詞をテキスト入力に加えることで様々なスタイルの描写ができる
      • ストローク数を増やすとリアルになっていく
      • "happiness", "self"のような抽象的なテキストも表現できる
      • 特定の言葉(Negative prompt)を使った損失項を加えることで生成結果をコントロールできる

実装

image
論文 Fig. 1 より 絵の生成方法の概要
  • CLIPと微分可能なレンダラの組み合わせ
    • CLIPは大量の画像とテキストで事前学習したモデルで、テキストと画像を共有した特徴量に変換するEncoderがある
    • CLIPの高い性能を活かして高い汎用性を狙う
    • ベジェ曲線のパラメータからビットマップ画像を生成する過程が微分可能になっているレンダラを使う(関連論文を参照)
  • ベジェ曲線郡をランダムに初期化
    • 線と線内の点(Control point)の数は固定
    • 線の位置、太さ、色(RGBA)の値が最適化の対象
  • レンダリングした絵を微分可能な方法でAugmentationする
    • Augmentationを入れないとadversarialな表現に収束してしまう
  • 画像をCLIPのImage encoderに入力したベクトルと、テキスト入力をCLIPのText encoderに入力したベクトルのコサイン距離を取る
  • コサイン距離を損失にしてベジェ曲線郡のパラメータまでBack propagation

実験・議論

image
論文 Fig. 3 より。 他のsynthesis-through-optimization methodとの比較
  • 既存のsynthesis-through-optimizationな手法との比較
    • Pixel Optimization: ベジェ曲線ではなく画像のピクセルの値を直接最適化
    • BigGAN Optimization: BigGANの潜在表現ベクトルを探索した結果
image
論文 Fig. 5 より 同じモチーフでも形容句を変えることで異なるスタイルで描画ができる例
image
論文 Fig. 6 より 線の数を増やすことでリアルさが増す例
image
論文 Fig. 8 より Negative Promptの追加
  • 入力テキストに近づけるだけではなく、特定のワード(Negative Prompt)から離すような損失を追加することで生成される絵をある程度コントロールできた

  • 議論

    • この手法の限界
      • Photorealistic imageよりもdrawingに特化しているため高解像度の絵の生成ができない
      • CLIPのencodingに制約を受けている
        • 細かな絵の指定ができない
    • CLIPのもつ社会的なバイアスが絵に反映されている可能性がある

読んだ中での不明点などの感想

  • 線の長さなどのベクタの初期値が画風に強く影響を与えていそう
  • 似た枠組みでスケッチ(ベクタ画像)を入力テキストに沿うように修正することができるかもしれない

関連論文

  • Fernando, Chrisantha, S. M. Ali Eslami, Jean-Baptiste Alayrac, Piotr Mirowski, Dylan Banarse, and Simon Osindero. 2021. “Generative Art Using Neural Visual Grammars and Dual Encoders.” arXiv [cs.AI]. arXiv. http://arxiv.org/abs/2105.00162.
    • CLIPDrawと同様にエンコーディングされたテキストの特徴量と描画された画像の特徴量の距離を最小化することでベクタ画像生成するアルゴリズム。ただしこちらは勾配法ではなく遺伝的アルゴリズムで更新している
  • Radford, Alec, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, et al. 2021. “Learning Transferable Visual Models From Natural Language Supervision.” arXiv [cs.CV]. arXiv. http://arxiv.org/abs/2103.00020.
    • CLIP論文
  • Li, Tzu-Mao, Michal Lukáč, Michaël Gharbi, and Jonathan Ragan-Kelley. 2020. “Differentiable Vector Graphics Rasterization for Editing and Learning.” ACM Transactions on Graphics, 193, 39 (6): 1–15.
    • この研究で使われている微分可能なレンダラの提案論文
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants