龔萬齊,馮 常
(1.中國科學院 光電技術研究所,四川 成都 610209;2.中國科學院大學 光電學院,北京 100049)
水下成像過程中受到水對光線的吸收和散射作用,導致水下成像效果較差,復原難度大,耗時長。范等[1]利用一組正交偏正的圖像結構相似性獲取水下圖像透射率;He等[2]利用多級小波變換的映射得到不同尺度下圖像特征;沈等[3]通過將圖像映射到lαβ空間后進行Tetrolet變換分別處理高頻和低頻信息;Zhang等[4]采用雙邊和三邊濾波結合方法改進視網膜增強技術;Zhang等[5]利用多尺度高斯核提取精確的特征來估計光照分量;Li等[6]利用卷積神經網絡的技術和水下場景先驗直接重建出清晰的水下圖像;Li等[7]分析水下成像模型并基于暗通道先驗(dark channel prior,DCP)提出忽略紅色通道對水下透射率圖進行求取,稱為水下暗通道先驗(underwater DCP,UDCP);Huo等[8]用紅通道補碼去調整水下較亮的區域,稱為紅通道先驗(red-DCP,RDCP);uczyński等[9]對顏色進行了轉換,提出帶顏色復原水下暗通道先驗(color correction with UDCP,CC-UDCP)。文獻[1-6]屬于圖像增強方法,沒有基于水下成像的物理模型來消除水體對光線的散射與吸收的影響,所以在圖像的復原和增強的過程中會存在放大噪點、丟失圖像細節、顏色失真等現象。文獻[7-9]基于水下成像模型技術,考慮到了水下圖像紅綠藍3個顏色通道衰減速率不同的問題。同時求取了較為精確的透射率圖,得到了水下圖像信息。但是顏色修正的準確度不高,同時計算復雜度過高,實用性較差。針對現有方法存在的不足,提出了改進的水下暗通道先驗方法,目的是能有效地解決水下顏色失真問題,使圖像的細節保留和整體質量都得到有效提升,同時大幅度降低計算復雜度,提升運算速度。
受到經典的大氣霧天圖像退化模型啟發,Jaffe-McGlamery的水下圖像退化模型如圖1所示。

圖1 水下光學成像模型
水下相機所接收到的光IT可由3部分光線性疊加而組成,分別是直接分量ID(direct component),前向散射分量IF(forward-scattered component)以及后向散射分量IB(back-scattered component)
IT=ID+IF+IB
(1)
直接分量是光線達到物體表面經反射和介質傳播后未發生散射直接到達成像器的部分,是最能反映物體特征的一個分量,由物體反射光線Io bject(x) 和水體透射率t(x) 的乘積計算而成。前向散射分量是由目標物體反射光發生的小角度散射產生的,由直接分量和點擴散函數g(x) 卷積計算而成。后向散射分量是光線經過環境中各種懸浮微粒散射后形成的背景光,是造成水下圖像成像模糊的主要原因,由全局背景光B∞和水體透射率t(x) 組成。
3個分量表示為
(2)
(3)
(4)
因此將式(2)~式(4)帶入式(1)得到相機所接收到的總光量為

(5)
令
(6)
表示目標物體反射的總光量,則公式簡化為
(7)

在水下復雜環境中成像會產生以下兩個主要問題:①由于水體對不同波長光線吸收能力不同,導致不同波長光線在水體中傳播的衰減系數不一樣,其中波長在480 nm左右的波段的藍綠光在水中的衰減系數最小,因此在此波段的光在水中的傳輸距離較遠,成像整體畫面視覺效果會偏藍綠;②由于水體對光線散射作用,導致成像過程中后向散射分量過多,成像結果受其影響而變得模糊,丟失很多細節信息,但是盡管以暗通道先驗為基礎的各類算法能較為準確地估計透射率圖,并還原出圖像細節,但由于涉及到大量的浮點運算,所以計算復雜度較高,計算所消耗的時間與空間資源較多。
針對以上問題提出基于改進暗通道的水下圖像快速復原技術。首先,在處理水下圖像時需要先對目標圖像進行顏色空間的轉換與調整,不同于目前固定的顏色空間轉換方式,希望能根據圖像自身的顏色分布與空間特點自適應地轉換到最佳的顏色空間,這樣才能幫助后續的進一步圖像復原處理。此外,利用基于暗通道先驗的圖像復原算法計算出準確的水體透射率圖全局背景光,但是為了降低計算復雜度,可以先將原圖下采樣,再進行暗通道的求取,得到小圖的暗通道,之后通過插值或雙線性插值的方法進行上采樣得到原圖的暗通道,再計算透射率圖。
現有的顏色空間轉換方法基本都是采用固定方法來進行轉換的,當水下圖像顏色特征發生變化時,缺乏一定的適應性和準確性。利用動態閾值算法[10]對水下圖像進行色彩復原,具體過程分為兩步:白點檢測;白點調整。
首先將圖像RGB空間轉換到計算YCrCb空間,并計算Cb、Cr的均值Mb、Mr,之后計算絕對差的累計值,其中N為區域內的像素數
Db=∑i,j(|Cb(i,j)-Mb|)/N
(8)
Dr=∑i,j(|Cr(i,j)-Mr|)/N
(9)
按照下述規則判斷哪些點屬于初步白色參考點
|Cb(i,j)-(Mb+Db×sign(Mb))|<1.5×Db
(10)
|Cr(i,j)-(1.5×Mr+Dr×sign(Mr))|<1.5×Dr
(11)
其中,sign(x) 為符號函數,之后取其中亮度前10%為最終參考點。并計算參考點3個通道亮度值的平均值Ravew、Gavew、Bavew。利用參考點中亮度Y的最大值Ymax,計算各個通道增益
Rgain=Ymax/Ravew
(12)
Ggain=Ymax/Gavew
(13)
Bgain=Ymax/Bavew
(14)
但是如果Y、Cb、Cr的值量化在0~255之間的話,在檢測白點的過程中會出現所有的像素都會被判斷為白色參考點。因此需要對動態閾值算法進行進一步改進,將Y、Cb、Cr的值量化到一個合適的值之間。之后再計算各個顏色通道的增益,即引入偏移參數
Y′=Y
(15)
C′b=Cb-ωb
(16)
C′r=Cr-ωr
(17)
對于量化偏移參數ωb、ωr,由光電成像環境所決定,且同一環境下量化偏移參數不變。采用局部領域搜索方法,其約束條件為0≤ωb,r≤127。
目標是最小化目標函數H,即
argminH(ωb,ωr)=∑iαiσi
(18)
其中,αi為評價參數,代表各個評價指標的權重。σi為圖像參數評價指標,主要包括水下圖像質量評價(UCIQE)、等效圓偏色(Cast)[11]、信息熵(entropy)。搜索過程中,設置初試值,并以l為步長進行局部搜索,獲得量化偏移參數。在之后的同一環境中生成的圖像進行處理時,就不必再重新量化。
經過這樣的處理水下圖像顏色通道中紅色分量就會得到補償,并均衡R、G、B三色通道的含量,將原本偏藍綠的圖像會整體向偏白的方向變化,模擬出大氣環境中圖像退化情況,如圖2所示。

圖2 水下顏色變換
類似于在大氣環境中拍攝出來的清晰圖像的暗通道,水下環境中獲取的不受水體散射干擾清晰圖像經過顏色轉換之后也會存在暗通道,其公式表達如式(19)所示,其中Ω(x)表示計算的鄰域窗口。反之,若水體中存在大量的懸浮顆粒,產生大量的水體散射光線,會造成圖像整體偏白,求取像素點的暗通道值不再約等于0,而是亮度較高的值
(19)
根據水下成像式(7),在各個通道以及在一定窗口內取兩次最小值,則新的公式如式(20)所示

(20)
由于B∞對于所有像素都是定值,為一個常數,因此由式(19)得到式(21)
(21)
(22)
在假設全局背景光B∞已知的情況下,可以通過暗通道圖來求取,具體步驟為:①找到暗通道圖中亮度排名前0.1%的像素點,并記錄下他們的位置;②在原圖中,找到位置對應到步驟①中點的位置的像素,求取其中亮度值最高的點的亮度值作為全局背景光B∞。

