概要
ドメイン変換を行う際に、見た目を変えずにスタイルを変換する手法。既存手法でもドメインを変換するものはあったが、one-to-oneのマッピングであった。すなわち、犬を猫に変換しようとした時に、猫の種類は犬種に応じて決定的であった。これに対して、Multimodal Unsupervised Image-to-image Translation (MUNIT) を提案。MUNITでは、画像をdomain-invariantなコンテンツと、domain-specificなスタイルに分解する。コンテンツをキープしたまま、任意のスタイルをサンプルして合成することで、ドメインを変換する。
手法詳細
原理
ドメイン1の画像$x_1 \in \mathcal{X}_1$をドメイン2の画像$s_2 \in \mathcal{S}_2$に変換することを考える。ドメインを変換するために、ドメイン1用のエンコーダ$E_1$・デコーダ$G_1$、ドメイン2用のエンコーダ$E_2$・デコーダ$G_2$を用意する。ドメイン1の画像$x_1 \in \mathcal{X}_1$を、エンコーダ$E_1$を用いて、スタイル$s_1 \in \mathcal{S}_1$、コンテンツ$c \in \mathcal{C}$に分解する。ターゲットドメイン2において、コンテンツ$c$の値を維持したまま、スタイル$s_2 \in \mathcal{S}_2$の値を用い、デコーダ$G_2$を通して復元することで、ターゲットドメインの画像$x_2 \in \mathcal{X}_2$を生成できる。
学習
学習においては、bidirectional reconstruction lossというエンコード・デコードが反対の動作になるようなロスを提案。具体的には、画像->latent->画像が一致するようにしつつ、latent->画像->latentも一致させる。
画像$x_1$からエンコーダ$E_1$を用いてコンテンツ$c_1$・スタイル$s_1$に変換し、そこからデコーダ$G_1$によって同じ画像に戻す。なお、確率での表記が苦手な人のために補足しておくと、$x_1 \sim p(x_1)$は、画像$x_1 \in \mathcal{X}_1$から一つをランダムに選ぶ操作である。
また、特徴についても同様にデコード・エンコードして同じ特徴に戻るようにする。$c_1$は、$x_1$から$E_1^c$でエンコードした特徴とし、$s_2$は$q(s_2)$からサンプルした値とする。$q$は平均0、分散1の正規分布とする。
さらに、画像を鮮明にするためのAdversarial lossを用いる。これは通常のGANと同様である。ドメイン毎にそれぞれDiscriminator($D_1, D_2$)を用意する。スタイルを変換しても画像が本物になるように学習。
トータルのロスは以下となる。なお、AdaINはAdaptive Instance Normalizationである。
ネットワーク
最終的にネットワークの構成は下記のようになる。
Theoretical Analysis
夜も遅いので省略。
実験結果
エッジからくつの画像への変換に関する、定性比較。最も左の列が入力とground truthの出力。各手法についてランダムにサンプルした結果。なおBycicle-GANはSupervisedな方法。
エッジから靴/鞄に変換しランダムにサンプルした結果。
動物画像の変換。
ストリートシーンの変換
Yosemite画像の昼夜変換
スタイルを固定したままコンテンツを変換、コンテンツを固定したままスタイルを変換した結果。
既存のスタイル変換手法との比較
まとめ
結果が凄いし、応用範囲が広いように思う。次回は実装してみたい。