(上海海事大學商船學院 上海 200000)
隨著海洋經濟越來越受到重視,水下機器人應用也越來越廣泛,為了可以在危險的水下環境工作,水下機器人應用技術也成為了研究的熱點[1]。圖像作為水下機器人識別環境的重要手段之一,在獲取海洋信息方面具有特殊的意義。水下環境有太多不確定因素導致水下圖像不清晰,通常會有“霧化”和色偏現象,其原因是因為水中的雜質會使光發生散射從而產生“霧化”現象,而水體對于不同波長光的吸收能力的不同導致水下圖像產生了顏色失真的現象[2],水體對圖像的影響讓水下圖像的應用變得困難,目前對于水下圖像的增強方法研究可以分為基于非物理模型的圖像增強算法和物理模型的圖像復原算法[3],改善圖像質量可以讓水下機器人應用更加高效便捷。
水下圖像處理方法有白平衡算法[4],和直方圖均衡化算[5](Histogram Equalization,HE),自適應直方圖均衡化法[6](Contrast Limited Adaptive His-to?gram Equalization,CLAHE),retinex算法[7]以及暗通道先驗算法(Dark Channel Prior,DCP)[8]等,以上方法對于部分水下圖像處理有一定效果,但不具備普適性。近些年深度學習對于圖像增強的研究進展非常快,利用神經網絡訓練生成無偏差圖像也成為水下圖像處理的的一種新方法。
另外,基于顏色恒常理論為基礎改進的水下圖像增強算法也具有很好的效果[9],顏色恒常理論指出,物體的顏色取決于不同波長光的反射能力且不受光照不均勻的影響,retinex算法以顏色恒常理論為基礎,通過模擬人眼視網膜的成像原理實現水下圖像的色彩校正和對比度增強,Zhuang[10]等采用多尺度retinex算法對水下圖像進行處理得到對比度較高的圖片。白平衡方法是根據圖像呈現的色溫來糾正圖片色彩偏差的,根據白平衡算法提出的多種改進算法也獲得了較好的結果。直方圖均衡化方法是將圖像的灰度直方圖中的灰度區間集中部分均勻拉伸,擴大圖像的灰度值范圍并增加對比度,從而突出細節效果。暗通道先驗法由He[11]于2009年提出,統計分析大量戶外無霧圖片R、G、B三通道像素值后建立去霧模型,應用在普通圖像去霧場景,對水下增強沒有效果,Chiang[12]將波長補償和DCP結合增強水下圖像,湯忠強[13]等通過亮通道和暗通道的作差得到景深圖,取反景深圖得出透射圖,最后校正圖像顏色調整亮度得出增強圖像。
應用深度學習進行水下圖像處理的越來越廣泛,Ding等[14]提出利用卷積神經網絡生成水下高清圖像,利用自適應色彩糾正方法恢復圖像色彩,再利用超分辨率重構去除圖像模糊。Wang等[15]提出基于端到端網絡UIE-net,訓練網絡估算三色通道的衰減系數,修正圖像的色彩和對比度。
圖像歸一化常被用于醫學圖像增強領域,水下圖像存在模糊和對比度低等問題和醫學圖像類似,可以通過提高圖像對比度使圖像中的特征對比明顯,使圖像變得清晰。歸一化就在保留具有價值的灰度差異的同時,減小甚至消除圖像中灰度不一致而進行的圖像轉換方法,灰度圖像具有256個灰度級,圖像的實際灰度范圍沒有占滿全部灰度級,而是集中在一個區段,歸一化處理可以使圖像像素亮度分布平衡,減少光照不均勻造成的影響[16]。其數學表達式如式(1)所示:

式中:N(i,j)為原圖像的灰度值;I(i,j)變換后的灰度值;min為原圖像中灰度最小值,max為灰度最大值。
GAN(Generative Adversarial Network)全稱為生成對抗網絡[17],是近年來圖像處理領域最廣泛應用的深度學習網絡,主要結構包括一個生成器G(Generator)和一個判別器D(Discriminator),生成器可以捕捉真實的數據分布,并生成接近真實的數據分布,而判別器則判斷是否屬于真實數據分布,并輸出數據分布的概率,通過這種對抗學習的方式,來學習數據分布的生成式模型,其網絡架構如圖1所示。GAN的優化過程是兩個網絡之間的博弈過程[18],其優化的方向是達到納什平衡,GAN的目標函數如式(2)所示:

式中Ex~pdata(x)和Ex(z)~pz(z)分別表示判別器分布概率的數學期望。
SRGAN是用于圖像超分辨率復原的對抗生成網絡,其損失函數包括感知損失(perceptual loss)和對抗損失(adversarial loss),感知損失通過神經網絡提取出特征與目標圖片的特征進行對比得出損失函數,進一步訓練使生成的圖像與目標圖像更接近。
如圖2所示,生成器結構中的網絡共有23層,包括卷積、批量歸一化、ReLU激活層,首先低分辨率圖像通過一個64通道步長為1的卷積層,然后通過16個殘差網絡結構,每一個殘差卷積塊包括6個64通道步長為1的小塊,提取出的特征在殘差塊中采用跳躍連接,每一層的結果與上一層的輸出疊加在一起,經過卷積層后與第一層的卷積結果再疊加,可以防止低層特征損失;反卷積層的上采樣使圖片的長或寬擴張,經過兩個上采樣變為原來的4倍,然后利用一個3通道的卷積對原來的通道數進行一個調整,最終得到一個4倍分辨率的圖片。