(23)
根據調查與研究,大部分實際使用條件下,水下成像的場景與拍攝相機之間的平均深度很大,因此前向散射的反射角度很小,此時前向散射對水下成像的干擾微乎其微,目標物體反射直接分量約等于目標物體反射總光量,即被復原的光量
(24)
考慮到暗通道算法能得到比其它算法更為精確的透射率圖,因此可以通過降采樣求暗通道來降低算法復雜度。具體做法為:先對獲得的待處理圖像進降采樣,降采樣比率為1/4或1/9,再進行暗通道的求取,得到小圖的暗通道圖像,之后通過插值或雙線性插值的方法進行上采樣得到原圖大小的暗通道圖。根據觀察發現,采樣得到的透射率圖跟原圖直接進行暗通道求取得到的透射率圖的精確度差距不大,因此同樣可以有較好的圖像復原效果。但是因為計算透射率時的數據量少了很多,而通過雙線性插值計算復雜度較低,理論上當縮放比例小于0.5的時候,計算透射率圖時節省的時間就能夠抵消掉兩次縮放所用的耗時,因此總體來說計算效率上能提高很多。
得到精確的透射率圖和全局背景光之后,采用快速導向濾波的方法計算復原結果。
綜上所述,水下快速圖像復原流程如圖3所示。

圖3 水下圖像復原流程
為了驗證本文算法的有效性,對大量不同的水下環境拍攝得到的圖像進行了復原處理,同時將圖像復原結果進行對比分析。為了驗證降采樣暗通道在達到同樣圖像復原效果時能提升較多的運算效率,對比了不同比率降采樣的暗通道復原效果及復原時間。實驗用電腦為臺式計算機(Inter(R) Core(TM) i5-6500 CPU @ 3.20 GHz 3.19 GHz,Win 10系統,16 GB內存),采用MATLAB R2016a軟件設計實驗。
不同比率降采樣暗通道和復原結果如圖4~圖6所示。本文算法與其它水下圖像復原算法對比結果如圖7~圖9所示。實驗采用通用水下復原圖像,圖4、圖7為水下雕像圖像,圖5、圖8為水下魚群圖像,圖6、圖9為水下珊瑚圖像??梢钥闯鐾ㄟ^降采樣之后的暗通道在簡單環境中與未經過降采樣的暗通道細節保留差不多,而在復雜環境中降

圖4 水下雕像圖片降采樣實驗
采樣之后的暗通道保留的細節會相應減少,但是通過不同比率的暗通道復原出來的水下圖像效果接近。

圖5 水下魚群圖片降采樣實驗

圖6 水下珊瑚圖片降采樣實驗
而在不同算法的主觀效果上,單純的DCP方法,如圖7(b)、圖8(b)、圖9(b)可以在一定程度上減弱水下圖像模糊的問題,消除部分后向散射影響,銳化水下圖像,突出圖像細節,但是沒有考慮到水下光線的強吸收作用,水下圖像顏色偏移問題依然很嚴重。而采用UDCP進行處理的時候考慮了水下紅色通道光線較少的問題,在原本色彩豐富度較低的圖像中處理效果較好,如圖7(c)和圖9(c)所示,但在原本色彩豐富的場景中,由于直接忽略了紅色通道對暗通道的影響所以復原出來的效果并不好,甚至造成圖像的色偏問題更嚴重,圖像質量會下降,如圖8(c)所示。
RDCP對水下圖像的紅色通道進行反向映射,增加紅色通道在求取暗通道時計算比重,在一定程度上能改善UDCP處理圖像時忽略過多圖像細節的問題,如圖7(d)、圖8(d)、圖9(d)所示,但是并沒有真正解決圖像顏色偏移問題。而CC-UDCP在UCDP和RDCP的基礎上進一步考慮,同時將紅色通道和綠色通道同時進行反向映射,如圖7(e)、圖8(e)、圖9(e)所示,經過觀察可以發現圖像中細節更突出,有效地去除了圖像的藍綠色偏,目標也更清晰,對比度更高,比如圖7(e)雕像胸口上的字符,但是圖像顏色過分修正,造成圖像顏色偏紅失真。相比之下本文算法圖7(f)、圖8(f)、圖9(f),由于對水下環境顏色進行最優搜索,所以很好地解決了色偏問題,同時消除水體后向散射影響,突出圖像細節,擁有最好的視覺效果。

