Semantic Image Inpainting with Deep Generative Models


摘要

論文來源:CVPR 2017

論文提出的方法:給定一個訓練好的生成模型,采用提出的兩個損失函數$ context-loss和prior-loss$,通過在潛在的圖像流尋找與需要修復圖片最接近的編碼來實現修復。

優勢之處:最新的方法需要有關缺失部分的一些特定信息,而此方法不管缺失部分如何,修復都是可能實現的。

網絡結構:理論上可以使用各種\(GAN\)網絡結構,本論文采用\(DCGAN\)

數據集:三個數據集分別為$the-Celeb-Faces-Attributes-Dataset (CelebA) , the -Street-View-House-Numbers (SVHN) 和the-Stanford-Cars-Dataset $

Codesemantic_image_inpainting

介紹

語義修復\(Semantic-inpainting\)):是指根據圖像的語義信息來推斷圖像中任意大的缺失區域內容。

典型圖像修復方法包括:基於局部信息和非局部信息來修復圖像。現在大多數的修復方法是基於單個圖像修復(利用圖片局部信息)而設計的,利用輸入圖像提供的信息,並利用image priors來解決問題。

圖像修復的分類

利用局部信息修復圖片:利用圖像本身的局部信息來修復圖像。

方法名稱 實現思想
base on total variation (TV)[34,1] 考慮了自然圖像的平滑特性,有助於填充小的缺失區域或去除雜散噪聲。
引用[6] 紋理圖像中的洞可以通過從同一圖像中找到相似的紋理來填充。
statistics of patch offsets[11], planarity [13] or low rank (LR) 能夠有效的提高結果的效果
PatchMatch (PM) [2] 在圖像的未缺失部分搜索相似的補丁來進行填充
利用局部信息修復圖片缺點: 都要求在輸入圖像中包含適當的信息,例如類似的像素、結構或補丁。如果缺失區域很大且可能是任意形狀的,則很難滿足這一假設。

利用非局部信息修復圖片:利用一些外部信息,來預測圖像中缺失部分的像素。

方法名稱 實現思想
引用[10] 從一個巨大的數據庫中剪切並粘貼一個語義相似的補丁。
引用[37] 基於互聯網的檢索可用於替換場景的目標區域。
以下為基於學習的方法
引用[27],[28],[33],[22] 經過一個圖像字典或者神經網絡的學習,推理的時候不需要訓練數據。
缺點: 僅適用於缺失的部分教小或者是去取圖片上的文本

本文中創新思路:講圖像的語義修復問題,轉換為受約束圖像的生成問題,並且利用了生成模型的最新成果。在一個被訓練深度生成(生成對抗網絡GAN)模型,我們搜索在潛在空間中與圖像“最接近”的需要修復圖像的編碼。然后使用編碼來使用生成器重建圖像。以處理損壞的圖像為條件,通過加權上下文損失來定義“最接近”,並且通過prior損失來懲罰不現實的圖像。

與CE對比(2016 CVPR)優勢:不需要MASK的數據集進行訓練並且在推理的時候可以對任意結構的缺失區域使用。

相關工作

Generative Adversarial Networks (GANs)

  • 包括兩個網絡:generator \(G\), discriminator \(D\)\(G\)將從先驗分布\(P_z\)采樣的隨機向量z映射到圖像空間,而\(D\)將輸入圖像映射到似然。\(G\)的目的是生成真實的圖像,而\(D\)起着對抗的作用,區分\(G\)生成的圖像和從數據分布\(P_{data}\)中采樣的真實圖像。
  • 損失函數:32Vgvq.jpg
  • \(h\)是來自\(P_{data}\)分布的樣本,\(z\)是潛在空間(latent space)的隨機編碼。
  • 生成對抗網絡不能直接用作本文(圖像語義修復)的原因:除非受到所提供的損壞圖像的約束,否則它們很有可能生成完全不相關的圖像。

