【論文メモ】StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery

# 論文概要
タイトル：StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery
著者：Or Patashnik Zongze Wu Eli Shechtman Daniel Cohen-Or Dani Lischinski Hebrew University of Jerusalem Tel-Aviv University Adobe Research
学会：ICCV 2021
URL：https://arxiv.org/abs/2103.17249
内容：敵対的生成ネットワークベースの生成モデルStyleGANに、画像とテキストの大規模ペアデータセットで事前学習されたCLIPモデルを用いて、アノテーションされた画像コレクションなしでテキストプロンプトを用いて画像を編集するモデルStyleCLIPを提案した。

# はじめに
画像生成のタスクにおいて、GANベースのモデルが当時SOTAであった。さらに、StyleGANの学習した潜在空間は、離散化特性を持つことが知られており、事前学習済みのモデルを活用し、生成画像に対しても様々な画像操作を行うことができる。StyleGANの表現力を活かすために、直感的なインターフェースが必要。既存手法は、大量のアノテーション付きデータを使用する。また、現状の制御装置では、予め設定された意味的な方向にしか画像を操作できない。そこで、著者らは、最近導入されたCLIP（Contrastive Language-Image Pre-training）モデルの力を活用し、テキストベースの直感的な意味的な画像操作を実現することを目指します。CLIPモデルは、ウェブから収集した4億の画像とテキストのペアで事前学習されており、幅広い視覚的概念を表現できる。CLIPとStyleGANの生成能力を組み合わせることにより、直感的に様々な方向に画像を編集することができる。下図は、本手法を用いた編集の例を示す。

![Screenshot from 2023-05-16 16-15-39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/96e30848-0172-9663-d04e-9d938cd6f181.png)

本論文では、CLIPとStyleGANを組み合わせた3つの技術を紹介している。
1. CLIPモデルを損失ネットワークとして使用してテキストから潜在変数を最適化するOptimization。これは最も汎用性の高いアプローチであるが、画像に操作を施すのに数分の最適化が必要。
1. 特定のテキストプロンプトに潜在変数の差分を事前に学習するMapper。潜在空間における出発点（操作される入力画像）が与えられると、Mapperは潜在空間における局所的なステップを生成する。汎用性が低い。
1. StyleGANのスタイル空間において、テキストプロンプトを入力に依存しない（グローバルな）方向にマッピングするGlobal Direction。操作の強さや分離の度合いを制御することができる。

