Search
Duplicate

[SPADE] Semantic Image Synthesis with Spatial-Adaptive Normalization

Created
11/20/2021, 6:37:02 AM
발표자
이영석
논문 링크
https://arxiv.org/abs/1903.07291

Abstract

Semantic mask를 photorealistic image로 변환하는 기존의 네트워크들에서 normalization layer가 semantic information을 소실시키는 문제가 있음을 보이고, 이를 해결하기 위한 spatially-adaptive normalization layer를 제안한다.
COCO-Stuff, ADE20K, Cityscapes 등의 데이터셋에서 기존의 방법들보다 생성 결과가 좋았고, ablation study를 통해 spatially-adaptive normalization layer가 효과적임을 입증하였다.

Related Work

Unconditional Normalizations

Group Normalization : https://arxiv.org/abs/1803.08494
위 그림은 CNN에서의 몇가지 normalization 방법들이 동작하는 차원 축들을 비교한 것이며, 자세한 설명은 다음과 같다. (CNN이 아닌 다른 NN에서는 channel 축을 feature 축으로 보면 됨)
Batch Normalization
batch, width, height축에서 평균과 표준편차를 구해 각 채널별로 normalization을 수행
μ=1NWHi=1Nj=1Wk=1HxiCjk\mu = \frac{1}{NWH} \sum\limits^N_{i=1} \sum\limits^W_{j=1} \sum\limits^H_{k=1} x_{iCjk}
Layer Normalization
channel, width, height축에서 평균과 표준편차를 구해 각 샘플별로 normalization을 수행
μ=1CWHi=1Cj=1Wk=1HxNijk\mu = \frac{1}{CWH} \sum\limits^C_{i=1} \sum\limits^W_{j=1} \sum\limits^H_{k=1} x_{Nijk}
Instance Normalization
width, height축에서 평균과 표준편차를 구해 각 채널 및 샘플별로 normalization을 수행
mini-batch size가 1인 경우의 Batch Norm과 동일
μ=1WHi=1Wj=1HxNCij\mu = \frac{1}{WH} \sum\limits^W_{i=1} \sum\limits^H_{j=1} x_{NCij}
Group Normalization
몇개의 channel들을 묶어서 group을 지은 후, width, height축에서 평균과 표준편차를 구해 각 그룹 및 샘플별로 normalization을 수행
Layer Norm(모든 채널이 하나의 그룹인 경우)과 Batch Norm(각 채널이 하나의 그룹인 경우)의 중간 형태
μ=1WHi=1Wj=1HxNGij\mu = \frac{1}{WH} \sum\limits^W_{i=1} \sum\limits^H_{j=1} x_{NGij}
위 방법 모두 최적의 normalization 정도를 조절하기 위한 learnable parameters γ,β\gamma, \beta를 학습하는 과정이 포함된다.

Conditional Normalizations

Conditional normalization 방법들은, γ,β\gamma, \beta를 찾는 과정에서 external data를 사용한다는 점이 기존의 normalization 방법들과 다르며, 다음과 같은 방법들이 있다.
Conditional Batch Normalization : https://arxiv.org/pdf/1707.00683.pdf
Conditional Batch Normalization
Batch normalization과 동일하게 normalization 수행한 후, condition 정보를 추가로 사용해 denormalization 수행
위 그림은 VQA task에서 question 정보를 condition으로 사용한 예시이다.
Adaptive Instance Normalization (AdaIN)
Instance normalization과 동일하게 normalization 수행한 후, condition 정보를 추가로 사용해 denormalization 수행
위 식은 style transfer task에서 style 정보(y)를 condition으로 사용한 예시이다.

Semantic Image Synthesis

Spatially-adaptive denormalization

