一篇19年語義合成圖像的文章。認為直接利用正則層會洗掉圖像中原有的語義信息。提出了一種spatially-adaptive的正則化。
條件圖像合成方法區別在於輸入數據的類型。例如以類別為條件的模型、以圖像為輸入的image-to-image等。非條件正則層包括Local Response Normalization、BN、IN、LN等。然而條件正則層不同的是依賴於外部數據,例如Conditional BN、Adaptive IN等。這倆最初被用於風格遷移,后來被應用於其他領域。條件正則用法為:首先將特征零均值單位方差化,然后利用一個可學習的affine轉換進行去正則化。對於風格遷移任務,affine參數用來控制輸出的整體風格。所以在整個空間空間坐標上是一致的。而本文提出的正則層應用一個空間變化的affine轉換。
SPADE(Spatially Adaptive Denormalization)空間自適應去正則化層
類似於BN,也是在通道維進行正則化,並利用學到的scale和bias進行調制。
用公式表示就是:
其中均值和方差就是傳統BN的操作方法。beta和gamma為調制參數,不一樣的是這兩個參數不是向量而是三維tensor。相比於BN,他們取決於輸入的segmentation掩模,並且根據位置不同而變化。SPADE是一些已有正則層的泛化,例如:將掩模換成類標並將調制參數設為空間不變的,則退化成了Conditional BN,將掩模變成圖像並將調制參數設為空間不變,並將N設為1,就變成了AdaIN。正因為本文設計的SPADE是調制參數可變的,所以更好。
SPADE geneator
有了SPADE,無需在生成器首層輸入語義圖,因為學習到的調制參數已經編碼了關於標簽布局的足夠信息。因此,棄掉了生成器的編碼器部分。更輕量,目前許多工作也是這樣做的。下圖是生成器結構:生成器相應的判別器利用多尺度結構,和pix2pixHD的那個一樣。除了將最小二乘損失換成了hinge loss。
為什么SPADE是work的?
可以更好的保留語義信息相較於常見的正則層。 IN會洗掉這種語義信息。考慮:對語義mask先卷積后正則化。再考慮:對於只有一種label的語義圖(例如只有天空),在這種情況下,卷積得到的結果利用IN會使得特征全變為0,不論是哪種標簽。(單標簽的話,均值就和每個像素值相等,所以正則化會變成零。)因此,語義信息徹底丟失了。下圖表示了pix2pixHD因此導致的信息丟失,因為分割掩模通常由幾個均勻的區域組成。而含有SPADE的生成器結果可以的。相比后者語義分割圖在生成器輸入時輸入到了不含正則層的SPADE,僅僅前一層的特征被正則,所以SPADE generator可以很好的保留語義信息。
多模態合成
通過對生成器輸入隨機向量,可以實現多模態合成。即可以添加一個encoder來將圖像處理成隨機向量,然后輸入到生成器中,編碼器和生成器就構成了一個變分自編碼器VAE。那么這個添加的encoder就成為捕捉風格的作用,生成器結合風格和語義掩模通過SPADE來重構原圖。encoder在測試時可以作為風格控制器,對於訓練的時候加上KL-Divergence作為損失。如下圖: