李 鈺, 楊道勇, 劉玲亞, 王易因
(上海交通大學 電子信息與電氣工程學院, 上海 200240)
近年來,隨著水下機器人技術的發展[1],極大促進了探索海洋的進程.水下機器人通常配有的視覺傳感設備,能夠捕捉周圍環境信息,并以圖像作為承載體進行記錄[2].許多水下任務如目標識別與檢測、礦物探測[3-4]都是基于水下圖像進行分析的.然而,水下場景不同于陸地,其復雜的水體特性和大量的懸浮顆粒會影響光波的正常傳輸[5],使獲得的圖像呈現出模糊、色偏、對比度低等多類失真問題[6],進而嚴重影響后續應用的效果.雖然,陸上的圖像增強算法可為水下圖像增強提供一些借鑒,但水下環境的獨特性,使得陸地方法直接遷移至水下的效果不佳.因此,對水下圖像進行增強處理研究十分必要.
根據是否考慮光波在水中的傳播過程,目前的水下圖像增強算法可分為兩大類:基于物理模型的增強算法和基于非物理模型的增強算法[7].前者需要對成像過程進行具體的數學建模,估算出其中的未知參數,進而反演出去除水體影響的清晰圖像.最為經典的暗通道先驗(DCP)算法[8],發現了陸上霧感圖像與成像模型之間的關系,因此得到光波透射率和大氣光的估計值,實現霧感圖像的還原.由于水下成像過程與霧化過程類似,DCP算法也可應用于水下失真圖像的修正.但是,此算法的適用場景非常有限,且增強結果易出現新的失真問題.更進一步,文獻[9]提出了專門針對水下場景的水下暗通道先驗 (UDCP)算法,此算法考慮了光波在水中傳輸的衰減特性,能求解出更準確的透射率分布.然而,由于水下環境復雜多變,難以構建準確普適的成像模型,且參數估計易存在偏差,所以得到的增強結果并不太理想.另一方面,基于非物理模型的增強算法則無需分析圖像的成像過程,僅依靠降質圖像的像素分布進行增強操作.由于只針對圖像本身質量,一些傳統的圖像處理算法,如直方圖均衡化、灰度世界法、小波變換、Retinex算法等,也可應用于水下圖像增強.此類算法雖原理簡單,但是易產生過度增強、人工噪聲等問題.
近幾年人工智能技術的發展,極大地推動了神經網絡在眾多領域的應用,水下圖像增強任務也不例外[10].神經網絡算法通過數據驅動,自主構建出輸入樣本與輸出樣本間的非線性映射函數,進而實現降質圖像的修正.由于水下標簽數據并不充足,且質量欠佳,現常用的網絡類算法多基于半監督模式的生成對抗網絡(GAN)[11].此類算法使用靈活多變,在圖像的對比度和亮度調整上多有不錯的表現.但是,在色偏校正和細節保留問題上,一些算法依然有較大的提升空間.文獻[12]設計了一種循環生成對抗網絡,通過雙向訓練方式實現理想清晰圖像與水下失真圖像的轉換.此算法避免了成對水下數據難以獲取的問題,能實現高效率的圖像增強.然而在處理過程中,其增強結果往往難以與理想清晰情況保持一致,在色度和結構上存在一定的偏差.文獻[13]提出了一種簡單快速的生成對抗模型,能對水下圖像的亮度、顏色等問題進行實時的修正,但是其結果易出現邊緣細節的丟失,且無法去除模糊.
針對現有算法的不足,本文提出了一種結合MS-Se-Res(Multi-Scale Senet-Residual)模塊[14]和雙分支判別器的水下圖像增強算法.該算法以GAN網絡為基本框架,利用判別器的監督能力緩解對數據的依賴.與傳統算法不同的是,本文在生成器部分采用了不同尺寸的Se-Res(Senet-Residual)模塊,這種設計能夠在提取更多有用特征的同時實現多范圍信息的融合.此外,由于傳統判別網絡采用的單一標量判別圖像真偽的判別方式容易丟失圖像細節,所以本文在此基礎上提出了全局-區域雙判別方式,這種方式能夠實現全局風格與局部細節的雙重把控.在損失函數設計中,本文設計了僅考慮圖像本身質量的無監督損失形式,使增強結果不受限于參考圖像.同時,與對抗損失和內容感知損失一起共同對模型的優化方向進行約束.針對水下場景復雜多變的問題,本文收集了六類水下數據對算法的性能進行驗證,并與典型算法進行比較.通過大量的實驗評估,本文算法在主觀視覺和客觀指標層面都取得了優異的表現.
本文提出了一種基于條件生成對抗網絡的水下圖像增強模型,如圖1所示,其主要由兩部分組成,生成網絡與判別網絡.前者用于學習清晰圖像的數據分布,并得到水下失真圖像與此分布間的非線性變換關系,進而生成去除水體影響的偽清晰圖像.生成網絡結構如圖2所示.其中:ki為i×i的內核尺寸;sj為長度為j的移動步幅;d為空洞卷積中的膨脹率;Conv為卷積運算;Conc為拼接操作.后者則對輸入的圖像進行真偽判別,清晰參考圖像標簽為真,而生成網絡得到的偽清晰圖像標簽為偽.另外,判別網絡采用雙判別形式,能夠分別對全局風格和細節邊緣進行監督.在損失函數中,本文設計了僅考慮圖像本身質量的無監督形式,其與對抗和內容損失一起共同對模型的訓練方向進行約束,有助于緩解對數據的依賴.下面將對網絡設計進行具體描述.

圖1 水下圖像增強模型結構Fig.1 Model structure of underwater image enhancement

圖2 生成網絡結構設計Fig.2 Structure design of generator
網絡輸入為256像素×256像素×3像素的圖像數據經過32通道1×1卷積操作和ReLU激活函數得到256像素×256像素×32像素的特征分布.首先,為了避免梯度稀疏問題,本模型采用基礎卷積操作代替原Se-Res模塊中的池化層,防止信息丟失,有助于提升網絡穩定性.同時,為了實現多尺度特征信息的融合,本文在原始Se-Res模塊的基礎上,根據卷積位置選用不同尺寸的卷積內核.此外,卷積操作的內核尺寸會影響網絡的參數量和計算量,因此,本文在深綠色模塊中采用3×3空洞卷積[15]代替7×7的傳統卷積,在保證感受野的同時減小了網絡的復雜度,d設置為2.經過4個Se-Res模塊操作后,在對稱位置使用了相同尺寸的卷積處理.同時為了提升信息利用率,防止特征丟失,本文加入了多個直連通道,并利用拼接操作保證低層特征的完整傳輸.經過拼接后的特征分布為64通道,分別作為最后3個Se-Res模塊的輸入.除此之外,在拼接操作前,加入3層網絡,其中黃、灰、藍色分別是卷積操作、非線性激活和歸一化處理.輸出層卷積選擇為4×4,激活函數設為Tanh,Tanh激活輸出能既起到激活作用,又起到歸一化作用.其將計算結果歸一化到[-1, 1]之間,能夠避免過大或過小的值.訓練時將所有圖像數據全部歸一化到[-1, 1], 生成結果顯示時再反向調整為[0, 255],所以Tanh激活函數的值經過調整即作為了輸出圖像三通道的像素值,由此可以得到最終的增強結果.
傳統判別網絡采用的是單一標量判別圖像真偽的判別方式.這種方式雖然能夠很好地進行全局范圍觀測,但是容易丟失細節信息.馬爾科夫判別網絡(PatchGAN)[16]提出了局部判別的思想.基于補丁級別的信息,可以更好地感知邊緣細節部分,從而得到細節豐富、分辨率高的圖像.因此為了既能把握整體信息,保持全局一致性,又能輸出高分辨率圖像,本文設計了一種全局-區域式的雙判別網絡結構.全局-區域判別方式示意圖如圖3所示.

