論文解讀:使用帶門控捲積進行生成式深層圖像修復方法

今天,咱們將深刻研究一種名爲DeepFill v2的很是實用的生成型深層圖像修復方法。本文能夠視爲DeepFill v1,Partial Convolution和EdgeConnect的加強版本。簡單的說,DeepFill v1中提出的上下文注意(CA)層和EdgeConnect中引入的可選的用戶草圖輸入概念都嵌入在DeepFill v2中。一樣,部分卷積(PConv)被修改成門控捲積(GConv),其中基於規則的掩碼更新被公式化爲可學習的下一卷積層的門控。有了這些想法,DeepFill v2能夠比之前的最新方法得到高質量的自由形式修復。圖1顯示了使用DeepFill v2的一些自由形式的修復結果。
git

動機

回想一下,已經提出了部分卷積(PConv)來分離有效像素和無效像素,從而使卷積結果僅取決於有效像素,而且已經提出了Edge生成器來估計缺失區域的內部架構,進一步提升修復性能,本文的做者想要將這些技術與他們的上下文的關注(CA)層進一步增強修復的結果。github

首先,PConv使用基於規則的掩碼更新來分隔有效和無效像素。基於規則的掩碼更新是手工製做的,是不可學習的。讀者能夠參考咱們以前翻譯的一篇文章對PConv進行簡短的回顧。因爲PConv是不可學習的,所以改進它的最直接的方法是使其可學習。微信

其次,以前的方法一般將掩碼圖像和掩碼圖像輸入生成器網絡完成。若是咱們還容許用戶的草圖輸入做爲任務的附加條件呢?生成器知道如何區分用戶的草圖輸入和掩碼圖像輸入嗎?一個簡單的答案,使用門控捲積(PConv的一個可學習的版本)就能夠了!網絡

介紹

在如下各節中,咱們能夠將使用更多時間介紹最重要的概念「門控捲積」。架構

DeepFill v2網絡體系結構。論文是他們以前工做(DeepFill v1)的改進版本。因此除了被使用門控捲積取代了標準卷積以外,網絡架構很是類似。咱們以前已經介紹過DeepFill  v1。這裏DeepFill v1最重要的思想是上下文注意(CA)層,它容許生成器使用由遙遠的空間位置提供的信息來重建局部缺失的像素。所以,DeepFill v2也遵循由粗到細的兩階段網絡結構。第一輩子成器網絡負責粗重建,而第二生成器網絡負責對粗填充的圖像進行細化。app

有趣的是,損失函數只有兩個最標準的損失項用於訓練網絡,即L1損失和GAN損失。這是這篇論文的主張之一,由於其餘最早進的繪畫論文使用5-6損失來訓練他們的網絡。我將很快談論在這篇論文中使用的GAN損失。。框架

解決方案簡述

爲了進一步改進處理不規則掩碼的部分卷積,做者提出了門控捲積,門控捲積能夠看做是部分卷積的可學習版本。除了門控捲積以外,還容許可選的用戶草圖輸入,以加強模型的交互編輯能力。最後,與咱們在上一篇文章中介紹的EdgeConnect相似,將譜歸一化(Spectral Normalization SN)[2]應用於鑑別器以穩定訓練過程。ide

圖2顯示了DeepFill v2的網絡架構。正如您所看到的,這是一個由粗到細兩階段的網絡,帶有門控捲積。粗糙生成器以掩碼圖像、掩碼圖像和可選的用戶草圖圖像做爲輸入,對缺失區域進行粗糙重建。而後,粗填充的圖像將被傳遞到第二個細化生成器網絡進行細化。請注意,DeepFill v1中提出的上下文注意(CA)層被用於此細化網絡。
函數

對於鑑別器,本文采用了著名的PatchGAN結構[3]。除了使用PatchGAN以外,做者還對鑑別器的每一個標準卷積層使用了譜歸一化(SN)[2],以提升訓練的穩定性。性能

門控捲積(Gated Convolution)

圖3顯示了部分卷積(PConv)和建議的門控捲積(GatedConv)之間的差別。簡而言之,在PConv中,使用標準卷積層和S型激活函數來更新掩碼,而不是使用基於規則的掩碼更新。在通過S型激活函數後,全部值都將落入[0,1],這能夠指示每一個局部區域的重要性(或有效性)。 門控捲積的輸出計算爲

其中輸出是兩個標準卷積層的輸出的逐個元素相乘,一層後跟任何激活函數,另外一層後跟一個S型激活函數。

標準卷積層後接一個sigmoid函數做爲軟門控,在輸入到下一個卷積層以前對當前卷積層的輸出進行加權。注意,對於硬門控,咱們只有0或1來作加權,可是對於軟門控,咱們能夠採用0到1進行加權,這更加靈活,此操做是能夠學習的。。

