李 莉,王新強,銀 珊
(桂林電子科技大學電子工程與自動化學院,廣西桂林 541004)
受復雜水下物理環境的影響,水下圖像經常存在顏色失真、低對比度、細節模糊等問題[1-3]。低質量的水下圖像對探知水下場景帶來了極大挑戰,因此,研究有效的水下圖像清晰化算法具有重要意義。
目前,水下圖像清晰化技術主要分為圖像復原和圖像增強[4]兩種。其中,復原算法考慮水下成像機理,估計退化模型的參數以反演清晰圖像[5]。近期,暗通道啟發的算法逐漸應用到水下圖像去霧方面,但該算法沒有充分考慮紅通道的衰減,造成估計的透射率較大,復原圖像較暗。文獻[6]采用隨機森林回歸算法提高透射率估計的準確率,但該算法的運算復雜度較高。文獻[7-8]提出的算法進一步提高了投射率的估計準確率,但增強的圖像中引入了紅色偽影。
圖像增強算法通過調整圖像的像素值以增強圖像的顏色和對比度。文獻[9]提出了基于Retinex 的水下圖像增強算法,該算法提高了圖像的可視性,但易引入微紅色。文獻[10]利用Retinex 分解圖像的反射分量和入射分量,然后對它們采用不同的增強算法,并通過加權融合獲得增強的圖像,但該算法放大了噪聲。文獻[11]受Retinex 的啟發,采用模型分段和線性分段增強反射分量,通過空間平滑和線性平滑改善入射分量,但該算法求解復雜。文獻[12-13]提出了自適應雙直方圖算法,但沒有充分考慮水下圖像的衰減,從而導致增強的圖像出現過增強或欠增強。文獻[14]提出了顏色平衡和融合的水下圖像增強算法,但該算法對于衰減通道的選擇考慮不足。增強算法簡單且高效,在對比度增強方面表現出較好的性能,但需要充分考慮水下圖像的衰減問題。最近,基于深度學習的算法逐漸應用到水下圖像增強方面[15-18]。然而,高質量的訓練數據和有效的網絡結構制約了深度學習算法的發展。
本文提出無需先驗知識假設且不必數據驅動的ACHS 算法,用以增強水下圖像的對比度和顏色。根據顏色通道的衰減特性計算衰減矩陣,對衰減嚴重的通道進行校正。同時,通過引導濾波分離LAB 顏色模型中L通道的基礎層和細節層,利用基于K-means聚類的雙直方圖增強基礎層的對比度,采用Gamma 校正突顯細節層的紋理結構。在此基礎上,將L通道的基礎層和細節層進行累加并轉換到RGB 顏色模型,從而得到最終的增強圖像。
ACHS 算法流程如圖1 所示(彩色效果見《計算機工程》官網HTML 版),算法步驟如下:1)將輸入圖像分解為紅、綠、藍通道;2)采用基于衰減補償的顏色校正算法以去除水下圖像的顏色失真;3)在LAB 顏色模型,通過引導濾波將亮度通道L通道分解為基礎層和細節層,同時采用不同的增強策略分別實施增強操作;4)累加基礎層和細節層以獲得增強的L通道,并轉換到RGB顏色模型以獲取最終的增強圖像。

圖1 基于衰減補償和直方圖拉伸的水下圖像增強算法流程Fig.1 Procedure of underwater image enhancement algorithm based on attenuation compensation and dual histogram
顏色失真是水下圖像面臨的挑戰性問題。傳統的拉伸算法并沒有充分考慮水下圖像的衰減,當直接被應用到水下圖像的顏色校正時,易引入紅色失真[12]。此外,在渾濁或深水域獲得的水下圖像各個通道之間的衰減程度差異較大。因此,本文需要考慮不同顏色通道之間的衰減差異,針對不同顏色通道采用不同的校正算法。首先,利用式(1)計算各個通道的總像素值:

其中:M和N表示圖像行和列。然后,根據每個通道的總像素值對這3 個顏色通道從大到小排序為Imax、Imid、Imin。Imax表示最大顏色通道,也被稱為衰減最弱的通道;Imid表示中間顏色通道,也被稱為衰減較弱的通道;Imin表示最小顏色通道,也被稱為衰減最強的通道。對于Imax顏色通道直接采用傳輸的拉伸算法,表達式如下:

其中:Ihigh和Ilow表示最大顏通道的最大值和最小值;Icmax表示校正的結果,對于中間顏色通道,它相對于最大的顏色通道Imax也有一些衰減。因此,考慮在它們之間的構建衰減矩陣[Imax(i,j)-Imid(i,j)],并將其補償給中間顏色通道。數學上,中間顏色通道的校正公式如下:

最小顏色通道相對于最大顏色通道Imax衰減最為嚴重。因此,需要在它們之間構建衰減矩陣[Imax(i,j) -Imin(i,j)],并將其補償給最小顏色通道。數學上,最小顏色通道的校正公式如下:

