agatan / paper-reading-notes

読んだ論文の管理とメモ置き場
5 stars 0 forks source link

Unsupervised Object Segmentation by Redrawing #29

Open agatan opened 5 years ago

agatan commented 5 years ago

教師なし object segmentaion を GAN でやる話。

アイディア

segmentaion が完璧にできたとしたら、各 region ごとに画像を render して合成することで、元画像と同じようなデータが生成できるはず。 そこで、

Image → F (segment function) → region map → G (generator function) → Generated Image → D (discriminator function)

を end-to-end で学習することで、良い object segmentor F を学習する。

image

工夫

↑の構造で単純に学習すると 2 つの理由から trivial な解に陥る可能性が高い。

  1. 意味のある region を選べず、入力画像を無視した region map を生成してしまう
    • 例えば全入力に対して常に一定の region map を生成しちゃうなど
  2. すべてを背景であると segmentation することを学習してしまう

そこで制約を 2 つ追加する。

  1. region map の n 番目の region だけを生成画像にし、残りは元画像の pixel をそのまま使う
    • generator は元画像自体は見ず、region map だけを頼りに画像を生成するので、意味のある region map を作れていないと合成したときに一貫性のある画像は作れない
  2. 合成結果の画像から、「 n 番目の region 画像を生成するために使った z 」を推測できるようにする
    • ↑の概要図でいう δ
    • 「z を使って作られた画像から z の情報を復元できない」 = 「z に依存しない画像が生成されてしまっている」 = 「region map が空 or すべてを背景と認識してしまっている」

実装はかなり複雑に見える。(こんな複雑なもの学習安定しないだろうし、適当な GAN architecture では全然うまくいかないのだろうなという感じ) 「制約を含めてもなお empty mask を生成するようになってしまうことがあるが、そうなったら自動で検知して初期化からやりなおすようにした」と書いてあって壮絶。