圖3 判別方式示意圖Fig.3 Schematic diagram of discrimination method
全局判別采用了對整體圖像范圍的判偽方式,網絡中的基本模塊采用CLB (ConV-LeaklyReLU-BN) 形式,首先通過步幅大于1的卷積實現圖像降維,其次利用帶來泄露的非線性函數使小于0的信息順利傳輸,最后加入批歸一化(BN)層實現分布的修正[17].而區域判別則選取以填充區域為中心的尺寸為256像素×256像素的圖像塊,再經過4次步長為2的卷積處理后其輸出尺寸為16像素×16像素.區域判別采用多分類結果輸出形式,每一個數值對應輸入圖像中的每一個部分.全局、區域判別網絡設計相似,其最大區別在于全局判別輸出為單一標量,而區域判別輸出為16×16矩陣.
為了緩解對數據的依賴,彌補樣本不足的問題,本文在監督學習的基礎上設計了僅考慮生成器輸出圖像本身質量的無監督學習形式[18].整個網絡的損失函數包括三部分:質量驅動目標損失、對抗性目標損失、內容感知損失.
1.3.1質量驅動目標損失 針對水下圖像出現的色彩扭曲等降質問題,質量驅動目標損失可以無需參考圖像的約束,僅根據水下失真圖像實現優化[19].本文選取了基于人體視覺系統的Lab顏色模式[20].其中,Lab分布是通過RGB(Red-Green-Blue)分布經過空間變換與數值處理所得到的.代表紅綠色的a和代表藍黃色的b像素值取值范圍為 (-128,127).a,b的正負和均值大小、方差大小分別關系到圖像中的顏色占比大小、占比均衡性和分布多樣性.由此可以建立如下損失形式的數學表達式:
(1)

不同質量的水下圖像及其Lab分布如圖4所示.其中:p為歸一化像素值;h為直方圖分布值.在3種不同情況下進行實驗,圖4(a)中,綠色占比大,黃綠分布不均衡,其Lab分布圖中的a、b曲線分別遠離中心位置分布.圖4(b)中,仍存在偏色現象,但是情況略好,其Lab分布圖中,a曲線基本位于中心位置分布,b曲線則輕微左移.圖4(c)中,其Lab分布曲線皆位于中心位置分布.3幅圖像質量損失值分別為0.857,0.349和0.037.

圖4 不同質量的水下圖像及其Lab分布Fig.4 Underwater images with different qualities and their Lab distributions
1.3.2對抗性目標損失 對抗性目標損失能夠減少標注數據不足的影響,并更準確地提取融合水下失真圖像的特征,其數學表達式如下所示:
LGANt=Ex~pr(x)[lgDt(x,y)]+
Ex~pg(x)[lg(1-Dt(x,G(x)))]
(2)
式中:pr(x)和pg(x)分別為數據來源真偽的概率分布;t∈{1, 2}分別為全局判別和區域判別;x為輸入數據;y為標簽圖像;G(x)為生成器輸出;Dt(x,y)為判別輸出.這種函數形式限制了網絡權重的更新方向,保證了整體輸出的穩定性.
1.3.3內容感知目標損失 內容感知目標損失[21]擁有快速分析、差異尋找、信息匹配、特征提取、細節捕獲的能力.其使用視覺幾何組(VGG)模型[22],利用卷積網絡進行二次特征提取,再根據特定層距離間的輸出分布來達到對樣本相似性的監測.內容感知目標損失數學表達式如下:
(3)
式中:Hk和Wk分別為經過網絡k層處理后的特征圖高寬;φk(·)為VGG模型前k層的網絡參數;Iy,IG(x)為參考圖像y和生成器輸出圖像G(x).
綜上所述,本文損失函數整體表達式如下:
L=ωGANLGAN+ωCLC+ωULU
(4)
式中:ωU、ωGAN和ωC為3個損失函數的權重,分別取為0.3、0.3和0.4.
本文的實驗環境配置是Intel Xeon E5-2640V4處理器,2.4 GHz主頻,32 GB緩存空間和GTX 1080Ti GPU.編程語言和模型搭建平臺為Python和PyCharm,訓練框架基于Tensorflow和Kears.實驗采用Adam優化器,初始學習率為 0.000 3,一階矩估計的指數衰減率為0.5.樣本的預處理過程分為4個部分:選取小批量數據,修改大小為256像素×256像素,數據增強操作以及標準化處理到(-1,1).數據增強處理主要包括線性插入參考圖像、左右翻轉和上下翻轉,實驗采用random函數產生(0,1)之間的任意浮點數.本實驗設置翻轉概率為0.25.此外,每一迭代批量設置為4,整體循環次數設為200.
本文從訓練過程和訓練結果出發,對損失函數進行組合訓練與分析.圖5和6為各損失函數訓練過程對比.其中:Lall為3種損失函數組合;LGAN+C為對抗性目標損失函數與內容感知目標損失函數組合;LGAN+U為對抗性目標損失函數與質量驅動目標損失函數組合;n為迭代次數;l為損失函數值.