圖2 展示了藍色、綠色、黃色、模糊4 類退化的水下圖像(彩色效果見《計算機工程》官網HTML 版),從中能夠清楚看到本文顏色校正算法對于這4 種退化的水下圖像都具有明顯效果,特別適用于水下圖像的顏色失真校正。

圖2 顏色校正Fig.2 Color correction
如圖2 所示,雖然本文的顏色校正算法可以有效移除顏色失真,但這些結果的對比度和細節紋理還需要進一步增強。在不改變顏色的前提下,有效提高水下圖像的可視度是本節的研究重點。本節考慮到LAB 顏色空間中亮度通道L和顏色通道A、B是相互獨立的。因此,通過增強L通道進一步提高輸出圖像的對比度。此外,為了進一步突顯增強圖像的紋理細節,本節采用引導濾波分解出L通道的基礎層和細節層,然后,采用不同的增強策略進行增強。將顏色校正的圖像從RGB 顏色模型轉換到LAB 顏色模型,然后對其進行分層處理:

其中,亮度通道L即可作為引導圖像也可以作為被濾波的圖像,guided_filter()表示引導濾波的簡化函數,且r和ε分別被設定為16 和0.01,這些參數的選擇參考文獻[19]。細節層是從輸入圖像中減去基礎層如下:

1.3.1 基于K-means 的雙直方圖增強基礎層
多數水下圖像前景亮度高于背景亮度,由于前景距離成像系統較近且照明相對較充足,因此本節考慮將L通道分解前景和背景兩個子圖像,在這里本文的L通道指的是基礎層。其中,前景子圖像對應的是圖像直方圖中的高像素,背景子圖像對應的是圖像直方圖中的低像素。K-means 作為無監督的聚類算法廣泛引用到圖像分割、聚類等領域。本節采用K-means 聚類的思想將L通道分解為前景和背景兩個子圖像。首先根據距離關系定義初始化聚類的中心:

其中:Cx為第x個類別的最初聚類中心;LBase,max和LBase,min表示基礎層的最大和最小像素值,且x=1,2,…,X。然后,分配各個像素點到最近似的聚類集合中,表達式如下:

其中:Dx,y為第y個像素值到第x個像素值所在聚類中心之間的距離,y=1,2,…,Y,Y是像素點的總數目。當完成一次聚類以后,需要通過式(9)再次更新聚類中心:

其中:Yy表示式(8)被分配到x類別中的像素總數。如果聚類中心的位置發生變化,則重復執行式(8),直到整個聚類過程結束。最終將第x類和x-1 類的聚類中心的平均值作為雙直方圖的分解值,表達式如下:

將T作為L通道中分離前景和背景最佳閾值,然后利用閾值T將L通道分解為前景和背景子圖像,其中小于閾值的區域定義為背景子圖像,大于閾值的區域定義為前景子圖像,最后采用式(11)分別對前景和背景子圖像進行拉伸:

其中:CDF(LBase(i,j))表示對于任意一個輸入像素LBase(i,j)的累加概率;LBase,Background和LBase,Foreground分別表示校正后的前景和背景子圖像。最終,L通道的基礎層被校正為=LBase,Background+LBase,Foreground。
1.3.2 Gamma 校正增強細節層
L通道的細節層包含大量的紋理信息,如圖1 所示紋理信息較暗,因此如何有效提高紋理信息的亮度是突顯細節的關鍵。Gamma 校正作為一種有效的非線性變換算法,可用于調整細節層的動態范圍以突顯紋理結構。基于Gamma 校正的原理,細節層的校正公式如下:

其中:LDetail表示L通道細節層;表示Gamma 校正的細節層。在Gamma 校正中,當γ<1 時,低灰度區域的動態范圍增加,高灰度區域的動態范圍減小;當γ>1 時,低灰度區域的動態范圍減小,高灰度區域的動態范圍增加。在細節層中紋理信息相對于圖像中的其它區域顯然是高灰度區域,為了進一步增大高灰度區域的動態范圍,因此在本文Gamma 校正中γ>1。實驗結果表明,當γ=1.8 時,細節層的紋理信息能夠被較好地突顯。最終,利用累加獲取增強的L通道,同時將圖像從LAB 顏色模型轉換到RGB 顏色模型以獲得最終的增強圖像。
為了驗證ACHS 算法的有效性,本文從UIEB[16]數據集中選出藍色、綠色、黃色、模糊4 類具有代表性的水下圖像進行主觀評估分析。UIEB 包括890 張不同退化程度的水下圖像。同時,從3 類經典算法選擇7 個代表性的算法進行對比實驗。復原算法:HMU[6],GDCP[7];增強算法:REBE[9],BARU[11],CBAF[14];深度學習算法:WaterNet[16],UIEC^2-Net[18]。實驗平 臺設置為:CPU八核3.6 GHz、內存32 GB;軟件為Matlab R2015b,Windows 10 操作系統。
在UIEB 數據集上,引導濾波中的參數選擇評估結果如表1 所示,其中加粗數據表示最優數據。從中可知,當引入濾波中的局部窗口半徑和正則化參數被設定為16 和0.01 時,定量評估指標PCQI、UCIQE 和CCF 能夠獲得最高和近似最高的值。因此,在本文分層設計中,r和ε被設定為16 和0.01。