所以,您能夠看到門控捲積的思想很是簡單且易於實現。

損失函數

訓練模型的損失函數由兩個損失項組成,一個是像素級L1重建損失(L1損失),另外一個是SN-PatchGAN損失。請注意,用於平衡這兩個損耗項的超參數爲1:1。

生成器的SN-PatchGAN損耗很是簡單。它是SN-PatchGAN鑑別器輸出的負平均值。實際上,這是鉸鏈損耗,這在許多GAN框架中也很常見。

實驗

自由形式的掩碼生成和邊緣貼圖做爲用戶草圖輸入

提出了一種在訓練過程當中實時生成自由形狀掩碼的方法。我認爲最簡單的方法是直接在這裏使用他們的代碼。感興趣的讀者能夠參考他們的論文了解詳情。

對於可選的用戶草圖輸入,做者使用HED邊緣檢測器[4]生成邊緣圖做爲草圖輸入。請注意,草圖輸入是可選的。對於對交互式編輯用戶草圖輸入感興趣的讀者,我強烈建議您閱讀他們的論文。

與之前的修復論文類似,做者在Places2和CelebA-HQ數據集上評估了他們的模型。這兩個數據集一般用於深度圖像修復任務。

表1列出了兩個供讀者參考的客觀評價度量數。正如我在以前的文章中提到的,對於深圖像的補繪,目前尚未一個好的定量評估指標。所以,這些數字僅供參考,你應該關注填充圖像的視覺質量。正如您所看到的,所提出的模型提供了最低的l1和l2偏差。

定性比較

圖4給出了不一樣深度圖像補繪方法的定性比較。很明顯,提出的模型(GatedConv)在視覺質量方面優於全部其餘方法。您能夠看到,該方法提供了不明顯的顏色不一致的inpaint結果。

從圖5能夠看出,與前一種不容許用戶草圖輸入的方法相比,所提出的模型可以理解和利用用戶草圖輸入,從而進一步提升inpaint結果。你能夠看到,論文的方法提供了更好的inpaint結果沒有顏色不一致。

圖6顯示了一個對象刪除示例,您能夠看到,所提出的方法能夠以更好的視覺質量徹底刪除對象。

圖7顯示了一些以用戶草圖輸入爲指導的圖像填充示例。你能夠看到交互式編輯是如何經過提出的方法來實現的。

SN-PatchGAN的消融實驗

圖8顯示了SN-PatchGAN的消融研究。與標準的單個全局GAN相比,SN-PatchGAN的使用帶來了更好的修復效果。做者聲稱,簡單的L1損失和SN-PatchGAN損失的簡單組合能夠產生逼真的修復效果。

結論

本文的主要思想是門控捲積。門控捲積是部分卷積的可學習版本。咱們能夠經過使用一個額外的標準卷積層和一個S型函數來實現門控捲積,如圖3所示。與現有的修補方法相比,門控捲積和SN-PatchGAN的使用顯着改善了修補效果。做者還展現瞭如何經過容許可選的用戶草圖輸入來實現交互式編輯。使用用戶草圖輸入,能夠實現更好和有意義的修復效果。所以,這是文獻中很是實用的深層圖像修復方法。

到目前爲止,仍然很難用複雜的場景結構和較大的缺失區域來填充圖像。所以,極限圖像修復將是一個有但願的方向。讓咱們一塊兒學習和閱讀更多內容:)

參考文獻

[1] Jiahui Yu, Zhe Lin, Jimei Yang, Xiaohui Shen, Xin Lu, and Thomas Huang, 「Free-Form Image Inpainting with Gated Convolution,」 Proc. International Conference on Computer Vision (ICCV), 2019.

[2] Takeru Miyato, Toshiki Kataoka, Masanori Koyama, and Yuichi Yoshida, 「Spectral Normalization for Generative Adversarial Networks,」 Proc. International Conference on Learning Representations (ICLR), 2018.

[3] Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, and Alexei A. Efros, 「Image-to-Image Translation with Conditional Adversarial Networks,」 Proc. Computer Vision and Pattern Recognition (CVPR), 21–26 Jul. 2017.

[4] Saining Xie, and Zhuowen Tu, 「Holistically-nested edge detection,」 Proc. International Conference on Computer Vision (ICCV), 2015.


做者:Chu-Tak Li

deephub翻譯組

本文源代碼:https://github.com/JiahuiYu/generative_inpainting

原文地址:https://towardsdatascience.com/a-practical-generative-deep-image-inpainting-approach-1c99fef68bd7


本文分享自微信公衆號 - DeepHub IMBA(deephub-imba)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索