Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Deepfillv2] Free-Form Image Inpainting with Gated Convolution #29

Open
Yagami360 opened this issue Oct 10, 2019 · 0 comments
Open

[Deepfillv2] Free-Form Image Inpainting with Gated Convolution #29

Yagami360 opened this issue Oct 10, 2019 · 0 comments

Comments

@Yagami360
Copy link
Owner

Yagami360 commented Oct 10, 2019

0. 論文情報・リンク

1. どんなもの?

  • inpainting タスクにおいて、gated convolution や SN-PatchGAN のアーキテクチャを採用することで、自由形式 [free-form] の inpainting タスクへの対応を実現した inpainting 手法。

2. 先行研究と比べてどこがすごいの?

  • 既存の deep learning ベースの inpainting 手法では、修復領域・非修復領域に関わらず、全てのピクセルで通常の畳み込みを使用しているために、穴領域の inpainting に色違いやぼやけ、境界での不自然な切れ目が発生してしまっていた。
    一方、この問題を解決するために部分的に畳み込みを行う partial convolution の方法では、ユーザーがスケッチしたイラストで穴埋めを行うような自由形式の inpainting タスクではうまく機能しない問題があった。
    本手法では、動的に特徴量を選択して畳み込みを行う gated convolution や自由形式の inpatinting タスクに適した識別器である SN-PatchGAN のアーキテクチャ採用することで、このような修復領域、非修復領域間での不自然な inpainting 問題や自由形式の inpainting タスクへの対応を実現している。

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. どうやって有効だと検証した?

  • いくつかのデータセットにおいて、既存の inpainting 手法と自由形式の inpainting タスクにおける修復画像の品質を定性的に比較している。

5. 議論はあるか?

  • 2次元画像ベースの仮想試着手法においても、inpainting タスクのようなマスク領域・非マスク領域を考慮する手法が多いので、これらの領域を動的に選択して畳み込みを行う gated convolution のアーキテクチャは応用可能か?

6. 次に読むべき論文はあるか?

  • [Deepfillv1] Generative Image Inpainting with Contextual Attention

7. 参考文献

  • xxx
@Yagami360 Yagami360 changed the title [Deepfillv2] Free-Form Image Inpainting with Gated Convolution <In progress> [Deepfillv2] Free-Form Image Inpainting with Gated Convolution Oct 10, 2019
@Yagami360 Yagami360 changed the title <In progress> [Deepfillv2] Free-Form Image Inpainting with Gated Convolution [Deepfillv2] Free-Form Image Inpainting with Gated Convolution Oct 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant