愛伊米

深度影象修復的一個突破

本文

約4000字

,乾貨滿滿,建議

閱讀6分鐘

本文介紹瞭如何使用上下文注意力來進行深度影象修復。

今天,我們將深入探討深度影象修復的一個突破,上下文注意力。透過使用上下文注意力,我們可以有效地從遙遠的空間位置借用資訊來重建區域性缺失的畫素。這個想法實際上或多或少和上一篇的複製-貼上是一樣的。讓我們看看是如何做到的。

回顧

在之前的文章中,我介紹了使用shift連線層將未缺失區域生成的特徵作為參考來恢復缺失區域,可以讓我們得到更好的修復結果。在這裡,我們假設生成的特徵是對ground truth的合理估計,並根據已知區域的特徵與缺失區域內生成的特徵之間的相似性來確定合適的參考。

動機

在影象修復任務中,CNN的結構不能有效地模擬缺失區域與遙遠空間位置給出的資訊之間的長距離相關性。熟悉CNN的人應該知道,在卷積層,核的大小和膨脹率控制著感受野,網路需要越深入,才能看到整個輸入影象。這意味著,如果我們想捕捉影象的上下文,我們必須依賴於更深的層次,但我們丟失了空間資訊,因為更深層次的特徵的空間大小總是更小。因此,我們必須找到一種方法,在不用太加深網路的情況下,從遙遠的空間位置借用資訊(即理解影象的上下文)。

如果你還記得什麼是膨脹卷積,你就會知道膨脹卷積是一種在早期的層中增加感受野而不新增額外引數的方法。然而,膨脹卷積有其侷限性。它跳過連續的空間位置,以擴大感受野。請注意,跳過的連續空間位置對於填充缺失的區域也很關鍵。

介紹

這項工作與我們以前討論過的網路架構、損失函式和相關技術類似。對於該體系結構,所提出的框架由兩個生成器網路和兩個判別器網路組成。這兩個生成器在全卷積網路的基礎上使用了膨脹卷積。一個生成器用於粗重建,另一個用於細化。這被稱為標準的從粗到細的網路結構。這兩個判別器同時在全域性和區域性看完整的影象。全域性判別器以整個影象作為輸入,而區域性判別器以填充區域作為輸入。

對於損失函式,簡單地說,他們還使用了對抗損失(GAN損失)和L1損失(為了畫素級重建精度)。對於L1損失,他們使用一個spatially discounted L1 loss,其中為每個畫素差分配一個權值,權值基於畫素到其最近的已知畫素的距離。對於GAN損失,他們使用WGAN-GP損失,而不是我們所介紹的標準的對抗損失。他們聲稱,這種WGAN對抗性損失也是基於L1距離度量,因此網路更容易訓練,訓練過程也更穩定。

在這篇文章中,我將專注於提出的上下文注意力機制。因此,我簡要地介紹了從粗到細的網路架構、WGAN對抗損失和上面的加權L1損失。

方案

本文提出了上下文注意力機制,有效地從遙遠的空間位置借用上下文資訊來重建缺失的畫素。將上下文注意力應用到二次精細化網路中。第一個粗重建網路負責對缺失區域進行粗估計。與前面一樣,使用全域性和區域性判別器來鼓勵生成的畫素獲得更好的區域性紋理細節。

貢獻

圖1,該模型在自然場景、人臉和紋理影象上的修復效果例項。

本文最重要的思想是上下文注意力,它允許我們利用來自遙遠空間位置的資訊來重建區域性缺失的畫素。其次,使用對抗性損失和加權L1損失提高了訓練的穩定性。此外,本文提出的修復框架在自然場景、人臉、紋理等各種資料集上都獲得了高質量的修復結果,如圖1所示。

方法

圖2,所提出修復方法的網路架構

圖2顯示了所提出修復框架的網路架構,如前所述,它由兩個生成器和兩個鑑別器組成。

上下文注意力

