shugo's kitchen

コンピュータサイエンスを美味しく調理していきたい

PEPSI (画像補完) アーキテクチャまとめ

[tex: ]

GANを用いて下のようにマスク下部分を補完しようという研究。背景の復元やアニメーションなどに使えそう。

f:id:shugo256:20190901123044p:plainf:id:shugo256:20190901122955p:plain

Coarse-to-fine Network(先行研究)

  • Free-Form Image Inpainting with Gated Convolution
  • coarse networkとrefinement networkからなる
    • coarse networkで最初に粗く穴を埋める
    • coarse networkの結果から特徴を抽出し、refinement networkでより細かい補完を行う

f:id:shugo256:20190901152048p:plain

  • このように粗いのを一旦生成してからそれを磨くという方法は、ぼんやりした画像になりがちなGANにおいては有効らしい
  • refinement networkではCAM(Contextual Attention Module)を用いて前景(穴になっている部分)と背景(穴でない部分)の関係を学習する
  • 具体的には、coarse networkで生成された粗い補完の施された画像の特徴マップに対し、前景とその周辺の背景それぞれから3x3のパッチを抽出し、下のようにコサイン類似度をとる
  • そのコサイン類似度そソフトマックスにぶち込むことで、重み を得る。これを用いた背景パッチの重み付き和により、より細やかな画像にrefineすることができるらしい

f:id:shugo256:20190901152759p:plain

  • fが前景、bが背景のパッチで、 はハイパーパラメータ
  • 要するにAttention的なノリ

  • これをベースとして改善していこうというけんきう

この論文では

上記手法の問題点

  • refinement network単体だと微妙(下のd 老けてもうた)

f:id:shugo256:20190901152218p:plain

  • となると入力に対してcoarseとrefinementという2つのencoder-decoder networkを施さねばならず、特に高画質な画像だと計算コストが高くつく

PEPSIアーキテクチャ

f:id:shugo256:20190901153017p:plain

  • 上図のように、PEPSIでは2つのステージを一つの共通なnetworkにまとめた
  • decoderは大部分共通とはいえ、inpainting pathとcoarse pathの二つに分岐している
    • coarse pathでは上述のcoarse network同様にencoder出力の特徴マップから粗めの補完を行う
    • inpainting pathではencoder出力の特徴マップをCAMに通すことで ”reconstruct”し、新たな特徴マップをcoarse pathと同様のネットワークに通す
    • 推論の時はInpainting pathしか使わないので計算コストが抑えられる
  • coarse pathではL1ノルムのみが、inpainting pathではL1ノルムとGANのロスが適用される
  • 二つのパス両方に対応するようにencoderによる潜在変数空間が学習されることとなる
  • これは憶測だが、真っ黒マスク→ぼんやり補完という写像とCAMによるぼんやり補完→くっきり補完という写像が一致するという仮定のもとでネットワークを共有していて、これによってcoarseとrefineをなにも直列にしなくても、並列化した学習によって同等のクオリティが得られるということだろうか
  • Discriminatorは特徴マップのピクセル単位でReal/Fakeの判定を行うことで、マスクがどんな形であっても対応できる

    f:id:shugo256:20190901153138p:plain

Modified CAM

  • 前節で述べたようにPEPSIでもCAMを用いているが、これについても変更が加えられている
  • 先行研究ではコサイン類似度を用いていたが、これは特徴空間での位置関係を歪めることとなる。これの代わりにユークリッド距離を用いたことで、複雑な画像の補完にも対応できるようになったらしい(下図)

    f:id:shugo256:20190901153054p:plainf:id:shugo256:20190901153133p:plain

  • ユークリッド距離は偏角の差のみならず絶対値の差も考慮するのがいいらしい

  • ただし距離はコサイン類似度と異なって [0, \inf)の値を取りうるので、下のようなtruncated distance similarity score \tilde{d}_{(x, y), (x‘, y‘)}を導入したらしい(要は正規化してtanhに突っ込む)

f:id:shugo256:20190901152803p:plain

  • これも空間歪めまくりな気がするが...

結果として先行研究と同等orそれ以上の結果を、より軽いモデルで実現したようです