彭晏飛,李 健,顧麗睿,張曼婷
(遼寧工程技術大學 電子與信息工程學院,遼寧 葫蘆島 125105)
由于陸地資源急劇消耗,對海洋資源的探索愈發(fā)刻不容緩。拍攝的水下圖像在獲取海洋資源信息中具有不可替代的作用,例如海洋石油勘探、海洋沉船探索[1]等。然而太陽光在水中傳播時會受到水中介質的影響,會導致太陽光中的紅色光的衰減最為嚴重,因此拍出的圖像會呈現偏藍或偏綠的顏色色差。這一現象影響了對水下圖像的利用,因此對水下圖像的增強必不可少。
近年來,水下圖像的增強方法有很多種。對水下圖像的增強大致可分為物理模型[2]、非物理模型[3]和學習[4]這3 種方法?;谖锢砟P偷姆椒ㄊ菍λ聢D像的色彩衰減過程采用數學建模,獲取模型參數,并執(zhí)行反轉衰減過程以獲得清晰的水下圖像。王曉琦等人[5]采用灰度世界補償通道矯正色偏,結合小波分解對水下圖像進行增強?;诜俏锢砟P偷姆椒ㄍㄟ^調整圖像像素值改善視覺質量。何笑等人[6]提出了融合引導濾波與小波變換結合的算法,在保留圖像細節(jié)的同時克服了光照不均勻對圖像的影響。基于學習的方法近年來逐漸成為研究熱點,如循環(huán)生成對抗網絡[7]采用不成對的數據集訓練網絡模型,實現對圖像的增強處理,但是,得到的圖像結構信息與輸入圖像的差距明顯。因此,Li 等[8]給出一種弱監(jiān)視顏色補償方法,通過計算輸入圖像和網絡生成圖像之間的結構相似性來補償內容信息,但未對生成的圖像進行顏色校正。Fu 等人[9]從CNN 出發(fā),考慮遠程上下文信息,提出一種基于圖卷積網絡(GCNs)模型,將傳統(tǒng)的CNN 和GCN 融合為單一框架。
本文對傳統(tǒng)條件生成對抗網絡(Conditional?GAN)進行改進,在編碼與解碼過程中引入鏈接塊,鏈接塊由5 層殘差塊組成,并在編碼解碼的每層對應卷積處加入了跳躍連接結構。對水下圖像進行處理時,先將原始圖像使用動態(tài)閾值算法進行全局顏色校正,將校正后圖像輸入到改進后CGAN 網絡模型中進行訓練,之后將網絡模型生成好的圖像采取雙邊濾波處理,使處理后的圖像擁有較好的視覺效果。同時使用L1與L2損失結合和焦點損失函數,用來解決圖像顏色色差和樣本不平衡問題。此方法可有效去除水下圖像的顏色失真,消除圖像模糊,獲得了較好的圖像增強效果。
白平衡是相機領域一個非常重要的概念,可以解決一系列的顏色恢復和色調問題。白平衡是由電子圖像通過再現真色而產生的。在專業(yè)成像領域,對白平衡的使用很早。能準確反映物體顏色狀態(tài)的相機圖像的獲取有手動白平衡、自動白平衡等方法。動態(tài)閾值算法[10]歸屬于自動白平衡算法。與傳統(tǒng)的算法不同,動態(tài)閾值使用圖像統(tǒng)計而不是臨時假設來估計參考白點。
生成式對抗網絡(GAN)是深度學習領域研究熱點之一[11]。生成對抗網絡最早是由Goodfellow于2014 年提出的。GAN 可看作為一個由隨機噪聲z到輸出圖像映射的模型,而條件生成對抗網絡[12]與傳統(tǒng)GAN 相比則添加了條件信息,條件信息y作為生成網絡和判別網絡的輸入。本方法中y為水下圖像。將隨機噪聲z與條件信息y同時輸入到生成網絡中,生成網絡輸出增強后的水下圖像。將真實圖像x與條件信息y一起輸入到判別網絡中,判別網絡輸出判別概率,概率在[0,1]。CGAN 的網絡模型優(yōu)化可以總結為二元極小極大值的對抗過程,目標函數V(D,G)可表示為
圖1 CGAN 模型Fig.1 CGAN model
殘差網絡(ResNet)是由Microsoft Research 4 位專家提出的卷積神經網絡[14]。他們研究發(fā)現,伴隨著網絡層數加深,網絡發(fā)生退化現象。當網絡發(fā)生退化時,淺層網絡能夠獲得比深層網絡更優(yōu)秀的訓練結果。因此若把淺層特征傳輸至深層,那么效果不比淺層的網絡效果差。在淺層與對應的深層之間可以采用一條直接映射獲得此效果?;谑褂弥苯佑成溥@種方式來連接網絡不同層的思想,殘差網絡由此被提出。
本文方法首先對水下圖像使用動態(tài)閾值算法進行全局的顏色初步矯正,之后將處理后圖像和正常圖像輸入到改進的條件生成對抗網絡中進行訓練,最后將訓練好的圖像進行雙邊濾波去噪處理,進而使網絡中生成的圖像更接近正常圖像,擁有更好的視覺效果。本文方法整體流程如圖2 所示。
圖2 本文算法流程圖Fig.2 Algorithm flow chart of this paper
3.1.1 白點檢測
將圖像從RGB 色彩空間轉換到YCrCb 色彩空間,并且對圖像進行劃分,各區(qū)域為100×100像素,之后計算各區(qū)域的Cb、Cr分量平均值Mb、Mr,然后使用如式(2)和式(3)計算各區(qū)域的Cb、Cr分量絕對差的累加值Db、Dr。
其中N為每個區(qū)域的像素數。
若Db、Dr的值較小,則忽略此區(qū)域,因為此區(qū)域的顏色分布平均。統(tǒng)計其他區(qū)域的Mb、Mr、Db、Dr的平均值作為圖像的Mb、Mr、Db、Dr值。使用式(4)和式(5)初步確定白色參照點。
最后再使用公式(9)~(11)計算最終每個通道的顏色值。
其中R、G、B為在原始的顏色空間中值。
經過動態(tài)閾值算法處理后的水下圖像會在全局范圍內進行顏色修正,如圖3 所示。
圖3 圖像預處理。(a)原始水下圖像;(b)動態(tài)閾值預處理后的水下圖像。Fig.3 Image pre-processing. (a) Original underwater image; (b) Underwater image after dynamic threshold pre-processing.
本文受傳統(tǒng)的CGAN 模型的啟發(fā)。由于隨機噪聲z作為生成網絡輸入會導致每次生成的圖像有很大差異,因此本文將作為約束條件的隨機噪聲去除,將模型輸入的條件信息y即原始的水下圖像作為生成網絡的唯一輸入。本文的CGAN模型如圖4 所示。
圖4 本文CGAN 模型Fig.4 CGAN model of this paper
將正常的水下圖像輸入進生成網絡,經過生成網絡的增強輸出生成圖像。再將正常清晰的圖像與生成的圖像同時輸入到判別網絡中,由判別網絡輸出0~1 的概率值,并且計算誤差,更新參數。
3.2.1 生成網絡
本文使用的生成網絡在不丟失圖像重要信息的前提下對圖像進行增強。設計生成器時采用U-Net 模型[15]。模型中包含提取圖像信息的下采樣過程和還原圖像信息的上采樣過程,即編碼和解碼。U-Net 模型與傳統(tǒng)編碼-解碼模型不同,在網絡結構中引入跳躍連接,可以緩解在解碼時的信息冗余,也可以減輕梯度無法到達淺層網絡而發(fā)生的梯度消失問題。同時在編碼與解碼之間引入鏈接塊,鏈接塊由5 層殘差網絡組成,對圖像不同的相似特征進行提取和組合。本文的生成器結構如圖5 所示。
圖5 生成器結構Fig.5 Generator structure
生成器網絡采用跳躍連接結構,將模型淺層與深層進行連接,對淺層與其對應的深層提取的特征進行融合。在編碼過程中引入批處理歸一化層和LeakyRelu 激活函數。批處理歸一化層旨在提高網絡泛化能力,防止過擬合;LeakyRelu 激活函數目的在于加速收斂。在解碼過程中采用批處理歸一化層和LeakyRelu 激活函數的同時,加入Dropout 操作[16],防止數據冗余,加快網絡訓練速度。最后將生成的結果經過Tanh 函數處理后輸出,得到生成圖像。
3.2.2 判別網絡
判別網絡用以鑒別生成網絡所生成的圖像和正常清晰圖像,最大程度地將生成圖像與真實圖像區(qū)分開來,同時判別圖像真假。本文所使用的判別網絡是一個5 層卷積的二分類模型。在判別網絡中同時引入LeakyRelu 激活函數和批處理歸一化層,目的就是加速收斂,控制過擬合。在進行5 層卷積操作后通過sigmoid 函數處理[17],將結果歸一化為(0,1)區(qū)間。若判別器輸出在(0.5,1)區(qū)間,則判別器判別輸入的圖像為真;反之,則判別輸入的圖像為假;若輸出的結果在0.5,則說明判別器無法判別生成器所生成的圖像[13]。判別器結構如圖6 所示。
圖6 判別器結構Fig.6 Discriminator structure
為了獲得更好的人眼視覺效果,本文對生成后的圖像進行去噪操作。通過采用雙邊濾波算法對圖像進行去噪可以獲得良好的視覺體驗。雙邊濾波是一種非線性的濾波方法,它是結合圖像的空間鄰近度和像素值相似度的一種折中處理,同時考慮空域信息和灰度相似性,達到保留邊緣信息同時進行去噪的目的[18]。雙邊濾波的公式如式(18)所示:
式中:g(i,j)表示輸出點,S(i,j)是指以(i,j)為圓心的(2N+1)(2N+1)大小范圍,f(k,l)代表多個輸出點,ω(i,j,k,l)代表經過兩個高斯函數獲得的值。如圖7 所示,可以看出經過雙邊濾波算法處理過的圖像消除了噪聲,同時邊緣信息保存良好。
圖7 處理前(a)后(b)圖片對比Fig.7 Image comparison before(a)and after(b)processing
本實驗在Pycharm 仿真平臺進行代碼編寫,CPU 為AMD R5-3600,內 存 為16 GB,GPU 為Nvidia 1 650 s。模型參數中epoch 設置為200,batchsize 值設置為1,優(yōu)化算法選用Adam 算法,學習率調整為0.000 2。編程語言上選用python語言,在Tensorflow 深度學習框架下進行實驗,網絡訓練時間約為36 h,測試時間約為5 min。
本實驗所使用的數據集為UIEB[19],此數據集中包含890 張原始的水下圖像以及相對應的高質量參考圖像,同時還含有60 張用來測試的水下圖像,此數據集總計含有950 張水下圖像。
4.3.1 消融實驗
雙邊濾波作為無監(jiān)督的增強方法,可在一定程度上提高主觀效果,但會犧牲客觀評價指標,因此本文增加消融實驗來驗證雙邊濾波算法對客觀評價指標的提高,實驗結果見表1。
表1 不同算法的客觀評價對比Tab.1 Comparison of different algorithms’ objective evaluation
4.3.2 主觀評價
UIEB 數據集中所包含圖片是在不同的海水水壓以及海水渾濁度中拍攝的。在損失函數中引入焦點損失函數是為了使處于不同水壓和渾濁度中拍攝的圖片在模型訓練中不會發(fā)生過擬合現象。為驗證本文方法的實際優(yōu)化效果,我們將本文方法與Fusion-based、Retinex-based、Histogram prior、Blurriness-based、GDCP 方 法 進行比較。從UIEB 數據集中隨機選取3 張真實的水下圖像進行增強,從主觀評價上進行對比,如圖8 所示。
圖8 不同算法的主觀對比Fig.8 Subjective comparison of the different algorithms
從圖8 可以看出Fusion-based 處理后的圖像在色彩上有些偏暗;Retinex-based 方法處理后得到的圖像細節(jié)丟失從第一張圖可以明顯看出;Histogram prior、Blurriness-based 和GDCP 這3 種方法處理后的圖像都有不同程度的顏色失真。最后一列是本文方法對于這3 張圖像的處理,顏色合適不存在失真現象,擁有較好的視覺效果。
4.3.3 客觀評價
在客觀評價中,選擇均方誤差(MSE)、峰值信噪比(PSNR)、結構相似度(SSIM)[13]作為指標來說明算法的性能,評價指標如表1 所示。
MSE 反映增強后的圖像與原圖像的差距,值越小,增強后的圖像越接近原圖像。PSNR 反映的是圖像的失真程度,值越高,失真越少。SSIM 反映了圖像的結構信息完整度,其值可以作為對比原圖像與增強后的圖像結構相似度的指標[20]。由表1 可以 看出,本文算法在3 個指標的數據上均優(yōu)于另外5 種算法。結合主觀以及客觀評價得出,本文方法在視覺上效果良好,增強后的圖像更接近真實圖像。
對于水下圖像的顏色失真與模糊問題,本文利用深度學習原理,采用動態(tài)閾值、改進條件生成對抗網絡與雙邊濾波算法三者相結合的方法對水下模糊圖像進行增強。網絡中采用U-Net結構,編碼解碼中引入鏈接塊來對圖像不同的相似特征進行組合,同時采用批處理歸一化層和LeakyRelu 激活函數來防止過擬合。在損失函數中加入L1與L2結合損失函數對顏色和結構進行恢復以及焦點噪聲損失函數以消除類別不均衡的問題。通過對主觀以及客觀評價的分析,本文算法在進行水下原始圖像增強的過程中,避免了顏色失真問題,同時也消除了圖像的噪聲影響,有效地對水下圖像進行了增強。