概要
StyleGAN2の生成結果の特定の属性を操作するためのチャネルを特定するための枠組みを提案。
書誌情報
Wu, Zongze, Dani Lischinski, and Eli Shechtman. "Stylespace analysis: Disentangled controls for stylegan image generation." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021.
https://arxiv.org/abs/2011.12799
公式実装
ポイント
潜在空間の分析
StyleGAN2の潜在空間は、大きく分けて3つある。
正規分布に従ってサンプルされる大元の潜在変数の空間Z \mathcal{Z} Z
Z \mathcal{Z} Z を元に、複数の変換を経て得られる中間的な潜在変数の空間W \mathcal{W} W
全レイヤー共通のW \mathcal{W} W を元に、各レイヤーで個別に学習された変換を施して得られる変数の空間S \mathcal{S} S
加えて、既存の手法でよく使用されている、全レイヤーで個別のw w w を用意するというW + \mathcal{W+} W + がある。
1024x1024の18レイヤーからなるStyleGAN2では、各潜在空間の次元数は以下のようになる。
Z \mathcal{Z} Z : 512
W \mathcal{W} W : 512
W + \mathcal{W+} W + : 9216
S \mathcal{S} S : 9088
本研究では、DCI(Disentanglement / Completeness / Informativeness)指標を用いることで、どの空間が最も良いかを定量的に求めている。
DCI指標は、ある潜在次元が1つの属性のみに変化を与えているか(D)、ある属性が1つの潜在次元によって変化を与えられているか(C)、潜在表現によって属性を分類できるか(I)ということを表す指標である。
Z , W , S \mathcal{Z, W, S} Z , W , S で比較すると、S \mathcal{S} S で最も良い性能が得られる。同様に、W + , S \mathcal{W+, S} W + , S を比較すると、こちらでもS \mathcal{S} S の方が良いとわかる。
以上の結果から、S \mathcal{S} S を用いて、生成画像の操作を行うことを本研究の方針としている。S \mathcal{S} S をStyleSpaceと呼ぶことにする。
特定の領域への影響の分析
次に、S \mathcal{S} S のどの次元(チャネル)が生成される画像の意味的な領域に対応するのかを把握したい。
ある潜在変数s ∈ S s \in \mathcal{S} s ∈ S によって得られる画像x x x に関して、訓練済みセマンティックセグメンテーションモデルを用いて、さまざまなクラスの領域M c M_c M c をあらかじめ求めておく。下図のように、s \mathcal{s} s の特定のチャネルの勾配マップと、セグメンテーション領域がおおむね一致する場合、そのチャネルはクラスc c c をコントロールしていると考えられる。
あるs ∈ S s\in\mathcal{S} s ∈ S に関して、特定のチャネルu u u の勾配マップG u s G^s_u G u s と、生成された画像に関する特定のクラスc c c の領域M c s M^s_c M c s との重なりが大きいほどu , c u, c u , c の対応が強いと言える。t u , c s t_{u, c}^{s} t u , c s は勾配マップの閾値であり、ハイパーパラメータとしてd = 2 d=2 d = 2 が使われている。
O C u , c s = ∣ ( G u s > t u , c s ) ∩ M c s ∣ ∣ M c s ∣ d
O C_{u, c}^{s}=\frac{\left|\left(G_{u}^{s}>t_{u, c}^{s}\right) \cap M_{c}^{s}\right|}{\left|M_{c}^{s}\right|^{d}}
O C u , c s = ∣ M c s ∣ d ( G u s > t u , c s ) ∩ M c s
ランダムに選ばれた1Kのs s s についてO C u , c s {OC}^s_{u,c} OC u , c s を求め、チャネルu u u と最も対応が強いクラスc c c をc s , u ∗ = arg max O C u , c s c_{s, u}^{*}=\arg \max O C_{u, c}^{s} c s , u ∗ = arg max O C u , c s と求める。この時、他のクラスを2倍以上上回っていることを条件とし、特定のクラスとの対応が明確であるチャネルに絞り込む。
下図は、このようにして求められた耳に関するu u u とその値を操作した時の結果が示されている。N _ C N\_C N _ C という表記は、N N N レイヤー目のC C C チャネル目であることを表す。
それぞれのチャネルの値を増減させることで、耳の大きさ、隠れ方、(内部の)形状、アクセサリを制御できることが確認でき、特定の領域に対応しているだけでなく、チャネルによって
異なる表現に対応していることもわかった。
特定の属性に対応するチャネルの分析
先述の方法では、特定のクラス領域に対応するチャネルを特定できたが、ここでは特定の属性をコントロールできるチャネルu u u を特定する。
InterFaceGANでは、これを実現するためにPositiveサンプルとNegativeサンプルが10Kずつ必要だが、本研究で提案する方法では10-30程度のPositiveサンプルのみで実現できる。
あるサンプルe e e のスタイルs e s^e s e と、全画像のスタイルの平均と標準偏差μ p , σ p \mu^p, \sigma^p μ p , σ p を元に、そのサンプルのスコアδ e \delta^e δ e を以下のように定義する。
δ e = s e − μ p σ p
\delta^{e}=\frac{s^{e}-\mu^{p}}{\sigma^{p}}
δ e = σ p s e − μ p
Positiveサンプル中のδ e \delta^e δ e の平均と標準偏差をμ e , σ e \mu^e, \sigma^e μ e , σ e とし、そのチャネルu u u の値をμ u e , σ u e \mu^e_u, \sigma^e_u μ u e , σ u e とする。これらの値によって以下の指標θ u \theta_u θ u を定義し、この指標が大きいチャネルu u u が、特定の属性に対応していると判定できる。
θ u = ∣ μ u e ∣ σ u e
\theta_{u}=\frac{\left|\mu_{u}^{e}\right|}{\sigma_{u}^{e}}
θ u = σ u e ∣ μ u e ∣
この指標のTOP5のチャネルについて、本当に特定の属性と対応づけられるかを実験によって評価している(下図)。Positiveサンプル数を増やせばその精度は向上することが確認されている。また、先に示したクラス領域へとの対応も組み合わせることで、特定の属性と対応するチャネルの特定がより確実になることが示されている。
合成画像の操作
以上のように求められた特定の属性を操作できるチャネルをの値を変動させ、合成画像がどのように変化するのかを確認する。既存手法であるGANSpace, InterfaceGANと比較すると、下図のように、本手法では他の属性にほとんど影響を与えずに特定の属性だけを制御できることが確認できた。
定量的な比較のために、Attribute Dependencyという指標を導入している。これにより、ある方向への操作が他の属性にどの程度影響を与えるかを定量的に評価できる。
操作対象のチャネルt t t の値を変化させると、学習済みの画像属性分類器の出力であるlogitに差異Δ l t \Delta l_t Δ l t が生じる。この差異の大きさ(l t l_t l t の標準偏差σ ( l t ) \sigma\left(l_{t}\right) σ ( l t ) で正規化する)に対して、他の属性はどの程度変動するかを評価する。操作対象の属性t t t を除く全属性A \ t \mathcal{A} \backslash t A \ t について、属性分類器の出力logitの変化量Δ l i \Delta l_i Δ l i がどの程度大きいかを測定している(こちらも、各属性のlogitの標準偏差σ ( l i ) \sigma\left(l_{i}\right) σ ( l i ) によって正規化する)。これにより、t t t への操作がi i i に与える影響を定量化できる。
2つのパターンとして、mean-ADとmax-ADを以下のように定義する。いずれの指標も、本手法の方が既存手法よりも小さい値で推移し、本手法の有効性が示されている。
mean-AD: E ( 1 k ∑ i ∈ A \ t ( Δ l i σ ( l i ) ) ) E\left(\frac{1}{k} \sum_{i \in \mathcal{A} \backslash t}\left(\frac{\Delta l_{i}}{\sigma\left(l_{i}\right)}\right)\right) E ( k 1 ∑ i ∈ A \ t ( σ ( l i ) Δ l i ) )
max-AD: E ( max i ∈ A \ t ( Δ l i σ ( l i ) ) ) E\left(\max_{i \in \mathcal{A} \backslash t}\left(\frac{\Delta l_{i}}{\sigma\left(l_{i}\right)}\right)\right) E ( max i ∈ A \ t ( σ ( l i ) Δ l i ) )
実画像の操作
実画像に対する操作は、実際の画像から潜在変数を求め、その後スタイル潜在変数を操作して生成画像を操作する、という流れになる。
潜在変数の求め方としては、以下の2通りが一般的である。
潜在変数を直接最適化する方法
実画像から潜在変数を求めるEncoderを訓練し、使用する方法
前者の方法は、W , W + , S \mathcal{W, W+, S} W , W + , S の3種類について実験している。S , W + , W \mathcal{S, W+, W} S , W + , W の順で再構成は高精度になるが、そこから操作を行うと、S \mathcal{S} S では大きなアーティファクトが生じてしまい、使い物にならないことが判明した。一方で、アーティファクトの観点からは、W \mathcal{W} W に関して最適化した上で、S \mathcal{S} S を操作することで、最も現実的な画像を生成できることを確認している。
後者の方法として、画像からS \mathcal{S} S を求めるエンコーダー(構造はStyleALAE)を訓練する。計算リソースの関係上、FFHQの128x128の画像を使用して訓練している。
下図が、そのようなエンコーダーを用いて実画像から求められたs s s を用いた再構成画像(Inverted)、および特定の属性に対応するチャネルを操作して得られる操作画像を示したものである。ややぼやけてはいるものの、各属性を個別に操作できていることがわかる。
Discussion