High-Resolution Image Inpainting using Multi-Scale Neural Patch Synthesis


摘要

論文來源:CVPR 2017

之前方法的缺點:之前的方法是基於語義和上下文信息的,在填充較大holes的表現得很好,能夠捕獲更高級的圖像特征,但是由於內存限制和難以訓練網絡的因素,只能處理分辨率較小的圖片。

論文提出的方法:提出了一種基於結合圖像內容和紋理約束來進行優化多尺度神經patch結合的方法,該方法不僅保留了上下文結構,而且利用深度分類網絡中最相似的中間特征層相關性來調整和匹配Patch來產生高頻細節信息。

優勢之處: 可以處理大分辨率的圖片

網絡結構:

數據集: \(Imagenet\)用於預訓練VGG-16 ,\(Paris-Streetview-datasets\)

Code:Faster-High-Res-Neural-Inpainting

介紹

  • image completion:圖像補全
  • 現存的\(hole-filling\)問題的解決辦法分為兩類:第一類是依賴於紋理合成技術,\(hole-filling\)通過缺失位置周圍的紋理來填充,共同思想是使用相似紋理的patch以粗略到精細的方式合成缺失的內容。第二類是通過數據驅動的方法,利用較大的數據庫內的信息來填充缺失部分。
類別 符合的論文
第一類 引用[14],[13],[27],[26],[6],[12],[40],[41],[23],[24],[2]
其中引用[12],[41],引入了多個尺度和方向,來尋找更加匹配的Patch。
引用[2]提出將PatchMatch作為一種快速近似的最近鄰居補丁搜索算法。 優點:擅長傳播高頻紋理細節,但它們無法捕獲圖像的語義或全局結構。
第二類 前提假設:被相似背景包圍的區域可能擁有相似的內容。優點:當數據量足夠多的時候,成功率很高。缺點:需要連接數據庫,限制了應用的場景。
  • 最近,深度神經網絡被引入到紋理合成和圖像樣式轉變。

  • 本論文的靈感來源:

    • Phatak[32]提出的encoderdecoder CNN (Context Encoder) 采用 ℓ2 和 adversarial loss相結合來直接預測圖像缺失的區域。缺點:紋理細節處理的不好,當輸入圖片較大(高分辨率圖片)時,難以訓練adversarial loss。
    • Li and Wand[28]實現圖像樣式轉換,通過對中間層的神經響應(neural response)與圖像內容相似,低卷積層的局部響應與樣式圖像的局部響應相似的圖像進行優化。這里的局部響應代表小的(典型3*3)的neural patches。這個方法證明了將高頻細節從樣式圖像傳輸到內容圖像。但是現在樣式轉換多采用引用[15]的gram matrices of neural responses。
  • 本文提出的方法:

    • 提出了結合 encoderdecoder CNN (Context Encoder) 的結構預測能力和neural patches的合成高頻真實的圖像的能力來實現圖像修復任務。
    • 和樣式轉換任務一樣,我們訓練encoderdecoder CNN (Context Encoder)來作為全局內容的約束(global content constraint),並且利用缺失部分和已知區域的局部neural patches相似性。(利用預先訓練好的分類網絡、中間特征層的patch響應和缺失部分周圍的圖像內容對紋理約束進行建模。)這兩種約束可以通過有限內存BFGS的反向傳播算法進行優化。
    • 為了進一步提出多尺度neural patch合成的方法,我們假設圖片大小為512×512,中間帶有256×256的缺失部分,然后我們創造一個三級的金字塔結構,步數為2,每步縮小為原來圖片的一半(512 256 128,256 128 64)。然后我們執行一個粗到細化的填充任務。以內容預測網絡的最底層輸出進行初始化,在每個尺度上(1)執行聯合優化以更新缺失部分,(2)上采樣以初始化聯合優化並為下一個尺度設置內容約束。然后重復此操作,直到以最高分辨率完成聯合優化。
  • 本論文的貢獻:

    • 利用卷積神經網絡分別建立全局內容約束和局部紋理約束模型,提出了一種聯合優化框架。
    • 進一步介紹了一種基於聯合優化框架的高分辨率圖像修補多尺度neual patcher綜合算法。
    • 研究表明,從神經網絡中間層提取的特征可以用來合成真實感的圖像內容和紋理,此外,還可以用來傳遞藝術風格。

