Arbitrary Style Transfer in Real-time with Adaptive Instance Normalizationgit
2019-10-10 10:50:19github
Officical Torch Code: https://github.com/xunhuang1995/AdaIN-style 性能
Unofficial PyTorch Code: https://github.com/naoto0804/pytorch-AdaIN 學習
Unofficial PyTorch Code: https://github.com/irasin/Pytorch_Adain_from_scratch spa
1. Background and Motivation:orm
本文提出一種快速的能夠適應任何一種 style 的圖像轉換技術。首先先來回歸一下常見的幾種 Normalization 技術:blog
1). Batch Normalization: ci
給定輸入的一個 batch x,BN 對每個特徵通道進行歸一化操做:get
其中,gamma 和 beta 是從數據中學習的仿射參數,mu 和 delta 是均值和方差,是分別沿着 batch size 和 spatial dimension 方向對每個特徵通道進行的操做:
BN 在訓練的時候利用 mini-batch 統計來學習,在 inference 的階段就用流行的統計來替換他們,這樣就致使了 training 和 inference 的不一致。後續也有不少對該問題的改進。
2). Instance Normalization:
後來出現的 IN layers 能夠顯著的改善 style transfer 的性能,即:
與 BN layer 不一樣的是,此處的均值和方差是分別對 channel 和 each sample 沿着空間維度計算獲得的:
另外的一個與 BN 的不一樣之處是:training 和 inference 是一致的。
3). Conditional Instance Normalization:
該方法對每一種 style 都學習一種參數,即:
驚奇的是,該方法能夠產生徹底不一樣 style 的圖像,可是用的是同一組網絡參數,僅僅是 IN layer 的 affine parameters 不一樣。
2. Interpreting Instance Normalization:
略
3. Adaptive Instance Normalization:
既然 IN 能夠根據 affine parameters 將輸入歸一化爲 single style,那麼,有沒有可能,咱們給定多種自適應的 affine transformations 來生成任意給定類型的圖像呢?基於該動機,做者對 IN 的技術進行了拓展,提出了 Adaptive Instance Normalization (AdaIN)。AdaIN 接收一張 content input X 和 一張 style input Y,而且簡單地對 X 進行 channel wise mean and variance 使其能夠匹配 Y。與 BN, IN, CIN 不一樣,AdaIN 沒有可學習的 affine parameters。其根據輸入的 style image,自適應的生成 affine parameters:
本文將 normalized content input 進行 scale 處理,而後用 \mu(y) 進行 shift。這些統計都是沿着 spatial locations 進行的。
4. Experimental Results: