圖像修復必讀的 10 篇論文
作者:Chu-Tak Li
編譯:ronghuaiyang
你好,這篇文章可以看作是對深度圖像修復的複習,以及對新手的深度圖像修復的介紹。之前已經有 10 多篇關於圖像修復的深度學習方法的文章。是時候簡要回顧一下我們所學到的知識了。
什麼是深度圖像修復?
圖 1 所示,圖像修復應用的例子
圖像修復是一項任務,填補圖像中缺失的像素,使完成的圖像看起來很真實,並遵循原始 (真實) 的上下文。圖 1 顯示了一些應用,如刪除不需要的目標和交互式圖像編輯。只要你想,還有許多可能的應用。
術語
圖 2,一個 masked 輸入圖像 (左) 和一個完整的圖像 (右) 的例子
給定如圖 2(左) 所示的已損壞 / 掩碼的輸入圖像,我們通常定義 i) 無效 / 缺失 / 孔洞像素爲位於待填充區域的像素,ii) 有效的 / 留下的 / ground truth 像素作爲我們可以用來幫助填充缺失的像素。注意,我們可以直接複製有效像素,並將它們粘貼到填充圖像的相應位置。
介紹
填充圖像與一些缺失的部分,最簡單的方法是複製粘貼。其核心思想是首先從圖像本身的剩餘像素或數百萬張圖像的大數據集中搜索最相似的圖像 patch,然後直接將 patch 粘貼到缺失的部分。然而,搜索算法可能是耗時的,它涉及人工設計距離度量指標。其通用性和效率仍有很大的提高空間。
由於基於深度學習的方法和大數據時代,我們現在可以有數據驅動的基於深度學習的圖像修復方法,可以生成圖像中缺失的像素,具有良好的全局一致性和局部精細紋理。在這篇文章中,我們將專注於 10 種著名的基於深度學習的修復方法。我相信在你瞭解了這 10 種方法後,你也能理解其他的修復論文。
上下文編碼器 (第一個基於 GAN 的修復方法,2016)
圖 3,上下文編碼器 (CE) 的網絡結構
Context Encoder (CE, 2016) 是第一個基於生成對抗網絡 GANs 的修復算法。本文指出了圖像修復工作中一些有用的基本概念。“上下文” 一詞涉及到整個圖像本身的理解,CE 的核心思想是 Channel-wise 全連接層 (中間層在網絡如圖 3 所示),類似於標準的完全連接層,最主要的一點是,所有前一層的特徵對當前層的每個特徵都是有用的。這樣,網絡就可以學習到所有特徵位置之間的關係,從而對整個圖像有更深層次的語義理解。CE 已經被視爲一個基準,你可以看我之前的文章。用生成模型來做圖像恢復的介紹和回顧:上下文編碼器
MSNPS (增強的上下文編碼器, 2016)
圖 4,改版的 CE 中內容網絡和紋理網絡 (VGG-19) 的概要
Multi-Scale Neural Patch Synthesis (MSNPS, 2016)[3]可以被認爲是 CE 的增強版本。本文采用改進的 CE 算法對圖像中的缺失部分進行預測,並利用紋理網絡對缺失部分的預測進行裝飾,以提高填充後圖像的視覺質量。紋理網絡的思想來自於風格轉換的任務。我們想把最相似的有效像素的樣式轉移到生成的像素,以增強局部紋理細節。我認爲這項工作是粗到細兩階段網絡結構的早期版本。第一個內容網絡 (這裏是 CE) 負責缺失部分的重建 / 預測,第二個網絡 (這裏是紋理網絡) 負責填充部分的細化。通過使用膨脹卷積,該網絡能夠理解圖像的上下文,而不需要使用昂貴的全連接層,因此它可以處理不同大小的圖像。
除了擴展卷積的全卷積網絡外,還與生成器網絡一起訓練了兩個不同尺度的鑑別器。全局判別器着眼於整個圖像,局部判別器着眼於填充的中心孔。同時使用全局和局部識別器,填充圖像具有更好的全局和局部一致性。請注意,許多後來的圖像修復論文都遵循這種多尺度判別器的設計。圖像修復中的一個里程碑:全局和局部一致性的圖像補全
Patch-based Image Inpainting with GANs (GLCIC 的一個變體, 2018)
圖 6,提出的生成式 ResNet 體系結構和 PGGAN 判別器
Patch-based Image Inpainting with GANs 可以看作是 GLCIC 的變體。簡單地說,GLCIC 中嵌入了兩個先進的概念,即殘差學習和 PatchGAN,進一步提高了 GLCIC 的修復性能。本文作者將殘差連接與膨脹卷積相結合,形成膨脹殘差塊。傳統的 GAN 判別器也被 PatchGAN 判別器取代,以鼓勵更好的局部紋理細節和全局結構一致性。
傳統 GAN 鑑別器和 PatchGAN 鑑別器的核心區別在於傳統 GAN 鑑別器只給了一個預測標籤 (從 0 到 1) 來表示輸入的真實性而 PatchGAN 鑑別器給出了矩陣的預測標籤 (從 0 到 1) 來表示輸入的每個局部區域的真實性。注意,矩陣中的每個元素都代表輸入的一個局部區域。使用多尺度 patch 合成來做高分辨率的圖像復原
Shift-Net (基於深度學習的 “複製粘貼”, 2018)
圖 7,Shift-Net 的網絡架構,Shift 連接層在 32x32 的分辨率層上添加
Shift-Net 利用了現代數據驅動的 cnn 的優點和傳統的 “複製粘貼” 方法,提出 shift-connection 層深進行特徵重組。本文主要有兩個觀點。
首先,作者提出了引導損失,鼓勵缺失部分的解碼特徵 (給定掩蔽圖像) 接近缺失部分的編碼特徵 (給定良好條件圖像)。因此,解碼過程能夠在合理估計良好狀態圖像中的缺失部分(即缺失部分的 ground truth) 的情況下填補缺失部分。
其次,提出的 Shift 連接層具有移位操作,使網絡能夠有效地借用缺失部分外最近鄰居給出的信息,從而細化生成部分的全局語義結構和局部紋理細節。簡單地說,我們提供了適當的參考來改進我們的評估。我認爲對於對圖像修復感興趣的讀者來說,鞏固本文提出的觀點是有好處的。如何將 “複製粘貼” 嵌入到圖像修復中:Shift-Net 使用深度特徵重排的圖像修復方法
DeepFill v1 (圖像修復的一個突破, 2018)
圖 8,DeepFill v1 的網絡架構
Generative Image Inpainting with Contextual Attention (CA 2018)(也稱爲 DeepFill v1 或 CA),可以被視爲一個增強版或變體 Shift-Net。作者進一步發展了複製 - 粘貼的思想,並提出了一個可微和完全卷積的上下文注意力層。
與 Shift-connection 層類似,通過將生成的缺失孔內部特徵與缺失孔外部特徵進行匹配,我們可以知道缺失孔外部所有特徵對缺失孔內部每個位置的貢獻。因此,可以使用外部所有特徵的組合來細化缺失的洞內生成的特徵。與 Shift-connection 層相比,Shift-connection 只有尋找最相似的特徵 (不是可微的),本文采用軟任務,所有特徵都有自己的權重來表示他們的貢獻。深度圖像修復的一個突破
GMCNN (多分支的 CNNs 進行圖像修復, 2018)
圖 9,提出的網絡架構
Generative Multi-column Convolutional Neural Networks (GMCNN, 2018),擴展了足夠大的感受野對於圖像修復的重要性,並提出了新的損失函數進一步增強了局部紋理生成內容的細節。如圖 9 所示,有三個分支 / 列,每個分支使用三種不同的濾波器大小。多重感受野 (濾波器大小) 的使用是由於感受野的大小對圖像修復任務很重要。由於局部相鄰像素缺失,我們不得不借用遠處空間位置的信息來填補局部缺失的像素。
對於損失函數,隱式多樣化馬爾可夫隨機場 (ID-MRF) 損失的主要思想是引導生成的特徵 patch 在缺失區域之外找到其最近的鄰居作爲參考,這些最近的鄰居應該足夠多樣化,以便能夠模擬更多的局部紋理細節實際上,這種損失是 MSNPS 中使用的紋理損失的增強版本。在圖像恢復中使用多個感受野有什麼效果?
PartialConv (不規則孔洞的圖像修復, 2018)
圖 10,通過使用常規的 masked 圖像和提出的局部卷積訓練的深度修復方法的視覺比較
Image Inpainting for Irregular Holes using Partial Convolutions (PartialConv 或 PConv) 提出了一種處理多個不規則的孔洞的 masked 圖像的修復方法。顯然,本文的核心思想是部分卷積。使用 PConv,卷積的結果只依賴於有效像素,因此我們可以控制要在網絡內傳遞的信息。這是第一次針對處理不規則孔洞的修復論文。需要注意的是,之前的修復模型都是在常規的 masked 圖像上進行訓練,因此這些模型不適合完成不規則的 masked 圖像。使用部分卷積來推動深度圖像修復的極限
EdgeConnect (“先畫線,再塗色” , 2019)
圖 11,EdgeConnect 的網絡架構,有兩個生成器和兩個判別器
EdgeConnect: Generative Image Inpainting with Adversarial Edge Learning 提供了一種有趣的方式來完成圖像修復任務。本文的主要思想是將任務分爲兩個簡單的步驟,即邊緣預測和基於預測的邊緣圖的圖像補全。他們首先對缺失區域的邊緣進行預測,然後根據預測的邊緣信息完成圖像。我想說的是,本文中使用的大多數技術已經在我以前的文章中介紹過了。這對你有好處,看看如何各種技術可以一起使用形成一個新穎的深圖像修復方法。也許,你可以開發自己的修復模型。先畫輪廓,再塗色,一種新的圖像修復方法
DeepFill v2 (A Practical Generative Image Inpainting Approach, 2019)
圖 12,自由圖像修復模型的網絡結構概述
DeepFill v2 或 GConv, 2019 可能是最實用的圖像修復算法,可以直接使用在你的應用中。可以認爲是 DeepFill v1、Partial Convolution、EdgeConnect 的增強版本。本文的主要思想是門控捲積,它是部分卷積的一個可學習版本。通過添加一個額外的標準卷積層和一個 sigmoid 函數,可以學習每個像素 / 特徵位置的有效性,因此也允許可選的用戶草圖輸入。除了門控捲積外,還採用了 SN-PatchGAN 來進一步穩定 GAN 模型的訓練。一個實用的生成式深度圖像修復方法
最後的想法
我希望大家現在對圖像修復有一個基本的瞭解。我相信在我以前的文章中已經涵蓋了大多數常用的深度圖像修復技術。如果你看過之前的文章,我想現在你已經能夠理解文獻中其他的修復論文了。如果你是新來的,很歡迎,我希望這篇文章對你有用。
在我看來,對於圖像的修復,對於場景結構複雜,mask 比較大的圖像 (比如缺了 50% 的像素),仍然很難完成。當然,高分辨率圖像的修復也是另一個具有挑戰性的任務。所有這些挑戰都可以歸類爲極端圖像修復。、我認爲,即將到來的最先進的修復方法應該能夠解決其中的一些挑戰。
英文原文:https://towardsdatascience.com/10-papers-you-must-read-for-deep-image-inpainting-2e41c589ced0
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/LFdvu0RaqqoOQW1YxjxSDA