李 莉,王新強,銀 珊
(桂林電子科技大學(xué)電子工程與自動化學(xué)院,廣西桂林 541004)
受復(fù)雜水下物理環(huán)境的影響,水下圖像經(jīng)常存在顏色失真、低對比度、細(xì)節(jié)模糊等問題[1-3]。低質(zhì)量的水下圖像對探知水下場景帶來了極大挑戰(zhàn),因此,研究有效的水下圖像清晰化算法具有重要意義。
目前,水下圖像清晰化技術(shù)主要分為圖像復(fù)原和圖像增強[4]兩種。其中,復(fù)原算法考慮水下成像機理,估計退化模型的參數(shù)以反演清晰圖像[5]。近期,暗通道啟發(fā)的算法逐漸應(yīng)用到水下圖像去霧方面,但該算法沒有充分考慮紅通道的衰減,造成估計的透射率較大,復(fù)原圖像較暗。文獻(xiàn)[6]采用隨機森林回歸算法提高透射率估計的準(zhǔn)確率,但該算法的運算復(fù)雜度較高。文獻(xiàn)[7-8]提出的算法進(jìn)一步提高了投射率的估計準(zhǔn)確率,但增強的圖像中引入了紅色偽影。
圖像增強算法通過調(diào)整圖像的像素值以增強圖像的顏色和對比度。文獻(xiàn)[9]提出了基于Retinex 的水下圖像增強算法,該算法提高了圖像的可視性,但易引入微紅色。文獻(xiàn)[10]利用Retinex 分解圖像的反射分量和入射分量,然后對它們采用不同的增強算法,并通過加權(quán)融合獲得增強的圖像,但該算法放大了噪聲。文獻(xiàn)[11]受Retinex 的啟發(fā),采用模型分段和線性分段增強反射分量,通過空間平滑和線性平滑改善入射分量,但該算法求解復(fù)雜。文獻(xiàn)[12-13]提出了自適應(yīng)雙直方圖算法,但沒有充分考慮水下圖像的衰減,從而導(dǎo)致增強的圖像出現(xiàn)過增強或欠增強。文獻(xiàn)[14]提出了顏色平衡和融合的水下圖像增強算法,但該算法對于衰減通道的選擇考慮不足。增強算法簡單且高效,在對比度增強方面表現(xiàn)出較好的性能,但需要充分考慮水下圖像的衰減問題。最近,基于深度學(xué)習(xí)的算法逐漸應(yīng)用到水下圖像增強方面[15-18]。然而,高質(zhì)量的訓(xùn)練數(shù)據(jù)和有效的網(wǎng)絡(luò)結(jié)構(gòu)制約了深度學(xué)習(xí)算法的發(fā)展。
本文提出無需先驗知識假設(shè)且不必數(shù)據(jù)驅(qū)動的ACHS 算法,用以增強水下圖像的對比度和顏色。根據(jù)顏色通道的衰減特性計算衰減矩陣,對衰減嚴(yán)重的通道進(jìn)行校正。同時,通過引導(dǎo)濾波分離LAB 顏色模型中L通道的基礎(chǔ)層和細(xì)節(jié)層,利用基于K-means聚類的雙直方圖增強基礎(chǔ)層的對比度,采用Gamma 校正突顯細(xì)節(jié)層的紋理結(jié)構(gòu)。在此基礎(chǔ)上,將L通道的基礎(chǔ)層和細(xì)節(jié)層進(jìn)行累加并轉(zhuǎn)換到RGB 顏色模型,從而得到最終的增強圖像。
ACHS 算法流程如圖1 所示(彩色效果見《計算機工程》官網(wǎng)HTML 版),算法步驟如下:1)將輸入圖像分解為紅、綠、藍(lán)通道;2)采用基于衰減補償?shù)念伾U惴ㄒ匀コ聢D像的顏色失真;3)在LAB 顏色模型,通過引導(dǎo)濾波將亮度通道L通道分解為基礎(chǔ)層和細(xì)節(jié)層,同時采用不同的增強策略分別實施增強操作;4)累加基礎(chǔ)層和細(xì)節(jié)層以獲得增強的L通道,并轉(zhuǎn)換到RGB顏色模型以獲取最終的增強圖像。
圖1 基于衰減補償和直方圖拉伸的水下圖像增強算法流程Fig.1 Procedure of underwater image enhancement algorithm based on attenuation compensation and dual histogram
顏色失真是水下圖像面臨的挑戰(zhàn)性問題。傳統(tǒng)的拉伸算法并沒有充分考慮水下圖像的衰減,當(dāng)直接被應(yīng)用到水下圖像的顏色校正時,易引入紅色失真[12]。此外,在渾濁或深水域獲得的水下圖像各個通道之間的衰減程度差異較大。因此,本文需要考慮不同顏色通道之間的衰減差異,針對不同顏色通道采用不同的校正算法。首先,利用式(1)計算各個通道的總像素值:
其中:M和N表示圖像行和列。然后,根據(jù)每個通道的總像素值對這3 個顏色通道從大到小排序為Imax、Imid、Imin。Imax表示最大顏色通道,也被稱為衰減最弱的通道;Imid表示中間顏色通道,也被稱為衰減較弱的通道;Imin表示最小顏色通道,也被稱為衰減最強的通道。對于Imax顏色通道直接采用傳輸?shù)睦焖惴?,表達(dá)式如下:
其中:Ihigh和Ilow表示最大顏通道的最大值和最小值;Icmax表示校正的結(jié)果,對于中間顏色通道,它相對于最大的顏色通道Imax也有一些衰減。因此,考慮在它們之間的構(gòu)建衰減矩陣[Imax(i,j)-Imid(i,j)],并將其補償給中間顏色通道。數(shù)學(xué)上,中間顏色通道的校正公式如下:
最小顏色通道相對于最大顏色通道Imax衰減最為嚴(yán)重。因此,需要在它們之間構(gòu)建衰減矩陣[Imax(i,j) -Imin(i,j)],并將其補償給最小顏色通道。數(shù)學(xué)上,最小顏色通道的校正公式如下:
圖2 展示了藍(lán)色、綠色、黃色、模糊4 類退化的水下圖像(彩色效果見《計算機工程》官網(wǎng)HTML 版),從中能夠清楚看到本文顏色校正算法對于這4 種退化的水下圖像都具有明顯效果,特別適用于水下圖像的顏色失真校正。
圖2 顏色校正Fig.2 Color correction
如圖2 所示,雖然本文的顏色校正算法可以有效移除顏色失真,但這些結(jié)果的對比度和細(xì)節(jié)紋理還需要進(jìn)一步增強。在不改變顏色的前提下,有效提高水下圖像的可視度是本節(jié)的研究重點。本節(jié)考慮到LAB 顏色空間中亮度通道L和顏色通道A、B是相互獨立的。因此,通過增強L通道進(jìn)一步提高輸出圖像的對比度。此外,為了進(jìn)一步突顯增強圖像的紋理細(xì)節(jié),本節(jié)采用引導(dǎo)濾波分解出L通道的基礎(chǔ)層和細(xì)節(jié)層,然后,采用不同的增強策略進(jìn)行增強。將顏色校正的圖像從RGB 顏色模型轉(zhuǎn)換到LAB 顏色模型,然后對其進(jìn)行分層處理:
其中,亮度通道L即可作為引導(dǎo)圖像也可以作為被濾波的圖像,guided_filter()表示引導(dǎo)濾波的簡化函數(shù),且r和ε分別被設(shè)定為16 和0.01,這些參數(shù)的選擇參考文獻(xiàn)[19]。細(xì)節(jié)層是從輸入圖像中減去基礎(chǔ)層如下:
1.3.1 基于K-means 的雙直方圖增強基礎(chǔ)層
多數(shù)水下圖像前景亮度高于背景亮度,由于前景距離成像系統(tǒng)較近且照明相對較充足,因此本節(jié)考慮將L通道分解前景和背景兩個子圖像,在這里本文的L通道指的是基礎(chǔ)層。其中,前景子圖像對應(yīng)的是圖像直方圖中的高像素,背景子圖像對應(yīng)的是圖像直方圖中的低像素。K-means 作為無監(jiān)督的聚類算法廣泛引用到圖像分割、聚類等領(lǐng)域。本節(jié)采用K-means 聚類的思想將L通道分解為前景和背景兩個子圖像。首先根據(jù)距離關(guān)系定義初始化聚類的中心:
其中:Cx為第x個類別的最初聚類中心;LBase,max和LBase,min表示基礎(chǔ)層的最大和最小像素值,且x=1,2,…,X。然后,分配各個像素點到最近似的聚類集合中,表達(dá)式如下:
其中:Dx,y為第y個像素值到第x個像素值所在聚類中心之間的距離,y=1,2,…,Y,Y是像素點的總數(shù)目。當(dāng)完成一次聚類以后,需要通過式(9)再次更新聚類中心:
其中:Yy表示式(8)被分配到x類別中的像素總數(shù)。如果聚類中心的位置發(fā)生變化,則重復(fù)執(zhí)行式(8),直到整個聚類過程結(jié)束。最終將第x類和x-1 類的聚類中心的平均值作為雙直方圖的分解值,表達(dá)式如下:
將T作為L通道中分離前景和背景最佳閾值,然后利用閾值T將L通道分解為前景和背景子圖像,其中小于閾值的區(qū)域定義為背景子圖像,大于閾值的區(qū)域定義為前景子圖像,最后采用式(11)分別對前景和背景子圖像進(jìn)行拉伸:
其中:CDF(LBase(i,j))表示對于任意一個輸入像素LBase(i,j)的累加概率;LBase,Background和LBase,F(xiàn)oreground分別表示校正后的前景和背景子圖像。最終,L通道的基礎(chǔ)層被校正為=LBase,Background+LBase,F(xiàn)oreground。
1.3.2 Gamma 校正增強細(xì)節(jié)層
L通道的細(xì)節(jié)層包含大量的紋理信息,如圖1 所示紋理信息較暗,因此如何有效提高紋理信息的亮度是突顯細(xì)節(jié)的關(guān)鍵。Gamma 校正作為一種有效的非線性變換算法,可用于調(diào)整細(xì)節(jié)層的動態(tài)范圍以突顯紋理結(jié)構(gòu)?;贕amma 校正的原理,細(xì)節(jié)層的校正公式如下:
其中:LDetail表示L通道細(xì)節(jié)層;表示Gamma 校正的細(xì)節(jié)層。在Gamma 校正中,當(dāng)γ<1 時,低灰度區(qū)域的動態(tài)范圍增加,高灰度區(qū)域的動態(tài)范圍減??;當(dāng)γ>1 時,低灰度區(qū)域的動態(tài)范圍減小,高灰度區(qū)域的動態(tài)范圍增加。在細(xì)節(jié)層中紋理信息相對于圖像中的其它區(qū)域顯然是高灰度區(qū)域,為了進(jìn)一步增大高灰度區(qū)域的動態(tài)范圍,因此在本文Gamma 校正中γ>1。實驗結(jié)果表明,當(dāng)γ=1.8 時,細(xì)節(jié)層的紋理信息能夠被較好地突顯。最終,利用累加獲取增強的L通道,同時將圖像從LAB 顏色模型轉(zhuǎn)換到RGB 顏色模型以獲得最終的增強圖像。
為了驗證ACHS 算法的有效性,本文從UIEB[16]數(shù)據(jù)集中選出藍(lán)色、綠色、黃色、模糊4 類具有代表性的水下圖像進(jìn)行主觀評估分析。UIEB 包括890 張不同退化程度的水下圖像。同時,從3 類經(jīng)典算法選擇7 個代表性的算法進(jìn)行對比實驗。復(fù)原算法:HMU[6],GDCP[7];增強算法:REBE[9],BARU[11],CBAF[14];深度學(xué)習(xí)算法:WaterNet[16],UIEC^2-Net[18]。實驗平 臺設(shè)置為:CPU八核3.6 GHz、內(nèi)存32 GB;軟件為Matlab R2015b,Windows 10 操作系統(tǒng)。
在UIEB 數(shù)據(jù)集上,引導(dǎo)濾波中的參數(shù)選擇評估結(jié)果如表1 所示,其中加粗?jǐn)?shù)據(jù)表示最優(yōu)數(shù)據(jù)。從中可知,當(dāng)引入濾波中的局部窗口半徑和正則化參數(shù)被設(shè)定為16 和0.01 時,定量評估指標(biāo)PCQI、UCIQE 和CCF 能夠獲得最高和近似最高的值。因此,在本文分層設(shè)計中,r和ε被設(shè)定為16 和0.01。
表1 在UIEB 數(shù)據(jù)集上的參數(shù)選擇評估結(jié)果Table 1 Parameter selection evaluation result on UIEB dataset
本文選擇4 類具有代表性的樣本進(jìn)行主觀評估。藍(lán)色、綠色、黃色和模糊水下圖像示例分別如圖3~圖6 所示(彩色效果見《計算機工程》官網(wǎng)HTML 版)。由于版面有限,因此本文僅展示部分主觀實驗結(jié)果。
圖3 不同算法的實驗結(jié)果(藍(lán)色水下圖像)Fig.3 Experimental results of different algorithms(blue underwater images)
由圖3 所示的藍(lán)色水下圖像實例可知:GDCP 加劇了顏色失真;雖然HUM 提高了圖像的對比度,但引入了微紅色失真;REBE、BARU 和CBAF 移除了顏色失真,提高了對比度,但不能有效突顯細(xì)節(jié);WaterNet 校正了顏色,提高了對比度,但是增強的圖像出現(xiàn)了黑暗的外觀;UIEC^2Net 在顏色校正和對比度增強方面都展示了令人滿意的結(jié)果,但是在細(xì)節(jié)增強方面劣于ACHS 算法;ACHS 具有較好主觀視覺效果,突顯了細(xì)節(jié)信息。
由圖4 所示的綠色水下圖像實例可知:GDCP 不能很好地移除綠色失真;雖然HUM 移除了綠色失真,但引入了微紅色失真;REBE、BARU 和CBAF 在顏色校正和對比度增強方面都展示了令人滿意的結(jié)果,但是REBE 結(jié)果局部過暗,BARU 和CBAF 引入了局部微紅色;WaterNet結(jié)果局部過暗;UIEC^2-Net在對比度增強和細(xì)節(jié)突顯方面差于ACHS 算法。
圖4 不同算法的實驗結(jié)果(綠色水下圖像)Fig.4 Experimental results of different algorithms(green underwater images)
由圖5所示的黃色水下圖像實例可知:GDCP、REBE和BARU 在移除紅色失真方面的結(jié)果并不理想;HUM引入了不想要的藍(lán)色失真;WaterNet移除了黃色失真,但是不能有效提高圖像的可視性;CBAF 和UIEC2-Net移除了黃色失真,但是在細(xì)節(jié)突顯和對比度增強方面差于ACHS 算法。
圖5 不同算法的實驗結(jié)果(黃色水下圖像)Fig.5 Experimental results of different algorithms(yellow underwater images)
由圖6 所示的模糊水下圖像實例可知:GDCP、BARU、CBAF 和WaterNet 去模糊效果并不理想;UHM引入了紅色失真;REBE 結(jié)果局部過暗;UIEC^2-Net 在對比度增強方面弱于ACHS 算法。
圖6 不同算法的實驗結(jié)果(模糊水下圖像)Fig.6 Experimental results of different algorithms(blurred underwater images)
綜上所述,ACHS 算法能夠有效地移除水下圖像的顏色失真,增強輸出圖像的對比度和細(xì)節(jié)。
為進(jìn)一步評估本文算法的有效性,選擇全參考的圖像質(zhì)量評估指標(biāo):均方誤差(MSE)[16],邊緣強度(EI)[13]和局部批次對比度(PCQI)[20],以及非參考的評估指標(biāo):水下圖像彩色質(zhì)量指標(biāo)(UCIQE)[21]和水下圖像顏色、對比度以及霧的線性評估指標(biāo)(CCF)[22]。其中:MSE 的值越低表明增強算法的性能越好;EI、PCQI、UCIQE 和CCF 的值越高表明增強算法的性能越好。為了進(jìn)一步說明客觀評估的有效性,使用ACHS 算法和對比算法測試整個UIEB 數(shù)據(jù)集。不同算法的客觀評估指標(biāo)如表2 所示。
表2 不同算法在UIEB 數(shù)據(jù)集上的客觀評估指標(biāo)Table 2 Objective evaluation metric of different algorithms tested on UIEB dataset
ACHS 算法在客觀評估方面具有近似最高和最高的EI、PCQI、UCIQE、CCF 值以及最低的MSE 值。此外,ACHS 算法具有最高的平均評估指標(biāo)。總體而言,ACHS 算法不僅具有較好的主觀視覺,而且還具有較好的客觀評結(jié)果。
本文提出一種基于衰減補償和直方圖拉伸的水下圖像增強算法ACHS。結(jié)合水下圖像的衰減補償和線性拉伸技術(shù)擴大圖像的動態(tài)范圍,進(jìn)而移除水下圖像的顏色失真。同時,通過增強亮度通道的基礎(chǔ)層和細(xì)節(jié)層,增強圖像的對比度和細(xì)節(jié)。實驗結(jié)果表明,ACHS 算法能夠使增強的圖像具有自然的顏色、較高的對比度和清晰的細(xì)節(jié)。此外,算法對于霧和低光照圖像也具有一定的適用性。下一步將結(jié)合水下成像模型對水下圖像進(jìn)行視覺質(zhì)量增強探索,并繼續(xù)研究簡單有效的水下圖像增強方法。