Autoencoders 和 Variational Autoencoders (VAEs)

  • 一種無監督學習的方法,作用是學習數據復雜的分布情況。
  • 與GAN網絡相比,VAE更傾向生成過於平滑的圖像,這不是圖像修復的首要任務。通過講VAE的訓練結合一個adveserial loss會減少這種平滑,但是會出現更多的偽影。
  • Context Encoder(CE)這邊論文,這篇文章的結果可以理解為缺失部分圖像條件下的自編碼器。當缺失部分結構固定時候,修復的效果還是比較好的。

Back-propagation to the input data

  • 目的是為了尋找接近提供但是缺失部分圖像的編碼信息。

  • 應用Back-propagation的論文 用途
    引用[][][8,9,20] 紋理合成和樣式轉移
    引用[28] 創造夢幻般的圖像
    引用[36,5,35,21] 在輸入層上更新梯度來“反轉”網絡,用於可視化和理解經過訓練的網絡中學習到的特征
  • 因此,可以使用\(Back-propagation\)來實現語義修復任務,但是需要特別設計的損失函數。

Semantic Inpainting by Constrained Image Generation

(利用受限制的圖片生成來實現圖片語義修復)

  • 為了修復缺失部分大的圖像,通過正常的圖片訓練生成器G和判別器D。

  • 經過訓練,生成器\(G\)能夠從\(p_Z\)中提取點z,並從\(p_{data}\)中生成模擬圖像的樣本。

  • 我們假設如果判別器G是有效的,則不是來自\(P_{data}\)的圖像不應該在學習的編碼流\(Z\)上。

  • 因此,我們的目標是在受限制的編碼流\(Z\)上恢復最接近需要修復圖像的編碼\(Zˆ\)

  • 圖三,我們利用二維空間上的t-SNE將隱藏編碼流進行可視化,並在尋優步驟中得到中間結果,得到了尋優后,利用訓練的生成模型G生成缺失的內容。323fNq.jpg

  • 更具體地說,我們將尋找\(Zˆ\)的過程公式轉化為最優化問題。令\(y\)是待修復的圖像,\(M\)是對於圖片的二值MASK,與\(y\)對應,用來指出缺失的部分。圖三(a)為一個例子。

  • 用符號\(zˆ\)來定義最近編碼,即32Yib4.jpg

其中\(L_c\)表示上下文損失(context loss),該上下文損失限制給定輸入待修復圖像\(y\)和孔掩碼\(M\)的生成圖像。

\(L_p\)表示先驗損失,它懲罰不切實際的圖像。

除了上述所說的最小化,還可以考慮使用\(D\)通過最大化\(D(y)\)來更新y,類似於\(DeepDream\)中的反向傳播或神經風格轉移。然而,損壞的數據\(y\)既不是從真實圖像分布中提取的,也不是從生成的圖像分布中提取的。因此,最大化\(D(y)\)可能會導致一個遠離潛在圖像流形的解,從而可能導致質量差的結果。

Importance Weighted Context Loss(重要性加權上下文損失)

  • 為了填補較大缺失的圖片,我們的方式是利用除去缺失部分剩余的像素,來捕獲需要的信息。
  • 一個簡單的方式采用\(l2\)規范計算生成的樣本\(G(Z)\)和輸入圖片\(y\)的非缺失部分的距離。但是這個損失平等的對待每個像素,這是不合理的。
  • 考慮特殊的情況:當圖像的中間一小塊像素缺失時,很大部分的損失計算損耗在遠離孔的像素位置,例如面部后面的背景。為了找到正確的編碼信息,我們更加注意靠近孔的缺失區域。
  • 為了實現這一目標,我們假設上下文損失中像素的重要性與周圍像數正相關的假設。遠離缺失部分的像素扮演很小的角色。
  • 我們用重要性加權來來承擔每個像素的重要性,記為\(W\)
  • 32dnBT.jpg

\(i\)是像素的下標,\(W_i\)表示下標為\(i\)的元素的重要性,\(N(i)\)N是指像素\(i\)在局部窗口中的鄰域集合,|$ N(i)\(|是指\)N (i)$的基數(個數)。我們定義窗口的大小為7個像素。

  • 憑經驗,在實驗中我們發現\(l1\)規范比\(l2\)規范更好一些。於是我們將兩者都考慮了進來,我們將上下文損失定義為恢復的圖像和未損壞部分之間的加權ℓ1-范數差。即,