以下是這篇文章的主要關注點。讓我們來看看上下文注意力層是如何設計來借用遙遠空間位置已知區域給出的特徵資訊來生成缺失區域內的特徵的。

深度影象修復的一個突破

圖3,上下文注意力層的圖形說明

圖3顯示了上下文注意層的圖形說明。運算是可微且全卷積的。

深度影象修復的一個突破

圖4,更多關於注意力注意力層的具體例子

圖4是上下文注意層的一個更詳細的示例。如圖3所示,前景是指在缺失區域內生成的特徵,背景是指從已知區域中提取的特徵。與複製貼上方法類似,我們首先要對缺失區域內生成的特徵與缺失區域外的特徵進行匹配。

以圖4為例,生成的缺失區域內的特徵大小為64×64×64,假設缺失區域外的特徵分為128個小特徵patch,大小為64×3×3。注意,本例中特徵的通道大小是64。然後,我們將128個小的feature patch與缺失區域內生成的feature進行卷積,得到大小為128×64×64的feature map。在本文中,該操作描述為:

其中為前景patches的特徵, 為背景patches的特徵。sx,y,x‘,y’是缺失區域特徵和已知區域特徵之間的相似性。實際上,這是一個標準的餘弦相似度計算過程。

當我們沿著通道維數看時,128個元素代表了所有已知patches和缺失區域內特定位置之間的相似性。這反映了128個已知patches對該位置的貢獻。然後,我們沿著通道維度對特徵對映執行Softmax歸一化,如圖4中的藍色區域所示。在Softmax歸一化後,沿通道尺寸的每個位置之和應為1。

與上一篇文章中提到的Shift-Net相比,你可以看到,這一次我們給每個已知特徵的patch分配了權重,來表示重建的時候每個特徵位置對於缺失區域的重要性(軟分配),而不是對於缺失區域的每個位置找一個最相似的(硬分配)。這也是為什麼提出的上下文注意力是可微的。

最後,以注意力特徵圖為輸入特徵,以已知的patches為核,透過反捲積的方法重建缺失區域內生成的特徵。

注意力傳播

注意力傳播可以看作是注意特徵圖的微調。這裡的關鍵思想是,鄰近的畫素通常有更接近的畫素值。這意味著他們會考慮周圍環境的注意力值來調整每個注意力分數。

例如,如果我們考慮左鄰居和右鄰居的注意力值,我們可以使用上面列出的公式更新當前的注意力值。注意,k控制要考慮的鄰居的數量。

作者聲稱,這可以進一步提高修復結果,這也可以透過與單位矩陣卷積作為核來實現。

關於注意力機制的另一點是,採用了兩種技術來控制提取的已知特徵塊的數量。

以較大的步長提取已知的特徵patch,以減少kernel數量。

操作前先對特徵圖大小進行向下取樣,獲取注意力圖後再進行上取樣。

網路中的注意力

深度影象修復的一個突破

圖5,在第二個細化網路中嵌入上下文注意力層的圖解

圖5顯示了作者如何將建議的上下文注意層整合到第二個細化網路中。你可以看到,又引入了一個分支來應用上下文注意力,然後將兩個分支連線起來以獲得最終的修復結果。注意力圖的顏色編碼是注意力圖的視覺化方法。例如,白色意味著畫素集中在自己身上,粉色是左下角區域,綠色是右上角區域,等等。你可以看到,這個例子有一個充滿粉紅色的注意力圖。這意味著填充區域從左下角區域借用了很多資訊。

實驗

作者首先比較了我們之前介紹的先前最先進的技術。

圖6,比較提出的基線模型和GLCIC,從左到右,輸入影象,GLCIC結果,基線結果

圖6顯示了使用建議的基線模型和以前最先進的GLCIC[2]進行修復的結果。提出的基線模型如圖2所示,上下文注意力分支。很明顯,基線模型在區域性紋理細節方面優於GLCIC模型。請放大看清楚些。

深度影象修復的一個突破

