Open Yagami360 opened 5 years ago
inpainting タスクにおいて、gated convolution や SN-PatchGAN のアーキテクチャを採用することで、自由形式 [free-form] の inpainting タスクへの対応を実現した inpainting 手法。
gated convolutions inpainting タスクにおいて、通常の畳み込みでは、修復領域・非修復領域に関わらず全てのピクセルを畳み込んでしまうために、穴領域の inpainting に色違いやぼやけ、境界での不自然な切れ目が発生してしまう。
この問題を解決するために、partial convolution と呼ばれる下図のようなアーキテクチャが提案されている。
しかしながら、ユーザーがスケッチしたイラストで穴埋めを行うような自由形式の inpainting タスクにおいては、 この partial convolution での畳み込み層を重ねて使用すると、以下の図のように深い層での中間出力値が全て1となり、ネットワークがうまく学習できない結果となってしまう。
本手法では、このような問題を解決するために、以下の図のような gated convolution と呼ばれるアーキテクチャで、動的に特徴量を選択して畳み込みを行う手法を提案している。
この gated convolution は、partial convolution のようなマスクの静的な Update 規則による畳み込みではなく、データから学習して動的に変化する畳み込みになっているので、この gated convolution での畳み込みを重ねても、以下の図のように、深い層で情報を失うことなくネットワーク全体に情報を伝搬でき、ネットワークをうまく学習できるようになる。
SN-PatchGAN(識別器)
従来の blobal and local GAN は、短形領域の inpainting タスクを想定して設計されており、自由形式の inpainting タスクは適していない問題が存在する。 本手法では、上図のような SN-PatchGAN のアーキテクチャを導入している。この SN-PatchGAN は、自由形式の inpainting タスクに適した識別器となっており、又、学習も安定しており処理も高速である。
内部のアーキテクチャの詳細は、以下のようになる。 カーネルサイズ5、ストライド幅2の6つの畳み込み層(Markovian Discriminator)から構成され、PatchGANのように、この Markovian Discriminator から出力された各特徴マップに対して、本物か偽物かの GAN 判定を行う。 ここで、Markovian Discriminator の各層では、学習の安定化を目的として spectral normalization を行っている。
inpainting ネットワーク(生成器)の全体像
上図は、本手法での生成器のアーキテクチャの全体像を示している。 このネットワークは、既存の coarse and refinement networks をベースラインとして、通常の畳み込みの箇所を全て前述の gated convolutions に置き換えている。 ※ coarse and refinement networks : 論文 「Generative Image Inpainting with Contextual Attention」 で提案されているネットワーク。 ※ 上図のアーキテクチャ図では、簡易表示のため refinement networks の記載は除外し、coarse network のみ記載している。 ※ UNet を採用しなかったのは、UNet における skip connection が自由形式の inpainting のような狭いマスクでは有効ではなくなるため?
損失関数 本手法の損失関数は、adversarial loss のみによって行われる。 但し、学習を安定化させることを目的として行われる、負の対数尤度計算の最小二乗誤差関数への置き換え(LS-GAN)は行わず、代わりに、ヒンジ損失関数項で置き換える。(※ ヒンジ損失関数では、ある範囲外からは勾配が0になるので、生成器と識別器の不健全な競争の結果として、識別器が不本意に強くなりすぎることを防止でき、結果して学習を安定化させる効果があると考えられる。) ※ perceptual loss を使用していないのは、よく似た情報が SN-PatchGAN でエンコードされているため?
0. 論文情報・リンク
1. どんなもの?
inpainting タスクにおいて、gated convolution や SN-PatchGAN のアーキテクチャを採用することで、自由形式 [free-form] の inpainting タスクへの対応を実現した inpainting 手法。
2. 先行研究と比べてどこがすごいの?
3. 技術や手法の"キモ"はどこにある?
gated convolutions inpainting タスクにおいて、通常の畳み込みでは、修復領域・非修復領域に関わらず全てのピクセルを畳み込んでしまうために、穴領域の inpainting に色違いやぼやけ、境界での不自然な切れ目が発生してしまう。
この問題を解決するために、partial convolution と呼ばれる下図のようなアーキテクチャが提案されている。
しかしながら、ユーザーがスケッチしたイラストで穴埋めを行うような自由形式の inpainting タスクにおいては、 この partial convolution での畳み込み層を重ねて使用すると、以下の図のように深い層での中間出力値が全て1となり、ネットワークがうまく学習できない結果となってしまう。
本手法では、このような問題を解決するために、以下の図のような gated convolution と呼ばれるアーキテクチャで、動的に特徴量を選択して畳み込みを行う手法を提案している。
この gated convolution は、partial convolution のようなマスクの静的な Update 規則による畳み込みではなく、データから学習して動的に変化する畳み込みになっているので、この gated convolution での畳み込みを重ねても、以下の図のように、深い層で情報を失うことなくネットワーク全体に情報を伝搬でき、ネットワークをうまく学習できるようになる。
SN-PatchGAN(識別器)
従来の blobal and local GAN は、短形領域の inpainting タスクを想定して設計されており、自由形式の inpainting タスクは適していない問題が存在する。 本手法では、上図のような SN-PatchGAN のアーキテクチャを導入している。この SN-PatchGAN は、自由形式の inpainting タスクに適した識別器となっており、又、学習も安定しており処理も高速である。
内部のアーキテクチャの詳細は、以下のようになる。 カーネルサイズ5、ストライド幅2の6つの畳み込み層(Markovian Discriminator)から構成され、PatchGANのように、この Markovian Discriminator から出力された各特徴マップに対して、本物か偽物かの GAN 判定を行う。 ここで、Markovian Discriminator の各層では、学習の安定化を目的として spectral normalization を行っている。
inpainting ネットワーク(生成器)の全体像
上図は、本手法での生成器のアーキテクチャの全体像を示している。 このネットワークは、既存の coarse and refinement networks をベースラインとして、通常の畳み込みの箇所を全て前述の gated convolutions に置き換えている。 ※ coarse and refinement networks : 論文 「Generative Image Inpainting with Contextual Attention」 で提案されているネットワーク。 ※ 上図のアーキテクチャ図では、簡易表示のため refinement networks の記載は除外し、coarse network のみ記載している。 ※ UNet を採用しなかったのは、UNet における skip connection が自由形式の inpainting のような狭いマスクでは有効ではなくなるため?
損失関数 本手法の損失関数は、adversarial loss のみによって行われる。 但し、学習を安定化させることを目的として行われる、負の対数尤度計算の最小二乗誤差関数への置き換え(LS-GAN)は行わず、代わりに、ヒンジ損失関数項で置き換える。(※ ヒンジ損失関数では、ある範囲外からは勾配が0になるので、生成器と識別器の不健全な競争の結果として、識別器が不本意に強くなりすぎることを防止でき、結果して学習を安定化させる効果があると考えられる。) ※ perceptual loss を使用していないのは、よく似た情報が SN-PatchGAN でエンコードされているため?
4. どうやって有効だと検証した?
5. 議論はあるか?
6. 次に読むべき論文はあるか?
7. 参考文献