圖5 2種損失函數訓練過程對比Fig.5 Training process comparison of two loss functions
從圖5中可以看出,3種損失函數組合形式訓練過程平穩,震蕩幅度小,所需循環次數少.與之相比,當只使用生成對抗損失函數進行訓練時,會出現收斂過程不穩定,震蕩幅度大,所需循環次數多等問題.由圖6可知,紅色實線、藍色點線表現相近且明顯優于橙色虛線.但是在收斂后藍色線收斂值出現小幅波動,因此紅線穩定性優于藍線.綜上,3種損失函數組合的函數形式具有更好的性能優勢.另外,本文選擇了峰值信噪比(PSNR)和結構相似性(SSIM)兩個指標來進行客觀評估,表1展示了訓練完成后在水下視覺感知增強(EUVP)數據集[13]上的測試評價結果.由表1可知,3種損失函數的組合形式明顯優于其余組合.

圖6 3種損失函數訓練過程對比Fig.6 Training process comparison of three loss functions

表1 各損失函數評價指標對比Tab.1 Metrics results comparison of each loss function
為了驗證算法的有效性,本文設計了水下合成數據增強效果分析和多場景真實數據增強效果分析兩個實驗,并從主觀視覺評價和客觀指標評價兩方面進行結果分析.進行對比的算法有: 基于先驗知識的文獻算法[23-24]、基于融合的文獻算法[25-26]、基于深度學習的算法[13,27].
合成數據集來自于EUVP數據集[13],其通過CycleGAN網絡[28]進行對水下場景風格的學習和模擬.各種算法在合成數據集上的增強效果如圖7所示.從視覺層面可以看出,圖7(b)中的RayleighD算法圖像色彩扭曲,出現了嚴重失真的問題.相對全局直方圖拉伸(RGHS)算法增強不足, 使得圖7(c)中殘存大量水體噪聲.圖7(e)中Fus_2算法圖像整體呈現灰白色,這是由于其過度增強的問題導致圖像對比度和飽和度過低.圖7(d)中的Fus_1、7(f)中的FGAN、7(g)中的UWCNN算法都引入了新的色偏,使得整體圖像效果不佳.綜合來看,本文算法的圖像處理效果最佳,與參考圖像的視覺效果幾乎相同,在第1行的圖像處理效果上甚至優于參考圖像.其對于水體影響去除徹底,圖像色彩鮮艷、亮度通透、紋理清晰,有著很好的色彩飽和度和視覺效果.因此從主觀視覺來看,本文算法最佳.