相關工作(兩個靈感)

Structure Prediction using Deep Networks Over

  • 與傳統的圖像生成(GAN)不同,圖像修復的目的是在已知圖像區域的條件下,預測缺失部分的內容。最近提出的用於圖像修復的encoder-decoder網絡結構, 使用 ℓ2 loss 和 adversarial loss (Context Encoder)相結合的損失函數。在論文中,我們采用Context Encoder作為全局內容預測網絡,使用它的輸出初始化多尺度neural patch合成算法。

Style Transfer

  • 引用[15, 16, 28, 3, 39, 22],展示了神經風格轉移的成功。這些方法主要是通過結合一個圖像的“樣式”和另一圖像的“內容”來生成的圖像。這也表明了神經特征(neural features)在生成圖像的精細紋理和高頻細節方面也非常強大

方法

總體框架

3x5BBq.jpg

3x5GAf.jpg

  • 在優化損失函數得到最佳的修復圖像\(x^〜\),該損失函數由三個項構成,包括整體內容項(the holistic content term), 局部紋理項(the local texture term)和TV損失項(the tv-loss term)。
    • 整體內容項是一個全局結構約束,它捕獲圖像的語義和全局結構。首先訓練Content network,並用它初始化整體內容項。
    • 局部紋理項是對輸入圖像的局部紋理統計進行建模。使用在ImageNet上預先訓練的VGG-19網絡計算的。
  • 內容約束模型:我們首先訓練整體內容網絡\(f\)(the holistic content network f),輸入網絡的是去除中心矩形區域並填充平均顏色的圖像,並且ground truth圖像\(x_t\)是原始圖像的中心矩形的內容。一旦整體內容網絡被訓練,我們就可以使用網絡的輸出\(f(x_0)\)作為聯合優化的初始內容約束。
  • 局部紋理項:目的是為了確保缺失部分的內容和缺失部分周圍細節上相似。通過neural patches來定義相似性(neural patches已經成功應用到捕捉圖像的樣式。)為了優化局部紋理項,將圖像\(x\)輸入到預先訓練的VGG網絡(局部紋理網絡)中,並在網絡的預定特征層上,使缺失區域內的小(通常為3×3)神經塊的響應與缺失外的神經塊相似。實際上,我們使用relu3_1和relu4_1層的組合來計算神經特征。我們使用有限的內存BFGS通過最小化關節內容和紋理損失來迭代更新\(x\)
  • 多尺度問題:多尺度為了實現高分辨率圖像的修復,對於給定的一幅缺失范圍較大的高分辨率圖像,我們首先對圖像進行縮小,然后利用內容網絡的預測得到參考內容。然后對於給定參考內容,我們在低分辨率下優化(即內容和紋理約束)。然后對優化結果進行上采樣,並將其用作精細尺度下優化的初始化。

