CVPR 2019 开源论文 | 基于空间自适应归一化的图像语义合成
作者丨武廣
學校丨合肥工業大學碩士生
研究方向丨圖像生成
深度學習在算力的推動下不斷的發展,隨著卷積層的堆疊,模型的層數是越來越深,理論上神經網絡中的參數越多這樣對數據的擬合和分布描述就能越細致。然而簡單的堆疊卷積層又會引起梯度消失和過擬合的問題,伴隨著解決方案下殘差網絡、歸一化和非線性層被提出。
本文將對 NVIDIA 近期的論文?Semantic Image Synthesis with Spatially-Adaptive Normalization?進行解讀,這篇論文提出了適合保留語義信息的 Spatially-Adaptive Normalization(空間自適應歸一化),同時文章在實現細節上也很有參考意義。
論文引入
Batch Normalization (BN) 在?Inception v2?[1]?網絡中被提出,它的設計之初是為了解決 Internal Covariate Shift 問題,也就是在訓練過程中,隱層的輸入分布老是變來變去。因為深層神經網絡在做非線性變換前的激活輸入值隨著網絡深度加深或者在訓練過程中,其分布逐漸發生偏移或者變動,這導致了訓練收斂慢,也就是數據整體分布逐漸往非線性函數的取值區間的上下限兩端靠近。所以這導致反向傳播時低層神經網絡的梯度消失,這是訓練深層神經網絡收斂越來越慢的本質原因。
我們知道數據白化,是對輸入數據分布變換到 0 均值,單位方差的正態分布,這樣會使神經網絡較快收斂。如果這種"白化處理”作用在每一個隱層上,是不是可以穩定數據分布的同時加速收斂?
這個問題的答案就是 BN 設計的根源了,BN 就是通過一定的規范化手段,對于每個隱層神經元,把逐漸向非線性函數映射后向取值區間極限飽和區靠攏的輸入分布強制拉回到均值為 0 方差為 1 的比較標準的正態分布,使得非線性變換函數的輸入值落入對輸入比較敏感的區域,以此避免梯度消失問題。
比如在做圖像翻譯時,往往設置的 BatchSize 為 1 或者模型訓練時 BatchSize 取值很小,這個時候 Batch Normalization 在對這批數據取均值和方差,而這批數據由于量不夠,很難描述整體數據,此時就可以嘗試使用 Layer Normalization 或者 Group Normalization。
說清這個問題前,我們要來看一下?Conditional Batch Normalization?(CBN)?[3],以圖像和其標簽為例,CBN 就是通過 BN 將圖片底層信息和標簽信息結合,這樣處理的好處就是讓圖像的標簽(語義信息)指導圖像的特征表達。
這種標簽信息往往是由熱編碼或者是低緯的向量通過感知層代替 BN 中的參數 γ 和 β,如果這個標簽信息是一張語義分割圖呢?這種輸入到感知層的方式將不能充分表達圖像的語義信息了,此時 Spatially-Adaptive Normalization 便派上用場了,它正是處理這種標簽信息是一張語義分割圖時如何讓圖像的標簽(語義信息)指導圖像的特征表達。
- 提出了 Spatially-Adaptive Normalization,實現了給定輸入語義布局的情況下合成逼真的圖像。
- 可以根據輸入圖像和語義圖指導合成語義信息下的圖像。
Spatially-Adaptive Normalization
如果熟悉 Conditional Batch Normalization 的話,Spatially-Adaptive Normalization(SPADE) 自然是很容易理解的,簡單點說就是將 Conditional Batch Normalization 中的"標簽”經過多層感知機換成了語義分割圖經過卷積層而已。當然你要是不熟悉也沒問題,我們接下來詳細說明,在說明之前我們看一下 Spatially-Adaptive Normalization 的整體結構。
和是 Spatially-Adaptive Normalization 學習參數,它們是通過語義分割圖 m 經過卷積層得到的參數,此時的和是包含語義分割圖的語義信息的,同時也是語義分割圖 feature map 表示,這樣學習到的參數將保留語義分割圖的充分的語義信息,也實現了輸入的歸一化處理。
假定我們對一個 3 通道的 RGB 圖像求像素上的均值和標準差,不同風格的圖像呈現的均值和方差是有差異的,比如艷麗的風格往往是像素特別豐富的,此時的圖像像素均值自然是大的,陰暗風格對應的像素均值自然是小的。但是這僅僅是對輸入的本身進行操作,這個過程沒有語義的表示,而 SPADE 將語義分割圖為輸入提供了豐富的語義信息,這個可以實現輸入下語義的傳遞和表達,這也是 SPADE 真正的意義所在。
語義圖像的生成
介紹的 SPADE 只是實現語義圖像合成的手段,并不是文章的最終目的,論文的目標是實現根據語義分割圖實現語義圖像的生成,也就是下面這個過程:
我們看一下完整的模型結構:
模型中的 Image Encoder 其實就是為了實現 VAE?[4]?和 GAN [5]?結合的作用,目的是為語義圖像的合成提供參考,也就是告訴模型按照語義分割指導合成的圖像應該和我的整體風格類似。
比如一批山水畫作 Image Encoder 得到的特征隱變量通過 KL 映射到先驗分布(高斯分布)上,通過采樣根據語義分割圖像的指導,解碼生成包含語義信息的另一幅山水畫。之所以加入 VAE 讓圖像編碼的隱變量映射到先驗分布上是為了在測試階段可以通過隨機采樣實現語義圖像的生成而不是再送入一張指導圖像。
首先對語義分割圖進行 Resize,這步的作用是為了讓語義分割圖的輸入尺寸和要進行歸一化的輸入尺寸保持一致,此處的 Resize 都是最近鄰下采樣實現。得到與輸入相同尺寸 map 后,先通過一個 3×3 卷積層得到 128 通道的語義分割圖 feature map,這一步主要是為了將原始的語義分割圖3通道進行升維到 128 通道,接著就是分別經過兩個 3×3 卷積層得到對應的 γ 和 β,此處的 k要根據實際而定。得到 γ 和 β 后就可以和輸入(已經和均值和標準差處理過)進行操作。
在源碼中,在 SPADE 內部就進行了一個殘差操作,圖中沒有畫出而已,結合分析,我們用 tensorflow 對 SPADE 進行實現:
SPADE ResBlk
它是由主路下兩個 SPADE 和殘差分路 SPADE 構成,分路的 SPADE 主要是為了保證殘差塊之前和之后的通道數量不同的情況下的操作(這步主要發生在 channel 變化的階段,如生成器中 1024 到 512 的過程),我們用 tensorflow 實現 SPADE ResBlk:
整個生成器的架構就可以由 SPADE ResBlk 進行設計,判別器首先將語義分割圖和真實(生成)進行 concat 再逐步下采樣,由于這是圖像翻譯的過程,默認情況下 batch size 取 1,所以在判別器下不適合用 BN,而使用的 IN 作為歸一化處理(個人感覺 LN 得到的效果應該也會不錯的)。圖像編碼器的架構是個下采樣過程,也是采用 IN,輸出為均值和方差,用于擬合先驗分布(高斯分布)。
Pytorch 版本:https://github.com/NVlabs/SPADE
TensorFlow 版本:https://github.com/taki0112/SPADE-Tensorflow
實驗
實施細節上,采用 Spectral Norm?[6]?應用于生成器和判別器中的所有層。生成器和判別器的學習率分別設置為 0.0001 和? 0.0004。優化器使用 ADAM 并設置 β1=0 ,β2=0.999。分別在 COCO-Stuff、ADE20K、ADE20K-outdoor、Cityscapes 、FlickrLandscapes 數據集上進行實驗。
在定性上,結果還是很有說服力的:
總結
論文提出了 Spatially-Adaptive Normalization (空間自適應歸一化),該方法對 Conditional Batch Normalization (條件批歸一化)進行了改進,將標簽信息換成了語義分割圖,通過卷積層代替多層感知層為圖像合成提供了豐富的語義信息。同時這種轉換也不僅僅適用于語義分割圖,甚至可以在語音和視頻中得到改進和發展。
參考文獻
[1] S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In International?Conference on Machine Learning (ICML), 2015.
[2] D. Ulyanov, A. Vedaldi, and V. Lempitsky. Instance normalization: The missing ingredient for fast stylization. arxiv 2016. arXiv preprint arXiv:1607.08022, 2016. [3] V. Dumoulin, J. Shlens, and M. Kudlur. A learned representation for artistic style. In International Conference on Learning Representations (ICLR), 2016.
[4] Kingma D P, Welling M. Auto-encoding variational bayes[J]. arXiv preprint arXiv:1312.6114, 2013.
[5] Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Advances in neural information processing systems. 2014: 2672-2680.
[6] T. Miyato, T. Kataoka, M. Koyama, and Y. Yoshida. Spectral normalization for generative adversarial networks. In International Conference on Learning Representations (ICLR), 2018.
點擊以下標題查看更多往期內容:?
CVPR 2019 | BASNet:關注邊界的顯著性檢測
NAS-FPN:基于自動架構搜索的特征金字塔網絡
CVPR 2019 | INIT:針對實例級的圖像翻譯
NAACL 2019最佳論文:量子概率驅動的神經網絡
論文盤點:CVPR 2019 - 文本檢測專題
PoolNet:基于池化技術的顯著性目標檢測
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
??來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
?
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 下載論文 & 源碼
總結
以上是生活随笔為你收集整理的CVPR 2019 开源论文 | 基于空间自适应归一化的图像语义合成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线下沙龙 | 小身材大能量!用英伟达智能
- 下一篇: 从Grid R-CNN到Grid R-C