Image Inpainting for Irregular Holes Using Partial Convolutions


英偉達此項目官網

Partial Convolution layer Implement source code


摘要

現有的基於深度學習的圖像修補方法在損壞的圖像上使用標准卷積網絡,使用以有效像素(非缺失部分的像素)和缺失部分填充適當的值(通常為平均值)為條件的進行卷積操作。 這通常會導致諸如顏色差異和模糊等偽影。 后處理通常用於減少這些工件,但代價很高,可能會失敗。作者提出使用部分卷積Partial Convolutionsthe convolution is masked and renormalized to be conditioned on only valid pixels還包含一個機制,可以為下一層自動生成更新的掩膜。 我們的模型勝過其他irregular masks的方法。 我們展示定性和定量比較與其他方法來驗證我們的方法


Introduction

  • 以前的深度學習方法主要集中在位於圖像中心附近的矩形區域,並且通常依賴於昂貴的后期處理。本文提出的對不規則缺失也能很好的進行修補。不需要后期處理post-processing和泊松圖像混合操作blending operation
  • 最近圖像修復方法:
    • 不使用深度學習的方法主要是利用非缺失部分的圖像統計信息來填充缺失部分,來實現修復圖片。PatchMatch
    • 使用深度學習的方法主要是用固定的值填充缺失部分的像素,然后在這些圖片上使用卷積操作,這些方法受到依賴於初始孔值的影響,其通常表現為孔區域缺乏紋理,明顯的顏色對比或圍繞孔的人造邊緣的現象。並且網絡框架常采用U-Net架構。
    • 作者工作旨在實現與缺失部分初始化值無關並且沒有任何額外的后處理的良好合並缺失部分預測。並且能夠實現對不規則缺失的修復。
  • 作者設計部分卷積層,comprising a masked and renormalized convolution operation followed by a mask-update step.masked and re-normalized convolution在圖像分割中比較常見,也叫segmentation-aware convolutions,但是他們沒有對mask進行修改。)
  • 作者設計部分卷積,given a binary mask our convolutional results depend only on the non-hole regions at every layer.作者還擴展了automatic mask update step,原理removes any masking where the partial convolution was able to operate on an unmasked value.只要層數足夠多,缺失部分將會在不斷的更新的特征層中消失。這樣就與缺失部分的內容無關(與缺失部分的初始化內容無關)。
  • 本文的主要貢獻:
    • 提出了帶有自動掩碼更新步驟automatic mask update的部分卷積層partial convolutions
    • 帶有skip links典型卷積的U-Net能夠獲得良好的修復效果,但我們證明用部分卷積和掩膜更新代替卷積層可以獲得最新的修補結果。
    • 據我們所知,我們首先證明了在形狀不規則的孔上訓練圖像修復模型的功效.
    • 我們提出了一個大型的不規則掩膜數據集,該數據集將公開發布,以便於未來的訓練和評估工作修復模型。

Approach

我們提出的模型使用堆疊的部分卷積運算和掩膜更新步驟來執行圖像修復。我們首先定義我們的卷積和掩膜更新機制,然后討論模型架構和損失函數。

Partial Convolutional Layer

  • 部分卷積層Partial Convolutional Layer,包括部分卷積操作和掩碼更新mask update操作。
  • W是卷積濾波器的權重,b是相應的偏差。 X是當前卷積(滑動)窗口的特征值(像素值),M是相應的二進制掩膜mask。每個位置的部分卷積被表示為:GEoo8I.jpg其中⊙表示逐像素乘法。 可以看出,輸出值僅取決於非屏蔽輸入。 比例因子1/sum(M)應用適當的縮放比例來調整有效(未屏蔽)輸入的變化量。
  • 在部分卷積操作之后,更新掩碼以一下規則:如果卷積能夠以至少一個有效輸入值作為條件的輸出,那么我們將該位置標記為有效。GELCHf.jpg在部分卷積層有足夠的連續應用的情況下,如果輸入包含任何有效像素,則任何掩膜將最終全部為1。