聯合損失函數(The Joint Loss Function)

  • 輸入圖像\(x_0\),輸出圖像\(x\)
  • R表示輸出圖像\(x\)的缺失部分,\(R^φ\)表示VGG-19網絡的特征映射φ(x)中的對應缺失部分的區域。
  • h(·)表示在矩形區域中提取子圖像或子特征映射的操作,即h(x,R)表示在x中R區域的顏色內容,\(h(φ(x),R^φ)\)表示\(φ(x)\)\(R^φ\)區域的內容。
  • 內容約束網絡(the content network)記為\(f\),紋理約束網絡(the textture network)記為\(t\)
  • 圖像縮小比例\(i\)=1,2,.....,N(N是縮小的比例數目),最佳重構(hole filling)結果\(x^〜\),可以通過解決以下最小化問題來實現:
    • 3j49s0.jpg
    • 其中,\(h(x_1,R) = f(x_0)\),\(φ_t(x)\)表示在局部紋理網絡\(t\)的中間層的特征映射(feature map)(或特征映射的組合),α是反映這兩個項之間重要性的權重。α和β設置為5e-6可以平衡每個損失的大小。
    • 損失函數三項的解釋:\(E_c\)\(E_t\)\(γ\)
      • \(E_c\)被建模為整體內容約束,用來懲罰優化結果與以前的內容預測(來自內容網絡或較粗規模的優化結果)之間的\(l_2\)差異。

        • 3jjlwj.jpg
      • \(E_t\)被建模為局部紋理約束,用來懲罰缺失部分內外紋理外觀的差異。

        • 首先在網絡\(t\)中選擇某一特征層(或特征層的組合)並提取其特征映射\(φ_t\),對於缺失區域\(R\)中每個\(s×s×c\)大小的局部查詢塊P,我們在缺失部分外找到其最相似的塊,並通過平均查詢塊與其最近鄰的距離來計算損失。
        • 3vSzrT.jpg
        • \(|R^φ|\)是區域\(R^φ\)中采樣的塊的數量,\(P_i\)是以位置\(i\)為中心的局部神經塊(local neural patch),\(nn(i)\)計算公式為:3xBvxU.jpg
          • \(N(i)\)\(i\)\(R\)重疊的相鄰位置的集合。
      • TV loss 目的是為讓圖像更加平滑。

        • 3xDfoR.jpg

The Content Network

  • 學習初始內容預測網絡(content prediction network )的一種簡單方法是訓練回歸網絡\(f\)以使用輸入圖像\(x\)(具有未知區域)的響應\(f(x)\)來近似於區域\(R\)處的ground truth \(x_g\)
  • 我們實驗采用\(l_1\)loss和adversarial loss。
  • 對於每個訓練的圖像,\(l_2\) loss被定義為:3xcu59.jpg
  • adversarial loss被定義為:3xc1v6.jpg
  • 我們采用和Context Encoder相同的方法,\(l_2\)loss和adversarial loss 組合的方式:3xgdwF.jpg
    • λ取0.999

The Texture Network

  • 我們實驗ImageNet Classification的VGG-19預訓練網絡作為紋理網絡(the texture network),並且使用\(relu3-1\)\(relu4-1\)層計算局部紋理約束(the local texture term)。用兩個層計算比單用一層計算效果會更好。
  • 使用VGG-19網絡的原因:VGG-19網絡經過語義分類訓練,因此其中間層的特征具有很強的不變性(紋理變形)。 這有助於推斷出缺失部分內容進行更准確重建。

Experiments

