Image-to-Image Translation with Conditional Adversarial Networks
1. どんなもの?
cGANを使ったimage-to-imageの変換において一般化した(general-purpose)解決策を提示した。
2. 先行研究と比べてどこがすごいの?
CNNでのアプローチではoutputがぼやけてしまい、生成画像の本物らしさがかけてしまっていた。それに対してGANを使うとうまくいくことが分かっていて、 特定のアプリケーションにフォーカスした研究は行われていた。
この研究では、特にcGANを使い、image-to-imageを一般対象の解決策を提案した。
3. 技術や手法の”キモ”はどこにある?
generatorとdiscriminatorのアーキテクチャが既存のアプリケーション特化のアプローチとは異なる。 generatorは”U-net”と呼ばれるものをベースに、discriminatorは”PatchGAN”と呼ばれるものをベースに構築される。
generatorの”U-net”は下記のほうの図を参照。discriminatorの”PatchGAN”は特定のスケールのpatchで画像を判定する。
fullサイズのスケールではなくても有効であることを示す。
また、cGANに対してL1 distanceを追加することがどのような影響を与えるかの議論もされている。L1 distanceを追加するのは、画像がぼやけるのを防ぐためで、 input画像と生成画像の距離にあたる。
以下がconditinalGANの式。
以下がL1 distanceの式。
以下がL1 distance + conditionalGANの式。
conditionalにするイメージ↓
Encoder-DecoderのモデルをU-Netに。レンダリングする画像が根本的にinput画像の構造と同じような構造をとっているのでEncoder側の層をDecoder側に結合させる。(bottlenefck layer)
4. どうやって有効だと検証した?
AMT(人手)とFCNスコア。
AMTはL1とL1+cGANの比較が載っていて、Map->Photoへの変換では大きな精度向上が見られた。Photo->Mapだと比較的小さな精度向上になり、これは小さなミスが目についてしまうのが原因であろうと述べている。 FCNスコアではL1よりもcGANやL1を組み合わせたモデルのスコアが向上することが示された。
(感想) 素のcGANとL1+cGANとの比較を主張しているわけではないようで、L1をつけたからといって単純に精度が向上するというのはいえなそう。 論文中の画像を見ると互いに長所・短所ありそうな感じ。少なくともL1より明らかによくなっているし、このcGANを使えばうまくいっているということは分かる。 結局、generatorとdiscriminatorの工夫でcGANがうまくいったよということが示したい模様。
5. 議論はあるか?
semantic segmentationに利用しようとすると、L1がcGANよりよいパフォーマンスを出す。outputがあまり複雑ではないものはむしろL1のほうが結果がよく、 素のcGANより、cGAN+L1のほうが結果がよい。というわけで、L1を意味あるよねということも言ってる。