程文博
(1.中國(guó)船舶集團(tuán)有限公司第七一〇研究所,湖北 宜昌 443003;2.清江創(chuàng)新中心,湖北 武漢 430076)
隨著對(duì)湖泊、江河和海洋的探索不斷深入,對(duì)于各類水底地形的刻畫需求也日益增加。目前可通過(guò)水下無(wú)人潛航器[1]裝配側(cè)掃聲吶得到水底地形原始圖像,通過(guò)超分辨率處理,可以獲得更加精細(xì)且清晰的地形圖像,這樣不僅對(duì)水下環(huán)境的感知和后續(xù)的自主決策至關(guān)重要,還能提升圖像中小目標(biāo)的探測(cè)和識(shí)別效果。
圖像超分辨率(Super-Resolution,SR)是在20世紀(jì)60年代由HARRIS 等人[2]首次提出的,他們采用線性插值算法,提高了圖像的空間分辨率。目前主流的超分辨率算法主要有2 種:1)基于圖像插值的方法;2)基于深度學(xué)習(xí)的方法。SR 算法的概述如圖1所示?;诓逯档乃惴ㄊ亲钤绫粦?yīng)用于圖像超分領(lǐng)域的,其中最鄰近元法[3]由SCHULTZ等人提出,此方法相當(dāng)于讓圖像經(jīng)過(guò)一個(gè)高通濾波器,可以保留圖像的一部分邊緣特征。由HOU 等人提出的雙線性內(nèi)插法[4],是對(duì)插值點(diǎn)附近的4 個(gè)相鄰像素進(jìn)行加權(quán)求和作為插值點(diǎn)的像素值,權(quán)值的大小與插值點(diǎn)和相鄰像素點(diǎn)的距離成反比,所以重建后的圖像細(xì)節(jié)較差,邊緣較模糊。LI 等人提出的三次內(nèi)插法[5],是對(duì)插值點(diǎn)附近的16 個(gè)相鄰像素點(diǎn)進(jìn)行加權(quán)求和作為插值點(diǎn)的像素值,因此重建圖像的邊緣特征會(huì)更平滑。
圖1 超分算法概述圖Fig.1 Schematic diagram of SR algorithm
隨著各行各業(yè)對(duì)超分辨率的需求不斷增加,基本的插值算法已經(jīng)不能滿足需求,各種新的SR算法如雨后春筍,而現(xiàn)如今深度學(xué)習(xí)的應(yīng)用日益廣泛[6-7],基于深度學(xué)習(xí)的SR 也得到了迅速的發(fā)展。2014年,香港中文大學(xué)的董超等人[8]首次將卷積神經(jīng)網(wǎng)絡(luò)用于超分領(lǐng)域中,提出了超分辨率卷積神經(jīng)網(wǎng)絡(luò)(Super-Resolution Convolutional Neural Network,SRCNN),通過(guò)簡(jiǎn)單的3 層卷積結(jié)構(gòu),完成了圖像從低分辨率輸入到高分辨率輸出的轉(zhuǎn)化,相較于傳統(tǒng)的插值算法,性能有了一定的提升。隨著生成對(duì)抗網(wǎng)絡(luò)[9]的興起,生成對(duì)抗網(wǎng)絡(luò)在圖像的重建中取得了較好的成績(jī),也逐漸被應(yīng)用于圖像超分領(lǐng)域,LEDIG 等人[10]提出了SRGAN,首次使用生成對(duì)抗網(wǎng)絡(luò)來(lái)訓(xùn)練SRResNet,使其生成的高分辨率圖像看起來(lái)更加自然,相較于SRCNN 有更好的視覺效果。2018年,ZHANG 等人[11]提出了殘差密集網(wǎng)絡(luò),充分利用了所有層的特征,然后通過(guò)特征融合機(jī)制極大限度的保留了特征,得到了更好的重建效果。WANG 等人[12]為了進(jìn)一步提升生成圖像的質(zhì)量,更好的保留原有的細(xì)節(jié)信息,在網(wǎng)絡(luò)中引入了殘余稠密塊(Residual-in-Residual Dense Block,RRDB)取代了殘差塊。哈爾濱工程大學(xué)的梁雪燦[13]在條件生成對(duì)抗網(wǎng)絡(luò)[14](CGAN)的基礎(chǔ)上提出了SR-CGAN 和一種帶有梯度懲罰的深層生成對(duì)抗網(wǎng)絡(luò)(DGP-SRGAN),前者可以有效地控制超分辨率圖像輸出,后者對(duì)保留細(xì)節(jié)和提高紋理起到了一定的作用。SOH[15]等人在2020年提出了一種基于元學(xué)習(xí)的超分算法訓(xùn)練過(guò)程——MZSR,該方法利用元學(xué)習(xí)“學(xué)習(xí)怎樣去學(xué)習(xí)”的特性,在一定程度上解決了小樣本和大量迭代訓(xùn)練的問(wèn)題。
綜上所述,傳統(tǒng)插值算法存在著圖像整體平滑的問(wèn)題,處理后圖像中小目標(biāo)的邊緣模糊。本文采用了基于生成對(duì)抗網(wǎng)絡(luò)的超分算法,可以在保留紋理細(xì)節(jié)的情況下,將低分辨率圖像轉(zhuǎn)化為高分辨率圖像輸出,通過(guò)對(duì)圖像聲吶實(shí)測(cè)數(shù)據(jù)進(jìn)行處理,驗(yàn)證了方法的有效性。
本文中生成模塊的基本架構(gòu)是SRResNet,但是對(duì)于中間的非線性映射結(jié)構(gòu)做出了調(diào)整,本文的非線性映射結(jié)構(gòu)由17 個(gè)殘余稠密塊構(gòu)成,其中每個(gè)RRDB 均由3 個(gè)稠密塊(Dense Block,DB)組成,每個(gè)DB 則由3 個(gè)conv-LeakyRelu 模塊和1個(gè)卷積層構(gòu)成。本文中的判別模塊采用VGG128[16]網(wǎng)絡(luò)。
生成模塊的結(jié)構(gòu)如圖2所示,RRDB 和DB 的結(jié)構(gòu)分別如圖3和圖4所示。
圖2 生成模塊結(jié)構(gòu)圖Fig.2 Generate module structure
圖3 RRDB 結(jié)構(gòu)圖Fig.3 RRDB structure
圖4 DB 結(jié)構(gòu)圖Fig.4 DB structure
在圖像識(shí)別領(lǐng)域,卷積層的作用往往是減少或者維持輸入特征圖不變來(lái)達(dá)到提取特征的目的,而在生成對(duì)抗的超分算法中則是使用上采樣來(lái)增加輸入特征圖的大小,從而使輸入的低分辨率圖像變成高分辨率圖像輸出。本文采用轉(zhuǎn)置卷積的方法來(lái)達(dá)到上采樣的效果。轉(zhuǎn)置卷積計(jì)算過(guò)程如圖5所示。
圖5 轉(zhuǎn)置卷積計(jì)算過(guò)程Fig.5 Transposed convolution calculation process
從圖5中可以看出,轉(zhuǎn)置卷積的計(jì)算過(guò)程就是kernel 核與輸入的特種圖中,逐個(gè)元素相乘,放在對(duì)應(yīng)位置,得到不同的特征矩陣,然后逐一相加得到最終的輸出。此處的例子stride=2,所以滑動(dòng)的步長(zhǎng)是2。
生成模塊的損失函數(shù)可以分為3 個(gè)部分:內(nèi)容損失、像素?fù)p失、對(duì)抗損失。其中內(nèi)容損失用到的是VGG19 經(jīng)過(guò)激活函數(shù)之前的卷積層的輸出特征圖作為計(jì)算的輸入,使得其更偏重于紋理上的損失,而像素?fù)p失更偏向于像素層面的損失。其總體損失函數(shù)公式為
式中:LG為總損失;Lcotent為內(nèi)容損失;LGL為對(duì)抗損失;Lpixel為像素?fù)p失。
Lcotent損失函數(shù)的公式為
式中:VGG()為經(jīng)過(guò)VGG19 后第20 層的輸出結(jié)果;xiLR為生成模塊輸入的低分辨率圖像;xiSR為xiLR經(jīng)過(guò)生成模塊后輸出的高分辨率圖像。
Lpixel損失函數(shù)的公式為
式中:G(xi)為經(jīng)過(guò)了生成模塊的輸出;y為原始高分辨率圖像。像素?fù)p失就是計(jì)算二者之間的平均絕對(duì)誤差。
LGL損失函數(shù)的公式為
式中:N為每次訓(xùn)練的樣本個(gè)數(shù);yi為labels;p(yi)為將樣本識(shí)別為正確的概率。
在現(xiàn)有的圖像處理算法里,一般常用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和結(jié)構(gòu)相似性(Structural Similarity,SSIM)作為圖像質(zhì)量好壞的評(píng)價(jià)指標(biāo)。PSNR 公式為
式中:yi為真實(shí)值;為估計(jì)值。
從上式中可以看出,MSE 為處理后圖像和原始圖像的均方誤差,所以MSE 的值越小代表處理后的圖像與原始圖像越相似。因此,當(dāng)PSNR 越大時(shí),說(shuō)明處理之后的圖像失真程度越小。
SSIM 的公式為
式中:μimg1是img1的平均值;μimg2是img2的平均值;σimg12是img1的方差;σimg22是img2的方差;σimg1img2是img1和img2的協(xié)方差;c1=(k1L)2,c2=(k2L)2,這2 個(gè)常數(shù)是用來(lái)維持計(jì)算穩(wěn)定的;L是圖像像素值的最大值255;k1=0.01;k2=0.03。
SSIM 是衡量2 幅圖像相似度的指標(biāo),SSIM 的值越大,表示圖像失真程度越小,說(shuō)明圖像質(zhì)量越好.但是,對(duì)于圖像而言,人眼直觀感受仍是最直接的衡量標(biāo)準(zhǔn)。
本文中的實(shí)驗(yàn)部分均使用Python 中的深度學(xué)習(xí)框架TensorFlow 完成。
實(shí)驗(yàn)設(shè)備環(huán)境如表1所示。
表1 實(shí)驗(yàn)設(shè)備環(huán)境Table 1 Test equipment environment
本文中用到的高分辨率(High Resolution,HR)數(shù)據(jù)集為開源數(shù)據(jù)集DIV2K,對(duì)其進(jìn)行降采樣處理得到分辨率降低4 倍的低分辨率(Low Resolution,LR)數(shù)據(jù)集DIV2K_LRX4,通過(guò)上述數(shù)據(jù)集對(duì)網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練。完成預(yù)訓(xùn)練后,通過(guò)同樣的處理方式將湖試取得的側(cè)掃聲吶圖像降采樣得到LR 數(shù)據(jù)集,用得到的LR 數(shù)據(jù)集和處理前的側(cè)掃聲吶圖像數(shù)據(jù)集對(duì)完成預(yù)訓(xùn)練的網(wǎng)絡(luò)進(jìn)行微調(diào)。
完成數(shù)據(jù)集構(gòu)建并搭建完網(wǎng)絡(luò)后,開始進(jìn)行網(wǎng)絡(luò)參數(shù)設(shè)置。其中,batch_size 設(shè)置為8,生成模塊輸入圖像的維度為32×32×3,判別模塊輸入圖像的維度為128×128×3,預(yù)訓(xùn)練網(wǎng)絡(luò)迭代500 000次,后續(xù)訓(xùn)練固化網(wǎng)絡(luò)迭代次數(shù)設(shè)為200 000 次,網(wǎng)絡(luò)訓(xùn)練采用Adam 優(yōu)化算法,網(wǎng)絡(luò)預(yù)訓(xùn)練時(shí)初始學(xué)習(xí)率設(shè)置為0.002,迭代次數(shù)每增加200 000 學(xué)習(xí)率乘0.5,后續(xù)訓(xùn)練固化時(shí)網(wǎng)絡(luò)訓(xùn)練的初始學(xué)習(xí)率設(shè)置為0.000 1,迭代次數(shù)每增加50 000 學(xué)習(xí)率乘0.5。
訓(xùn)練完成后用2 張低分辨率的樣本圖像來(lái)測(cè)試網(wǎng)絡(luò)的超分辨率性能,并與其他的超分算法作對(duì)比,如線性插值算法、SRGAN、三次插值算法。圖6為樣本圖,測(cè)試樣本1 與測(cè)試樣本2 經(jīng)過(guò)上述算法處理后輸出的圖像分別如圖7和圖8所示。
圖6 測(cè)試樣本Fig.6 Test samples
圖7 樣圖1不同超分算法效果對(duì)比Fig.7 Comparison of effects of Sample Figure 1 with different SR algorithms
圖8 樣圖2不同超分算法效果對(duì)比Fig.8 Comparison of effects of Sample Figure 2 with different SR algorithms
分別計(jì)算經(jīng)過(guò)超分算法處理過(guò)后的圖像和原始HR 圖像之間的PSNR 和SSIM 值,將得到的結(jié)果整理如表2所示。
表2 各方案PSNR/SSIM 處理結(jié)果對(duì)比表Table 2 Comparison of PSNR/SSIM values in different methods
從圖7和圖8可以直觀地看出使用本文方法得到的超分辨率圖像視覺效果最好,目標(biāo)的邊緣細(xì)節(jié)更加清晰,目標(biāo)特征得到了突出體現(xiàn)。從表2中計(jì)算得到的PSNR 和SSIM 數(shù)據(jù)也可以看出,本文方法的 PSNR 和 SSIM 要明顯優(yōu)于插值算法和SRGAN。
結(jié)合圖7、圖8和表2可驗(yàn)證本文所述方法可以在一定程度上解決側(cè)掃聲吶圖像中目標(biāo)模糊的問(wèn)題,在有效地保留原始圖像中原有特征的同時(shí),還可提升圖像中小目標(biāo)的邊緣細(xì)節(jié)及小目標(biāo)本身的清晰度,為后續(xù)目標(biāo)精準(zhǔn)識(shí)別等過(guò)程提供了實(shí)現(xiàn)基礎(chǔ)。
本文提出了一種基于生成對(duì)抗網(wǎng)絡(luò)的側(cè)掃聲吶圖像超分辨率處理方法。實(shí)測(cè)數(shù)據(jù)處理表明:該方法可有效解決側(cè)掃聲吶圖像分辨率低、小目標(biāo)細(xì)節(jié)模糊、邊緣不清晰等問(wèn)題。通過(guò)與傳統(tǒng)的插值算法和SRGAN 做效果對(duì)比,可以看出本文所述方法可有效避免插值算法帶來(lái)的圖像整體平滑的缺點(diǎn),且相較于SRGAN 而言,該方法圖中目標(biāo)的細(xì)節(jié)更清晰、邊緣更加突出,為后續(xù)的側(cè)掃聲吶圖像的目標(biāo)檢測(cè)與識(shí)別打下了良好的基礎(chǔ)。對(duì)檢測(cè)與識(shí)別網(wǎng)絡(luò)而言,如果待檢測(cè)圖像中小目標(biāo)的特征更明顯,邊緣更鮮明,檢測(cè)出目標(biāo)的概率和識(shí)別目標(biāo)種類的準(zhǔn)確率也會(huì)更高。