Paper : Semantic Image Synthesis with Spatially-Adaptive Normalization
Code : github.com/NVlabs/SPADE
저자들은 input semantic layout이 주어졌을 때, 실사에 가까운 이미지를 합성하는, 간단하지만 효율적인 layer spatially-adaptive normalization을 제안합니다.
기존의 방법들은 segmantic layout을 다이렉트하게 뉴럴넷의 input으로 투입해 연속된 [convolution -> normalization -> activation(non-linear function)] 들로 처리됩니다.
하지만, 이는 의미 있는 정보(semantic information)을 날려버리는 경향이 있습니다.
저자들은 이 다이렉트한 방법이 normalization layers 관점에서 suboptimal하다는 것을 보여줍니다.
이러한 문제를 다루기 위해, 저자들은 input layout을 "spatially-adaptive(공간적으로 적응하고), learned trasnformation(학습된 변환)을 통해 normalization layers(정규화 계층)에서 activations을 조작하기 위해" 사용할 것을 제안합니다.
저자는 해당 방법이 현존하는 방법들에 비해 다양한, 다루기 힘든 datasets에 대해서도 상당한 성능이 있음을 보여줍니다.
특히, visual fidelity and alignment 관점에서 뛰어난 성능을 보였습니다. 마지막으로, 저자의 모델을 이용하면 일반 사용자(user)또한 semantic과 style을 모두 다룰 수 있게 됩니다.
Conditional image synthesis는 특정한 입력 이미지를 조건으로 받아 사진과 유사한 이미지를 생성하는 task입니다.
주요 연구들은 단일 이미지로부터 정보들을 모아 출력 이미지를 연산합니다(예를 들어, Image Analogies).
최근 연구들은 neural network를 이용해 다이렉트하게 매핑을 학습합니다.
딥러닝을 이용하게 되면 상당히 빠를 뿐만 아니라 별도의 DB도 필요하지 않습니다.
Image Analogies
저자들은 그 중에서도 conditional image synthesis에 관심을 가지는데, 이는 semantic segmentation mask를 photorealistic image로 변환하는 방식입니다.
이런 형태는 image editing이나 content generation과 같은 task로 널리 적용될 수 있습니다.
저자들은, 이를 semantic image synthesis라 칭합니다.
semantic segmentation mask : pixel마다 label이 부여되어 있는 mask. input image와 사이즈가 같습니다.
본 연구에서는 우선 conventional network architecture(convolution, normalization, nonlinearity network가 연속적으로 쌓여있는 전통적인 딥러닝 구조)가 sub-optimal할 수 밖에 없는 이유를 보여줍니다.
구체적으로는, 딥러닝 구조 내에 있는 normalization layer가 입력 semantic mask에 포함된 정보를 날려버리기 때문입니다(wash away).
이런 wash away 문제를 다루기 위해 저자들은 spatially-adaptive, learned transform을 통과한 input semantic layout을 사용해 activation을 조절하고, 효율적으로 의미 있는 정보(semantic information)를 네트워크 전체에 전파시킬 수 있는 conditional normalization 층인 spatially-adaptive normalization을 제안합니다.
To address the issue, we propose spatially-adaptive normalization, a conditional normalization layer that modulates the activations using input semantic layouts through a spatially adaptive, learned transformation and can effectively propagate the semantic information throughout the network.
저자들의 방법은 multi-modal, style-guided image synthesis 또한 지원하기 때문에 label을 컨트롤하고 다양한 output을 반환하는 등의 태스크도 할 수 있습니다.
Deep generative models은 이미지 합성을 학습할 수 있습니다. 주로, Generative Adversarial Networks(GAN)이나 Variational autoencoder(VAE)가 있습니다.
저자들의 모델은 GANs을 기반으로 하나, conditional image synthesis task에 더욱 방점을 둡니다.
학습 목표는 구별자가 알아볼 수 없을 정도의 고퀄리티 이미지를 생성자가 생성하는 것입니다.
Conditional image synthesis는 input data의 종류에 따라 다양한 형태로 존재합니다.
예를 들어, class-conditional model은 category labels이 주어졌을 때 이미지를 생성하는 법을 배웁니다.
주로 text를 기반으로 이미지를 생성하는 모델이 많습니다.
다른 예시로는, conditional-GANs을 기반으로 하는 image-to-image translation이 있습니다.
이는 image을 기반으로 또 다른 image를 생성합니다.
전통적인 non-parametric methods와 달리 learning-based(학습 기반) 모델들은 test time inference가 빠를 뿐만 아니라 더욱 현실적인 이미지를 생성해냅니다.
저자들의 모델은, segmentation masks를 photo-realistic images로 변환하는 역할을 합니다.
또한, 학습 데이터에는 이미지와 그에 상응하는 segmentation masks가 있다고 가정합니다.
데이터 : =[image, segmentation mask]
(저자들이 사용하는 방식과 대비되는) Unconditional normalization layers는 현대 딥러닝 네트워크의 아주 중요한 구성요소 였습니다.
가령, Alexnet에 쓰인 Local Response Normalization이나, Inception-v2 network에 쓰인 Batch Noramlization Layers 등과 같이 말이죠.
그 외에도 InstanceNorm, Layer Normalization, Group Normalization, Weight Normalization 등이 있습니다.
이런 정규화 레이어들은 따로 외부의 데이터에 의존하지 않기 때문에 unconditional normalization layers라고 부릅니다.
Conditional normalization layers에는 Conditional BatchNorm이나 Adaptive Instance Normalization 등이 포함됩니다.
전자는 style transfer task에 쓰였고, 후자는 굉장히 많은 비전 태스크에 쓰였습니다.
위에서 말했다시피 이러한 conditional noramlization layers는 외부의 데이터(externel data)를 필요로 합니다. 과정은 아래와 같이 이루어집니다.
layer activations은 zero-mean, unit-deivation으로 정규화됩니다.
그 후, 외부의 데이터를 통해 추론된 parameter를 갖는 learned affine trasnformation를 이용해 1.에서 정규화된 activation을 denormalized합니다.
Conditional Normalization에서는 normalization 이후 denormalization part가 conditional 하게 적용되는 것입니다.
Style transfer tasks에서는 affine parameter가 output의 global한 style을 컨트롤하기 위해 쓰이기 때문에 spatial-coordinates(공간좌표)를 따라 균등합니다.
반면, 저자들이 제안한 정규화 레이어에서는 semantic masks로부터 image 합성하는 것에 알맞게끔 마스킹하는 spatially-varying affine transformation을 적용합니다.
간단히 말하면, 기존의 style-transfer task는 어차피 이미지 전체의 '스타일' 자체를 바꾸는 것이기 때문에 공간 좌표에 따라 affine transformation의 parameter가 일정해도 상관 없지만, 저자들의 방법은 semantic mask로부터 이미지를 생성해야 하기 때문에 경계라든지, 디테일한 부분까지 고려하기 위해 공간 좌표에 따라 각기 다른 parameter를 사용해 denormalization이 진행된다는 것입니다.
Wang et al 또한 image super-resolution을 위해 아주 밀접한 방법을 제안했습니다(Wang et al, Recovering realistic texture in image super-resolution by deep spatial feature transform). Wang의 방법이나, 저자의 방법이나 semantic inputs을 조건으로 하는 spatially-adaptive modulation layers를 기반으로 구축된 방법입니다. 다만, Wang의 방법은 semantic한 정보를 super-resolution에 통합하는 것에 목표를 두는 반면, 저자들의 방법은 style, semantic disentanglement를 위한 generator를 만드는 데 목표를 둡니다.
style 정보와 semantic 정보를 잘 걸러내서 각각 유의미하게 활용한다는 느낌으로 받아들이면 될 것 같습니다.
저자들은 정규화된 activations를 조절하는 맥락에서 semantic한 정보를 제공하는 것을 목표로 합니다. 또한, semantic한 maps을 다양한 스케일로 사용해서, coarse-to-fine generation을 가능하게 합니다.
저자들은 조악한( global) 스케일부터 세세한( local) 생성 모두 고려합니다.
이와 관련해서 디테일한 내용은 Wang et al, Recovering realistic texture in image super-resolution by deep spatial feature transform 를 참고하세요.
우선, 해당 연구가 제안하는 방법의 핵심은 아래 그림으로 요약할 수 있습니다.
위의 그림은 segmentation mask가 Batch-Normalized된 activation에 Denormalization을 수행하기 위해 필요한 텐서 를 얻는 과정입니다.
원래 기존의 conditional normalization 연구들에서는 공간좌표까지 고려하지는 않기 때문에 위의 는 벡터로 이루어지는 게 보통이지만, 본 연구에서는 공간좌표까지 더해 (3차원?) 텐서가 됩니다.
더욱 자세히 살펴봅시다. 우선 노테이션을 아래와 같이 정의합시다.
: semantic segmentation mask
: 이미지의 높이(height)
: 이미지의 너비(width)
2차원 텐서인 내의 각 값은 픽셀의 label을 뜻합니다.
ex) (50,150) 위치의 픽셀에 존재하는 물체는 산이다.
--> m[50,150]=10 (산의 index가 10일 때)
결국 해당 task의 목표는 input segmentation mask 을 실사와 같은 이미지로 변환시키는 mapping function을 학습하는 것입니다.
아래와 같은 노테이션을 추가적으로 정의합시다.
아래의 layer는 모두 convolution layer를 뜻합니다.
: -th layer의 activations
: -th layer의 channel 개수
: -th layer 내 activation map의 높이(Height)
: -th layer 내 activation map의 너비(Width)
또한, 배치사이즈는 이라 가정합니다. 위의 또한 배치사이즈가 포함된 개념입니다.
또한, 앞으로 저자들의 방법인 SPatially-Adaptive (DE)normalization을 SPADE라 칭하겠습니다.
(논문 외 내용)
※ 배치정규화
자세한 내용 : https://eehoeskrap.tistory.com/430 참고
원래의 배치정규화에서는 scale로 , bias로 ()를 사용하지만, 본 연구에서는 공간좌표가 포함된 개념으로 대치됩니다.
※다양한 정규화 기법들의 차이
우선, activations은 배치 정규화와 유사하게 Channel-wise한 방식으로 정규화가 수행되고, 학습된 scale과 bias로 조절합니다.
즉,
일 때,
activation value는 아래와 같이 정의됩니다.
이 때 는 noramlization 이전의 activation이고(위치 ), 는 각각 channel 에서 activations의 평균과 분산입니다.
위의 normalization에 쓰이는 의 경우 하나의 채널, 하나의 레이어 하에서 미니 배치 , 모든 공간좌표()의 값들의 통계량이 되는 것입니다. 즉, 배치 정규화와 유사합니다(사실 같음).
또한, 가장 핵심적인 변수인 와 는 학습되는 normalization layer의 조절 파라미터입니다. 배치 정규화와는 다르게 input segmentation mask에 의존하며, 위치 에 따라서 변하는 값을 가집니다.
즉, , 라는 노테이션은 input segmentation mask인 을 받아, -th layer's (위치 에서의) activations을 조절하는 scaling value와 bias value라 할 수 있습니다.
(segmentation mask 을 받아 activations 를 조절)
본 연구에서는 이 함수를 간단한 convolution layer를 두 개 연결해 사용했으며, appendix에 자세한 아키텍처가 나와있습니다.
실제로, 해당 normalization method는 다른 normalization method(conditional BatchNorm, AdaIN 등)의 일반화된 버전이라고 할 수 있습니다. 가령, 공간좌표에 따라서 scale and bias values가 변하지 않게끔 고정하고, 을 받는 함수를 image class label를 받게끔 한다면 conditional BatchNorm이 됩니다.
결국, 본 연구에서는 input segmentation mask 을 받기 때문에 semantic image synthesis task에 훨씬 잘 맞는 것이겠죠. 만약 이미지 라벨을 주로 조건으로 사용하는 task였다면 차라리 Conditional BatchNorm이 더욱 잘 맞을 지 모릅니다. 공간 좌표에 따라 변하는 조건을 고려할 필요가 없다면요.
우선, SPADE 방법을 사용한다면, 이미 학습된 modulation parameter()가 label layout에 대해서 충분한 정보를 인코딩했다고 볼 수 있기 때문에 generator의 첫번째 레이어에 segmentation map을 넣어줄 필요가 없습니다.
즉, generator의 encoder part를 삭제해줍니다.
Segmentation map을 받아 사용하는 Encoder-Decoder 아키텍처랑(VAE)은 다릅니다(논문 내 APPENDIX 참고).
이런 구조는 아래 연구들과 같이 최근 아키텍처들에도 널리 쓰이고 있습니다.
- Image-to-image translation with conditional adversarial networks.
- High-resolution image synthesis and semantic manipulation with conditional gans.
조금 더 가벼운 네트워크를 만들 수 있습니다.
또한, 기존의 class-conditional generator*들과 유사하게, SPADE 모델의 generator 또한 input으로 random vector를 받을 수 있습니다. 이로 인해 아주 간단하고 자연스럽게 multi-modal synthesis**를 구현할 수 있게 됩니다.
이미지든, 텍스트든, 음성이든 정보를 벡터로만 인코딩할 수 있다면 해당 정보를 활용한 이미지 생성을 진행할 수 있다는 것.
* : class-conditional generator
- L. Mescheder, A. Geiger, and S. Nowozin. Which training methods for gans do actually converge? In International Conference on Machine Learning (ICML),
- T. Miyato and M. Koyama. cGANs with projection discriminator. In International Conference on Learning Representations (ICLR), 2018
- H. Zhang, I. Goodfellow, D. Metaxas, and A. Odena. Self attention generative adversarial networks. In International Conference on Machine Learning (ICML),
** : multi-modal synthesis
- X. Huang, M.-Y. Liu, S. Belongie, and J. Kautz. Multimodal unsupervised image-to-image translation. European Conference on Computer Vision (ECCV),
- J.-Y. Zhu, R. Zhang, D. Pathak, T. Darrell, A. A. Efros, O. Wang, and E. Shechtman. Toward multimodal image-to-image translation. In Advances in Neural Information Processing Systems, 2017.
SPADE의 generator architecture는 아래와 같습니다.
우선, upsampling layer가 포함된 Resnet 블록을 일부 사용합니다. 모든 normalization layer의 modulation parameter는 SPADE를 통해 학습됩니다. 매 residual block이 다른 스케일에서 수행되기 때문에, 공간적인 해상도를 맞추기 위해 semantic mask를 downscale해줍니다.
기존의 image-to-image translation 네트워크에서 쓰이는 downsampling layer를 없앰으로써 적은 개수의 파라미터로 좋은 성능을 보였다고 합니다.
저자들은 연구 pix2pixHD*에 쓰인 loss function과 multi-scale discriminator를 그대로 사용하되, least squared loss term을 hinge loss term으로 대체합니다.
(논문 외 내용)
* pix2pixHD
Wang et al, High-resolution image synthesis and semantic
manipulation with conditional gans. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR).
해당 연구가 pix2pixHD 연구와도 비슷한 부분이 많기 때문에 해당 연구를 잘 이해하기 위해선 pix2pixHD 연구를 병행해서 보는 것이 좋습니다. 해당 글에서는 Generator를 제외하고 Discriminator 관점에서 Multi-scale Discrimator가 무엇인지만 다루도록 하겠습니다.
고퀄리티, 고해상도의 이미지 합성 태스크를 다루기 위해선 고해상도의 실제 이미지 또는 생성 이미지를 판별할 필요가 있습니다. 이를 제대로 수행하기 위해서 판별자는 넓은 receptive field를 가져야 하는데, 이를 위해 network를 깊게 쌓고 더욱 많은 convolutional kernel을 사용한다면, 이는 parameter, memory, capacity, overfitting 등의 문제를 동반하게 됩니다.
이를 해결하기 위해 Multi-scale Discriminator를 사용할 수 있습니다. 생성자에 대응하는 판별자를 여러 개 사용하되, 기본적인 아키텍처는 같고, 단지 image-scale만을 달리합니다.
즉, 원본(및 생성) 이미지에 대해 훈련하는 판별자와, 원본(및 생성) 이미지를 1/2배, 1/4배로 downsample한 판별자를 추가함으로써 판별자 네트워크를 깊게, 넓게 구성할 필요 없이 corase-to-fine한 receptive field를 구성할 수 있게 됩니다.
반대로 말하면 generator에게도 corase-to-fine한 피드백을 줄 수 있다는 것이겠죠.
자세한 내용은 해당 논문의 4p를 참고하시길 바랍니다.
결론부터 말하자면, 다른 정규화 레이어들에 비해 semantic information을 잘 보존할 수 있기 때문입니다.
구체적으로 말하자면, 요즈음 SOTA 성능을 보이는 conditional image synthesis models 이라면 필수적으로 쓰이는 InstanceNorm(3.1.A. 참고)은 uniform하거나 flat한 semantation mask에 적용될 경우 semantic information을 다 날려버립니다.
예를 들어, sementation mask에 [convolution→normalization]을 적용하는 간단한 모듈을 생각해봅시다.
추가적으로, segmentation mask는 single label과 함께 input으로 들어간다 가정합시다(즉, 모든 pixel이 하나의 label-예를 들어 sky).
이 경우, convolution outputs 또한 다시 uniform values를 갖게 됩니다. 라벨이 달라진다면 또 다른 output을 갖겠지만 역시나 uniform한 values를 갖겠죠.
그 후, InstanceNorm이 output에 적용된다면 정규화된 activation은 어떤 라벨이 주어지든 간에 항상 0이 됩니다.
를 특정 layer의 activations이라 가정하면,
이므로 정규화를 수행하면 0이 되겠지요.
따라서, semantic information은 완전히 날라갑니다.
이는 상당 수의 generator 아키텍처라면 발생할 수 있는 한계로, 모든 intermediate layers에서 semantic mask를 concat해 사용하는 pix2pixHD나 그 변형들에 대해 생길 수 있습니다.
semantic mask에 convolution-normalization을 적용한다면요.
pix2pixHD 모델의 Generator에서 중간중간의 모든 layer에 semantic mask를 concat해 같이 넣어줌으로써 mask 정보를 활용하는 구조를 만들 수 있습니다. 그럴 경우 발생할 수 있는 한계에 대한 이야기입니다.
이에 대한 예시가 아래 그림입니다(pix2pixHD).
대조적으로, Spade Generator에서 segmentation mask는 normalization 없이 spatially adaptive modulation을 통과합니다. 오직 이전 레이어의 activation만 정규화됩니다.
저자들의 방법은 다른 모델들처럼 semantic mask를 단순히 concat해서 정규화를 진행하는 것이 아니라, semantic mask를 convolution layer에 돌려 denormalization하는 데 사용하는 scale, bias를 얻고(아래의 ), normalization은 그냥 이전 layer의 activation에만 적용된다는 얘기입니다(아래의 ).
따라서, SPADE Generator는 semantic information을 더 잘 보존할 수 있습니다.
semantic input information을 잃지 않고 정규화를 할 수 있게 됩니다.
저자의 방법은 input으로 random vector를 받을 수 있기 때문에 multi-modal synthesis의 간단한 방법을 제공해주기도 합니다.
즉, real-image를 random vector로 처리해 이 random vector를 generator로 전달할 수 있습니다.
엄연히 따지면 random은 아니긴 합니다만, 전달을 위해 random vector로 표기한 듯 합니다.
해당 encoder와 generator로 VAE를 구축할 수 있는데, 여기서 encoder는 image의 style을 인코딩(or capture)할 수 있고, generator는 이 encoded style과 segmentation mask informtation을 SPADE를 통해 결합해 original image를 reconstruct할 수 있습니다.
test time에서 encoder는 style guidance network로서 기능할 수 있어 target image의 style을 포착하게 된다.
training time에서는 KL-Divergence loss term을 더해야 합니다(여기 참고).
여러 데이터셋에 대해 실험을 수행했습니다.
저자들은 각각의 데이터 셋에 대해 현존하는 좋은 모델들 또한 학습해 비교를 진행했습니다.
평가를 위해 저자들은 이전 연구에서 사용했던 프로토콜을 채택합니다.
즉, 합성된 이미지에 대해 semantic segmentation을 수행하고, 이를 ground truth와 비교하게 됩니다.
기존의 segmentation map을 이용해 realistic-image를 합성하게 된다면 부자연스러운 합성이미지의 경우 다시 segmentation을 적용할 경우 ground-truth mask랑 달라질 것입니다.
semantic segmentation model이 잘 학습됐을 경우, 합성 이미지의 퀄리티가 좋을 수록 ground truth와 유사한 segmentation mask를 뽑아낼 수 있을 것입니다.
위의 방법으로 masks를 비교할 때에는 mean-Intersection-over-Union(mIoU)와 pixel accuracy(accu)를 모두 사용합니다.
SOTA Semantation networks로는 DeepLabV2, UperNet101, DRN-D-105 모델을 각각 COCO-Stuff, ADE20K, Cityscapes datasets에 대해 적용했습니다.
segmentation performance metrics을 위해 mIoU와 accu를 사용한 것 외에도 실제 이미지의 분포와 합성된 이미지의 분포 간 거리를 측정하기 위해 Frechet Inception Distance (FID)를 사용했습니다.
생략
SPADE의 정량평가를 위해 SPADE를 제외하고 pix2pixHD의 성능 향상에 도움이 되는 모든 테크닉을 결합한 pix2pixHD++를 도입해봅시다.
추가적으로, 모든 intermediate layers에서 segmentation mask를 input으로 받는 모델을 학습하고, 이를 pix2pixHD++ w/Concat이라 가정합시다.
이 때 segmentation mask는 channel 차원에서 feature concatenation을 통해 중간 레이어의 input으로 주어집니다.
위에서 다뤘다시피 이렇게 concat을 통해 semantic mask를 제공해주는 경우에 SPADE가 아니라면 semantic information이 wash away되는 현상이 발생합니다.
마지막으로, 제일 강력한 베이스라인인 pix2pixHD++에 SPADE 또한 적용한 모델을 pix2pixHD++ w/SPADE라 칭합시다.
성능은 아래와 같이 잘 나왔습니다.
또한 위의 pix2pixHD에 쓰인 전통적인 encoder-decoder architecture 뿐만 아니라, decoder-style architecture를 실험한 아래 테이블에서도 (Table. 3의 다른 모델과 비교해서) 좋은 성능을 보였습니다.
위의 Table 3. 에 따르면 SPADE의 나름의 대안(?)인 "Intermediate layers에 segmentation mask를 concat하기!"는 SPADE에 준하는 성능을 보이지 못했음을 알 수 있습니다.
심지어 decoder-style의 SPADE generator는 파라미터가 더 적었음에도 불구하고 strong baselines들보다 성능이 좋았습니다.
해당 단락은 Table 4와 더욱 연관이 깊습니다.
위에서 저자들의 방법을 적용한, encoder가 없는 only Generator의 여러 변형을 볼 수 있습니다.
첫 번째로, input의 종류에 따라 아래와 같이 나뉩니다.
1. random noise
2. downsampled segmentation map
이에 따라 SPADE는 semantation map의 정보를 활용하지 않더라도 모델 자체만으로도 input mask에 대해 충분한 정보를 제공하는 것을 알 수 있습니다.
Generator의 input이 random noise를 받되, semantic mask에 대한 정보는 중간중간 Layer에 주어집니다!
input noise는 단순히 이미지의 전반적인 style을 결정할 뿐이므로 input으로 segmentation map에 대한 정보를 받지 않아도 됩니다.
당연히 잘 학습됐을 경우입니다.
두 번째로, modulation parameter를 적용하기 전에 파라미터가 필요 없는 normalization layers의 타입을 변경시켜보았습니다.
다양한 Normalization methods들에도 (SPADE의 Denormalization 방법이) 잘 적용됩니다.
세 번째로, label map에 적용되는 convolutional kernel size를 변경했을 경우 의 kernel이 성능을 가장 해치는 것을 볼 수 있었습니다.
아마 kernel로는 label의 context를 활용하기가 어렵기 때문이겠죠.
마지막으로, convolutional filters의 개수를 변경함으로써 generator의 capacity를 수정해보았습니다.
appendix에 더욱 많은 변형들과 ablations study를 볼 수 있습니다.
위의 그림에서 볼 수 있다시피, 저자들은 Flickr Landscape dataset에 대해 multi-modal image synthesis를 수행했습니다.
같은 segmentation mask에 대해 다른 noise inputs를 샘플링함으로써 다양한 output을 생성할 수 있었습니다.
Generator의 first layer는 input으로 noise vector를 받고, intermediate layers는 segmentation mask를 받아 를 얻게 됩니다.
input으로서 Generator의 first layer에 주어지는 벡터와, (사실상 input이긴 하지만) Intermediate layers에 information으로서 주어지는 segmentation map은 구분할 필요가 있습니다.
역시 Appendix에 더 많은 결과가 있습니다.
4.11.에 나온 것과 다르게 일반 사용자가 직접 segmentation mask를 그릴 수도 있고, 최종적인 output을 결정하기 위해 style image를 직접 임베딩해 노이즈로 제공해줄 수도 있습니다.
(즉, encoded style vector + segmentation map)
(4.11.에서는 그냥 noise input + segmentation map)
위의 그림을 보면, user가 다른 segmentation masks를 그릴 경우, 저자들의 모델은 그에 상응하는 풍경 이미지를 렌더링해주는 모습을 볼 수 있습니다.
더군다나, 저자들의 모델은 user가 style image를 선택해 output image의 global한 appearances를 컨트롤할 수 있습니다.
구체적으로 image encoder로 연산한 style image의 embedding vector를 input noise로 대신 사용함으로써 위와 같이 원하는 output을 얻을 수 있게 됩니다.
위의 본문에 첨부하지 않았던, 논문 내에 존재하는 생성 결과들입니다.
저자들은 normalization layers에서 affine transformation을 수행하는 동안에 의미 있는 input layout(segmentation mask)를 활용하는 데 도움이 되는 SPatially-ADaptive (DE)normalization(SPADE) 방법을 제안합니다.
제안된 정규화 방법은 실내, 실외, 풍경, 거리 배경들을 포함해 다양한 풍경에 대한 photorealistic output을 생성할 수 있는 semantic image synthesis model로 이어집니다. 이를 통해 multi-modal synthesis와 guided image synthesis와 같은 활용도 가능해졌습니다.
모델의 구체적인 구조를 이해하기 위해서는 APPENDIX를 꼭 참고하시길 바랍니다 !! 여기서는 우선 전반적인 아키텍처만 첨부하도록 하겠습니다(후에 정리 예정).