馮 雨,易本順,吳晨玥,章云港
(武漢大學(xué) 電子信息學(xué)院,武漢 430072)
水下圖像作為研究水下世界的信息載體對于海洋工程以及科學(xué)研究都有著重要的作用,如資源勘探、海洋救援、海洋生物研究等[1].然而,水下圖像往往存在嚴(yán)重的退質(zhì)現(xiàn)象:一方面,水對光的選擇性吸收導(dǎo)致光的能量衰減,其中紅光吸收最為嚴(yán)重導(dǎo)致圖像呈現(xiàn)出藍綠色基調(diào);另一方面,微粒雜質(zhì)的散射導(dǎo)致圖像清晰度下降,呈現(xiàn)出霧狀模糊[2];另外,人工光源的使用也會導(dǎo)致圖像存在局部亮斑等問題.因此,水下圖像的清晰化具有重要的研究意義.
水下圖像清晰化分為增強和復(fù)原兩種方法[3].在增強方面,應(yīng)用較多的有基于顏色恒常性理論的Retinex算法,該方法從人類視覺感受出發(fā),直接增強圖像對比度、顏色等主觀效果[4].在復(fù)原方面,水下圖像成像模型與霧天成像模型類似,所以很多學(xué)者提出將暗通道先驗用于復(fù)原水下圖像[5],但由于紅通道的快速衰減導(dǎo)致求得透射率偏大,復(fù)原圖像偏暗;Chiang[6]提出了一種基于波長補償?shù)乃聢D像清晰化算法,該算法需已知三個通道的衰減率,從而對圖像的各通道進行顏色衰減補償;Galdran[7]提出了一種基于自動紅通道的水下圖像復(fù)原算法,該算法在成像模型公式上對紅通道進行反轉(zhuǎn)來進行透射率的求解,但其證明復(fù)雜,且三通道衰減率的比例在不同水質(zhì)下也會不同,因此適用性存在一定限制;Li[8]提出了一種基于最小信息損失和直方圖先驗的水下圖像增強算法,該算法建立了透射率與圖像信息損失的關(guān)聯(lián)函數(shù),通過最小化信息損失求得最優(yōu)透射率,但該方法對紅通道效果欠佳;S.B.Borkar[9]提出用k-means聚類分離前景背景,對兩者進行單獨復(fù)原,但該算法只用于前景背景明顯分離的圖像,適用性不強.
本文通過對水下圖像成像特點的分析以及Galdran[7]提出的自動紅通道基礎(chǔ)上,提出了以下改進:首先針對水下圖像顏色失真給出了一種簡單的自動白平衡算法;對于紅通道反轉(zhuǎn),本文并未在原圖的基礎(chǔ)上進行進一步的透射率求解和復(fù)原,而是將原圖的復(fù)原直接轉(zhuǎn)化為紅通道反轉(zhuǎn)后圖像的復(fù)原,對復(fù)原結(jié)果圖像將其紅通道再次反轉(zhuǎn)即可;另外對背景光計算提出了更為有效的方法,并將其用于修正三通道透射率.實驗結(jié)果顯示,本文算法復(fù)原圖像更加清晰,視覺效果更加自然,且對于存在人工光源的圖像,無需額外計算亦可恢復(fù)出清晰圖像.
由Jaffe-McGlamery成像模型[10]可知,相機接收的光可表示為三個分量之和:直接分量為物體反射光未被散射進入相機的光,前向散射為物體反射光的散射部分,后向散射來源于環(huán)境光經(jīng)過微粒等雜質(zhì)散射后進入相機的光.一般前向散射可忽略不計,因此水下圖像的簡化成像模型[11]可以表示為:
Iλ(x)=Jλ(x)tλ(x)+Aλ(1-tλ(x))
(1)
式中,Iλ(x)為圖像中位于x處且波長為λ的光強度,Jλ(x)tλ(x)為直射分量,Aλ(1-tλ(x))為背景光散射分量,其中,Jλ(x)為復(fù)原圖像,Aλ為背景光強度,tλ(x)為透射率,λ∈{R,G,B},由 Lambert-Beer 定律[12]可知,光在介質(zhì)中傳播是呈指數(shù)衰減的,透射率數(shù)學(xué)表示為:
tλ(x)=exp(-cλd(x))
(2)
因此,求出三個通道的透射率與背景光強度即可恢復(fù)出清晰圖像.
由水下圖像成像模型可知,圖像復(fù)原的關(guān)鍵在于得到正確的背景光強度和透射率.He[13]提出的暗通道先驗有效地解決了戶外有霧圖像的背景光和透射率的估計問題,所以不少學(xué)者將其用于水下圖像復(fù)原.其定義如下:
(3)
其中,Jλ表示無霧圖像的每個通道,Ω(x)為一定的鄰域范圍,Jdark為其暗通道,暗通道先驗理論指出,對于室外的無霧圖像,其非天空區(qū)域的暗通道值趨于0.圖像去霧即是在暗通道先驗基礎(chǔ)上求出其模型參數(shù),恢復(fù)出無霧圖像.
水下圖像雖與霧天圖像成像模型相似,但由于不同波長光的衰減程度不一樣,導(dǎo)致水下圖像的紅色通道像素值很低,直接采用暗通道先驗會導(dǎo)致透射率估計過大,影響復(fù)原結(jié)果,而只通過藍綠通道進行暗通道計算又會導(dǎo)致透射率過小.另外不同顏色衰減不一,其透射率也應(yīng)不同,采用統(tǒng)一的透射率會導(dǎo)致散射去除不完全,復(fù)原圖像顏色失真.因此,本文結(jié)合Galdran[7]提出的反轉(zhuǎn)紅通道基礎(chǔ)提出了了改進的水下圖像復(fù)原算法,如圖1所示,主要包括:(1)顏色校正;(2)紅通道反轉(zhuǎn);(3)背景光估計;(4)透射率修正.
光在水下傳播時,紅光衰減大,藍綠光衰減小,導(dǎo)致圖像存在色偏,若直接對色偏圖像進行處理,得到的結(jié)果可能仍存在色偏,所以有必要對色彩進行校正.本文將自動閾值白平衡算法[14]用于水下圖像的顏色校正,考慮到水下圖像的特殊性,若直接應(yīng)用往往導(dǎo)致恢復(fù)結(jié)果存在嚴(yán)重的偏紅現(xiàn)象,因此將紅通道保持不變,具體步驟如下:
1)白點檢測:將圖像變換到Y(jié)CbCr顏色空間,計算Cb、Cr的均值Mb、Mr,以及其對應(yīng)的絕對均方差Db、Dr,由公式(4)得到滿足條件的白色參考點;
|Cb(i,j)-(Mb+Db×sign(Mb))|<1.5×Db|Cr(i,j)-(1.5×Mr+Dr×sign(Mr))|<1.5×Dr
(4)
2)白點調(diào)整:計算白色參考點各通道平均值Raver、Baver、Gaver,由公式(5)計算各通道增益,其中Ymax為整副圖像亮度的最大值;
(5)
3)顏色恢復(fù):
Bnew=B*kB,Gnew=G*kG,Rnew=R*kR
(6)
圖1 算法流程圖Fig.1 Flow diagram of our algorithm
暗通道先驗對水下圖像失效的原因在于紅通道的衰減很大,且傳播距離越大,衰減越大.對于水下圖像,如圖2所示,其中(a)、(e)為原圖,(b)、(f)為其對應(yīng)紅通道,(c)、(g)為原圖的暗通道,可以發(fā)現(xiàn),原圖對應(yīng)的暗通道與紅通道相似,背景亮度低于前景亮度,且對于存在人工光源時該現(xiàn)象更為明顯,而在暗通道先驗中,霧天圖像的暗通道由于背景光的影響霧濃處其強度也會更大[13],也正是基于此特性,才能正確求出其背景光強度和透射率,很明顯由于紅通道的影響,水下圖像的暗通道并不滿足此特性.本文對成像公式進行拆分:
1-IR(x)=(1-JR(x))tR(x)+(1-AR)(1-tR(x))IG(x)=JG(x)tG(x)+AG(1-tG(x))IB(x)=JB(x)tB(x)+AB(1-tB(x))
(7)
(8)
再對公式(7)進行修正可得:
(9)
在Galdran[7]的算法里,其背景光計算方法是:對反轉(zhuǎn)后的紅通道找出其最亮的點作為背景點,顯然,當(dāng)前景點存在某些紅通道本身就很低的點時,容易造成誤判,且只用一個最亮的點作為背景點容易受到噪聲的影響.本文采用四叉樹分層搜索來提高估計的全局背景光強的準(zhǔn)確性,算法的具體過程如下所述:首先,將紅通道反轉(zhuǎn)后的圖像分為4個矩形區(qū)域,并將每一個矩形區(qū)域的得分定義為相應(yīng)矩形區(qū)域內(nèi)像素值的均值減去像素值的標(biāo)準(zhǔn)差;接著,選擇得分最高的矩形區(qū)域作為候選塊繼續(xù)進行四叉樹分解,直到矩形區(qū)域的大小小于預(yù)先定義的一個閾值停止分解,將最后得到的區(qū)域內(nèi)的像素值求平均得到三個通道的背景光強度.顯然,由于反轉(zhuǎn)后的紅通道其背景像素值更大,所以整體上圖像背景區(qū)域均值大,而背景一般為水體,比較平坦,即標(biāo)準(zhǔn)差很小,所以背景區(qū)域的得分是最高的.對得到的背景區(qū)域取平均即得到各通道背景光強度.
圖2 紅通道反轉(zhuǎn)效果圖Fig.2 Effect of reversed red-channel
對暗通道先驗進行變換可得:
→0
(10)
(11)
(12)
假設(shè)式(11)求得的某點是綠色通道的透射率,則與式(12)中所求相同,且B、G兩通道求得的透射率滿足tR>tB>tG,這種通過背景光強度調(diào)整的透射率如圖3所示,其中(a)、(e)為原圖,(b-d)、(f-h)為紅通道反轉(zhuǎn)后的藍綠紅三個通道透射率,可以看到,三個通道透射率滿足相同的分布規(guī)律,景深越小,透射率越大,且不同通道透射率大小不同.由于透射率的計算使用了塊操作,所以在視覺上會有很多小塊,比較粗糙,所以本文使用了引導(dǎo)濾波[13]對粗透射率圖進行細(xì)化.
圖3 三通道透射率圖Fig.3 Transmission map of three-channel
計算出透射率和背景光強度后,便可由式(9)復(fù)原出反轉(zhuǎn)后的清晰圖像,但是為了避免因透射率t過低導(dǎo)致的計算溢出,一般給t設(shè)置一個下界t0,實驗中t0取0.2-0.3,于是可以得到圖像的復(fù)原公式:
(13)
對得到的圖像紅通道再次進行反轉(zhuǎn)操作即可得到原始圖像的復(fù)原圖像,圖4給出了部分實驗結(jié)果.可以看出,本文算法可以有效去除顏色失真及提高清晰度,并能有效用于存在人工光源的場景.
為了驗證算法的有效性,本文與其他幾種主流算法進行了對比,并利用Hautiere評價指標(biāo)來定量評價各算法效果.其中,e表示增加的視覺邊緣與原圖的邊緣數(shù)目之比,r表示平均視覺增強,σ表示復(fù)原圖像中像素變黑或者變白的百分比.e和r的值越大,σ的值越小,表示算法復(fù)原效果越好.實驗結(jié)果對比圖如圖5所示,可以看出本文算法在清晰度提升和色彩恢復(fù)方面都有不錯的表現(xiàn).客觀評價指標(biāo)對比如表1所示,本文算法的e的值均高于其他算法,且r的值排在前列,證明了算法的有效性.
圖4 水下圖像復(fù)原結(jié)果圖Fig.4 Our results
圖5 本文算法與其他算法效果對比Fig.5 Comparative results with other algorithm表1 客觀評價指標(biāo)對比Table 1 Comparison of criteria among algorithms
AlgorithmImage1Image2Image3Image4erσerσerσerσAncuti[15]6.243.720%1.724.620.1%0.111.820%1.002.210.1%Chiang[6]0.081.300%0.131.320%0.231.810%0.081.790%Galdran[7]5.032.000.32%1.282.200.08%0.481.430%0.931.900.03%本文算法6.252.270%6.303.900%0.732.410%3.391.950%
水下環(huán)境的特殊性導(dǎo)致傳統(tǒng)暗通道先驗方法無法直接應(yīng)用于水下圖像.筆者在Galdran[7]提出的反轉(zhuǎn)紅通道的基礎(chǔ)上提出了改進算法.首先用改進的白平衡去除嚴(yán)重的色彩失真,將紅通道反轉(zhuǎn)來消除紅通道對透射率計算的影響,針對反轉(zhuǎn)后的圖像特點,提出用四叉樹分層搜索得到各通道背景光強,并由得到的背景光強度對透射率公式進行優(yōu)化,得到三通道透射率,最后復(fù)原出清晰圖像.實驗結(jié)果表明,算法可有效復(fù)原出水下清晰圖像,且對存在人工光源的場景也有很好的效果.