程文博
(1.中國船舶集團有限公司第七一〇研究所,湖北 宜昌 443003;2.清江創新中心,湖北 武漢 430076)
隨著對湖泊、江河和海洋的探索不斷深入,對于各類水底地形的刻畫需求也日益增加。目前可通過水下無人潛航器[1]裝配側掃聲吶得到水底地形原始圖像,通過超分辨率處理,可以獲得更加精細且清晰的地形圖像,這樣不僅對水下環境的感知和后續的自主決策至關重要,還能提升圖像中小目標的探測和識別效果。
圖像超分辨率(Super-Resolution,SR)是在20世紀60年代由HARRIS 等人[2]首次提出的,他們采用線性插值算法,提高了圖像的空間分辨率。目前主流的超分辨率算法主要有2 種:1)基于圖像插值的方法;2)基于深度學習的方法。SR 算法的概述如圖1所示。基于插值的算法是最早被應用于圖像超分領域的,其中最鄰近元法[3]由SCHULTZ等人提出,此方法相當于讓圖像經過一個高通濾波器,可以保留圖像的一部分邊緣特征。由HOU 等人提出的雙線性內插法[4],是對插值點附近的4 個相鄰像素進行加權求和作為插值點的像素值,權值的大小與插值點和相鄰像素點的距離成反比,所以重建后的圖像細節較差,邊緣較模糊。LI 等人提出的三次內插法[5],是對插值點附近的16 個相鄰像素點進行加權求和作為插值點的像素值,因此重建圖像的邊緣特征會更平滑。

圖1 超分算法概述圖Fig.1 Schematic diagram of SR algorithm
隨著各行各業對超分辨率的需求不斷增加,基本的插值算法已經不能滿足需求,各種新的SR算法如雨后春筍,而現如今深度學習的應用日益廣泛[6-7],基于深度學習的SR 也得到了迅速的發展。2014年,香港中文大學的董超等人[8]首次將卷積神經網絡用于超分領域中,提出了超分辨率卷積神經網絡(Super-Resolution Convolutional Neural Network,SRCNN),通過簡單的3 層卷積結構,完成了圖像從低分辨率輸入到高分辨率輸出的轉化,相較于傳統的插值算法,性能有了一定的提升。隨著生成對抗網絡[9]的興起,生成對抗網絡在圖像的重建中取得了較好的成績,也逐漸被應用于圖像超分領域,LEDIG 等人[10]提出了SRGAN,首次使用生成對抗網絡來訓練SRResNet,使其生成的高分辨率圖像看起來更加自然,相較于SRCNN 有更好的視覺效果。2018年,ZHANG 等人[11]提出了殘差密集網絡,充分利用了所有層的特征,然后通過特征融合機制極大限度的保留了特征,得到了更好的重建效果。WANG 等人[12]為了進一步提升生成圖像的質量,更好的保留原有的細節信息,在網絡中引入了殘余稠密塊(Residual-in-Residual Dense Block,RRDB)取代了殘差塊。哈爾濱工程大學的梁雪燦[13]在條件生成對抗網絡[14](CGAN)的基礎上提出了SR-CGAN 和一種帶有梯度懲罰的深層生成對抗網絡(DGP-SRGAN),前者可以有效地控制超分辨率圖像輸出,后者對保留細節和提高紋理起到了一定的作用。SOH[15]等人在2020年提出了一種基于元學習的超分算法訓練過程——MZSR,該方法利用元學習“學習怎樣去學習”的特性,在一定程度上解決了小樣本和大量迭代訓練的問題。
綜上所述,傳統插值算法存在著圖像整體平滑的問題,處理后圖像中小目標的邊緣模糊。本文采用了基于生成對抗網絡的超分算法,可以在保留紋理細節的情況下,將低分辨率圖像轉化為高分辨率圖像輸出,通過對圖像聲吶實測數據進行處理,驗證了方法的有效性。
本文中生成模塊的基本架構是SRResNet,但是對于中間的非線性映射結構做出了調整,本文的非線性映射結構由17 個殘余稠密塊構成,其中每個RRDB 均由3 個稠密塊(Dense Block,DB)組成,每個DB 則由3 個conv-LeakyRelu 模塊和1個卷積層構成。本文中的判別模塊采用VGG128[16]網絡。
生成模塊的結構如圖2所示,RRDB 和DB 的結構分別如圖3和圖4所示。

圖2 生成模塊結構圖Fig.2 Generate module structure

圖3 RRDB 結構圖Fig.3 RRDB structure

圖4 DB 結構圖Fig.4 DB structure
在圖像識別領域,卷積層的作用往往是減少或者維持輸入特征圖不變來達到提取特征的目的,而在生成對抗的超分算法中則是使用上采樣來增加輸入特征圖的大小,從而使輸入的低分辨率圖像變成高分辨率圖像輸出。本文采用轉置卷積的方法來達到上采樣的效果。轉置卷積計算過程如圖5所示。