圖7,對比基線和完整模型的修復結果。從左到右,ground truth,輸入影象,基線結果,全模型結果,全模型注意圖

圖7顯示了在Places2資料集上使用基線模型和完整模型(帶有上下文注意)的定性結果。可見,完整模型具有較好的區域性紋理細節,提供了較好的修復效果。這反映了上下文注意力層可以有效地從遙遠的空間位置借用資訊來幫助重建缺失的畫素。請放大以便更好地觀看,特別是注意力圖。

表1,不同方法在Places2資料集上的定量比較

表1列出了一些客觀的評價指標,供參考。如前所述,這些指標不能完全反映修復結果的質量,因為有許多可能的解決方案來填補缺失的區域。你可以看到,建議的完整模型提供最好的L1, L2損耗和PSNR。對於電視丟失,PatchMatch提供更低的電視丟失,因為它直接複製原始影象patch來填補漏洞。

供參考的全模型引數為2。9M。對於大小為512×512的影象,GPU上每張影象需要0。2秒,CPU上每張影象需要1。5秒。

消融研究

注意力機制並不是一個新概念,文獻中有幾個注意力模組。作者們用不同的注意力模組做了實驗。

圖8,透過使用不同的注意力模組進行修復。從左到右:輸入,使用空間變換網路的結果,使用外觀流的結果,以及使用提出的上下文注意力的結果

比較了文獻中兩個著名的注意力模組,即空間變換網路和外觀流。簡單來說,對於外觀流,使用卷積層代替上下文注意力層,直接預測二維畫素偏移量作為注意力。這意味著我們新增一個卷積層來預測已知畫素到缺失畫素的移動。在圖8中,你可以看到使用外觀流(中間)為不同的測試影象提供類似的注意力圖的結果。這就意味著注意力圖對於給予我們想要的“注意力”是沒有用的。你也可以觀察到空間變換網路(左)不能為影象修復任務提供有意義的注意力圖。一個可能的原因是空間變換網路預測全域性仿射變換的引數,這並不足以幫助填補缺失的區域,也需要區域性資訊。這裡我沒有深入講解不同的注意力模組。

影象修復中GAN損失的選擇。

作者實驗了不同的GAN損失,如WGAN損失,典型的對抗性損失,和最小平方GAN。他們透過經驗發現WGAN損失提供了最好的修復效果。

重要的重建損失。

在不使用L1損失的情況下訓練了細化網路。他們發現L1損失對於確保畫素級重建精度是必要的,L1損失也會使修復結果變得模糊。因此,L1損失對於保證完整影象更好的內容結構至關重要。

感知損失,風格損失,TV損失。

我們將很快說到感知損失和風格損失。一個簡單的結論是,這三種損失並沒有給修復效果帶來明顯的改善。因此,他們的模型只使用加權L1損失和WGAN損失進行訓練。

總結

顯然,本文的核心思想是上下文注意力機制。上下文注意力層嵌入到第二個細化網路中。注意,第一個粗重建網路的作用是對缺失區域進行粗略估計。這種估計用於上下文注意力層。透過匹配缺失區域內生成的特徵和缺失區域外生成的特徵,我們可以知道缺失區域外所有特徵對缺失區域內每個位置的貢獻。注意,上下文注意力層是可微的和完全卷積的。

要點

你可能會發現,我們正越來越深入到深度影象修復領域。我在上一篇文章中介紹了Shift連線層,它以硬分配的形式在CNN中嵌入了複製-貼上的概念。本文以軟分配的形式構造了一個上下文注意力層,該層是可微的,並且可以端到端學習,無需修改梯度的計算。

希望大家能夠掌握本文提出的上下文注意力層的核心思想,特別是圖3和圖4所示的上下文注意力層公式。

—END—

英文原文:

https://towardsdatascience。com/a-breakthrough-in-deep-image-inpainting-review-generative-image-inpainting-with-contextual-1099c195f3f0

編輯:王菁