Figure 2는 본 논문에서 제안하는 SPatially-Adaptive (DE)normalization (SPADE)를 나타낸 것이며, 동작 방식은 다음과 같다.
1.
Activation에 대해 channel-wise normalization 수행 (batchnorm과 동일)
2.
Semantic map으로부터 2개의 conv layer를 사용해 1의 결과와 동일한 shape를 가지는 tensor 형태로 scaling, bias값(γ,β)\gamma, \beta)을 계산하고, 1의 결과에 element-wise 연산을 수행하여 activation을 조절 (denormalization)
ii번째 layer에서의 동작 과정은 식 (1)과 같이 나타낼 수 있다.
γc,y,xi(m)hn,c,y,xiμciσci+βc,y,xi(m)(1)\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}) \tag{1}
hn,c,y,xih^i_{n, c, y, x} : ii번째 activation map (normalization 수행 전)
nN,cCi,yHi,xWin \in N, c \in C^i, y \in H^i, x \in W^i
N,Ci,Hi,WiN, C^i, H^i, W^i : batch size, channel, height, width
μci\mu_c^i, σci\sigma_c^i : channel cc에서 activation의 평균과 표준편차
μci=1NHiWin,y,xhn,c,y,xi\mu_c^i = \frac{1}{NH^iW^i} \sum\limits_{n, y, x} h^i_{n, c, y, x}
σci=1NHiWin,y,x((hn,c,y,xi)2(μci)2)\sigma_c^i = \sqrt{\frac{1}{NH^iW^i} \sum\limits_{n, y, x} \Big( (h^i_{n, c, y, x})^2 - (\mu_c^i)^2 \Big)}
γc,y,xi(m)\gamma^i_{c, y, x}(\mathbf{m}), βc,yxi(m)\beta^i_{c, y x}(\mathbf{m}) : learned modulation parameter
m\mathbf{m} : semantic mask
mLH×W\mathbf{m} \in \mathbb{L}^{H \times W}
H,W,LH, W, \mathbb{L} : height, width, semantic label 정수 집합

SPADE generator

Figure 4는 SPADE의 generator를 나타낸 것이며, encoder part가 없는 구조를 가진다.
학습된 modulation parameters가 이미 label layout에 대한 인코딩된 정보를 가지고 있기 때문에 segmentation map이 입력으로 필요하지 않음
encoder가 없는 구조로 인해 네트워크가 가벼우며, random vector를 입력으로 받을 수 있으므로 multi-modal synthesis가 가능하다.
SPADE는 SPADE Residual Block(ResBlk)과 upsampling layer들로 구성된다.
각 residual block마다 다른 scale에서 동작하므로, 입력되는 semantic mask는 downsample해서 넣어준다.
학습에는 pix2pixHD와 동일한 discriminator와 loss function을 사용하며, least squared loss term만 hinge loss로 변경하여 사용하였다는점이 다르다.

Why does the SPADE work better?

SPADE가 잘 동작하는 이유는, 다른 normalization layer를 사용하는 네트워크들보다 semantic information을 잘 보존하기 때문이다.
Figure 3은 1개의 label만 있는 경우의 semantic map이 SPADE와 pix2pixHD의 generator를 통과한 결과를 나타낸다.
pix2pixHD의 경우, label이 다름에도 불구하고 semantic information이 소실되어 동일한 결과를 출력하였다.
pix2pixHD에서 conv layer와 instance norm layer를 통과하는 과정은 다음과 같다.
1.
입력의 모든 값들이 동일하므로, conv layer의 출력은 모두 동일하다.
2.
Instance norm의 출력도 입력 값인 conv layer의 출력이 동일하므로 모두 0이 되고 모든 semantic information은 소실된다.
여기서는 1개의 label만 있는 경우를 예로 들었지만, 일반적인 경우에서의 segmentation mask도 적은 수의 uniform region만을 가지기 때문에, normalization을 통해 정보가 소실된다고 볼 수 있다.
SPADE의 경우, semantic map이 직접 normalization layer를 통과하지 않고 spatially adaptive modulation을 통해서만 전달되기 때문에, semantic 입력 정보가 손실되지 않는다.

Multi-modal synthesis

SPADE의 generator 앞단에 encoder를 추가로 붙여서 real image를 random vector로 인코딩하여 입력으로 주는 방식으로 학습하게되면, VAE와 같은 구조로 학습할 수 있다.
Encoder는 실제 이미지를 받아 style 정보를 인코딩하여 generator에 입력으로 전달
Encoder의 학습에는 KL-Divergence loss를 사용
Generator는 인코딩된 style 정보와 semantic mask 정보를 합쳐서 최종 이미지를 생성
Figure 1은 위와 같은 구조로 학습하여 사용자가 semantic mask와 style image를 수정할 때마다 새로운 이미지를 생성하도록 만든 application의 예시이다.