圖5 轉置卷積計算過程Fig.5 Transposed convolution calculation process
從圖5中可以看出,轉置卷積的計算過程就是kernel 核與輸入的特種圖中,逐個元素相乘,放在對應位置,得到不同的特征矩陣,然后逐一相加得到最終的輸出。此處的例子stride=2,所以滑動的步長是2。
生成模塊的損失函數可以分為3 個部分:內容損失、像素損失、對抗損失。其中內容損失用到的是VGG19 經過激活函數之前的卷積層的輸出特征圖作為計算的輸入,使得其更偏重于紋理上的損失,而像素損失更偏向于像素層面的損失。其總體損失函數公式為
式中:LG為總損失;Lcotent為內容損失;LGL為對抗損失;Lpixel為像素損失。
Lcotent損失函數的公式為
式中:VGG()為經過VGG19 后第20 層的輸出結果;xiLR為生成模塊輸入的低分辨率圖像;xiSR為xiLR經過生成模塊后輸出的高分辨率圖像。
Lpixel損失函數的公式為
式中:G(xi)為經過了生成模塊的輸出;y為原始高分辨率圖像。像素損失就是計算二者之間的平均絕對誤差。
LGL損失函數的公式為
式中:N為每次訓練的樣本個數;yi為labels;p(yi)為將樣本識別為正確的概率。
在現有的圖像處理算法里,一般常用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和結構相似性(Structural Similarity,SSIM)作為圖像質量好壞的評價指標。PSNR 公式為
式中:yi為真實值;為估計值。
從上式中可以看出,MSE 為處理后圖像和原始圖像的均方誤差,所以MSE 的值越小代表處理后的圖像與原始圖像越相似。因此,當PSNR 越大時,說明處理之后的圖像失真程度越小。
SSIM 的公式為
式中:μimg1是img1的平均值;μimg2是img2的平均值;σimg12是img1的方差;σimg22是img2的方差;σimg1img2是img1和img2的協方差;c1=(k1L)2,c2=(k2L)2,這2 個常數是用來維持計算穩定的;L是圖像像素值的最大值255;k1=0.01;k2=0.03。
SSIM 是衡量2 幅圖像相似度的指標,SSIM 的值越大,表示圖像失真程度越小,說明圖像質量越好.但是,對于圖像而言,人眼直觀感受仍是最直接的衡量標準。
本文中的實驗部分均使用Python 中的深度學習框架TensorFlow 完成。
實驗設備環境如表1所示。

表1 實驗設備環境Table 1 Test equipment environment
本文中用到的高分辨率(High Resolution,HR)數據集為開源數據集DIV2K,對其進行降采樣處理得到分辨率降低4 倍的低分辨率(Low Resolution,LR)數據集DIV2K_LRX4,通過上述數據集對網絡進行預訓練。完成預訓練后,通過同樣的處理方式將湖試取得的側掃聲吶圖像降采樣得到LR 數據集,用得到的LR 數據集和處理前的側掃聲吶圖像數據集對完成預訓練的網絡進行微調。
完成數據集構建并搭建完網絡后,開始進行網絡參數設置。其中,batch_size 設置為8,生成模塊輸入圖像的維度為32×32×3,判別模塊輸入圖像的維度為128×128×3,預訓練網絡迭代500 000次,后續訓練固化網絡迭代次數設為200 000 次,網絡訓練采用Adam 優化算法,網絡預訓練時初始學習率設置為0.002,迭代次數每增加200 000 學習率乘0.5,后續訓練固化時網絡訓練的初始學習率設置為0.000 1,迭代次數每增加50 000 學習率乘0.5。
訓練完成后用2 張低分辨率的樣本圖像來測試網絡的超分辨率性能,并與其他的超分算法作對比,如線性插值算法、SRGAN、三次插值算法。圖6為樣本圖,測試樣本1 與測試樣本2 經過上述算法處理后輸出的圖像分別如圖7和圖8所示。

圖6 測試樣本Fig.6 Test samples

圖7 樣圖1不同超分算法效果對比Fig.7 Comparison of effects of Sample Figure 1 with different SR algorithms

圖8 樣圖2不同超分算法效果對比Fig.8 Comparison of effects of Sample Figure 2 with different SR algorithms
分別計算經過超分算法處理過后的圖像和原始HR 圖像之間的PSNR 和SSIM 值,將得到的結果整理如表2所示。

表2 各方案PSNR/SSIM 處理結果對比表Table 2 Comparison of PSNR/SSIM values in different methods
從圖7和圖8可以直觀地看出使用本文方法得到的超分辨率圖像視覺效果最好,目標的邊緣細節更加清晰,目標特征得到了突出體現。從表2中計算得到的PSNR 和SSIM 數據也可以看出,本文方法的 PSNR 和 SSIM 要明顯優于插值算法和SRGAN。
結合圖7、圖8和表2可驗證本文所述方法可以在一定程度上解決側掃聲吶圖像中目標模糊的問題,在有效地保留原始圖像中原有特征的同時,還可提升圖像中小目標的邊緣細節及小目標本身的清晰度,為后續目標精準識別等過程提供了實現基礎。
本文提出了一種基于生成對抗網絡的側掃聲吶圖像超分辨率處理方法。實測數據處理表明:該方法可有效解決側掃聲吶圖像分辨率低、小目標細節模糊、邊緣不清晰等問題。通過與傳統的插值算法和SRGAN 做效果對比,可以看出本文所述方法可有效避免插值算法帶來的圖像整體平滑的缺點,且相較于SRGAN 而言,該方法圖中目標的細節更清晰、邊緣更加突出,為后續的側掃聲吶圖像的目標檢測與識別打下了良好的基礎。對檢測與識別網絡而言,如果待檢測圖像中小目標的特征更明顯,邊緣更鮮明,檢測出目標的概率和識別目標種類的準確率也會更高。