arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

PaperWeekly發表於2019-02-27

人臉編輯可以在大多數影象編輯軟體上得到實現,但是這都需要專業知識,例如瞭解在特定情況下使用哪些特定工具,以便按照想要的方式有效地修改影象,同時操作影象編輯軟體也是耗時的。

基於深度學習下影象編輯得到越來越多的重視和應用,在 GAN 的推動下,影象風格轉換、影象修復、影象翻譯等等在近幾年有了長足的發展。這篇文章將介紹基於 GAN 損失的端到端可訓練生成網路,在人臉修復上取得了很棒的結果,同時該模型也適用於有趣的人臉編輯。

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧論文引入

提到影象編輯,一定要說的就是 Photoshop 這款軟體,近乎可以處理日常所有的照片,但是 PS 不是這麼容易操作的,精通 PS 更是需要專業知識了。如何讓小白完成在影象上勾勾畫畫就能實現影象的編輯?這個任務當然可以交給深度學習來實現了。 

生成對抗網路(GAN)的發展,促進了影象生成下一系列研究的發展。影象編輯下影象修復是一個難點,這對於影象編輯軟體來說也是很困難的。近幾年在深度學習發展下,影象修復在不斷進步,最典型的方法是使用普通(方形)掩模,然後用編碼器-解碼器恢復掩蔽區域,再使用全域性和區域性判別器來估計結果的真假。

然而,該系統限於低解析度影象,並且所生成的影象在掩蔽區域的邊緣不能很好的與原圖銜接。儘管 Deepfillv2 [1]、GuidedInpating [2]、Ideepcolor [3]、FaceShop [4] 在不斷改進實現結果,但是對於深度學習處理影象修復上的難點還是依舊存在,總的來說主要的挑戰有兩個:1)影象在恢復的部分上具有不和諧的邊緣;2)如果影象太多區域被覆蓋,修復的影象將會不合理。 

本文要解讀的論文為了解決上述限制,提出了 SC-FEGAN,它具有完全卷積網路,可以進行端到端的訓練。提出的網路使用 SN-patchGAN [1] 判別器來解決和改善不和諧的邊緣。該系統不僅具有一般的 GAN 損失,而且還具有風格損失,即使在大面積缺失的情況下也可以編輯面部影象的各個部分。

這篇論文釋出在 arXiv 不到10天,其原始碼便已標星破千。文章的人臉編輯效果十分逼真,先一睹為快。

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

總結一下 SC-FEGAN 的貢獻: 

1. 使用類似於 U-Net [5] 的網路體系結構,以及 gated convolutional layers [1]。對於訓練和測試階段,這種架構更容易,更快捷,與粗糙網路相比,它產生了優越而細緻的結果。 

2. 建立瞭解碼圖,顏色圖和草圖的自由格式域資料,該資料可以處理不完整影象資料輸入而不是刻板形式輸入。 

3. 應用了 SN-patchGAN 判別器,並對模型進行了額外的風格損失。該模型適應於擦除大部分的情況,並且在管理掩模邊緣時表現出穩健性。它還允許生成影象的細節,例如高質量的合成髮型和耳環。

訓練資料處理

決定模型訓練好壞的一個重要因素就是訓練資料的處理,SC-FEGAN 採用 CelebA-HQ [6] 資料集,並將圖片統一處理為 512 x 512 大小。 

為了突顯面部影象中眼睛的複雜性,文章使用基於眼睛位置掩模來訓練網路。這主要用在掩碼的提取上,當對面部影象進行訓練時,隨機應用一個以眼睛位置為起點的 free-form mask,以表達眼睛的複雜部分。此外,文章還使用 GFC 隨機新增了人臉頭髮的輪廓。演算法如下:

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