圖7 各算法在合成數據集上的增強結果對比Fig.7 Enhancement results comparison of various algorithms on synthetic datasets
另外,本文選擇了峰值信噪比(PSNR)、結構相似性指數(SSIM)、水下圖像質量檢測(UIQM)、色彩對比度密度(CCF)和信息熵5種指標進行客觀評價.PSNR能夠衡量圖像質量的優劣程度和噪聲情況;SSIM可以從整體層面判別兩張圖片的相似性;UIQM則是專門針對無對照參考情況下的水下圖像質量評價;CCF是一個綜合質量評價指標,其不僅考慮了色調失衡、對比度差的問題,還加入了霧感評判標準;信息熵能夠描述當前圖像信息量的豐富度,其值大小與特征信息的多少緊密相關.各算法在合成數據集上的增強結果對比,如表2所示.由表2可知,本文算法在所有指標上都明顯優于其余算法,有著出色的表現.

表2 各增強算法在合成數據集上的評價指標對比
水下環境復雜多變,本文設置了偏綠、偏藍、藍綠、霧感、亮度不均不足5種不同場景進行驗證,并從公開數據集和競賽中收集真實數據.各算法增強結果如圖8所示.由圖8可知,在場景1的偏綠場景中,圖8(b)中的RayleighD算法圖像過度增強,色偏嚴重;圖8(d)中的Fus_1算法圖像殘存大量水體噪聲;圖8(e)中的Fus_2算法圖像飽和度鮮艷度不足;圖8(c)中RGHS、8(f)中FGAN、8(g)中UWCNN算法圖像整體分別呈現綠色、黃色、黃綠色,3種算法無法準確修正顏色分布.本文算法在處理綠色殘留上效果明顯優于其余算法,整體色彩鮮艷,各方面出色.在場景2的偏藍場景中,其余算法無一能夠很好地糾正藍色主導的顏色分布,只有本文算法能夠去除水體影響,還原出清晰圖像.在場景3的藍綠場景與偏綠場景類似,本文算法增強性能最優.在場景4的霧感場景中,除了圖8(f)中的FGAN算法外,其余算法都去除了霧感影響,但都出現了色偏問題,只有本文算法輸出了無水體色調殘留,色彩飽和度高的清晰圖像.在場景5的亮度不均不足場景中,由于輸入圖像質量過低,導致其余算法皆無法很好地還原圖像色彩,但是本文算法依然輸出了較其他算法更清晰的圖像,而且沒有出現色調偏離的失真情況.綜上,本文算法的水下圖像增強效果最好.

圖8 不同場景下數據增強結果對比Fig.8 Comparison of enhancement results on different datasets
為了對增強結果的質量進行客觀分析比較,從UIQM、CCF、信息熵3個方面的指標進行定量分析,如表3所示.對于UIQM指標,本文算法能夠在所有場景下都得到最高的分值,且得分均勻,沒有出現明顯得分低的場景,而其余算法得分低且存在明顯分值低的場景,浮動較大.從CCF指標來看,本文算法依舊得分最高,遠超其余算法.最后從信息熵來看,雖然其余算法色彩變化明顯,得分較高,但是本文算法依舊有最高的分值,在處理水下噪聲去除方面有明顯的優勢.綜上所述,本文算法有能夠實現多場景的增強任務,有著出色的泛化性能.

表3 各增強算法在多場景數據上的評價指標對比

(續表)
針對水下觀測圖像存在顏色失真和低對比度等問題,本文提出了一種基于生成對抗模型的水下圖像修正與增強算法.該算法在生成部分將多尺度內核應用于Se-Res模塊中,實現多感受野特征信息的提取與融合.判別部分設計考慮了全局信息與局部細節的關系,建立了全局-區域雙判別結構,能夠保證整體風格與邊緣紋理的一致性;同時設計了僅考慮圖像本身質量的無監督形式,其與有監督損失一起共同對模型的訓練方向進行約束能夠得到更優的色彩和結構表現.為了驗證算法的性能,本文設計了多個對比分析實驗,分別從主觀視覺和客觀指標上進行結果分析.實驗結果表明,本文算法能有效提高圖像清晰度,增強對比度,修正色偏,保護細節特征不丟失.