郭俊東 馮 輝 徐海祥
(武漢理工大學高性能船舶技術教育部重點實驗室1) 武漢 430063)(武漢理工大學航海與能源動力工程學院2) 武漢 430063)
智能船舶通常配備多種傳感器設備對自身運動狀態及周邊環境進行感知,其中基于可見光的視覺感知是智能船舶感知技術的核心所在.但由于船舶在水面航行的過程中會不可避免地發生搖蕩,使得視覺傳感器所采集到的圖像較為模糊,這對障礙物的目標檢測會產生極大的影響,從而降低了為后續決策系統所提供的信息質量及智能船舶航行的安全性能.
傳統的圖像去模糊方法主要基于模糊核理論來對模糊圖像進行復原,利用估計得到的模糊核對模糊圖像進行反卷積操作以獲得復原圖像.文獻[1]以分段函數來擬合多個自然圖像的梯度分布,然后利用交替迭代的方法對復原圖像和模糊核進行估計;文獻[2]對模糊核函數采用標準化稀疏度量方法進行估計,并且方法中基于圖像梯度的正則化項的應用大幅度提升了模糊圖像的復原效果;Xu等[3]利用基于非自然L0范數的方法來估計模糊圖像的模糊核,相比于文獻[1-2]取得了更好的去模糊效果;Liu等[4]利用一階和二階圖像梯度的L0范數來估計模糊核,有效提升了模糊核估計的精確度.上述方法雖然對模糊圖像具有一定的復原效果,但對噪聲較為敏感,復原圖像的清晰度不夠理想,并且易產生振鈴效應.
隨著近年來深度學習的高速發展,越來越多的學者將深度學習應用于圖像去模糊的研究領域.Nah等[5]利用多尺度的卷積神經網絡以“端到端”的訓練方式直接對圖像進行去模糊處理,該方法具有很強的泛化能力,并且運算效率較高.Kupyn等[6]利用條件生成對抗網絡來對圖像去運動模糊,網絡模型的判別器采用了Patch-GAN的網絡結構,利用由對抗損失和基于VGG19網絡的感知損失所組成的多元損失函數對網絡進行優化,相比于文獻[5]的方法在復原圖像清晰度和復原效率上均取得了更為理想的效果.但該方法的判別器Patch-GAN只能對單一尺寸的圖像塊進行鑒別,缺乏對不同尺度圖像的適應性.
為增強網絡模型對不同尺度圖像的適應性,本文基于生成對抗網絡(GAN)[7]提出了一種端到端的圖像去運動模糊模型,構建了一種新的具有多重感受野的判別器,以完善普通Patch-GAN只能對單一尺寸圖像塊進行鑒別的缺陷.為提高復原圖像與清晰圖像的結構相似性,文中在網絡模型的損失函數中加入了基于SSIM圖像質量評價指標的結構相似性損失,并進行了實驗驗證.
生成對抗網絡應用于去模糊的網絡模型見圖1,主要包括生成器G和判別器D兩個模塊.首先將運動模糊圖像B輸入至生成器G來生成復原圖像G(B),再將清晰圖像S和復原圖像G(B)輸入判別器D,判別器D對二者進行鑒別并將鑒別結果反饋給生成器G.若鑒別為清晰圖像,則給出高分,若鑒別為復原圖像,則給出低分.在網絡模型的訓練過程中,生成器G期望利用判別器D的鑒別結果不斷生成更加真實的圖片來欺騙判別器D,而判別器D也在鑒別過程中不斷地提升自己的鑒別能力,通過利用二者間的博弈關系來提升網絡的去模糊性能.當判別器D已經無法分辨出復原圖像G(B)和清晰圖像S時,表明網絡模型已經達到了最優的去模糊性能[7].
圖1 網絡模型整體架構
在生成對抗網絡中,損失函數給定了網絡的優化方向,所以選擇合理的損失函數對網絡的性能有著重要影響.文中的損失函數主要包括對抗損失、感知損失及結構相似性(SSIM)損失.
1.2.1對抗損失函數
判別器采用WGAN-GP[8],以Wasserstein距離[9]來表示網絡的對抗損失,其優勢在于可以避免經典GAN訓練過程中的梯度消失和模式崩潰問題,使訓練更加穩定,具體表達形式為
λGP·Ex~penalty[‖xD(x)‖-1]2
(1)
式中:N為圖像數量;D為判別器;G為生成器;IS為清晰圖像;IB為模糊圖像;G(IB)為生成器對模糊圖像的復原圖像,式中第二項為WGAN-GP為滿足Wasserstein距離中的1-Lipschitz連續性條件而設置的梯度懲罰項,λGP為梯度懲罰項的正則化系數,x~penalty為多維空間中在真實樣本與生成樣本間進行隨機取樣而得到的樣本.
訓練時判別器D期望最大化對抗損失,而生成器G期望最小化對抗損失,二者在訓練過程中相互對抗, 共同進步.
1.2.2感知損失函數
為使復原圖像與清晰圖像具有更加相似的圖像特征,在網絡模型整體的損失函數中加入了基于VGG19[10]網絡conv_3-3層的感知損失函數.感知損失的表達形式為
(2)
式中:φi,j為預訓練的VGG19網絡中第i個最大池化層之前的第j個卷積層激活后輸出的特征圖.Wi,j,Hi,j為特征圖的寬度和高度.通過計算復原圖像與清晰圖像在VGG19網絡conv_3-3層的特征圖差值來表示復原圖像與清晰圖像的特征差異大小.
1.2.3結構相似性損失函數
為提升網絡模型的復原圖像與清晰圖像在亮度、對比度和結構等方面的相似性,在網絡模型整體的損失函數中加入了基于SSIM圖像質量評價指標的結構相似性損失,具體表達形式為
LSSIM=SSIM(IS,G(IB))
(3)
相應的SSIM計算表達式為
(4)
式中:C1,C2為避免分母為0而設定的常數;μX,μY為圖像X和圖像Y的均值;σX和σY為圖像X和圖像Y的方差;σXY為圖像X和圖像Y的協方差.
SSIM圖像質量評價指標可以有效地反應兩幅圖像間的結構相似性,數值范圍為0~1,其值越大表示圖像間的相似度越高.
1.2.4總損失函數
綜合對抗損失、感知損失及結構相似性損失可得本文提出的網絡模型的總損失.
(5)
式中:λ1為感知損失的正則化系數;λ2為結構相似性損失的正則化系數.
生成器網絡的整體結構參考文獻[11]在風格遷移任務中所采用的網絡結構,詳細結構見圖2.風格遷移任務是指將圖像由源風格域轉換至目標風格域的過程,而圖像去模糊任務是將圖像由模糊域轉換至清晰域的過程,兩種任務的本質均為圖像在不同域間的轉換,故有著很大的相似性.
圖2 生成器網絡結構
生成器網絡共有9個ResNet模塊[12]、4個卷積塊和2個反卷積塊.所有卷積層后均利用實例歸一化(instance normalization)對卷積結果進行歸一化處理,以加速網絡的訓練過程.除網絡最后一個卷積塊使用tanh作為激活函數外,所有卷積塊均使用Relu作為激活函數.此外,生成器中采用了全局跳躍連接(ResOut),將網絡的輸入內容直接加入到網絡的輸出內容之中,生成器學習的內容為清晰圖像IS與模糊圖像IB之間的殘差IR,即IS=IB+IR.由于模糊圖像與清晰圖像在顏色和風格等方面具有較多相似的圖像特征,相比于讓網絡學習模糊圖像到清晰圖像的映射,只讓網絡學習模糊圖像與清晰圖像間的殘差可以大大減少網絡的學習量,使其在訓練過程中更快地收斂.
在基于生成對抗網絡的圖像處理任務中,Patch-GAN[13]為目前使用最為廣泛的判別器網絡結構.不同于普通判別器對整張圖像進行鑒別真偽,Patch-GAN將整張圖像分為若干個N×N的圖像塊,將這些圖像塊的鑒別結果輸出為一個二維矩陣,以矩陣中所有元素的平均值作為整張圖像的評價結果,具體鑒別過程見圖3.
圖3 Patch-GAN的鑒別過程
相比于普通判別器,Patch-GAN可以指引生成器復原出更加細致的圖像特征.但在不同的圖像中,主體內容所占的面積比例不盡相同,普通Patch-GAN的網絡結構一經確定后便只能針對某一特定大小的圖像塊進行鑒別.因此為增強網絡模型對不同尺度圖像的適應性,在Patch-GAN的基礎上構建了一個具有多重感受野的判別器,其網絡結構見圖4.
圖4 判別器網絡結構
判別器的主干部分由6個卷積塊組成,從第4個卷積塊開始引出分支結構,每個分支末端利用1×1的卷積核或4×4的卷積核將主干網絡的輸出壓縮為單通道的特征圖,不同分支特征圖中的每一個元素有著不同的感受野,即對應不同大小的圖像塊.隨著主干網絡卷積塊的增加,分支特征圖中各元素的感受野從46×46逐漸增加到286×286.
綜合來看,相比于普通的判別器本文構建的判別器的優勢在于:
1) 在不需要構建多個判別器的前提下獲得了多重的感受野,使得網絡模型能夠適應不同尺度的圖像特征,同時避免了網絡參數的大量增加;
2) 通過主干結合分支結構,使得網絡模型從小尺寸圖像塊的鑒別中學習到的信息可以共享至網絡模型對更大尺寸圖像塊的鑒別過程,即小尺寸的圖像塊的鑒別知識對大尺寸圖像塊的鑒別具有一定的指引作用.
此外,為了避免經典GAN的梯度消失與模式崩潰問題,本文利用Wasserstein距離來表示每個訓練過程的對抗損失大小,損失函數中不需要對判別器的輸出值取對數,所以判別器最后一層不使用sigmoid激活函數.
利用武漢理工大學智能船舶與動力定位研究團隊的船舶圖像數據集中的1 476張原始清晰船舶圖像來構建訓練集和測試集,其中訓練集共1 364張,測試集共112張,數據集中部分船舶圖像樣本見圖5.
圖5 數據集中部分船舶圖像樣本
利用OpenCV并基于Python語言對清晰的船舶圖像添加運動模糊,訓練集中的模糊距離從5個像素值至個20個像素值隨機取樣,為全面地評估網絡模型對于不同模糊距離的去模糊效果,在測試集中的為每個模糊距離分配7張圖像,訓練集和測試集的模糊角度均從0°~360°的均勻分布中隨機取樣.網絡模型訓練集和測試集的具體圖像數量信息見表1.
表1 訓練集與測試集圖像數量
當模糊距離為16個像素值、模糊角度為45°時的模糊效果見圖6,其中左側為清晰圖像,右側為生成的模糊圖像.
圖6 模糊效果展示
此外,為防止發生網絡模型對訓練集的過擬合,在訓練過程中隨機對圖像進行鏡像和幾何翻轉處理.
實驗環境基于64位Windows10操作系統,GPU為NVIDIA GeForce GTX 1050Ti ;CPU為英特爾i7;編程語言Python版本為3.6.4;深度學習框架為TensorFlow1.10.0、 Pytorch1.1.0.
考慮到本文各損失函數數量級的不同,為平衡其在訓練過程中的比重,將感知損失正則化參數λ1設為1,結構相似性損失正則化參數λ2設為10 000,梯度懲罰項正則化系數λGP設為10.網絡訓練的batch size為1,采用Adam優化器,訓練周期共300個epoch.
2.3.1去模糊實驗結果
為更加清晰地反應本文創新點對網絡模型性能的提升,將結構相似性損失、具有多重感受野的判別器依次加入至網絡模型中并對其進行訓練.此外,為了綜合對比和分析本文提出的去模糊方法的性能,選擇目前在圖像去運動模糊領域表現良好的文獻[6]的深度學習去模糊方法進行對比,各模型的具體信息見表2,各模型去模糊的主觀視覺效果見圖7.
表2 各模型的具體信息
圖7 不同方法的去模糊效果
由圖7可知,相比于采用對抗損失和感知損失對網絡進行優化的文獻[6],本文采用由對抗損失、感知損失和結構相似性損失組成的三元損失函數組對網絡進行優化的模型1的復原效果有著明顯的優勢;模型2將模型1的判別器改為了具有多重感受野的判別器,比模型1的去模糊效果有了一定的提升,其復原圖像更加接近原始清晰圖像.
此外,為更加客觀地評價本文提出方法的去模糊性能,采用目前圖像去模糊領域使用最為普遍、認可度最高的SSIM和PSNR指標作為網絡模型去模糊效果的客觀評價標準,兩項指標越高表示模型的去模糊效果越好.各方法基于測試集的SSIM和PSNR結果見表3.
表3 不同方法的SSIM、PSNR結果
由表3可知,采用三元損失函數組的模型1的兩項指標均比文獻[6]的方法要高,通過引入具有多重感受野的判別器,模型2的兩項指標比模型1有了進一步地提升.相比于文獻[6]的方法,模型2的SSIM指標提升了13.2%,PSNR指標提升了6.3%,驗證了本文提出方法良好的去模糊性能.
2.3.2去模糊后的目標檢測結果
為了驗證文中提出的圖像去模糊方法對模糊船舶圖像目標檢測效果的提升,利用武漢理工大學智能船舶與動力定位研究團隊的船舶圖像數據集中的1 000張船舶圖像訓練了基于SSD算法的船舶目標檢測模型,并利用訓練好的目標檢測模型對本文測試集的清晰圖像、模糊圖像及其對應的復原圖像進行了目標檢測,部分圖像的檢測結果見圖8[14-15].實驗結果表明,模糊圖像經本文的網絡模型處理后,其在預訓練的船舶目標檢測模型上的準確度得到了大幅提升,并且可以達到或非常貼近清晰圖像的目標檢測結果.
圖8 模糊圖像、復原圖像和清晰圖像的目標檢測結果
文中基于生成對抗網絡結合結構相似性損失和具有多重感受野的判別器提出了一種新的船舶圖像去運動模糊方法,該方法相比于現有的圖像去模糊方法具有更好的去模糊效果,能夠顯著提高模糊圖像的清晰度和目標檢測準確度.在今后的研究工作中將致力于在減小模型參數量的同時提升模糊圖像的復原清晰度和復原效率.