Generative Image Inpainting with Contextual Attentionを読んだ

Jiahui Yu, Zhe Lin, Jimei Yang, Xiaohui Shen, Xin Lu, Thomas S. Huang
CVPR2018
[arXiv](https://arxiv.org/abs/1801.07892), [pdf](http://openaccess.thecvf.com/content_cvpr_2018/papers/Yu_Generative_Image_Inpainting_CVPR_2018_paper.pdf), [github](https://github.com/JiahuiYu/generative_inpainting)


# どんなもの？
アテンション用いて周囲のテクスチャを利用する，生成モデルベースの画像の補完手法を提案．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/6d6cfa60-2851-ea9d-444c-ae6f3cdc8838.png)


# 先行研究との差分

- 離れた場所にある，関連するパッチを取得してくるアテンション
- 学習のロバスト性やスピードを向上させるためのテクニック（state-of-the-artの手法で2ヶ月かかる学習を1週間で可能に）
- 多様な画像（顔，織目，風景など）でも質の高い画像補完を実現するネットワーク構造

# 技術や手法のキモ
## 全体像
Figure 2がアテンション無しの提案手法1（baseline model）．

- coarse-to-fineな構造
- 生成画像に対してGlobal critic, Local criticがそれぞれ全体的，局所的な整合性評価
- 整合性評価にはWGAN-GP(Wasserstein GAN Gradient Penalty) lossを使用
- 欠損領域内の点と背景領域の距離に応じてlossを割引（Spatially discounted reconstruction loss）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/fca5b997-fe7b-d057-10e8-20f497f0ef72.png)

- Dilated convolutionで広範囲の情報を畳み込み（dilated convは以下の図を参考）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/53f13ad8-0bb9-83b4-2565-dec2ac12a762.png)
https://towardsdatascience.com/understanding-2d-dilated-convolution-operation-with-examples-in-numpy-and-tensorflow-with-d376b3972b25

## Contextual Attention
Contextual Attention LayerをDilated Convとパラレルに追加．（これがアテンション有りの提案手法2（full model））
相関の大きなパッチを利用してデコーディング．
Attention Mapの色が，画像中のアテンションの場所に対応．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/9e11739c-5e0d-c5c1-3cc1-5c452c804d80.png)

Backgroundのパッチ（3x3）とForegroundを畳み込むことで相関を計算．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/32c1adf8-527d-0b5c-74e6-6600c085b86f.png)




# どうやって有効性を検証したか
## state-of-the-artとの比較
state-of-the-artの手法 [[15](http://hi.cs.waseda.ac.jp/~iizuka/projects/completion/data/completion_sig2017.pdf)]と比較．
まずは比較手法とbaseline model（つまりアテンション無し）を比較．
見た感じ違いは分かりにくいが，baseline modelでは，比較手法で用いられるpost-processing step (image blending) 無しでこの結果が得られる．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/3aec6b0f-55d4-0437-257d-493088a3137f.png)

続いて比較手法とfull model（つまりアテンション有り）を比較．
提案手法は，周囲のテクスチャ，構造を活用することで，よりアーティファクトが少なく自然な補完ができている．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/bc506766-e708-511d-fd3d-1ed53e69238d.png)

人の顔や模様に対する結果．
Attention Mapを見ることで，画像のどの辺りが補完に利用されているか分かる．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/ad3eb67a-186f-4d54-d306-213d7c8f86e7.png)

以下は定量的な評価．
評価指標は，mean $l_1$ error, mean $l_2$ error, peak signal-to-noise (PSNR), total variation (TV)の4つ．
学習ベースの手法は$l_1$, $l_2$, PSNRで良い結果だが，TV lossにおいては直接パッチを貼り付ける手法が最も良い．
（PSNRはピーク信号対雑音比．信号がもたらす最大パワー／劣化をもたらすノイズ．おそらく今回の場合，信号は元画像，ノイズは補完による誤り．）
（total variationは勾配の絶対値を積分したもの．画像内の変化が小さいほど小さな値になる．）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/7b1416b0-4bf4-d302-0c54-fc40c8bdc07b.png)

## Ablation study
その他のアテンションモジュール

- spatial transformer network [[17](https://papers.nips.cc/paper/5854-spatial-transformer-networks.pdf)]
- appearance flow [[42](https://people.eecs.berkeley.edu/~tinghuiz/papers/eccv16_appflow.pdf)]

と比較．
spatial transformer networkは画像中のグローバルなアフィン変換がcoarse過ぎるためうまくいかない（STN-based attention does not work well for inpainting as its global affine transformation is too coarse.）．
appearance flowは2つの画像で酷似したAttention Mapが生成されてしまっている（局所解にハマってしまう）．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/e6307588-fed0-c056-419c-b7fc5d4d9fa6.png)

DC-GAN，LSGANでも実験したが，うまくいかない．
WGAN-GP lossが有効であると分かる．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/13aedb08-bfca-5215-920e-920c50ee41c3.png)

また，図，表は無いが，

- $l_1$ reconstruction lossは必須
- perceptual loss, style loss, total variation lossの有無は，結果の改善に繋がらなかった

とのこと．

# 議論はあるか

- coarse-to-fineな画像補完手法を提案
- 提案したcontextual attention moduleは，関連するbackgroundのパッチを利用し，画像補完の性能向上に繋がる

今後は，

- さらに高解像度な画像補完に拡張

を目指し，提案モデルとcontextual attention moduleは，

- conditional image generation
- image editing
- computational photography tasks (image-based rendering, super-resolution, guided editing)

などへの応用が期待できる．

# 次に読むべき論文
GANを用いた手法

- [AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks](http://openaccess.thecvf.com/content_cvpr_2018/papers/Xu_AttnGAN_Fine-Grained_Text_CVPR_2018_paper.pdf)