32wOyt.jpg

其中⊙表示逐像素進行乘機。

Prior Loss(先驗損失)

  • 先驗損失是指基於高級圖像特征表示而不是逐像素差異的懲罰。先驗損失鼓勵修復的圖像與從訓練集中提取的樣本相似。並且懲罰不真實的圖像。

  • 回想一下,在GAN中,鑒別器\(D\)被訓練為將生成的圖像與真實圖像區分開。 因此,我們選擇先驗損失與訓練鑒別器\(D\)\(GAN\)損失函數相同,即32BuHf.jpg

    \(λ\)是平衡這兩種損失的一個參數。\(z\)被更新為愚弄\(D\)並使相應生成的圖像更真實。

  • 通過實驗驗證,我們發現添加了先驗損失會使圖像更加真實。如圖4,略。

Inpainting(修復)

  • 我們已經定義了上下文損失還用先驗損失,待修復的圖像可以映射到潛在的表示空間中最接近\(Z\),記為\(Zˆ\)\(Z\)被隨機初始化並使用公式(2)中給出的總損耗的反向傳播進行更新。
  • 圖三(b)顯示了一個例子,\(Z\)在潛在流形上接近期望解。
  • 生成\(G(Zˆ)\)后,通過疊加輸入的正常圖片的像素,可以容易地獲得修補結果。但是,我們發現,盡管內容正確且對齊良好,但預測像素可能無法完全保持周圍像素的相同強度。Poisson blending [31]被應用在我們的最后結果上。關鍵是保持\(G(Zˆ)\)的梯度以保持圖像細節,同時移動顏色以匹配輸入圖像\(y\)中的顏色。
  • 我們最后的解決方案\(xˆ\)可以總結如下:

32coRS.jpg

其中,∇為梯度操作,最小化問題包含一個二次項,它具有唯一的解。

Implementation Details(實施細節)

  • 一般來說,我們的貢獻與特定的GAN結構是正交的,我們的方法可以利用任何生成模型G。

  • 本論文采用\(DCGAN\)

  • 生成模型\(G\)從[-1,1]之間的均勻分布中提取隨機100維向量,並生成64×64×3圖像。鑒別器模型\(D\)的結構基本上是逆序的。

  • 輸入層是64×64×3,隨后是一系列的卷積,圖像的尺寸是前一層的一半,通道的數量是前一層的兩倍,輸出層是一個2類的softmax。采用Adam優化器,遵循引用[32]。λ = 0.003。

  • 我們還對訓練圖像執行隨機水平翻轉的數據增強。

  • 在修復階段,我們需要利用反向傳播在潛在空間中找到\(zˆ\)。我們使用Adam進行優化,並在每次迭代中將\(z\)限制為[-1,1],我們觀察到這會產生更穩定的結果。我們在1500次迭代后終止反向傳播。我們對所有測試數據集和MASK使用相同的設置。

Experiments

  • 我們在試驗階段進行定性和定量的驗證。

Datasets and Masks

  • the CelebFaces Attributes Dataset (CelebA)

  • the Street View House Numbers (SVHN)

  • the Stanford Cars Dataset

  • 采用了5種不同的MASKS:1) central block masks; 2) random pattern masks, with approximately 25% missing; 3) 80% missing complete random masks; 4) half missing masks (randomly horizontal or vertical).

Visual Comparisons

  • Comparisons with TV and LR inpainting.
  • Comparisons with NN inpainting.
  • Comparisons with CE.

Quantitative Comparisons

采用PSNR值來進行對比。

發現與視覺比較中存在了一些矛盾,然后進行了一些介紹

Discussion

  • 修復的效果,強烈依賴於生成模型和訓練過程。
  • 有時候會存在很難在潛在空間中找到正確的\(zˆ\)
  • 當前GAN對於簡單的結構表現比較好,對於現實真實存在的情況的代表性表現較弱。

Conclusion

我們提出了一種新的方法來實現圖像的語義修復。與現在存在基於圖像局部信息和PATCH的方法相比,還是很好的表現形式。與\(CE\)(2016 CVPR)相比,我們修復的圖片更加真實。


免責聲明!

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



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