圖2 SRGAN網絡結構
判別器網絡結構只有一個64通道步長為1的卷積層,以及重復多個卷積結構,卷積層分為步長為1和2的兩種,重復交叉分布在網絡中,通過重復結構之后,原始輸入圖片長和寬變為變為原始圖像的1/16,在最后一個通道數為512的輸出之后,通過一個全連接層和sigmoid函數激活得到判別結果,再接一個維度為1的全連接層來輸出結果。
在訓練過程中,高清訓練集輸入網絡會先生成一幅低分辨率圖像,低分辨率圖像通過生成器生成一幅虛假的高分辨率圖像,此時,將高分辨率的真實圖像與生成的虛假高分辨率圖像傳入判別模型中判別真假,在對比過程中生成訓練判別模型的損失函數;同時,真假圖像傳入VGG網絡后,獲取圖像的特征并進行對比,再得到生成模型的損失函數,如圖3所示。

圖3 訓練流程
SRGAN損失函數如下所示:

內容損失包括MSE損失函數如下所示:

式中W和H代表圖像的寬和高,表示高分辨率的圖像,ILR為低分辨率圖像,G表示生成器,通過與之間的誤差得到MSE,提高信噪比。
基于ReLU的VGG損失函數如下所示:

式中φi,j表示某個卷積層的特征圖,用于計算與生成圖像之間的歐式距離,以便生成更好的細節。
對抗損失如式(6)所示:

對抗損失用于計算生成的圖像判定為真實圖像的概率,其中N表示像素數。
首先將圖像通過灰度歸一化進行一次預處理,受湯忠強[13]等啟發,將圖像水下模糊圖像分解為三通道的并對其進行處理,對三通道的灰度圖像分別進行歸一化,使其像素的灰度值分布在0~255之間,再將三通道的灰度圖融合,得到的圖像通過SRGAN網絡進行超分辨率重構獲得清晰的水下圖像,算法流程如圖4所示。
利用歸一化后的圖像與上文搭建的深度學習網絡可以很好地獲得清晰的水下圖像。
本文用于歸一化算法測試的的水下圖像為50張,深度學習超分辨率重構的高清圖像集包括800張,經過旋轉擴充為1500張。
灰度歸一化算法基于Python3.6環境,SRGAN用TensorFlow框架的Keras模型進行實驗,CPU為i7處理器,GPU為 NVIDIA GTX1080 Ti,顯存為64GB。生成器殘差塊層數為16層,初始學習率為0.0001,衰減率為0.1。
為驗證本文算法的效果,復現了其他三種水下圖像處理算法,分別為UDCP、Retinex算法和UCM方法,與本文算法進行視覺對比。
選取8張圖片分別用以上四種方法處理,如圖5所示。其中UDCP基于水下暗通道先驗復原方法是估計背景光選取暗通道中最亮的點作為背景光,使目標和背景對比更鮮明,同時對于整體背景顏色過暗的圖像修正效果不佳;UCM算法[19]通過統計方法對R、G和B顏色通道進行對比度拉伸方法實現對比度增強,在HIS顏色模型中對飽和度S和強度I對比度拉伸來增加飽和度,對圖像的作用比較明顯,過度飽和會使圖像的整體顏色偏紅,對背景顏色較深的圖像效果較好。從對比結果中可以看出本文算法能夠更好地適應各種水下圖像場景的色彩糾正。

圖5 水下圖像處理方法對比
除了視覺主觀上對比以外,更對以上四種算法進行質量評價。評價使用的四種方法分別是圖片結構相似性算法(SSIM)、峰值信噪比(PSNR)、水下彩色圖像質量評價(UCIQE)和熵(Entropy)[20]。SSIM值和PSNR的值越高代表圖像失真越小;PSNR是重建質量的測量方法,通過MSE定義,分值越高圖像質量越好;UCIQE是針對水下圖像分別從色度、飽和度和對比度進行評價的綜合指標,分值越高代表恢復質量越好;Entropy的分值高表示圖像包含的信息越多。
從表1中的數據可以看出本文提出的算法在各項指標中分值較高,結合主觀評價的結果證明本文所提出的方法可以有效地處理水下圖像。

表1 客觀評價結果
本文通過對RGB三通道灰度圖歸一化處理得到增強的水下圖像,其背景顏色得到改善。再基于深度學習對恢復后的水下圖像進行超分辨率重構得到紋理清晰的水下圖像,經過處理的圖像質量明顯提高,其邊緣銳度和整體的對比度都得到改善,整體圖像更加清晰。
本文所提出的方法相比其他方法在部分場景下的增強效果還有待改善,在客觀評價體系中的各項結果均高于對比圖像處理算法,結合主觀評價和客觀評價結果來看,對于水下場景具有普適性,試驗結果也證明本文提出的方法對水下圖像增強的有效性。