文章的又一個創新是在提取影象的草圖和顏色圖,使用 HED 邊緣檢測 [7] 生成與使用者輸入相對應的草圖資料,之後,平滑曲線並擦除了小邊緣。建立顏色域資料,首先通過應用大小為 3 的中值濾波,然後應用雙邊濾波器來建立模糊影象。之後,使用 GFC [8] 對面部進行分割,並將每個分割的部分替換為相應部分的中間顏色。最後還提取噪聲表示。最終處理完得到的資料可由下圖展示,上面一行作為真實標準,下面一行為處理得到的輸入資料。

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

模型結構

SC-FEGAN 採用的網路設計結構與 U-Net 類似,上取樣的思路是 U-Net 的那一套,通過 Concat 連線下采樣的特徵提取完成上取樣,整體框架如下所示:

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

網路的整體很好理解,圖示也很清晰,我們強調一下網路的輸入。 

不像傳統的影象到影象的模型輸入是 512 x 512 x 3 的 RGB 輸入,這篇論文的輸入是尺寸為 512 × 512 × 9 的張量,這個張量是由 5 張圖片圖片構成的。

首先是被覆蓋殘缺的 RGB 影象,也就是我們在圖片上勾勾畫畫的影象,其尺寸為 512 x 512 x 3;其次是提取得到的草圖 512 x 512 x 1;影象的顏色域 RGB 圖 512 x 512 x 3;掩碼圖 512 x 512 x 1;最後就是噪聲對應的 512 x 512 x 1。按照通道連線的話得到最終的模型輸入 512 x 512 x 9。 

卷積層採用的是 gated convolution,使用 3 x 3 核心,下采樣採取 2 個步幅核心卷積對輸入進行 7 次下采樣,上取樣通過 U-Net 思路進行解碼得到編輯好的影象。解碼得到的影象依舊是 5 張圖片,包括修復的 RGB 影象、草圖、顏色圖、掩碼圖、噪聲圖。通過判別器和真實的 5 張圖片進行 SN-patchGAN 結構設計進行真假判斷,優化模型。

在整個網路的卷積層後應用區域性訊號歸一化(LRN),生成器採用 Leaky Relu,判別器通過 SN 限制,並且施加梯度懲罰。SC-FEGAN 的損失函式由 5 部分組成,畫素損失arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧感知損失、感知損失arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧、風格損失、風格損失arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧、總方差損失、總方差損失arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧以及 GAN 的對抗損失。

先來看一下 GAN 的對抗損失,文章採用的 WGAN 的損失設計:

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

其中arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧是生成器輸出的arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧的完成影象(包括草圖和顏色圖以後的),也就是送入判別器判別的輸入,最後判別器加上梯度懲罰項。

對於生成器希望判別器判錯,故生成器損失最小值為 -1,判別器則希望真實判為真,生成判為假,上述損失還是很好理解的。生成器完整的損失為:

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

畫素損失保證影象編輯生成與真實的一致性:

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

其中 Na 是特徵 a 的數字元素,M 是二元掩模圖,用於控制修復影象的畫素,達到生成與真實的一致性。公式後一項給予擦除部分損失更多的權重。對於大區域下的擦除影象的修復時,風格損失和感知損失是必要的。感知損失在 GAN 中的應用已經很多了,就是對中間層進行特徵差異損失,這裡不做贅述。

風格損失使用 Gram 矩陣比較兩個影象的內容,風格損失表示為:

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

其中,arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧,Θ 為網路的中間層,Gq(x) 是用於在中間的每個特徵圖上執行自相關的 Gram 矩陣,Gram 矩陣的形狀是 Cq×Cq。總方差損失,反應的是相鄰畫素間是相似的,記為arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧。其中:

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

對於列 row 也是一樣,自此整體的損失函式構建完成,在實際實驗中引數設定為 σ=0.05,β=0.001,γ=120,v=0.1,ϵ=0.001,θ=10。

實驗

實驗首先對比了使用 U-Net 框架設計的優勢,對比的框架是 Coarse-Refined。論文測試了 Coarse-Refined 結構網路,並注意在一些需要精確輸出的卻是模糊的。

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