​ 可視化和定量的評估。我們首先介紹了這些數據集,然后與其他方法進行了比較,證明了該方法在高分辨率圖像修復中的有效性。在這一部分的最后,我們展示了一個真實的應用程序,在這個應用程序中,我們可以從照片中移除干擾因素

  • DataSets:Paris StreetView and ImageNet.(不使用標簽)

    • paris streeview: 包含14900張訓練圖片和100張測試圖片。
    • ImageNet:包括1260000張訓練圖片和200張從驗證集中隨機挑選的圖片。
  • Experimental Settings:在低分辨率(128×128)的情況下,首先將我們的方法與幾種基准方法進行了比較。

    • 首先,我們將結果與采用\(l_2\)loss的上下文編碼器進行了比較。
    • 第二,我們將我們的方法與上下文編碼器使用對抗性損失所取得的最佳結果進行比較,這是使用深度學習進行圖像修復領域的最新技術。
    • 最后,我們用AdobePhotoshop中的PatchMatch算法來比較內容感知填充的結果。我們的比較證明了所提出的聯合優化框架的有效性。
      • 通過與基准方法的比較,說明了整體聯合優化算法的有效性和紋理網絡在聯合優化中的作用,並進一步分析了內容網絡和紋理網絡在聯合優化中的分離作用。
      • 最后,我們給出了高分辨率圖像修復的結果,並與Content-Aware Fill和Context Encoder(ℓ2 and adversarial loss)進行了比較。注意,對於上下文編碼器,高分辨率的結果是通過直接從低分辨率輸出上采樣獲得的。我們的方法在視覺質量方面顯示出顯著的改進。
  • Quantitative Comparisons

    • 在巴黎街景數據集上的低分辨率(128×128)圖像,我們將我們方法和基准方進行對比。表1的結果表明,我們的方法獲得了最高的數值性能。我們將此歸因於我們方法的本質——它可以推斷出Content-Aware Fill失敗時的圖像的正確結構,並且與Context Encoder的結果相比,還可以合成更好的圖像細節(圖4)。此外,鑒於修復任務的目標是生成逼真的內容,而不是生成與原始圖像中完全相同的內容,定量評估可能不是最有效的修復措施。3z91AS.jpg
  • The effects of content and texture networks

    • 我們做了一個研究是去掉內容約束項( the content constraint term ),只在聯合優化中使用紋理項。如圖8所示,在不使用內容項來指導優化的情況下,修補結果的結構是完全錯誤的。我們還調整了內容項和紋理項之間的相對權重。我們的發現是,通過使用更多的內容約束權重,結果更符合內容網絡的初始預測,但可能缺乏高頻細節。類似地,使用更多的紋理項可以得到清晰的結果,但不能保證整個圖像結構是正確的(圖6)。
  • The effect of the adversarial loss

    • 我們分析了在訓練內容網絡(the content networks)中使用對抗性損失的效果。人們可能會認為,在不使用對抗性損失的情況下,內容網絡仍然能夠預測圖像的結構,聯合優化將在稍后校准紋理。但是我們發現,內容網絡給出的初始化質量對最終結果很重要。當初始預測是模糊的(僅使用“l2損失”)時,與同時使用“l2損失”和“對抗損失”訓練的內容網絡相比,最終結果也變得更加模糊(圖7)。
  • High-Resolution image inpainting

    • 我們在圖5和圖10中展示了高分辨率圖像(512×512)修復的結果,並與Content-Aware Fill和Context Encoder(\(1_2\) loss+adversarial loss)進行了比較。由於Context Encoder只適用於128x128圖像,並且當輸入較大時,我們使用雙線性插值直接將128×128的輸出上采樣到512×512。在大多數結果中,我們的多尺度迭代方法結合了其他方法的優點,產生具有相干全局結構和高頻細節的結果。如圖所示,與Content-Aware Fill相比,我們的方法的一個顯著優勢是,我們能夠生成新的紋理,因為我們不會直接使用現有的patch進行修補。然而,一個缺點是,根據我們當前的實現,我們的算法需要大約1分鍾的時間,用Titan X GPU填充512×512圖像的256×256個孔,這比內容感知填充要慢得多。
  • Real-World Distractor Removal Scenario

    • 最后,我們的算法很容易擴展到處理任意形狀的缺失部分。我們首先使用一個包圍矩形來覆蓋任意的缺失部分,這個缺失部分再次填充了平均像素值。經過適當的裁剪和填充,使矩形位於中心位置后,將圖像作為內容網絡的輸入。在聯合優化中,內容約束(the content
      constraint)是通過內容網絡在任意缺失部分內的輸出來初始化的。紋理約束基於缺失部分外的區域。圖11示出了幾個示例及其與內容感知填充算法的比較(注意,上下文編碼器(Context Encoder)不能顯式地處理任意缺失部分,因此我們不在此與之進行比較)。

Conclusion

我們已經提出了使用神經塊合成(neural patch synthesis)在語義修復方面的最新進展。研究發現,紋理網絡(the texture network)在產生高頻細節方面非常強大,而內容網絡(the content network)在語義和全局結構方面具有很強的先驗性。這可能對其他應用有潛在的幫助,例如去噪、超分辨率、重定目標和視圖/時間插值。當場景復雜時,我們的方法會引入不連續性和偽影(圖9)。此外,速度仍然是我們算法的一個瓶頸。我們的目標是在今后的工作中解決這些問題。


免責聲明!

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



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