Semantic Image Synthesis with Spatially-Adaptive Normalizationを読んだ

Taesung Park, Ming-Yu Liu, Ting-Chun Wang, Jun-Yan Zhu
UC Berkeley, NVIDIA, MIT CSAIL
CVPR2019
[arXiv](https://arxiv.org/abs/1903.07291), [pdf](https://arxiv.org/pdf/1903.07291.pdf), [GitHub](https://github.com/NVlabs/SPADE), [project page](https://nvlabs.github.io/SPADE/), [YouTube](https://www.youtube.com/watch?v=p5U4NgVGAwg&feature=youtu.be), [GauGAN記事](https://blogs.nvidia.com/blog/2019/03/18/gaugan-photorealistic-landscapes-nvidia-research/)

[gigazine](https://gigazine.net/news/20190319-nvidia-gaugan-changing-sketches/)でインタラクティブなソフトウェア「GauGAN」が紹介されていたので，その元論文を読んでみました．
![treepond.gif](https://qiita-image-store.s3.amazonaws.com/0/259451/3c58b7d9-65a4-3e7e-3fe1-a95d7228753e.gif)
![ocean.gif](https://qiita-image-store.s3.amazonaws.com/0/259451/7eda40d0-e5c4-5f09-cbf0-1d45a52a8d8d.gif)

# どんなもの？
画像生成のための新しい conditional normalization 手法，SPatially-Adaptive (DE)normalization (SPADE) を提案．
segmentation mask からの画像生成タスクで，[pix2pixHD](https://arxiv.org/abs/1711.11585)（[前回記事](https://qiita.com/d-ogawa/items/24f7d102e18c687e3c18)）を上回る成果．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/09b89948-6a54-615c-6932-c4268a58ba58.png)


# 先行研究との差分

- 新たな正規化手法を提案
- 提案するSPADE generator は一般的なencoder decoder networkではなく，**decoder部分のみで構成**される

# 技術や手法のキモ

## SPADE generator
提案するSPADE generator では segmentation mask を各スケールにダウンサンプリングしてからそれぞれの SPADE Residual block に入力する．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/5f76f2d6-a675-ff7c-ae54-47feac61cf93.png)

SPADE Residual block の内部と SPADE は以下のような構造になっている．（SPADE の説明は後ほど）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/e4de73cf-399d-d001-e92e-0e1246a47385.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/16aed7f8-e1b3-2836-c275-75a6415eeec6.png)


## Spatially-adaptive denormalization
提案する SPADE の模式図は以下．
segmentation mask に対して初めのconvでembedding space に射影し，後のconvで $\gamma, \beta$ を計算する．この $\gamma, \beta$ はテンソルで表現される．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/1592f286-c1ad-bd77-da56-e6ed7bc648d9.png)

$h^i$ を $i$ 番目の層の activation，バッチサイズ $N$，特徴マップのチャネル数，縦，横の大きさを $C^i, H^i, W^i$ として，segmentation mask $m$ を入力したときの $n, c, y, x$ ($n\in N, c\in C^i, y\in H^i, x\in W^i$)の activation は以下の式で表される．

```math
\gamma_{c, y, x}^{i}(\mathbf{m}) \frac{h_{n, c, y, x}^{i}-\mu_{c}^{i}}{\sigma_{c}^{i}}+\beta_{c, y, x}^{i}(\mathbf{m})
```
$\gamma_{c, y, x}^{i}, \beta_{c, y, x}^{i}$は segmentation maskから scaling $\gamma$, bias $\beta$ を計算する2層のconv．
$\mu_{c}^{i}, \sigma_{c}^{i}$ はそれぞれ以下の式で表される．

```math
\begin{aligned} 
\mu_{c}^{i} &= \frac{1}{N H^{i} W^{i}} \sum_{n, y, x} h_{n, c, y, x}^{i} \\ \sigma_{c}^{i} &= \sqrt{\frac{1}{N H^{i} W^{i}} \sum_{n, y, x}\left(h_{n, c, y, x}^{i}\right)^{2}-\left(\mu_{c}^{i}\right)^{2}}
\end{aligned}
```

Figure 2中のBatch Norm は Spectral Normalization [[30](https://arxiv.org/abs/1802.05957)]を指す．

SPADE は従来の normalization と比べて semantic information を保持することができるらしく，以下の Figure 3のようにクラスが一様な segmentation mask を入力した際に違いが現れる．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/ed9bcdf9-d495-1392-6d3f-4a628a9d5043.png)

# どうやって有効性を検証したか

## Datasets

- COCO-Stuff [[5](https://arxiv.org/abs/1612.03716)]
    - 118,000 for train, 5,000 for validation
- ADE20K [[48](https://people.csail.mit.edu/bzhou/publication/scene-parse-camera-ready.pdf)]
    - 20,210 for train, 2,000 for validation
- ADE20K-outdoor
    - Subset of the ADE20K
- Cityscapes dataset [[8](https://arxiv.org/abs/1604.01685)]
    - 3,000 for train, 500 for validation
- Flickr Landscapes
    - 40,000 for train, 1,000 for validation

## Performance metrics
生成した画像に対してセマンティックセグメンテーションを行い，その

- mean IoU
- pixel accuracy

で比較する．
セグメンテーションのモデルとして，

- DeepLabV2 [[6](https://arxiv.org/abs/1606.00915), [32](https://github.com/kazuto1011/deeplab-pytorch)] for COCO-Stuff
- UperNet101 [[42](https://arxiv.org/abs/1807.10221)] for ADE20K
- DRN-D-105 [[44](https://arxiv.org/abs/1705.09914)] for Cityscapes

を使用する．
また，学習した分布の距離の指標である

- Frechet Inception Distance (FID) [[15](https://arxiv.org/abs/1706.08500)]

でも比較する．

## Baselines
生成結果は

- pix2pixHD model [[40](https://arxiv.org/abs/1711.11585)，[前回記事](https://qiita.com/d-ogawa/items/24f7d102e18c687e3c18)]
- cascaded refinement network model (CRN) [[7](https://arxiv.org/abs/1707.09405)]
- semi-parametric image synthesis model (SIMS) [[35](https://arxiv.org/abs/1804.10992)]

と比較．

## Quantitative comparisons
以下は定量的な結果をまとめたもの．
どの評価指標においても提案手法ではより良い結果が得られている．
COCO-Stuff における **mIoU では SOTA と比べて 1.5倍，FID においては 2.2倍向上**している．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/2d92c960-722d-5c93-b8fc-0fee2ba75e79.png)

## Qualitative results
以下の Figure 5, 6 はそれぞれのデータセットにおける生成結果．
提案手法では多様なシーンが含まれている COCO-Stuff と ADE20K においてアーティファクトが少なくなり，画像の質が特に向上したらしい．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/c176c518-595b-6534-c65f-ebcf42ac7110.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/edacd2a8-f015-6212-6f9e-83fccbab8df1.png)

以下の Figure 7, 8 は　Flickr Landscape と COCO-Stuff を用いた様々な生成結果例．
提案手法では多様なシーンが忠実に再現できていることが分かる．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/f871904b-194e-a784-0cce-e03324bc40c4.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/e49af38c-8c08-1733-d7f3-4d40077966ee.png)


## Human evaluation
以下は人間にどちらのモデルで生成した画像が好ましいかを選んでもらった結果．
どのデータセットでも提案手法が好ましいと選ばれているが，とりわけチャレンジングなデータセットである COCO-Stuff と ADE20K において際立っている．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/bfa65f08-47a8-f414-d320-fdf6f806a0d5.png)


## The effectiveness of SPADE
以下の Table 3 は微妙に変化，例えば

- pix2pixHD に様々な enhancement を加えたもの（pix2pixHD++）
- pix2pixHD++ に concatenate で segmentation mask を入力したもの（pix2pixHD++ w/ Concat）
- pix2pixHD++ に SPADE でsegmentation mask を入力したもの（pix2pixHD++ w/ SPADE）
- generator の conv filter の数を変化させたもの（compact ~）

と提案手法（decoder w/ SPADE）を比較した結果をまとめたもの．
表の上側が decoder-style architecture，下側が encoder-decoder architecture．
どちらの architecture においても，SPADEを用いたものの性能が大きく上回っていることが分かる．
この表から

- segmentation mask の **concatenate と SPADE とでは，異なる結果につながる**
- decoder-style SPADE generator の**コンパクトモデル（compact decoder w/ SPADE）でも比較手法を上回る**

ということが分かる．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/7b55688c-a054-ac76-5e72-78fbf63be7c0.png)


## Variations of SPADE generator
以下の Table 4 は様々な要素，パラメータを変化させた場合の結果．
提案手法では表中の太字の要素が採用されている．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/b5848893-85f6-6684-83eb-01608e9e6377.png)

## Multi-modal synthesis
以下の Figure 9 は multimodal image synthesis の結果．
同じ segmentation mask を入力しても，異なるノイズをサンプリングするため，様々な生成画像が得られる．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/5a0e3461-049f-6d3d-3e6c-ac96b4e4a537.png)

# 議論はあるか

- spatially-adaptive normalization を提案
- 提案した生成モデルでは indoor, outdoor, landscape, street scenes など多様なシーンの photorealistic な画像が生成できる
- multi-modal synthesis, guided image synthesis に応用可能