圖7 水下雕像圖片實驗

圖8 水下魚群圖片實驗

圖9 水下珊瑚圖片實驗
為了驗證不同比率降采樣暗通道的復原結果,采用結構相似性(SSIM)來作為評價指標。SSIM是一種衡量兩幅圖像相似度的指標,屬于有參考圖像的圖像質量評價指標,SSIM數值越高代表圖片與原圖越相似。同一幅圖像與自己做SSIM運算的結果是1,表示是同一幅圖像。通過表1可以看出,通過降采樣暗通道復原得到的水下圖像,其與未經過降采樣暗通道復原得到的SSIM值接近于1,表示兩種復原效果相似度很好,但是經過降采樣暗通道的復原算法大大地提高算法運算效率,減少了算法運算時間。

表1 水下圖像相似性評價
此外為了驗證圖像復原質量的實驗效果,進一步說明算法對圖像處理的結果,從多種方向對實驗結果的圖像進行質量評價。由于水下圖像復原的目的主要在于能夠得到精確清晰的目標信息,因此選取無參考的水下圖像質量評價(UCIQE)、信息熵(Entropy)、等效圓偏色檢測(Cast)、算法計算時間(Times)。
水下圖像質量評價是色彩濃度、飽和度和對比度的線性組合,用來定量評價水下圖像非均勻的色偏、模糊和低對比度的情況。UCIQE數值越高代表圖像細節越多,越清晰,復原效果越好。信息熵表示圖像所包含的平均信息量,其值越大,表示圖像所攜帶的信息量越大。等效圓偏色檢測是基于等效圓的偏色檢測方法,采用CIE Lab顏色空間,其直方圖可以客觀反映圖像色偏程度,偏色因子值越大,偏色越嚴重。
計算圖7~圖9中原圖、4種其它算法和本文算法處理之后的圖像的標準評價指標。比較結果見表2。

表2 水下圖像質量評價
根據表2中的數據可以觀察出,使用本文算法復原出來的水下圖像普遍在UCIQE,信息熵上計算得到的數值結果都是較優于其它算法的,表明本文算法復原出來的水下圖像在飽和度,對比度方面都表現較好,復原出的圖像得到了更好的視覺感受,同時能有效地消除后向散射影響,還原出更豐富的圖像細節,增加圖像信息量,因此圖像信息熵也較其它方法高。盡管在Cast參數上表現不如CC-UDCP算法,但是通過觀察可以看出CC-UDCP算法會對水下圖像進行過度顏色補償,導致視覺上顏色偏紅,這也導致其在圖7的UCIQE中表現得略好些,而本文算法在有效地解決水下圖像顏色偏移的問題的基礎上,使復原結果更符合水下場景,擁有更好的視覺效果。此外,可以看出本文算法在提升復原效果的基礎上,大大提升了運算效率,減少了計算時間,節約了運算資源。
此外,綜合不同的3種復雜度的場景發現,本文算法都有較為穩定的復原效果和更快的計算速度,3種場景中均能較好地提升圖像質量,還原圖像細節,矯正顏色偏移。因此本文的算法具有更好的適應性和優越性。
光學成像系統在水下環境中會受到水體對光線地吸收和散射作用,導致色差、模糊、低對比度等問題,結合水下成像物理模型,本文提出了基于改進暗通道的水下圖像快速復原方法。通過動態閾值對水下圖像進行色彩復原,使用局部搜索找到最優偏移量,再利用降采樣暗通道求取較為準確的透射率圖,以實現水下圖像的復原。實驗結果表明,本文算法能達到較好的復原效果,提高圖像對比度、飽和度,獲得更好的圖像質量與信息,同時大大地提升運算效率,節約運算時間。但是本文實驗僅僅考慮了自然光照射下水下成像的影響因素,并未考慮添加人工光源后的成像模型,因此存在一定的局限性,有待于后續的研究。