FaceShop 已經顯示出難以修改像整個頭髮區域那樣的巨大擦除影象。由於感知和風格損失的加入,SC-FEGAN 在這方面表現更好。下圖顯示了有和沒有 VGG 損失(感知和風格損失)的結果。

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

實驗還與最近的研究 Deepfillv1 進行了比較,下圖顯示模型在使用自由形狀的掩模在結構和形狀的質量方面產生更好的結果。意味著沒有附加資訊,如草圖和顏色,面部元素的形狀和位置具有一定的依賴值。因此,只需提供附加資訊即可在所需方向上恢復影象。

此外,即使輸入影象被完全擦除,我們的 SC-FEGAN 也可以生成僅具有草圖和顏色自由形式輸入的人臉影象(感興趣的可以參看論文中更多結果)。

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

下圖顯示了草圖和顏色輸入的各種結果,它表明模型允許使用者直觀地編輯臉部影象功能,如髮型,臉型,眼睛,嘴巴等。即使整個頭髮區域被刪除,它也能夠產生適當的結果。

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

文章還做了給人物加上耳環的有趣實驗,這種人臉編輯確實蠻有意思:

arXiv熱文解讀 | 不懂Photoshop如何P圖?交給深度學習吧

實驗

SC-FEGAN 提出了一種新穎的影象編輯系統,用於自由形式的蒙版,草圖,顏色輸入,它基於具有新穎 GAN 損失的端到端可訓練生成網路。與其他研究相比,網路架構和損失功能顯著改善了修復效果。

論文基於 celebA-HQ 資料集進行了高解析度影象的訓練,並在許多情況下顯示了各種成功和逼真的編輯結果。實驗證明了系統能夠一次性修改和恢復大區域,並且只需要使用者細緻的勾畫就可以產生高質量和逼真的結果。

模型的框架採用 U-Net 思想,在 Decoder 端結合 Encoder 端特徵實現上取樣過程下精確影象的生成。引入感知損失和風格損失更是幫助模型實現了大區域擦除的修復。

在判別器採用 SN-patchGAN 思想,使得恢復的影象在邊緣上更加和諧,生成器和判別器都結合了影象的草圖、顏色圖和掩模圖進行判斷,使得修復的影象更加逼真,同時也是論文的一個創新。實驗上的炫彩也是使得原始碼得到了廣泛的關注。

參考文獻

[1] J. Yu, Z. Lin, J. Yang, X. Shen, X. Lu, and T. S. Huang.Free-form image inpainting with gated convolution. arXiv preprint arXiv:1806.03589, 2018. 2, 3, 4, 6, 7 

[2] Y. Zhao, B. Price, S. Cohen, and D. Gurari. Guided image inpainting: Replacing an image region by pulling content from another image. arXiv preprint arXiv:1803.08435, 2018. 2 

[3] R. Zhang, J.-Y. Zhu, P. Isola, X. Geng, A. S. Lin, T. Yu, and A. A. Efros. Real-time user-guided image colorization with learned deep priors. arXiv preprint arXiv:1705.02999, 2017.2, 3 

[4] T. Portenier, Q. Hu, A. Szabo, S. Bigdeli, P. Favaro, and M. Zwicker. Faceshop: Deep sketch-based face image editing. arXiv preprint arXiv:1804.08972, 2018. 2, 3, 4, 6, 7 

[5] O. Ronneberger, P. Fischer, and T. Brox. U-net: Convolutional networks for biomedical image segmentation. In International Conference on Medical image computing andcomputer-assisted intervention, pages 234–241. Springer,2015. 2, 3, 4 

[6] T. Karras, T. Aila, S. Laine, and J. Lehtinen. Progressive growing of gans for improved quality, stability, and variation.arXiv preprint arXiv:1710.10196, 2017. 3, 4 

[7] S. ”Xie and Z. Tu. Holistically-nested edge detection. In Proceedings of IEEE International Conference on Computer Vision, 2015. 3 

[8] Y. Li, S. Liu, J. Yang, and M.-H. Yang. Generative face completion. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), volume 1, page 3, 2017. 1,3, 4

相關文章