郭 強,孟祥眾
(西安工業(yè)大學, 西安 710021)
在水下進行武器系統測試、訓練等任務時,需要獲取清晰的武器圖像數據,這對評估武器系統的動態(tài)參數,對武器系統訓練有重大作用。但是,由于光在水中傳輸時的衰減和散射效應[1],水下光學傳感器收集的水下武器圖像對比度低,難以對水下武器裝備測試訓練做到準確評估,因此,水下圖像增強對武器裝備測試等方面具有重要意義。
目前,水下圖像增強與復原分為非深度學習方法與深度學習方法[2]。基于非深度學習方法主要分為2種:一種是圖像增強,以像素點的基礎使圖像清晰,比如:直方圖均衡化[3]、白平衡[4]、MSRCR[5]等算法,該類算法忽略傳感器鏡頭在水下環(huán)境中的成像模型,導致紅通道缺失,甚至出現偽影,用增強算法處理后的水下圖像色彩容易增強與背景模糊等現狀,而且不同環(huán)境下的圖像依賴不同的算法,泛化性差。另一種是圖像復原,基于物理成像模型基礎上進行復原,暗通道先驗[6]、UDCP[7]、紅通道反轉[8]等算法。該類方法依賴水下成像模型,對先驗知識的要求較高。但是水下環(huán)境復雜多變,不同地區(qū)、不同時間由于海水成分不同,導致光在海水中的傳播條件不同。因此,簡易的水下成像模型不準確,復雜的水下成像模型難以計算?,F有的非深度學習的方法只針對水下圖像的某種特定情形進行增強與復原處理,這類方法的準確性與魯棒性不容樂觀,在水下機器人應用中受到嚴重限制,局限性較大。
深度學習的水下圖像算法分為卷積神經網絡(convolutional neural network,CNN)圖像增強與復原與生成對抗網絡(GAN)圖像增強與復原,2種模型既有區(qū)別又有相同之處[9-10]。在機器視覺領域,深度學習網絡已被證明是強大的非線性函數逼近器,在水下圖像增強應用比較廣泛。比如,Fabbri等[11]提出了UGAN,利用風格遷移生成水下模糊圖像,將模糊圖像與清晰圖像作為一對數據集輸入帶有梯度懲罰的 UGAN網絡模型中,并使用結構化損失函數使圖像細節(jié)更加明顯。Li等[12]提出UWCNN,該模型使用對基于物理模型的合成的水下圖像數據集進行有效的訓練,該模型的數據集合成了10種不同的水下類型,針對不同水域訓練不同的UWCNN模型,在不同水域下實現了水下圖像增強。Park等[13]添加一對判別器在Cyclegan上,同時在判別器中引入預先訓練完成的VGG-16模型,保證每個輸入圖像的顏色、形狀及紋理。另外,添加自適應加權損失函數來平衡2種判別器的影響,該機制充分利用了各判別器的優(yōu)勢,同時抑制判別器的一些缺點。Islam等[14]提出了GAN水下圖像增強模型。該算法用一個目標函數監(jiān)督對抗訓練,該函數根據圖片整體內容、顏色、局部紋理和樣式信息來評估感知圖像的質量,算法實時性較高。
上述這些方法雖然可以解決對比度低、顏色失真,但還是存在背景模糊、前景丟失以及紅通道缺失嚴重的水下圖像增強與復原差等問題,針對上述存在的問題,提出一種基于編碼解碼結構多尺度語義特征水下圖像增強算法,為提高水下武器裝備測試訓練的準確評估奠定了基礎。
GAN[15]是對數據隨機分布進行建模的方法,采用博弈思想,使生成器和判別器兩部分進行對抗訓練,使生成水下圖像更加逼真,其結構如圖1所示。
生成器的目的在于輸出更加真實的結果,增大判別器輸入來源,從而欺騙判別器;而判別器的目標是提高判別輸入圖片真實性。生成對抗網絡訓練的目標函數為:
EI[log(1-D(I,G(I)))]
(1)
式中:G為生成器;D為判別器;I為初始圖像;J為清晰水下圖像;G(I)為生成器生成的假圖像。
GAN通過優(yōu)化上述目標函數學習初始圖像I到真實圖像J的映射模型,即:G(I)→J。初始圖像I為利用Jaffe-McGlamery 水下成像物理模型和CycleGAN風格遷移的水下模糊圖像,J為對應的水下清晰圖像,生成圖像G(I)為增強后的水下圖像。
圖1 生成對抗網絡結構
多尺度語義特征水下圖像增強算法的特點是生成器模型基于編碼解碼結構添加注意力機制提高視覺質量,同時使用多尺度語義特征模塊進行補償高層信息;構造高斯金字塔函數結合全局損失函數、對抗損失函數、色彩感知損失使生成圖像細節(jié)信息更多,最后生成的圖像對比度更高,顏色更豐富。
生成模型使用解碼編碼結構[16],其中該模型由ResNet殘差模塊、多尺度語義特征模塊、注意力機制等模型組成,如圖2所示。
圖2 編碼解碼多尺度語義特征模型
ResNet殘差模塊使用大小為3×3與4×4的卷積核提取特征,多尺度語義特征模塊用卷積層、激活函數、通道注意力機制與上采樣網絡提取語義信息,使圖像細節(jié)更加明顯;注意力機制改變不同通道的權重大小,使圖像融合的特征信息更加穩(wěn)定。
生成模型(G,Generation model)的Encoder中,先使用4個ResNet模塊,然后通過多尺度語義特征模塊。在G的Decoder中,進行上采樣、BN層與ReLU激活層,總共4層。第一層上采樣步長大小為1,其他層上采樣步長為2。最后通過上采樣、卷積與Tanh激活函數,輸出為256×256×3的張量。在Encoder與Decoder中間加入注意力機制與跳連接層,使淺層顏色、紋理等信息特征與深層語義信息融合,傳遞給更深一層網絡,實現生成模型圖像細節(jié)提取。
3.1.1ResNet殘差模塊
ResNet殘差模塊[17]分別用2個3×3卷積核大小提取特征,通過Leaky ReLU激活函數,之后,用Concate進行特征融合,最后通過大小為4×4、步長為2的卷積核、IN層與Leaky ReLU激活函數,如圖3所示。該模型不僅使較多像素特征向下傳遞,而且為多尺度語義特征模塊提取更多語義信息奠定基礎。
圖3 殘差網絡
3.1.2多尺度語義特征模塊
多尺度語義特征模塊分別為 2 × 2、4 × 4、8 × 8、16 × 16 不同大小尺度的4層圖像信息組成。每個不同尺度大小的水下圖像獲得不同的感受野,捕捉不同尺度的信息。尺度越小,得到的高層的信息越豐富,反之,低層信息越豐富,最后4個不同尺度大小圖像經上采樣使生成的圖像細節(jié)信息更加豐富。而且,在每個不同尺度大小圖像,添加通道注意力機制使信息多的通道權值增大,使輸出結果信息更加豐富。如圖4所示,先將輸入通過卷積核大小為 4的步長分別為1、2、4、8的卷積層;接著通過卷積核大小為3的卷積層、NI層與LealyReLU激活函數;然后通過通道注意力機制,使信息多的通道的權值變大,得到不同尺度大小的水下圖像,再通過上采樣,使其與原特征圖通道數相同。最后將4個通道相加融合,再次經過大小為3的卷積層、NI層與ReLU激活函數。
圖4 多尺度語義特征模塊
3.1.3注意力模塊
注意力機制[18]由通道注意力機制與像素注意力機制構成。生成模型添加注意力機制模塊,是為了更好地補償圖像紅通道信息以及外界環(huán)境對圖像亮區(qū)與暗區(qū)的影響,該模塊在處理不同環(huán)境下的水下圖像信息時較為方便,它更加關注外界環(huán)境影響較大亮區(qū)的像素與更重要通道信息,根據影響的重要程度分配通道的權重。如圖5所示,通道注意力機制首先將特征通過全局平均池化將每個通道全局空間信息轉化為通道均值信息,然后,特征通過1個1×1×C的卷積層,1個ReLU激活函數、1個1×1×C的卷積層、再加1個Sigmoid激活函數進行處理。在像素注意力通道中,通過通道注意力機制的特征為逐像素注意的輸入傳入像素注意力層中,像素注意力層為1個ReLU激活函數與1個Sigmoid激活函數構成的2個卷積層。
圖5 注意力機制模塊
判別模型:在馬爾可夫判別器[19]基礎上去掉BN層,其特點是對感受野大小區(qū)域鑒別,有利于捕獲圖像局部特征。判別器(D,Discriminative Model)所采用的結構由5個卷積層與4個激活函數組成,最后輸出大小為16×16的特征矩陣,判別網絡模型如圖6所示。
圖6 判別模型
考慮恢復圖像的視覺效果和細節(jié)特征保持,GAN模型訓練時使用多個損失函數的線性組合,即
(2)
式中: LWGAN為對抗損失函數;L1為全局損失函數;LVGG為感知損失函數;Lf為高斯金字塔損失函數;λ1、λ2、λ3為各個損失函數的加權系數。
WGAN使用帶有梯度懲罰項的 WGAN-GP[20-21]。對抗損失函數表示為
LWGAN(G,D)=E[D(y)]-E[D(G(x))]+
(3)
為促使G的輸出與訓練集參照數據保持圖像信息的一致性,添加G輸出圖像與訓練集目標圖像的L距離作為損失函數之一優(yōu)化G,其定義為[22]:
(4)
為使生成圖像更加真實,提升圖像的視覺效果,添加VGG19預訓練網絡模型[23],通過提取VGG19網絡第4次最大池化操作前第3個卷積層輸出的高級特征構造感知損失函數。內容感知損失函數如下:
(5)
式中:x表示退化的水下圖像;y表示與退化圖像對應的參考圖像;φ(·)表示圖像內容函;G表示生成網絡;E表示數學期望。
為使生成圖像高層信息更為明顯,提升水下圖像的特征,使用拉普拉斯金字塔,通過高斯卷積核與下采樣構造殘差金字塔[24]。高斯金字塔結構如圖7所示。
分別將清晰水下圖像與生成水下圖像輸入高斯金字塔,分別提取第n層高斯金字塔信息做差,得到差異圖,高斯金字塔損失函數定義如下:
Lf=E[y?fh-G(x)?fh]
(6)
式中:y為清晰圖像第n層高斯金字塔信息,為生成圖像第n層高斯金字塔圖像,E表示數學期望;fh為5×5大小的卷積核;高斯金字塔可以更好提取細節(jié)信息,層數越多造成信息損失嚴重,因此,訓練過程中n=1。
圖7 差異圖過程
本實驗在 Windows 操作系統下,基于深度學習框架 Tensorflow 2.1實現; CPU 為 2.90 GHz Intel(R) Core(TM) i5-9400,GPU 為 NVIDIA RTX 1060。
在實驗中,將所有圖片尺寸統一變?yōu)?56×256×3大小,并將其像素大小縮小到[-1,1]區(qū)間;在訓練過程中,G和D的優(yōu)化以交替的方式進行。其中,D每優(yōu)化5次,G進行1次優(yōu)化,G 和 D 均使用 Adam 優(yōu)化器。其中,設置學習率為5e-5,一階動量項為0.5,二階動量項為0.999。網絡以小批量梯度下降方式進行優(yōu)化,設置Batchsize=1, epoch=100 000。
海洋深度、光照條件、相機模型以及水下環(huán)境中的雜散顆粒與浮游生物都是影響圖像失真程度的因素。但在某些特定條件下,水下圖像可能只有很小的失真,或者根本沒有失真。由于水下數據采集的難度較大,為了解決圖像對不足的問題,將無失真的水下圖像與有失真的水下圖像進行風格遷移,使無失真圖像通過CycleGAN[25]生成模糊水下圖像,形成一對數據集,如圖8(a)所示。
由于海洋環(huán)境的復雜性,CycleGAN生成的水下圖像數據集不遵循水下成像模型,使生成的水下圖像更加逼真,更符合海洋環(huán)境,但是CycleGAN生成水下大量圖片周期較長。因此,一部分水下生成圖像采用水下物理成像模型[26]提出的合成水下數據集進行訓練,該模型以NYU-V2 RGB-D數據集為基礎,生成1 284幅水下藍色圖像。
模糊的水下圖像的物理成像模型表示為[27]:
Iλ(x)=Jλ(x)tλ(x)+Aλ(1-tλ(x))
(7)
tλ=10-βλd(x)=Nλ(d(x))
(8)
其中:Iλ(x)為水下模糊圖像;Jλ(x)為水下清晰圖像;Aλ為散射光在傳感器收集的信號。λ是為紅、綠、藍光的波長,x表示水下圖像中的一個像素點。介質能量比tλ(x)為光長λ和距離d(x)從場景點x到攝像機的映射函數。βλ為波長相關的介質衰減系數,歸一化剩余能量比Nλ(d(x)) 為每個距離單位的剩余能量與初始能量比例。設置Nλ(d(x))取值為0.79±0.06×rand(),βλ取值為0.05±0.15×rand()[28],由此模型可以得到海底藍色圖像,如圖8(b)所示。
圖8 數據集
通過恢復水下圖像驗證多尺度語義特征水下圖像增強算法的有效性,選取藍色和綠色不同的水下圖像,并將該算法與UDCP[7]、Fusion[29]、UWCNN[12]與UGAN[11]算法進行比較,以原文中的網絡結構和優(yōu)化策略進行訓練,最終各算法的實驗結果如圖9所示。
從圖9中可以看出,UDCP算法去除退化圖像的模糊效果良好,但是該算法缺少顏色校正部分,因此不能有效解決水下圖像的偏色問題;Fusion算法整體上解決了退色問題,但是處理后的顏色過于飽和,甚至加重圖像背景的顏色失真;UWCNN算法整體上改善圖像的偏色問題,但針對偏色嚴重情況效果不太理想,用端到端的單輸入模型結構,在針對不同顏色失真水下圖像的增強結果中均出現局部區(qū)域紅色過度補償問題,增強后的結構缺少了真實感;UGAN算法合的GAN結構,通過該算法增強后的圖像基于U-Net模型進行網絡特征提取,顏色校正明顯,細節(jié)特征顯著,但是部分增強結果的色彩顯得不自然;相比之下,多尺度語義特征水下圖像增強算法采用了編碼解碼的多尺度語義特征的水下圖像增強方法,能夠有效地改善復雜水下環(huán)境的圖像偏色問題,提高水下圖像的對比度和清晰度。
圖9 各方法對比結果圖
實驗中采用水下圖像顏色質量評價(underwater color image quality evaluation,UCIQE)、峰值信噪比(peak signal to noise ratio,PSNR)與自然圖像評價[30](natural image quality evaluator,NIQE)這3種完整的參考指標對水下圖像進行定量評估并且對上述不同算法增強后的水下圖像實現評估并進行對比分析,以驗證多尺度語義特征水下圖像增強算法的優(yōu)勢。
UCIQE評價指標包含飽和度,色彩濃度和對比度,用來定量評價水下圖像清晰度、色偏以及對比度??傮wUCIQE 數值越高代表圖像越清晰,對比度越高,細節(jié)越多,復原效果越好。
PSNR是信號的最大功率與可能影響它的表示精度的噪聲功率的比值,數值越高代表經過處理之后的圖像失真越少,保留更多有價值的圖像信息。
NIQE[30]指標表示為從測試圖像中提取的NSS特征的MVG模型與從自然圖像語料中提取的感知特征的MVG模型之間的距離。NIQE越小,越表明圖像保留原圖像的細節(jié),避免圖像大量失真,從而使圖像更加自然、真實。水下圖像客觀指標評價結果如表1—表4。
表1 第1組水下圖像所示客觀指標評價結果
表2 第2組水下圖像客觀指標評價結果
表3 第3組水下圖像客觀指標評價結果
表4 第4組水下圖像客觀指標評價結果
從表1、表2、表3與表4可以得出,使用顏色遷移與水下圖像合成方法的數據集,并且結合多尺度語義特征水下圖像增強算法進行訓練之后,該算法生成的水下圖像UCIQE和PSNR評價指標相比較其他算法均有一定程度的改善,其中,UCIQE與PSNR整體上平均提升0.071 9與17.019 8,說明該算法使在增加水下圖像細節(jié)比其他算法綜合性能更加高,紅通道信息補償較更為完整。在NIQE整體上平均下降0.081 2,說明該算法生成的水下圖像真實自然度比其他算法綜合性能好。
UCIQE指標分析中,圖1與圖2在UDCP表現更好,圖3與圖4在UGAN表現更好。說明背景為綠色的水下圖像用UDCP算法表現較為良好。背景為藍色的圖像UGAN表現良好,在深度學習算法中,多尺度語義特征水下圖像增強算法在UCIQE指標中表現次之。PSNR指標分析中,多尺度語義特征水下圖像增強算法表現突出,生成圖像細節(jié)部分更多。NIQE指標中,非深度學習方法相比較深度學習算法處理的圖像更為自然,深度學習中UWCNN表現更良好,多尺度語義特征水下圖像增強算法表現次之。
為了驗證高斯金字塔損失函數對算法的影響,對該函數進行消融實驗。從表5得出,多尺度語義特征水下圖像在UCIQE與PSNR指標上相對于未加高斯金字塔函數基礎上分別提高0.023與1.921 3, NIQE降低0.081 2,表明使用高斯金字塔做損失函數可以使圖像更加自然、顏色更豐富。圖10表示用Canny算子處理的原圖、未加高斯金字塔損失函數以及本文算法,可以清楚地看到邊緣檢測的部分較多,因此使用高斯金字塔可以增強細節(jié)信息。
對網絡結構中的多尺度語義特征模塊、注意力與注意力機制模塊,將對應模型生成的水下圖像進行測試,與多尺度語義特征水下圖像增強進行對比。多尺度語義特征模塊、注意力機制消融研究結果如表6、表7所示。
圖10 Canny算子對應
表5 高斯金字塔損失函數消融實驗對比
通過表6、表7得出,注意力機制模塊UCIQE與PSNR指標上分別提高0.016 4與1.905 1;NIQE指標上降低0.640 7。多尺度語義特征模塊UCIQE與PSNR指標上分別提高0.019 7與1.828 9;在NIQE指標上降低0.752 6。說明注意力機制模塊與多度語義特征模塊對水下圖像有一定促進作用。
表6 注意力機制模塊消融實驗對比
表7 多尺度語義特征模塊消融實驗對比
針對水下武器系統在測試訓練過程中的水下圖像增強問題,提出一種基于編碼解碼的多尺度語義特征水下圖像增強算法。1) 該算法對于復雜水下場景圖像,能夠有效地還原復雜水下圖像真實色彩、辨別圖像的亮區(qū)、暗區(qū)。2) 該算法在PSNR指標上表現較好,可以保留更多的細節(jié)部分,為后期精確檢測奠定基礎。3) 本算法模型較大,參數較多,網絡運行復雜度較高。后續(xù)將剪枝算法應用在網絡中,完成模型輕量化。