[論文メモ] StyleGAN of All Trades: Image Manipulation with Only Pretrained StyleGAN

arxiv.org

画像の操作に関して、追加の専用アーキテクチャを必要とせず普通のStyleGANだけで十分なことを示した論文。

図1は素のStyleGAN2にこの手法を適用した結果。
f:id:Ninhydrin:20211110091333p:plain

Image Manipulation with StyleGAN

ここから図1で示した各操作について説明していく。
なお、StyleGANの i番目の層の特徴を f_i \in \mathcal{R}^{B \times C \times H \times W}とする。
すべての画像は基本256x256で、顔画像はFFHQ、教会はLSUN-Churchesの公開されている学習済みモデルを、風景はLHQとLSUN-Towersを使ってStyleGAN2を自分たちで学習。face2disneyとface2animeはFFHQモデルをfine-tuningした。
FIDで評価をしているがここは省略。

各操作と手法を見ていく

Simple spatial operations

StyleGANはfully convolutionalなので f_iの空間方向の一部を操作すると出力される画像に関しても空間方向に同じ箇所が変化する。
そこでpaddingとresizeについて試した。
結果が図2。特徴マップとそれによって生成される画像のペア。わかりやすいように色付けしてpaddingとresizeで特徴マップの変化を示している。

f:id:Ninhydrin:20211110092649p:plain
まずはpadding。境界部分をReplicate、Reflect、Circularの3つのpaddingで横に広げた。
Replicateでは背景が広がり、ReflectとCircularでは教会部分が繰り返される。

resizeに関しては画像に対してのresizeより特徴マップに対してのresizeのほうがブラーやテクスチャの崩れが少ない。

Feature interpolation

画像をブレンドする方法としてcollagingがある。
同じ層で入力が異なる特徴マップを用意する。ここでは f^A_i f^B_iとする。
collagingは f^A_iの空間方向の一部を切り取りそこに f^B_iを貼り付けた特徴マップから画像を生成することで2枚の画像をシームレスにブレンドする手法。
図3のSuzuk et al.がその例。左から3列目は2つの入力を垂直方向にブレンドした結果。境界部分はきれいではあるがバッサリと切り替わっている。
f:id:Ninhydrin:20211110093934p:plain

collagingは2枚の画像が大きく異なるとあまり良くない(上の行の結果を見ても中間での色の変化が大きい)。
そこで切り貼りするのではなくアルファブレンドのマスクを使って特徴を混ぜる。
マスクは \alpha \in [0, 1^{B,C,H,W}]。ブレンドのイメージは図10を参照。
マスクは
f:id:Ninhydrin:20211110094549p:plain

linspaceでのマスクがスムーズな変化を作れる。

Generation from a single image

SinGANのように1枚の画像から同じ内容の多様な画像を生成するタスク。
Shiftをマスクを特定の場所に移動する演算子として以下の式で特徴マップを作る。
f:id:Ninhydrin:20211110095926p:plain
ちょっと式の意味がわからない(Shiftも)が、同じ特徴マップで一部の特徴を複製・貼り付けという感じ?
結果が図4。SinGANに比べリアリスティックかつ多彩な画像を生成できる。
f:id:Ninhydrin:20211110100516p:plain

SinGANは1枚の画像につき1つのモデルが必要だが、この手法だとlatent codeを変えるだけでモデルは同じ。
ただし、SinGANはノイズのサンプリングで画像の構図が決定するが、この手法だとパッチを手動で選ぶ必要がある。
空間的な制約がないので例えば教会の画像をぽつんと空辺りに貼ると教会の一部が空に浮いたようになってしまうということ(多分)。

Improved GAN inversion

ターゲット画像に似た画像を生成するstyle vector  wを見つけるタスク。
既存手法では非線形の変換を加えることで \mathcal{W} + の空間をガウシアンでモデリングすることでGAN inversionを安定させた。
最近の研究では wをAdaINで変換した \mathbb{\sigma}を利用したほうが良いという報告がありそれに従う。
 \mathbb{\sigma}に対して同じようにガウシアンでモデリング
結果が図5。
f:id:Ninhydrin:20211111090944p:plain

Controllable I2I translation

既存手法ではmapping networkを固定してfine tuningをすることでI2Iを実現する。
上記、Improved GAN inversionでも述べた通り \mathcal{W}+よりAdaIN内で変換した \mathbb{\sigma}のほう出力に与える影響が大きい。
なのでmapping networkだけでなくAdaINのアフィン変換も固定する。
これによりセマンティックなどがより保存されるようになった(ホンマか?)。結果が図6。

また興味深い観測として
1) 空間方向で同じ \alphaを使うことで2つのドメイン間で連続的な変換ができる(図6(b))
2) 特徴の補完を行う箇所を限定することで画像の一部を変換できる(図6(c))
3) 顔の変換と編集の両方が出来る

f:id:Ninhydrin:20211111092558p:plain

Panorama Generation

2枚の画像のそれぞれ半分の間を保管する。
各画像の半分を両端に固定(制約)しその間を生成する。3枚以上でも2枚の手順を繰り返すだけ。
セマンティクスが大きく異なる場合結果がよくない(例:海と森)。
そこでlatent smoothingを行う(特徴空間でガウシアンで平滑化)。
図7が手法と結果、図12がlatent smoothingの有りなしの結果。

f:id:Ninhydrin:20211111093847p:plain
f:id:Ninhydrin:20211111094012p:plain

Attributes Transfer

右向きの顔画像の属性を左向きの顔画像に適用にするといった操作はcollagingではできない(ポーズや空間的位置に依存)。
EIS(多分Editing in Style)は異なるポーズでも属性の入れ替えが出来るが無関係な箇所を変換しない保証はない(目を編集したら鼻も変化するかも)。
またEISは事前に決まった箇所しか入れ替えができず、また分布から外れるものは生成できない(あまり存在しない片目だけの化粧とか)。

そこでポーズの整列を行う。StyleGANでは低解像度のstyle codeがポーズに影響するのでそこを同じにして生成することでポーズを揃えられる。
ポーズを揃えたことで空間的位置等の問題が解決したので、その特徴を使って今までのように補完することで属性を転写出来る。
結果が図8と図9。

f:id:Ninhydrin:20211111095411p:plain

所感

既存の手法でも出来ることが多いので特別新しいことが出来るようになったわけではないが、StyleGANについていろいろ新しい知見が得られた。
はじめのpadding、たしかにReplicate PadやReflect Padすれば自然に画像を拡張できそう。StyleGAN3(alias free gan)にすればもっと良い結果が得られそう。
特徴マップでの補完、知らなかったし、背景の生成とかでは遊べそう。
Attribute Transfer、ポーズを揃えるという発想はなかった。確かに空間的にそろえてしまえば既存のeditingが適用できそう。
個人的にAttribute Transferの発想は面白かった。生成された画像をどうにかするんじゃなくて、そもそもの生成結果をまずどうにかしようというのは面白い。