# 関連研究
## CLIP
CLIP（Contrastive Language-Image Pre-trained）は、Webから収集した画像とテキストの4億個のペアを用いて事前学習された大規模モデルである。ある画像から、その画像を表す正しい記述文を他の記述文から見つけ出すContrastive Learningでマルチモーダルな潜在空間を学習する。テキストと画像の意味的な類似性をゼロショットで（追加学習なしに）予測できる。（下図（CLIPの[論文](https://arxiv.org/abs/2103.00020)から引用））
![CLIP1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/4c0371c6-9eec-c498-c39f-64e096ffb5b8.png)

## StyleGAN
StyleGANは、敵対的生成ネットワーク（GAN）ベースの生成モデルであり、非常に高精度な画像を生成できる。
下図（StyleGANの[論文](https://arxiv.org/abs/1812.04948)から引用）にアーキテクチャを示す。
![StyleGAN1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/cc36fad8-e710-e68a-49df-e560be5aa34f.png)
左が従来のGANであり、潜在変数zから直接画像を生成していた。
一方、右のStyleGANでは、Mapping networkとSynthesis networkの2つのネットワークで構成されている。

Mapping networkでは8つの全結合層によって潜在変数zを潜在空間wにエンコードしている。このwが多次元的なスタイル情報（年齢、性別、表情など）を表す。
Synthesis networkは画像のアップサンプリング、スタイル及びノイズ情報の挿入を行う。早いタイミング（画像サイズが小さいとき）でスタイルが挿入されると、画像全体の色味が操作され、一方、後半（画像サイズが大きいとき）でスタイルが挿入されると、細かい模様や表情が操作される。


# StyleCLIP テキスト駆動の画像編集
この論文ではテキスト駆動の画像編集についての3つの異なる方法を提案している。
**Optimization**では、StyleGANの$W+$空間（各レイヤーで個別の$w$を用意する）における画像の潜在変数をCLIPの潜在空間で計算された損失を最小化することによって、最適化する。この最適化は画像とテキストプロンプトのペアごとに実行される。そのため、汎用性が高い反面、一つの操作に数分かかり、制御が大変。
**Mapper**では、潜在空間における操作ステップを1回のフォワードパスで推論する。訓練には数時間かかるが、テキストプロンプトごとに１回行うだけで良い。入力画像に対応する$W+$の開始位置によって操作ステップの方向が異なる可能性があるので、Localである。
Mapperでの実験の結果、様々な操作で操作ステップの方向性が似通ってることが判明した。そこで、**Global Directions**では、与えられたテキストプロンプトを、入力によらない（すなわち、潜在空間におけるGlobalな）マッピング方向に変換する。このGlobalな方向性はStyleGANのスタイル空間$S$([初出](https://arxiv.org/abs/2011.12799))で計算され、$W+$と比較して、よりきめ細かく、より分離した視覚操作に適している。
3つの方法の比較を下図に示す。
![StyleCLIP1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/305ae5b4-0dec-056c-1464-4418e0676f4a.png)

# Latent Optimization
最も直感的なアプローチとして、元画像をMapping Networkによりエンコードした$w_s \in W+$とテキストプロンプト$t$が与えられたとき、以下の最適化問題を解くことである。ただし、$G$は事前学習済みのStyleGANの生成器、$D_{\text{CLIP}}$は2つの引数のCLIP潜在空間での距離を表す。

$$\underset{w \in W+} {\operatorname{argmin}} D_{\text{CLIP}}(G(w),t)+\lambda_{\text{L2}}||w-w_s||_2 + \lambda _\text{ID} \mathcal{L} _\text{ID}(w) $$

そして、元画像との類似性は$W+$潜在空間内のL2距離と、以下の式の同一性損失$\mathcal{L} _\text{ID}$によって制御される。ただし、$R$は事前学習済みのArcFaceネットワーク（顔認識用のモデル）であり、$\langle \cdot, \cdot \rangle$は引数のコサイン類似度を表す。つまり、人物の乖離を制御する。

$$\mathcal{L} _\text{ID}(w) = 1 - \langle R(G(w_s)), R(G(w)) \rangle $$

この手法を用いて200~300回のiterationの後に得られた結果を下図に示す。この例では元画像をエンコードする際にe4eという手法で高速化している。特徴は、ヒゲや金髪のように明示的に指示することも、ビヨンセやドナルド・トランプのように黙示的に指示することもできる。別の人物のように編集したい場合、$ \lambda _\text{ID}$の値を小さくする必要がある。

![Screenshot from 2023-05-16 19-43-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/653249c7-3664-d1ee-b36d-6bf3607db461.png)

# Latent Mapper
Optimizationは汎用性が高い一方、1枚を編集するのに数分かかり、ハイパーパラメータに敏感であるという欠点がある。その欠点を解決するのがMapping networkである。Mapping networkでは、特定のテキストプロンプトに対して、任意の潜在変数を編集する操作$M_t(w)$を推論するように学習する。

Mapperのアーキテクチャを下図に示す。StyleGAN内の異なるレイヤーでは、生成画像のディテールのレベルが異なるので、異なるレイヤーをまとめている$w$を3つのグループに分けている。それぞれのMap関数$M^c_t(w),M^m_t(w),M^f_t(w)$をまとめたものが推論したい$M_t(w)$となる。$M_t(w)$を$w$に足し合わせ、StyleGANを用いて出力した画像が入力テキストの操作内容と合致するように学習させる。また、Map関数の構造はStyleGANの小さいバージョン（8層を4層にしている）。

![Screenshot from 2023-05-16 19-56-39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/3db4c59d-d575-339d-e4fa-7500374e398d.png)

モデルを学習させる際の損失関数は以下のようになる。

$$\mathcal{L}(w) = D_{\text{CLIP}}(G(w + M_t(w)),t)+\lambda_{\text{L2}}||M_t(w)||_2 + \lambda _\text{ID} \mathcal{L} _\text{ID}(w) $$

Mapperを用いて画像編集を行った結果が以下の図になる。複数のプロンプトによる高度な制御が行えていることがわかる。
![Screenshot from 2023-05-16 20-18-15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/96aefa68-7651-186c-c093-d4315229b103.png)

このMapperは各入力画像に対して操作ステップを推論するので、異なった入力画像に対して潜在空間におけるステップの方向がどの程度変化するかが重要になる。これを検証するために、まずCelebA-HQのテストセットをエンコードした潜在変数を複数の訓練済みMapperに送り込み、得られた操作方向のすべてのペアの間の余弦類似度を計算する。各Mapperのコサイン類似度の平均と標準偏差が以下の表となる。この表から、入力画像に合わせた操作ステップを推定するが、実際には、これらのステップのコサイン類似度は高く、それらの方向が大きく異なっていないことがわかる。

![Screenshot from 2023-05-17 10-32-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/f8b21498-32bd-0944-c5ce-5f7abcf63a53.png)

# Global Directions
この事実を踏まえ、高速な編集が可能だがテキストの内容毎にネットワークのパラメータを用意する必要があるというMapperの欠点を補うために、汎用的にテキストから潜在変数の差分を直接求める方法、Global Directionを提案した。この方法では、潜在空間としてStyleGANのスタイル空間$S$を考えている。

$s \in S$をスタイル空間でのある画像の潜在変数、$G(s)$を対応する画像と仮定する。ある属性を示すテキストプロンプトが与えられたとき、$G(s+a\Delta s)$が、他の属性に大きな影響を与えずに、その属性を加えた画像を生成するような$\Delta s$を推論する。$a$は操作の強さを表す。そのために、CLIPの潜在空間におけるテキストプロンプトに対応するベクトル$\Delta t$を求め、このベクトルを$S$における操作方向$\Delta s$に対応付ける。しかし、スタイル空間とCLIP空間には1対1の写像は存在しない。そこで、様々な工夫をしている。

まず、CLIP空間において、画像の多様体とテキストの多様体は同じ意味的な変化に対して共線的（コサイン類似度が大きい）になる。よって、テキストプロンプトの内容$\Delta t$に対応するCLIP空間の画像内容の変更$\Delta i$と、スタイル空間の各チャネル（次元）との関連性を評価することで、編集の方向性$\Delta s$を決定する。

## 自然言語をエンコード
自然言語をエンコードする際のノイズを減らすために、推論時に80種類の同じ意味の文章テンプレートに自動的にターゲットクラスを代入し、そのエンコード結果を平均している（精度が3.5%向上）。また、安定性のために、プロンプトエンジニアリングも採用している。具体的には、対象となる属性とそれに対応する中立的なクラスに関するテキストをCLIPに提供する。例えば、車の画像を操作する場合、対象属性は「a sports car」と指定され、対応する中立クラスは「a car」である。ターゲットクラスと中立クラスの平均的な埋め込みを生成し、2つの埋め込み間の正規化された差分をターゲット方向$\Delta t$として使用する。


## チャネルごとの関連性
テキストの操作方向$\Delta t$と共線的な変化$\Delta i$をもたらすであろうスタイル空間操作方向$\Delta s$を構築するために、CLIP空間において、$S$の各チャネル$c$と与えられた方向$\Delta i$との関連性を評価する。そこで、スタイル空間の潜在変数$s \in S$のコレクションを生成し、各スタイル潜在変数の$c$チャネルにのみ、負と正の値を加えて摂動させる。得られた画像のペア間のCLIP空間方向を$\Delta i_c$とすると、ターゲット操作に対するチャンネル$c$の関連性は、$\Delta i_c$の$\Delta i$への平均射影として下の式によって推定される。

$$R_c(\Delta i) = \mathbb{E} _ {s \in S} \lbrace \Delta i_c \cdot \Delta i \rbrace$$

実際には、100枚の画像ペアを用いて平均値を推定する。生成する画像のペアは$G(s \pm \alpha \Delta s_c)$で与えられ、$\Delta s_c$は、あるチャネル$c$の場合はチャネルの標準偏差に設定され、それ以外の場合はゼロベクトルとなる。摂動の大きさ$\alpha$は5とする。各チャネルの上の式の値を比較することで、関連性が高いチャネルを推定できる。
その後、$R_c$の値が閾値$\beta$を下回った場合、そのチャネルは無視される。このパラメータは、操作の分離の度合いを制御するために使用することができる。閾値を高くすると、より分離された操作が可能になるが、同時に操作の視覚的効果も低減する。年齢のような高レベルの属性は、複数の低レベルの属性（例えば、白髪、しわ、肌の色など）の組み合わせが含まれるため、複数のチャンネルが関連し、そのような場合には、閾値を下げることが望ましい場合があります。このように乖離の度合いを制御できるのは、この手法の特異な点としてあげられる。

$\alpha$と$\beta$の値を変えながらこの手法を試した結果が以下のようになる。$\beta$の値が大きいと、髪だけが変化しており、逆に小さいと、シワなどにも変化が見られる。

![Screenshot from 2023-05-17 12-27-16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/15629049-5841-5710-45e5-890f28ef915f.png)

# 比較と評価
この章では、提案した3つの手法と他の手法を比較し、評価している。

## テキスト駆動の画像編集
MapperとGlobal Directionと、既存手法のTediGANを比較した。Optimizationは、ハイパーパラメータに敏感であり、時間がかかり拡張性がないため、比較していない。結果を以下の図に示す。

![Screenshot from 2023-05-17 12-45-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/90bfd566-dc61-805c-d065-b69ce7ff7e5b.png)

Trumpについては、TediGANとGlobal DirectionはTrump特有のアイデンティティを捉えることができていない。一方、MapperはTrumpっぽさを操作するのに成功している。Mohawk（モヒカン）は髪型のみに関する属性であり、シンプルなので、Global DirectionとMapperどちらの手法も成功している。ただ、CLIP空間での方向は平均的なものであるため、Global Directionによって生成される操作は若干抑えめになる。最後に、Without wrinkles（シワなし）では、Global Directionはシワの除去に成功している。一方、Mapperでは他の属性（まぶた）にまで影響が及んでいる。これは、$W+$がスタイル空間$S$と比較してもつれているからであると考えられる。これらを踏まえると、複雑な属性（特にアイデンティティ系）に関する操作はMapperが得意、一方単純で一般的な属性に対してはGlobal Directionが適切であるといえる。


## 他の画像編集手法との比較
Global Directionとテキストベースに限らないいくつかのStyleGANを用いた画像編集手法との比較を下図に示す。操作の強さは対応する訓練済み分類器のロジット値に同じ量の変化をもたらすように選択される。

![Screenshot from 2023-05-17 13-12-52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/1a4ba2c4-1311-72cb-fa39-09ea2e80b40b.png)

GANSpaceでは、指定した属性以外の属性も大きく変わっている。また、InterFaceGANでは人物が変わる例もある。
Global Directionは、StyleSpaceのように、指定された属性のみを操作することに成功している。

## 課題
提案された手法は事前に学習されたStyleGANとCLIPに依存しているので、その領域外の画像の操作には向かない。また、視覚的に多様なデータセットにおいて、思い切った操作を行うことは困難（下図のトラ→オオカミなど）。
![Screenshot from 2023-05-17 13-22-50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3375139/26391d94-bbd3-a38c-15ab-f64d3c677093.png)


# まとめと感想
StyleGANとCLIPを組み合わせ、自然な画像編集モデルを提案した。
text-imageモデルが今後さらに、大規模に、そして高精度になっていけば、このようなモデルの性能も大きく向上することが予想される。
論文内では定量的な評価がほとんど行われていないことが気になった。Inception ScoreやFIDは画像編集モデルの評価には使えないのか？
また、最近のSOTAであるDiffusionベースの編集モデルとの比較も望ましい。