Network Architecture and Implementation

  • Implementation

    • Partial convolution layer是基於pytorch擴展的。
    • 不基於pytorch直接實現的方法是:定義形狀為C×H×W的二值掩碼binary masks,與相關的圖片或者特征相同大小,然后使用一個固定的卷積層來實現掩碼的更新操作,固定卷積層的大小和部分卷積層的大小一致,卷積核權重全為1,沒有偏置。
  • Network Design

    • 網絡結構類似U-net,用所有的部分卷積代替所有的卷積層,並在解碼階段使用nearest neighbor up-sampling。在編碼階段使用ReLu,在解碼階段使用alpha = 0.2的LeakyReLU。在第一和最后的卷積層之外的每個部分卷積和ReLu/LeakyReLU層之間使用批量歸一化層。GEzpuj.jpg
      GExzvQ.jpg
  • Partial Convolution as Padding

    • ​ 我們使用部分卷積在圖像邊界處加上適當的遮罩代替典型的填充。 這樣可以確保圖像邊界處的已修復內容不會受到圖像之外的無效值的影響,這些值可以解釋為另一個孔。
  • loss function

    • 定義:input image with hole \(I_{in}\),initial binary mask \(M\) (0 for holes), the network prediction \(I_{out}\), and the ground truth image \(I_{gt}\)
    • 包括5個損失函數,分別為:perpixel losses \(L_{hole}\)perceptual loss \(L_{perceptual}\)style-loss\(L_{styleout}\)\(L_{stylecomp}\) )和total variation (TV) \(L_{tv}\)
    • perpixel losses:GVShOH.jpg
      GVS5md.jpg
    • perceptual lossGVSxmj.jpg
      GVSz0s.jpg
      GVp9kq.jpg
    • style-loss 首先在應用L1之前在每個特征圖上執行自相關((Gram矩陣)GVp3cD.jpg
    • total variation (TV) GVpd4P.jpg
    • total loss \(L_{total}\)GVpW40.jpg
  • Ablation Study of Different Loss Terms(不同損失函數的消融實驗)

    • GVpqER.jpg

Experiments

Irregular Mask Dataset

  • 所有用於訓練和測試的掩膜和圖像尺寸為512×512
  • 我們為訓練產生了55116Mask,並為測試產生了24866個Mask。
  • 在測試的時候對24866Mask進行了數據增強。
  • 同時,我們更加Mask的大小,進行分類。

Training Process

Training Data

  • 使用3個獨立的圖像數據集進行訓練和測試,ImageNet數據集,Places2數據集和CelebA-HQ

Training Procedure

  • Adam for optimization
  • BatchSize: 6

Initial Training and Fine-Tuning

  • 圖像缺失,會對批量歸一產生影響,因為平均值和方差都將針對缺失像素進行計算,所以在掩蔽位置忽略它們是有意義的。但是,每個應用程序都會逐漸填充空洞,並且通常完全由解碼器階段完成。為了在存在孔的情況下使用批量歸一化,我們首先使用0.0002的學習率為初始訓練啟用批量歸一化。然后,我們使用0.00005的學習率進行微調,並凍結網絡編碼器部分的批量歸一化參數。我們在解碼器中保持啟用批量歸一化。這不僅避免了不正確的均值和方差問題,而且還幫助我們實現更快的收斂。

Comparisons

  • 與下面四種方法進行了對比:

    方法名稱 特征
    PM PatchMatch, the state-of-the-art non-learning based approach
    GL Method proposed by Iizuka et al.
    GntIpt Method proposed by Yu et al.
    Conv Same network structure as our method but using typical convolutional layers. Loss weights were re-determined via hyperparameter search.
    PConv ours

Qualitative Comparisons

GVP48P.jpgGVFPQf.jpg

Quantitative comparisons.

  • 評估圖像修復結果沒有較好的評估方法。
  • 評估標准為:L1 error, PSNR, SSIM , inception score (IS-core)
  • 其中L1 error, PSNR, SSIM在數據集Places2評估,Inception score (IS-core)在數據集ImageNet評估。

GVFNf1.jpg

擴展

  • 部分卷積應用到圖像超分辨率


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM