1. 程式人生 > >深度學習之風格遷移(三)——Deep Photo Style Transfer(Fujun Luan)

深度學習之風格遷移(三)——Deep Photo Style Transfer(Fujun Luan)

前面已經介紹瞭如何利用神經網路進行風格遷移,參見部落格深度學習之風格遷移(一)——Neural Style(Gatys) 。該文介紹了怎麼把藝術作品的風格遷移到真實圖片中去,生成的圖片是帶有藝術色彩的繪畫作品。那麼現在給定兩個真實的圖片,一張作為風格圖片,一張作為內容圖片,現在希望把風格照片的風格遷移到內容照片中去,那麼我們肯定希望得到的圖片類似真實的照片。但是如果採用Gatys提出的方法,會導致即使兩張圖片都是真實照片,生成的圖片也是繪畫風格的,如下圖所示:

這裡寫圖片描述

本文旨在解決Gatys風格遷移導致的照片失真問題。演算法改進體現在損失函式上,模型結構並沒有改變。

正則損失

那麼怎麼保證內容圖片不失真呢?
作者認為可以通過增加約束以限制生成圖片是真實圖片。而這個約束來自於僅在顏色空間中對內容圖片進行區域性仿射變換,說通俗點,就是儘量只改變照片的顏色,而不改變紋理等特徵。而進行“區域性”仿射變換可以滿足空間多樣性的要求,比如天空從藍色變成黑色,建築從白色變成金色(燈火)。這個約束在模型中體現為下列正則損失項:

m=V[O]TIV[O],(1)
其中I是Matting Laplacian矩陣,只和輸入影象I有關。這個損失函式在輸出影象O不是經過區域性仿射變換得到的時候進行懲罰。至於Matting Laplacian矩陣的計算以及理解請閱讀論文[4]。

風格損失

在向內容照片中融入風格照片的風格時,要保證場景匹配,比如天空對應天空,摩天大樓對應摩天大樓。但是在Gatys的方法中,由於表示風格的Gram矩陣表示的是整個圖片上的整體分佈,而內容圖片中的場景可能比風格圖片中的對應場景小,這樣就會導致風格溢位情況,比如天空中出現了摩天大樓。

為了解決這個問題,在風格遷移之前會對內容照片和風格照片進行語義分割,並且風格損失現在變為

ls+=c=1C12Nl,cij(Gl,c[O]Gl,c[S])2ij,(2a)
Fl,c[O]=Fl[O]Ml,c[I]Fl,c[S]=Fl[S]Ml,c[S],(2b)

其中C是分割類別數,Ml,c[]表示l層的第c個分割的掩碼。公式(2b)相當於計算每個分割對應的特徵對映。

語義分割只進行一次,其他層的掩碼是通過對初始掩碼進行取樣以使其大小和該層的特徵對映匹配得到的。作者在其論文實現[3]的介紹中表示,語義分割可以通過手動的方式進行,比如Photoshop,也可以通過演算法自動實現,如DilatedNet([4])。並且在分割時,為了減少內容照片中的孤兒(即該分割標記在風格圖片中不存在),內容照片中的分割標籤從風格照片的風格標籤中選擇得到。

總損失函式

內容損失和Gatys風格遷移演算法一樣,沒有改變。所以把幾個損失函式結合起來,得到下面的總損失函式:

total=l=1Lαllc+Γl=1Lβlls++λm.(3)

本文的實驗取Γ=100λ=104

參考

[1] Deep Photo Style Transfer. Fujun Luan, Sylvain Paris, Eli Shechtman, Kavita Bala. CVPR 2017.
[2] Supplementary. Fujun Luan.
[3] deep-photo-styletransfer in Github by Fujun Luan.
[4] A closed form solution to natural image matting. Anat Levin, Dani Lischinski, and Yair Weiss. PAMI 2008.
[5] DilatedNet. Liang-Chieh Chen, George Papandreou, Iasonas Kokkinos, Kevin Murphy, Alan L. Yuille. arxiv, 2016.