王豫峰
(南陽理工學院計算機與軟件學院,南陽 473000)
圖像修復技術是計算機視覺任務中非常重要的一項任務,是針對圖像中像素信息缺失或者受損部分,利用原有圖像中的像素信息和相關先驗信息,來對原本已經(jīng)破損的圖像進行信息補全和信息填充,得到一個經(jīng)過填充處理的圖像的過程,使得經(jīng)過處理的圖像和原完好圖像沒有太明顯的差別。圖像修復的本質是根據(jù)圖像中的部分完整信息重構整個圖像的完全信息,因此該問題沒有明確的唯一解。圖像修復技術的應用領域非常廣泛,比如:破損字畫等藝術品的修復、老舊照片的修復、失真圖片恢復、目標移除和圖像超分。
與傳統(tǒng)的圖像去噪任務相比,圖像修復任務不僅需要將圖像缺損內容補全,還需要根據(jù)整個圖像的紋理走向和圖像細節(jié)進行補全。在補全圖像缺失部分的同時,需要使補全后的圖像最大程度地接近真實圖像,使得修復后的圖像和原本完好圖像沒有太明顯的差別。在常規(guī)或小塊缺陷的圖像修復中,通過利用編碼器-解碼器架構學習圖像的數(shù)據(jù)分布,取得了良好的效果。但隨著區(qū)域的增大,像素之間的相關性減弱,圖像修復的質量就會急速下降。與常規(guī)的圖像修復和小塊圖像修復不同,大塊圖像修復需要預測的缺失內容較多,信息量較少。圖像修復的性能在很大程度上取決于所設計模型的預測能力。當前模型掌握的信息量較少時,就會產(chǎn)生失真、模糊的紋理和扭曲的結構。
現(xiàn)有的方法在方形遮罩和小比例損壞的圖像上取得了良好的性能,但對具有大比例不規(guī)則缺陷的圖像的修復算法是不夠的。針對大比例受損圖像,注意力機制是圖像修復任務中使用的一個重要工具,它可以匹配深度特征貼圖上的像素或面片以生成良好的結果。但是,固定單尺度上的面片匹配限制了將此模型應用于不同場景的能力。針對這一現(xiàn)象,需要將不同層次的深層特征映射來獲取不同尺度的信息,從而利用背景信息準確地恢復掩模區(qū)域。
為了使模型具有較強的預測能力,本文提出一種基于殘差網(wǎng)絡的圖像修復算法。利用殘差網(wǎng)絡的殘差特性,可以有效地降低模型退化。在殘差網(wǎng)絡中,以遞歸的方法收集并傳播不同層次的殘差信息,從而使不同層的特征表達不同的屬性,發(fā)揮不同的作用。算法將部分卷積策略引入到U-Net結構中。在處理不同狀態(tài)的區(qū)域時,包括已知背景和未知前景區(qū)域,可以避免誤用虛假特征信息。提出的損失函數(shù)結合了像素重建損失函數(shù)、感知損失函數(shù)、風格損失函數(shù)和全局損失函數(shù),主要根據(jù)鑒別器和特征提取器生成,有助于獲得真實的細節(jié),修復圖像中受損區(qū)域的基本紋理和結構,獲得細膩的細節(jié)。
目前圖像修復技術主要分為兩種,一種是傳統(tǒng)圖像修復技術,一種是基于深度學習的圖形修復技術。
傳統(tǒng)的圖像修復方法通過傳播信息來填充受損區(qū)域。根據(jù)傳播的內容,傳統(tǒng)的方法可以簡單地分為基于擴散的方法和基于補丁的方法?;跀U散的修復方法通過將局部像素強度的高階導數(shù)沿等像線從外部連續(xù)傳播到受損區(qū)域來重建目標區(qū)域,或者通過最小化修復模型的高階偏微分方程來重建目標區(qū)域。這些方法在保持局部平滑度和生成幾何結構方面具有良好的性能。但是,當孔洞較大時,它們會產(chǎn)生模糊結果?;诿嫫姆椒梢酝ㄟ^在面片級別搜索圖像的已知區(qū)域來恢復稍大的孔洞,并將最佳匹配的面片復制到缺失區(qū)域。在Patch-Match方法中,通過隨機抽樣可以找到一些好的補丁匹配,圖像中的自然連貫性使這種匹配能夠快速傳播到周圍區(qū)域。文獻[7]開發(fā)了一種基于面片的圖像修復方法,該方法通過測量非局部紋理相似度來搜索已知區(qū)域,并將找到的候選面片與遮罩區(qū)域進行平均濾波器融合。傳統(tǒng)的方法可以成功地恢復一些紋理細節(jié),并獲得滿意的結果,但捕獲全局結構的問題仍然存在。這些傳統(tǒng)算法通常通過數(shù)學和統(tǒng)計方法獲取信息,導致無法生成新內容。在解決面部修復問題時,它們往往無法產(chǎn)生合理的結果。
隨著機器學習的發(fā)展,很多基于卷積神經(jīng)網(wǎng)絡的模型被提出,它們通過大規(guī)模的訓練數(shù)據(jù)解決上述問題。CE算法通過傳遞輸入圖像的表示特征,在語義層次上為填充損傷區(qū)域提供合理的內容。文獻[8]提出了一種基于CE算法的全局和局部一致性圖像完成架構,該架構由完成網(wǎng)絡、全局上下文鑒別器和局部上下文鑒別器組成,以確保全局一致性和局部合理細節(jié)。MNPS將內容網(wǎng)絡和紋理網(wǎng)絡結合起來,以獲得整體和局部的約束信息。文獻[10]將轉移連接引入U-Net網(wǎng)絡,用于填充受損區(qū)域,以快速生成合理的內容。在轉移連接層的幫助下,有效區(qū)域的編碼器特征被轉移到缺失區(qū)域作為額外的約束。然而,這些方法通常集中于經(jīng)常出現(xiàn)在圖像中心的方形遮罩區(qū)域。通過改變遮罩層的外輪廓,從而解決某些特定任務,如目標移除。
對于隨機損壞的圖像,可以通過圖像空間位置的每個通道學習動態(tài)特征,并根據(jù)圖像特征數(shù)據(jù)更新掩碼,將區(qū)域卷積添加到由粗到細的網(wǎng)絡中,并采用非局部運算來處理完好區(qū)域和受損區(qū)域之間的差異和相關性。通過部分卷積和遮罩更新替換卷積層,僅利用有效輸入生成輸出。除了使用新的卷積方法改進這些方法外,還可以考慮輪廓邊緣信息來恢復受損區(qū)域,通過檢測前景中顯著性對象的輪廓,建立由邊緣生成器和圖像組成的網(wǎng)絡,然后使用該網(wǎng)絡指導圖像修復。
在圖像的修復中,想完整地表達圖像的結構信息,需要使用注意力機制。注意力機制廣泛應用于高級計算機視覺任務中,它是圖像修復中的一個重要工具,利用高層語義信息重構底層圖像特征,可以幫助從背景中學習相關特征。利用圖像的上下文注意力模塊,可以建立起從粗到精的體系結構,該體系結構專注于任何位置的相關功能補丁,以改進修復結果。多元圖像補全方法采用了一種自我關注的方法,利用短期和長期的上下文信息來保證外觀的一致性,用于處理不規(guī)則遮罩區(qū)域。但注意力機制還需要考慮不規(guī)則缺損區(qū)域的原因,需要構建不同尺度的注意力機制。
本文提出一種基于多尺度特征融合的殘差網(wǎng)絡模型,該模型可以有效融合多尺度的特征信息、空間注意力和遞進通道-空間注意力的表征特征,模型總體架構如圖1所示。
圖1 整體網(wǎng)絡結構
模型由編碼器和解碼器組成。編碼器用于學習特征,是一個下采樣和圖像特征化的過程。解碼器用于將先前編碼的特征轉換為所需的輸出,用于恢復和解釋特征地圖。為了避免連續(xù)下采樣導致丟失高頻信息,模型在下采樣前的卷積層和相應的反卷積層之間添加跳躍連接,通過對稱性保留細微的細節(jié)。從而使得圖像修復模型不僅保留初始細節(jié)以生成更精確的圖像,而且避免了計算成本的快速增加。
模型采用U-Net的體系結構作為算法的主干。在該體系結構中,每個特征尺度上使用跳躍連接,從而能夠充分地保留高-中-低層次的信息。模型的網(wǎng)絡參數(shù)可以聚焦于圖像的缺失部分,而忽略已知區(qū)域。
通過構造常數(shù)映射函數(shù)可以減少模型退化。在淺層網(wǎng)絡的頂部覆蓋一層身份映射=,可以隨著網(wǎng)絡深度的增加來表示高級特征。如何獲得常數(shù)映射是構建深度網(wǎng)絡的關鍵。在Resnet(見圖2)中,常量映射函數(shù)由以下函數(shù)構造:
圖2 Resnet網(wǎng)絡中的殘差模型
其中,x表示第-1層特征,身份映射函數(shù)可以通過學習H(x)得到。
每一個殘差塊由兩個部分組成,即:特征地圖和標識分支。在局部殘差模型中,存在多層特征和標識分支。其中,特征是連續(xù)序列形式,標識分支成倍增加。當函數(shù)的輸入維度非常高、網(wǎng)絡的層數(shù)加深時,會直接導致模型退化。但是,通過建立層的跳躍連接,可以更加有效地傳遞特征信息,減少了網(wǎng)絡深度帶來的副作用,從而使得帶短連接的網(wǎng)絡擬合高維函數(shù)的能力比普通連接的網(wǎng)絡更強,所以殘差網(wǎng)絡可以擬合更高維的函數(shù)。
在局部殘差模型中,每層以前饋方式接收所有先前層的殘差,即:
為了使非局部特征在整個網(wǎng)絡的學習過程中發(fā)揮作用,模型在更高的層次上提出了一種全局殘差收集方法,在全局范圍內的殘余聚集可以描述為:
其中,表示第一層,H(x)為最外層的身份映射。與普通殘差學習相比,本模型具有更強的參數(shù)傳導性和特征學習性。
為了更加有效地提高圖像修復模型的精準度,在構造損失函數(shù)時,需要考慮全局一致性和局部的細節(jié)協(xié)調性。損失網(wǎng)絡由四部分組成,即像素重建損失函數(shù)、感知損失函數(shù)、風格損失函數(shù)和全局損失函數(shù),用于局部像素完整性(局部區(qū)域有效損失)、細節(jié)協(xié)調性(內容相似度損失)、全局一致性(空間平滑度的總變化損失)和整體損失(補償損失誤差)。
在圖像修復過程中,像素重建損失函數(shù)是利用真實圖像和遮罩圖像之間的像素差異特性,從而進一步保證圖像缺損區(qū)域的修補的有效性。和是遮罩、輸出圖像和真實圖像I的L1正則項:
其中,N表示真實圖像I和遮罩的相同的像素個數(shù),遮罩是一個二進制矩陣,其中0表示缺失像素。
為了確保圖像高級結構的相似性,以保持全局圖像的結構信息,需要對真實圖像相似的特征進行表示,而不是它們之間的像素匹配。本文通過在VGG-16特征提取器中輸入生成的圖像和真實圖像來計算感知損失。通過VGG的感知損失函數(shù)可以保證解碼器生成的圖像更接近真實圖像。使用ImageNet中經(jīng)過預訓練的VGG-16網(wǎng)絡的第1、2、3層來進行計算。
現(xiàn)在,在中國,無論是繁華都市,還是偏遠山村,只要提到方便面,沒人不知道康師傅,提到茶飲料,沒人不知道康師傅冰紅茶。
風格損失函數(shù)用于圖像風格的一致性,通過計算VGG特征地圖自相關系數(shù)的L1正則化數(shù)值,獲得圖像整體高層風格樣式信息,確保修復的內容能夠符合整體圖像的風格樣式。
其中,H、W和C分別代表第層特征地圖Ψ的高度、寬度和通道數(shù)。
全局損失函數(shù)主要對圖像進行平滑懲罰。
其中,表示圖像缺失區(qū)域。
因此,算法通過融合像素重建損失函數(shù)、感知損失函數(shù)、風格損失函數(shù)和全局損失函數(shù)四種損失函數(shù),輸出不再代表整個圖像,而是圖像的不同區(qū)域。這樣,每一個判別結果都代表了圖像的局部特征,對于包含不規(guī)則區(qū)域的圖形修復任務是合理的。通過四類損失函數(shù)訓練模型的級聯(lián)性。圖像修復的解碼器輸出,用表示。
中各項的系數(shù),參考文獻[10]中的設置。
為了測試圖像修復算法的有效性,算法分別在Places2數(shù)據(jù)集和CelebA數(shù)據(jù)集上進行了圖像修復測試。在訓練階段,學習率設置為0.0003。在圖像修復評價中,使用填充圖像的視覺質量來評估算法的性能。
圖3展示圖像修復前后的對比結果。在實驗中,分別測試了建筑、景觀、房屋、人像等場景。從測試結果來看,算法可以處理帶有任意形狀孔的雜項圖像。即使缺損區(qū)域較大,圖像修復結果看起來也很自然。
圖3 圖像修復前后對比圖
在圖像修復的結果中,第一張圖像修復效果較好,不僅還原出原始的紋理信息,并且在結構上也沒有出現(xiàn)較明顯的扭曲,因為建筑物的整體線條直接,都是直線型。在未缺損區(qū)域,有效地保留了建筑物的整體風格樣式。所以,圖像修復效果較好。第二張圖像在結構上有部分扭曲,并且細節(jié)上有模糊的像素。主要原因是從已知區(qū)域中搜索近似最近鄰塊以匹配未知區(qū)域的時候,產(chǎn)生了大量不能適配的區(qū)域,從而導致圖像修復結果產(chǎn)生模糊紋理和扭曲結構。第三張圖像修復的結果失真,主要是因為該圖像是一個風景建筑物,在圖像缺損區(qū)域的鄰接區(qū)域中,正好有一個門。圖像在修復過程中,過多地學習了鄰域的感知信息,從而導致修復結果錯誤。第四張圖像是人像場景,由于人臉區(qū)域較為復雜,出現(xiàn)的缺損部分將人臉輪廓等重要信息覆蓋。算法根據(jù)前后相鄰區(qū)域塊的交替信息,對人臉外輪廓進行了預測。但是,在眼睛等細節(jié)部分,沒有搜索到明確匹配區(qū)域塊,從而導致出現(xiàn)圖像模糊的情況。
本文提出了一個基于U-Net的殘差聚集網(wǎng)絡來處理圖像修復問題。算法充分利用了殘差學習,利用多級注意力模塊,通過添加級聯(lián)實現(xiàn)了不規(guī)則掩模區(qū)域的多尺度特征表示。算法將部分卷積策略和多級注意力與提出的關節(jié)損失函數(shù)相結合,以保持背景區(qū)域的全局風格并生成精細的細節(jié),從而得到真實的結果。實驗表明,所提出的模型在生成真實和詳細的結果方面優(yōu)于最新的方法。
圖像損失區(qū)域的邊緣信息可能會導致圖像修復部分遮罩或重構的失敗。在圖像修復中,通過預測輪廓,然后修復缺失區(qū)域是一種可能的解決方案,這也是下一步將要考慮的重點。