表1 在UIEB 數據集上的參數選擇評估結果Table 1 Parameter selection evaluation result on UIEB dataset
本文選擇4 類具有代表性的樣本進行主觀評估。藍色、綠色、黃色和模糊水下圖像示例分別如圖3~圖6 所示(彩色效果見《計算機工程》官網HTML 版)。由于版面有限,因此本文僅展示部分主觀實驗結果。

圖3 不同算法的實驗結果(藍色水下圖像)Fig.3 Experimental results of different algorithms(blue underwater images)
由圖3 所示的藍色水下圖像實例可知:GDCP 加劇了顏色失真;雖然HUM 提高了圖像的對比度,但引入了微紅色失真;REBE、BARU 和CBAF 移除了顏色失真,提高了對比度,但不能有效突顯細節;WaterNet 校正了顏色,提高了對比度,但是增強的圖像出現了黑暗的外觀;UIEC^2Net 在顏色校正和對比度增強方面都展示了令人滿意的結果,但是在細節增強方面劣于ACHS 算法;ACHS 具有較好主觀視覺效果,突顯了細節信息。
由圖4 所示的綠色水下圖像實例可知:GDCP 不能很好地移除綠色失真;雖然HUM 移除了綠色失真,但引入了微紅色失真;REBE、BARU 和CBAF 在顏色校正和對比度增強方面都展示了令人滿意的結果,但是REBE 結果局部過暗,BARU 和CBAF 引入了局部微紅色;WaterNet結果局部過暗;UIEC^2-Net在對比度增強和細節突顯方面差于ACHS 算法。

圖4 不同算法的實驗結果(綠色水下圖像)Fig.4 Experimental results of different algorithms(green underwater images)
由圖5所示的黃色水下圖像實例可知:GDCP、REBE和BARU 在移除紅色失真方面的結果并不理想;HUM引入了不想要的藍色失真;WaterNet移除了黃色失真,但是不能有效提高圖像的可視性;CBAF 和UIEC2-Net移除了黃色失真,但是在細節突顯和對比度增強方面差于ACHS 算法。

圖5 不同算法的實驗結果(黃色水下圖像)Fig.5 Experimental results of different algorithms(yellow underwater images)
由圖6 所示的模糊水下圖像實例可知:GDCP、BARU、CBAF 和WaterNet 去模糊效果并不理想;UHM引入了紅色失真;REBE 結果局部過暗;UIEC^2-Net 在對比度增強方面弱于ACHS 算法。

圖6 不同算法的實驗結果(模糊水下圖像)Fig.6 Experimental results of different algorithms(blurred underwater images)
綜上所述,ACHS 算法能夠有效地移除水下圖像的顏色失真,增強輸出圖像的對比度和細節。
為進一步評估本文算法的有效性,選擇全參考的圖像質量評估指標:均方誤差(MSE)[16],邊緣強度(EI)[13]和局部批次對比度(PCQI)[20],以及非參考的評估指標:水下圖像彩色質量指標(UCIQE)[21]和水下圖像顏色、對比度以及霧的線性評估指標(CCF)[22]。其中:MSE 的值越低表明增強算法的性能越好;EI、PCQI、UCIQE 和CCF 的值越高表明增強算法的性能越好。為了進一步說明客觀評估的有效性,使用ACHS 算法和對比算法測試整個UIEB 數據集。不同算法的客觀評估指標如表2 所示。

表2 不同算法在UIEB 數據集上的客觀評估指標Table 2 Objective evaluation metric of different algorithms tested on UIEB dataset
ACHS 算法在客觀評估方面具有近似最高和最高的EI、PCQI、UCIQE、CCF 值以及最低的MSE 值。此外,ACHS 算法具有最高的平均評估指標。總體而言,ACHS 算法不僅具有較好的主觀視覺,而且還具有較好的客觀評結果。
本文提出一種基于衰減補償和直方圖拉伸的水下圖像增強算法ACHS。結合水下圖像的衰減補償和線性拉伸技術擴大圖像的動態范圍,進而移除水下圖像的顏色失真。同時,通過增強亮度通道的基礎層和細節層,增強圖像的對比度和細節。實驗結果表明,ACHS 算法能夠使增強的圖像具有自然的顏色、較高的對比度和清晰的細節。此外,算法對于霧和低光照圖像也具有一定的適用性。下一步將結合水下成像模型對水下圖像進行視覺質量增強探索,并繼續研究簡單有效的水下圖像增強方法。