傅 博, 王瑞子, 王麗妍, 張湘怡
(遼寧師范大學(xué) 計算機(jī)與信息技術(shù)學(xué)院, 遼寧 大連 116081)
水下圖像是海洋生物多樣性觀測和海洋環(huán)境監(jiān)測的重要信息載體. 但由于水下成像環(huán)境較復(fù)雜, 水下成像系統(tǒng)潛入到海底深處后會因光照、 介質(zhì)、 波長、 震蕩等原因?qū)е聢D像退化, 產(chǎn)生諸如水下圖像顏色偏藍(lán)、 偏綠、 清晰度下降、 細(xì)節(jié)信息丟失等問題, 如圖1所示. 由圖1可見, 這種退化不僅影響觀測的視覺感受, 且嚴(yán)重影響識別、 跟蹤、 顏色分析等高層計算機(jī)視覺任務(wù). 因此, 通過水下圖像處理算法, 能較好地改善水下圖像質(zhì)量, 對海洋生物的分類識別乃至海洋生物多樣性觀測具有重要價值.
圖1 干凈水下圖像(A)與真實水下退化圖像(B)Fig.1 Clean underwater images (A) and real underwater degraded images (B)
水下圖像處理技術(shù)分為傳統(tǒng)的圖像優(yōu)化算法和基于卷積神經(jīng)網(wǎng)絡(luò)的圖像優(yōu)化算法兩類. 傳統(tǒng)的圖像優(yōu)化算法又可分為水下圖像復(fù)原和水下圖像增強(qiáng)兩部分, 其中水下圖像復(fù)原算法主要側(cè)重于水下圖像的細(xì)節(jié)修復(fù), 而水下圖像增強(qiáng)更側(cè)重于水下圖像整體色彩的調(diào)整. Schechner等[1]基于消除水下圖像的偏振干擾, 通過在相機(jī)攝像頭上安裝可調(diào)試的偏振器, 獲得了同一場景下不同偏角的多角度水下圖像, 結(jié)合多張圖像以及計算出的偏振度, 便可估計場景深度, 從而達(dá)到圖片復(fù)原效果. Li等[2]提出了除霧和顏色校正水下圖像復(fù)原的方法, 先用一種簡單算法對圖像進(jìn)行預(yù)處理, 再通過調(diào)整飽和度強(qiáng)度、 拉伸直方圖等方式增強(qiáng)水下圖像, 提高圖像對比度. He等[3]提出了一種暗通道先驗(DCP)去霧圖像增強(qiáng)方法, 可用于水下圖像修復(fù). 張凱等[4]提出了一種基于多尺度Retinex的算法, 以此提升圖片的全局效果, 并使圖像色彩展現(xiàn)更豐富. Zhang等[5]提出了一種擴(kuò)展Retinex框架, 利用雙邊和三邊濾波器對水下圖像不同顏色的通道進(jìn)行處理, 并達(dá)到圖像復(fù)原效果. 馮輝等[6]提出了一種基于直方圖均衡化的水下圖像增強(qiáng)算法, 通過較窄的單峰式直方圖變?yōu)榫夥植嫉闹狈綀D, 使圖像對比度增強(qiáng), 從而達(dá)到圖像優(yōu)化的效果. Ancuti等[7]提出了一種基于融合原理的水下圖像增強(qiáng)算法, 利用多尺度融合技術(shù), 避免了圖像在輸出時產(chǎn)生的光影, 并且解決了水下圖像不清晰、 對比度較差、 色彩差異等問題. Garcia等[8]提出了一種用同態(tài)濾波解決水下霧化、 顏色偏藍(lán)綠等問題, 將像素灰度變換與頻率過濾相結(jié)合, 改善圖像動態(tài)范圍, 提高圖像對比度, 增強(qiáng)圖像質(zhì)量. Chiang等[9]提出了利用補(bǔ)償光在水中的衰退系數(shù)達(dá)到水下圖像增強(qiáng)的效果, 通過對人工照明與非人工照明區(qū)域進(jìn)行補(bǔ)償, 以該方式對圖像進(jìn)行優(yōu)化. Galdran等[10]提出了一種利用紅通道方式恢復(fù)水下圖像的算法, 利用該算法可恢復(fù)與短波相關(guān)的顏色, 從而恢復(fù)丟失的信息, 提升圖像對比度. 盡管傳統(tǒng)算法在一定程度上可減少圖像模糊程度、 增強(qiáng)邊緣、 去除藍(lán)綠, 但傳統(tǒng)算法普遍存在顏色主體信息不突出、 清晰度較差、 色彩模糊等問題, 因此還需進(jìn)一步完善.
近年來, 隨著人工智能技術(shù)的發(fā)展, 深度學(xué)習(xí)在計算機(jī)視覺、 圖像處理與分析等相關(guān)領(lǐng)域取得了很多成果. 基于深度學(xué)習(xí)圖像修復(fù)與增強(qiáng)的研究早期側(cè)重于自然圖像. 例如, Dong等[11]提出了一種圖像超分辨率重建(SRCNN)算法, 該算法使用卷積神經(jīng)網(wǎng)絡(luò)擬合低分辨率圖像和高分辨率圖像的映射, 是一種端到端的方法, 保證了圖像重建達(dá)到較好的效果, 目前該算法在醫(yī)學(xué)成像領(lǐng)域具有重要價值. Zhang等[12]提出了一種深度殘差網(wǎng)絡(luò)(RCAN)算法, 通過跳躍鏈接的殘差塊構(gòu)造高頻信息的學(xué)習(xí)網(wǎng)絡(luò), 該網(wǎng)絡(luò)在圖像增強(qiáng)領(lǐng)域取得了很好的精度和效果. Zhang等[13]提出了一種簡捷快速的神經(jīng)網(wǎng)絡(luò)去噪器, 該模型利用變量分裂技術(shù), 去噪先驗可作為基于模型優(yōu)化方法的一個模塊解決其他模糊或噪聲等問題, 該算法可在低視覺應(yīng)用中提供良好的性能. 之后, Zhang等[14]又進(jìn)一步提出了一個深度殘差網(wǎng)絡(luò)的高斯去噪算法, 能對未知的高斯噪聲去噪, 可解決高斯、 超分、 JPEG圖像的塊效應(yīng)問題. Liu等[15]提出了一種非局部遞歸網(wǎng)絡(luò)的圖像恢復(fù)算法, 通過在神經(jīng)網(wǎng)絡(luò)中引入非局部方法, 進(jìn)行端到端的訓(xùn)練去捕捉一個特征與其鄰近的特征相關(guān)性, 在一定程度上擴(kuò)展了網(wǎng)絡(luò)的寬度, 進(jìn)而改善了效果. 徐巖等[16]提出了一種基于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的水下圖像優(yōu)化算法, 首先根據(jù)水下成像模型生成模擬水下圖像, 其次建立生成的水下圖像與真實水下圖像之間的映射關(guān)系, 最后神經(jīng)網(wǎng)絡(luò)通過這種映射關(guān)系提取圖像特征, 以減少噪聲、 增強(qiáng)清晰度, 從而對水下圖像進(jìn)行恢復(fù), 但由于該網(wǎng)絡(luò)較小且只有單一的映射學(xué)習(xí)方式, 所以該算法增強(qiáng)能力較弱. Li等[17]提出了一種端到端的學(xué)習(xí)方式, 通過大量的訓(xùn)練圖像數(shù)據(jù)集與一些水下的深度數(shù)據(jù)作為一種端到端的輸入, 可粗略學(xué)習(xí)到水下場景深度估計, 以此恢復(fù)圖像特征, 增強(qiáng)視覺效果. Liu等[18]提出了一種基于深度殘差網(wǎng)絡(luò)框架的水下圖像增強(qiáng)算法, 通過引入超分辨率重建模型的方式提高水下圖像質(zhì)量, 但該方法提取特征能力較差, 導(dǎo)致上采樣時信息不能準(zhǔn)確還原, 所以圖像增強(qiáng)能力有限. Li等[19]提出了WaterNet, 使用大規(guī)模真實的水下圖像與其相對應(yīng)的真實圖像構(gòu)建水下增強(qiáng)基準(zhǔn)建立水下圖像增強(qiáng)網(wǎng)絡(luò), 該算法有較好的水下圖像增強(qiáng)效果. Islam等[20]提出了FUnIE-GAN網(wǎng)絡(luò), 通過對目標(biāo)函數(shù)多方式的調(diào)整, 基于圖像內(nèi)容、 顏色、 紋理細(xì)節(jié)等方面恢復(fù)水下圖像的真實顏色, 但由于該模型網(wǎng)絡(luò)較淺, 使網(wǎng)絡(luò)不能完全學(xué)習(xí)到圖像全部特征而導(dǎo)致泛化能力較弱, 所以該算法具有局限性.
盡管基于深度學(xué)習(xí)圖像修復(fù)與增強(qiáng)在自然圖像領(lǐng)域已取得顯著效果, 但由于水下環(huán)境的特殊性, 自然圖像的增強(qiáng)算法并不完全適用于水下圖像. 基于此, 本文提出一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的水下偏色圖像增強(qiáng)方法.
水下圖像增強(qiáng)算法的核心任務(wù)是對水下圖像去模糊、 去藍(lán)綠偏色, 并實現(xiàn)輸出圖與清晰圖之間端到端的映射, 使兩張圖像之間差異達(dá)到最小化, 用公式表示為
(1)
其中J(x)表示清晰圖像,Y表示網(wǎng)絡(luò)輸出圖像.算法的目標(biāo)是尋找一種使函數(shù)最小化的映射.
光在深海環(huán)境中傳播時, 會受水體的吸收和散射作用. 水下成像主要由相機(jī)接收到光線衰減后的直接分量、 前向散射分量、 后向散射分量三部分組成, 如圖2所示. 水下相機(jī)接收到的衰減后直接分量是指場景反射光在傳播過程中經(jīng)過衰減后到達(dá)相機(jī)的部分; 前向散射分量是指光經(jīng)場景表面反射后在傳播過程中發(fā)生小角度散射的部分; 后向散射分量是指背景光經(jīng)懸浮粒子散射后到達(dá)相機(jī)的部分. 考慮到上述成像因素, 水下圖像成像模型可表示為
圖2 水下成像模型Fig.2 Underwater image formation model
I(x)=J(x)t(x)+A(1-t(x)),
(2)
其中x表示水下圖像中第x個像素,J(x)表示水下的清晰圖像,A表示大氣光散射函數(shù),I(x)表示真實被退化后的水下圖像,t(x)表示透射率.透射率與場景深度之間有固定的函數(shù)關(guān)系, 其相關(guān)性可定義為
t(x)=e-βd(x),
(3)
其中d(x)表示場景深度,β表示衰減系數(shù).
隨著基于深度學(xué)習(xí)圖像處理技術(shù)的不斷發(fā)展, 傳統(tǒng)端到端的任務(wù)已不能進(jìn)一步挖掘各領(lǐng)域任務(wù)中數(shù)據(jù)的獨特性, 因此如何利用具體的領(lǐng)域知識與模型構(gòu)建深度學(xué)習(xí)任務(wù)變得更重要.
圖3為基于卷積神經(jīng)網(wǎng)絡(luò)的經(jīng)典水下圖像增強(qiáng)模型結(jié)構(gòu).由圖3可見, 傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)水下增強(qiáng)網(wǎng)絡(luò)模型主要由特征提取模塊、 特征映射模塊和圖像重建模塊組成.
圖3 神經(jīng)網(wǎng)絡(luò)算法模型Fig.3 Neural network algorithm model
特征提取模塊包含一個卷積核為7×7的卷積層, 共64個卷積核.網(wǎng)絡(luò)通過卷積操作提取特征, 公式為
Y=W*I(x),
(4)
其中Y表示生成的水下圖像,W表示卷積核(由n×f×f個參數(shù)組成),n表示卷積核數(shù)量,f表示卷積核大小,I(x)表示輸入的水下圖像.
特征映射模塊包含兩個卷積層.每個卷積層由5×5大小的卷積核組成, 特征提取卷積層經(jīng)過映射后到達(dá)特征映射模塊第一個卷積層, 實現(xiàn)了從高維度到低維度的映射, 再經(jīng)過一個卷積層增加模型的非線性.
圖像重建模塊主要通過重建后得到的結(jié)果圖與清晰圖像之間的迭代, 不斷調(diào)整參數(shù).網(wǎng)絡(luò)采用均方誤差(mean squared error, MSE)作為損失函數(shù), 表示為
(5)
其中J(xi)為第i組的清晰圖像值,Yi為網(wǎng)絡(luò)中第i組的輸出值,m為訓(xùn)練的數(shù)據(jù)集大小.
上述傳統(tǒng)基于卷積神經(jīng)網(wǎng)絡(luò)的方法雖然在一定程度上解決了傳統(tǒng)水下圖像算法的偏色、 清晰度低、 模糊、 色彩單一等問題, 但由于網(wǎng)絡(luò)較淺、 提取特征不全面, 導(dǎo)致網(wǎng)絡(luò)泛化性較差, 且網(wǎng)絡(luò)只有一種端到端的映射學(xué)習(xí)方式, 使網(wǎng)絡(luò)不能深度提取特征信息, 導(dǎo)致圖像增強(qiáng)效果不顯著.
一般水下圖像學(xué)習(xí)通常采用三通道方法.該方法雖然可在一定程度上學(xué)習(xí)到水下圖像特征, 但由于水下環(huán)境復(fù)雜, 生成的水下圖像嚴(yán)重偏色, 使一般的學(xué)習(xí)方法學(xué)到圖像特征的難度較大, 導(dǎo)致學(xué)習(xí)效果較差.因此, 本文提出一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的水下偏色圖像增強(qiáng)算法的模型結(jié)構(gòu), 用于挖掘更多的特征信息及網(wǎng)絡(luò)輸出與標(biāo)準(zhǔn)圖像的關(guān)系.該算法首先在U-net模型的基礎(chǔ)上進(jìn)一步加深網(wǎng)絡(luò), 從而提取到更深層次的特征信息, 用跳躍連接方式進(jìn)行圖像優(yōu)化; 其次, 網(wǎng)絡(luò)采用學(xué)習(xí)輸入圖像I(x)與輸出圖像Y之間殘余偏色圖的方法增強(qiáng)圖像, 該方法可提高網(wǎng)絡(luò)的泛化性.將這種學(xué)習(xí)策略應(yīng)用到網(wǎng)絡(luò)中, 不僅可更深入、 更全面地提取信息, 還可減少過擬合問題, 使網(wǎng)絡(luò)訓(xùn)練更簡捷有效.圖4為干凈水下圖像與偏色水下圖像的細(xì)節(jié)對比.由圖4可見, 整體的水下圖像偏色嚴(yán)重, 清晰度退化.
圖4 干凈水下圖像(A)與偏色水下圖像(B)細(xì)節(jié)對比Fig.4 Detail contrast between clean underwater images (A) and color cast underwater images (B)
傳統(tǒng)的U-net模型由下采樣、 上采樣和跳躍連接三部分組成. 首先, 輸入一張圖片, 通過卷積和下采樣降低圖片尺寸, 提取淺層特征; 其次, 通過卷積和上采樣獲得深層次特征; 最后, 將編碼器和解碼器獲得的圖像特征相結(jié)合后輸入優(yōu)化圖像. 本文在U-net模型基礎(chǔ)上提出一個準(zhǔn)確性更高的模型, 由5對編碼器和解碼器組成, 模型結(jié)構(gòu)如圖5所示.
圖5 基于深度卷積神經(jīng)網(wǎng)絡(luò)的水下偏色圖像增強(qiáng)方法模型結(jié)構(gòu)Fig.5 Model structure of enhancement method of underwater color cast image based on deep convolutional neural network
假設(shè)給定一個256×256×3大小的水下圖像I(x), 輸出圖像Y, 首先將圖像輸入到網(wǎng)絡(luò)中, 該網(wǎng)絡(luò)由5個編碼器和5個解碼器組成, 即(e1,d5),(e2,d4),(e3,d3),(e4,d2),(e5,d1), 每個編碼器的輸出會跳躍連接到對應(yīng)的解碼器, 每個卷積層都有一個3×3的2D卷積, 該網(wǎng)絡(luò)是一個未使用全連接層的全卷積網(wǎng)絡(luò). 此外, 本文算法不直接從輸入I(x)到輸出Y中學(xué)習(xí)映射, 而是通過輸入圖像I(x)與輸出圖像Y之間學(xué)習(xí)殘余偏色圖的能力增強(qiáng)圖像, 用公式表示為
d=Y-I(x),
(6)
其中d表示殘余偏色圖像,Y表示輸出圖像,I(x)表示輸入的水下圖像.由于殘余偏色圖像更稀疏地表達(dá)了退化圖像與原圖的差異, 因此網(wǎng)絡(luò)可更好地學(xué)習(xí)偏色殘余圖像與標(biāo)準(zhǔn)圖像的相關(guān)性.將這種學(xué)習(xí)策略應(yīng)用到卷積層中, 會使訓(xùn)練更有效.
網(wǎng)絡(luò)中還用到了Leak-ReLU激活函數(shù)、 BN層, 同時用反卷積代替?zhèn)鹘y(tǒng)的上采樣方法, 可實現(xiàn)還原圖片大小的同時還原信息.
本文的目標(biāo)是訓(xùn)練模型學(xué)習(xí)輸入和輸出的殘余能力增強(qiáng)圖像.為進(jìn)一步提高圖像中主要成分和邊緣細(xì)節(jié)的清晰度, 本文使用均方誤差計算損失函數(shù), 將水下圖像輸入到已訓(xùn)練好的網(wǎng)絡(luò)中, 其損失函數(shù)為
(7)
其中m表示樣本的數(shù)量,Yi表示模型中生成的第i組值,J(xi)表示第i組清晰圖像的值.
此外, 本文還將結(jié)構(gòu)相似性(structural similarity, SSIM)加入損失函數(shù)中, 其計算表達(dá)式為
(8)
其中:Y表示生成的水下圖像;J(x)表示干凈的水下圖像;μY和μJ(x)分別表示水下生成圖像的平均值和干凈水下圖像的平均值;σ2Y和σ2J(x)分別表示生成圖像和干凈圖像的方差;σYJ(x)表示協(xié)方差;C1,C2表示用于維持穩(wěn)定的常數(shù),
C1=(K1L)2,C2=(K2L)2,
(9)
式中L為像素的范圍,K1=0.01,K2=0.03.當(dāng)生成水下圖像與干凈水下圖像非常相似時, SSIM的值趨近于1. 所以SSIM的損失函數(shù)LSSIM可表示為
(10)
整體的損失函數(shù)可表示為
L=LMSE+LSSIM,
(11)
其中m表示樣本數(shù)量,LMSE表示MSE的損失函數(shù),LSSIM表示SSIM的損失函數(shù),L表示MSE與SSIM損失函數(shù)之和.通過上述定義的網(wǎng)絡(luò)結(jié)構(gòu)與損失函數(shù), 對整個網(wǎng)絡(luò)進(jìn)行迭代訓(xùn)練, 直到達(dá)到損失函數(shù)值小于閾值或者達(dá)到最大迭代閾值為止.獲得的網(wǎng)絡(luò)模型描述了偏色圖像與標(biāo)準(zhǔn)圖像的映射關(guān)系.
實驗運行于Linux操作系統(tǒng), 基于Tensorflow深度學(xué)習(xí)框架[21]實現(xiàn), 在配置環(huán)境為 1個NVIDIA Tesla K80的條件下訓(xùn)練5 224張成對數(shù)據(jù)集, 并測試528張驗證集. 該網(wǎng)絡(luò)采用Adam優(yōu)化器, 參數(shù)β1=0.9,β2=0.999, 模型的學(xué)習(xí)率為0.001, 步數(shù)為300×50, 批處理器大小為16, 訓(xùn)練過程中只保留最優(yōu)模型.
為驗證本文算法的有效性, 分別與UGAN[22],UWCNN[23],FastGan[24]算法進(jìn)行性能對比, 其中UGAN算法包括Pix2Pix算法和Resnt算法. 為保證實驗的公平性, 所有算法均用原網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù), 并使用與本文相同的訓(xùn)練集與測試集.
表1為不同算法的峰值信噪比(peak signal to noise ratio, PSNR)和SSIM值對比.
表1 不同算法的PSNR和SSIM值對比
由表1可見, 本文模型的PSNR評價指標(biāo)高于其他模型, SSIM評價指標(biāo)也具有很大優(yōu)勢, 生成的圖像與原圖差距最小. 該結(jié)果表明, 本文算法在處理顏色校正、 增強(qiáng)對比度、 優(yōu)化圖像細(xì)節(jié)、 提高圖像質(zhì)量等方面均優(yōu)于其他4種對比算法.
在相同數(shù)據(jù)集下, 本文算法與其他算法處理圖像細(xì)節(jié)的比較結(jié)果如圖6所示. 由圖6可見, Pix2Pix和Resnet算法處進(jìn)圖像細(xì)節(jié)較清晰, 但沒有針對主體信息進(jìn)行增強(qiáng); UWCNN算法對圖像顏色修正效果不明顯; FastGan算法未對生成圖像進(jìn)行約束, 使增強(qiáng)的圖像細(xì)節(jié)信息丟失并有噪聲. 本文算法引入了結(jié)構(gòu)相似性損失, 對輸入圖像和增強(qiáng)圖像之間的特征結(jié)構(gòu)信息進(jìn)行約束, 使生成的圖像保持主體信息完整性, 并且可有效去除偏色, 提高對比度. 因此, 本文模型生成的圖像最接近真實圖像的視覺效果.
圖6 各類算法處理圖像的細(xì)節(jié)對比Fig.6 Detail contrast of image processing of various algorithms
圖7(A),(B)分別為不同算法的PSNR值和SSIM值對比. 由圖7可見, 本文算法與其他算法相比有明顯優(yōu)勢, 對去除海洋生物圖像的藍(lán)綠色, 增強(qiáng)圖像的對比度效果更好.
a. Pix2Pix算法; b. Resent算法; c. UWCNN算法; d. FastGan算法; e. 本文算法.圖7 不同算法的評價指標(biāo)對比結(jié)果Fig.7 Contrast results of evaluation indicators of different algorithms
下面對本文算法的收斂性用數(shù)據(jù)結(jié)果的數(shù)據(jù)指標(biāo)曲線圖進(jìn)行測量與分析. 圖8(A)為本文算法的損失函數(shù)下降曲線, 其中藍(lán)色線表示本文算法在訓(xùn)練過程中的趨勢, 紅色線表示在驗證過程中的趨勢. 由圖8(A)可見, 當(dāng)網(wǎng)絡(luò)訓(xùn)練超過100輪時, 本文網(wǎng)絡(luò)輸出已接近目標(biāo)精度. 圖8(B)為本文算法輸出結(jié)果的峰值信噪比變化曲線. 由圖8(B)可見, 隨著算法損失函數(shù)的不斷下降, 輸出結(jié)果的效果不斷改善, 峰值信噪比不斷增加, 在第100輪時達(dá)到最高并趨于平穩(wěn). 通過算法的收斂性和有效性指標(biāo)分析可見, 本文算法可在有限時間內(nèi)收斂, 且收斂后可得到較高的修復(fù)結(jié)果.
圖8 本文算法的收斂性分析Fig.8 Convergence analysis of proposed algorithm
綜上所述, 本文針對水下圖像偏色失真的問題, 提出了一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的水下偏色圖像增強(qiáng)算法, 有效解決了水下圖像的偏色、 模糊等問題. 該算法首先在U-Net模型的基礎(chǔ)上構(gòu)建一種卷積神經(jīng)網(wǎng)絡(luò), 訓(xùn)練網(wǎng)絡(luò)學(xué)習(xí)圖像輸入與圖像輸出的色彩差異; 其次, 用損失函數(shù)提高輸入與輸出圖像的相似度, 在視覺上提高了水下圖像質(zhì)量. 對比實驗結(jié)果表明, 對解決水下圖像偏色失真等問題, 本文算法優(yōu)于其他算法.