[論文メモ] GAN-Supervised Dense Visual Alignment
CVPR2022
GANを使ったDense Visual Alignmentの学習
手法
学習済みのGANによるサンプルとそのを生成する潜在変数を操作して得られたサンプルのペア (, )を利用した教師あり学習。
このペアデータを使ってネットワークを学習する。
画像の空間的なアライメントをする手法にCongealingという既存手法がある(らしいけどよく知らない)。
そこからもじり本手法をGANgealingと呼ぶ。
まずは一般的なGANと同じく潜在変数 を入力としてジェネレータ Gを学習する。
これによりを使って画像を生成出来る。
ここで固定されたベクトルを考える。
からは常に同じ画像が生成される。
をにワープするSpatial Transformer を学習する。
そのために最適化するloss関数は以下の式(2)。は2枚の画像間の距離関数。
GANgealingではを調整してが変換を見つけられるようにする。
あくまでデータセットの分散が小さい場合に有効で、そうでない場合はこの方法だと難しい。
そこですべてのサンプルをに寄せるのではなく、サンプルごとに属性は異なりアライメントだけ統一した画像をターゲットにする。
ターゲット画像もGで生成するので、入力の初めの方はを使い、後半はを使うことでアライメントを統一しつつ、属性をサンプルに適したターゲット画像を生成できる。
これによりlossは以下の式(3)になる。距離関数はperceptual loss。が潜在変数を混ぜた画像。
GはStyleGAN2を採用する。
Spatial Transformer Parameterization
Spatial Transformer は画像からワープのためのグリッドを回帰する。
実験をした結果に制約は必要なかった。ただ、
total variationと(identity mappingを防ぐ)の正則化を課した。
Parameterization of c
はパラメータをとして以下の式(4)。
はの平均、はi番目のprincipal direction。
学習ではを最適化する。
最終的なlossは式(5)。
Joint Alignment and Clustering
非常に多様なポーズが含まれるデータに対しての適用は難しい。
そこでとをK個用意してmodeを複数用意する(クラスタ)。
学習時は最もlossが小さいとのペアを更新する。
テスト時はfake image を使って最適なのクラスタを使う。
しかし、入力したいreal image に似たfake image が必要だがそれを求めるのはコストが掛かる(GAN Inversionとか)。そこでクラスタ を直接予測する。
画像を入力としてクラスタを予測。lossはクロスエントロピー。正解ラベルは上記の。
実験・結果
詳しくは論文参照。
所感
Congealingというものを知らなかったので、そちらも勉強しておく必要がある。
StyleGAN等で浅い層へのstyle vectorがposeに影響するという性質をうまく使っている。
以前にあったimage manipulation 論文でも似たようにしてreal imageと生成画像のposeを揃えていた。
ターゲットオブジェクトのある箇所を操作(例えば顔の頬にシールを貼る)等が出来るのは面白い。
また簡易的にセマンティックセグメンテーションのラベルデータも作成できそう。