Experiments

Performance metrics

Semantic Segmentation
DeepLabv2를 사용해 mIoU, pixel accuracy 측정
Fréchet Inception Distance (FID)
생성된 이미지와 실제 이미지의 분포간 거리 측정

Baselines

다음의 3가지 모델들과 성능을 비교
pix2pixHD
cascaded refinement network (CRN)
semi-parametric image synthesis methods (SIMS)

Quantitative comparisons

mIoU, pixel accuracy, FID 모두에서 다른 모델들보다 좋은 성능을 보임
Cityscapes에서는 SIMS의 FID가 더 낮은 값으로 성능이 좋았는데, 논문에서는 SIMS가 real image patch를 사용하기 때문이라고 주장

Qualitative results

Figure 5, 6은 다른 모델들과 생성한 이미지를 비교한 결과이다.
본 논문의 모델이 다른 모델들에 비해 visual quality가 더 좋다.
SIMS도 좋은 quality를 보이지만, semantic mask의 content 보존에서는 좋지 못한 성능을 보인다. (Figure 6의 2번째행 수영장)
Figure 7, 8은 Filickr Landscapes와 COCO-Stuff에서 생성한 이미지들이다.
다양한 장면의 이미지들을 high visual fidelty로 생성할 수 있다.

Human evaluation

Table 2는 AMT를 사용해 다른 모델들과 visual fidelty를 비교한 결과이다.
Segmentation mask와 2개의 모델에서 나온 이미지를 주고 segmentation mask에 더 일치하는 이미지를 고르도록 실험
다른 모델들보다 본 논문의 모델이 더욱 선호도가 높은 결과를 보임

Effectiveness of the SPADE

SPADE가 성능에 미치는 영향을 평가하기 위해 아래의 모델들로 실험을 진행하였다.
pix2pixHD++
pix2pixHD에 저자가 찾은 성능을 향상시키는 모든 방법을 사용한 모델
pix2pixHD++ w/ Concat
pix2pixHD++의 모든 중간 layer에 semantic mask를 concat해준 모델
pix2pixHD++ w/ SPADE
pix2pixHD++에 SPADE를 적용한 모델
Table3는 ablation study를 결과를 보여준다.
SPADE를 사용한 경우, 성능이 향상되었다.
Decoder-style architecture와 전통적인 encoder-decoder architecture 모두에서 성능이 향상됨
Segmentation mask를 중간 layer에 concat해주는 방법보다 SPADE를 사용하는 것이 성능 향상 폭이 더 크다.
Decoder-style SPADE generator가 pix2pixHD++보다 파라미터수가 더 적지만 좋은 성능을 보였다.

Variations of SPADE generator

Table 4는 generator 구성에 따른 성능을 비교한 결과이다.
Input : segmap vs. random noise
(Downsampled) semantic map을 입력으로 주는 경우와 random noise를 입력으로 주는 경우에서 큰 차이가 없음
SPADE만으로도 input mask의 정보를 충분히 전달할 수 있다.
Kernel size
SPADE에서 conv layer의 kernel size를 1x1로 주면 성능이 감소
Semantic map에서 context 정보를 활용하지 못하기 때문
Parameters
Generator의 convolution filter수를 늘려 capacity를 늘려도 큰 변화는 없음
Parameter-free normalizations
SPADE에서 modulation parameter를 통한 denormalization 전에 수행하는 normalization에 따른 성능 비교
Multi-gpu 환경의 경우, Sync BatchNorm이 가장 성능이 좋음
Single-gpu의 경우, BatchNorm이 InstanceNorm보다 성능이 약간 좋음

Multi-modal synthesis

Figure 9는 Flickr Landscape 데이터셋에서 multi-modal로 이미지를 생성한 결과이다.
동일한 segmentation mask로 noise만 다르게 샘플링하여 생성

Conclusion

Input semantic layout을 affine transformation을 통해 활용하는 spatially-adaptive normalization layer를 제안
Spatially-adaptive normalization을 통해 다양한 장면들(indoor, outdoor, landscape, street)에서 semantic image synthesis 성능이 향상됨을 보였다.
Multi-modal synthesis(random noise input)와 guided image synthesis(embedding vector computed by encoder)도 가능하다.