李力,英聰,李俊,甘少明
(1.湖北省氣象信息與技術(shù)保障中心,武漢 430074;2.賽特斯信息科技股份有限公司,上海 200433)
現(xiàn)代無(wú)人機(jī)遙感技術(shù)以迅速、便攜、廉價(jià)著稱,尤其在氣象、地震、環(huán)保等防災(zāi)減災(zāi)領(lǐng)域,可以很好彌補(bǔ)傳統(tǒng)應(yīng)急方法的缺陷。無(wú)人機(jī)航拍圖像極易受到氣象環(huán)境和地物影響,特別是近年來(lái)霧霾天氣較多,嚴(yán)重影響了航拍數(shù)據(jù)質(zhì)量。在災(zāi)害災(zāi)情瞬息萬(wàn)變時(shí),要求無(wú)人機(jī)圖像處理算法快速準(zhǔn)確,特別是圖像去霧處理這樣的預(yù)處理算法。暗通道先驗(yàn)(dark channel prior,DCP)算法雖然去霧效果顯著,但由于算法的復(fù)雜程度較高,尤其是引導(dǎo)濾波(guided filter,GF)和算法時(shí)間復(fù)雜度為O(n^2)的暗通道濾波過(guò)程[1-3],雖然引導(dǎo)濾波和原本使用的軟摳圖算法相比計(jì)算速度顯著提高,但依然難滿足無(wú)人機(jī)遙感圖像數(shù)據(jù)量大、圖幅多、圖像中云霧情況復(fù)雜等特點(diǎn)。
本文根據(jù)無(wú)人機(jī)拍攝圖像的特點(diǎn),指出暗通道先驗(yàn)去霧算法中有待優(yōu)化之處,并針對(duì)暗通道先驗(yàn)算法的計(jì)算速度提出優(yōu)化方案。利用無(wú)參考的圖像質(zhì)量評(píng)價(jià)方法展開量化評(píng)價(jià),使用信息熵、邊緣強(qiáng)度和圖像方差作為圖像質(zhì)量的3個(gè)指標(biāo),對(duì)比算法優(yōu)化前后的處理結(jié)果。通過(guò)優(yōu)化實(shí)驗(yàn),發(fā)現(xiàn)暗通道先驗(yàn)去霧算法的計(jì)算速度大幅度提升,可以極大地滿足無(wú)人機(jī)圖像去霧處理的要求。
無(wú)人機(jī)航拍圖像難以獲取同一場(chǎng)景不同時(shí)期的2幅圖像,不便選取參考圖像評(píng)價(jià)去霧效果,所以本文主要使用以下無(wú)參考的客觀圖像質(zhì)量評(píng)價(jià)指標(biāo)對(duì)去霧前后圖像進(jìn)行客觀評(píng)價(jià)[4]。
表征圖像灰度分布的聚集特性,熵值越高圖像表面包含的細(xì)節(jié)紋理信息越多,圖像信息量越大。
圖像邊緣強(qiáng)度用梯度值來(lái)描述,梯度值較大區(qū)域具有明顯的邊緣特征,平滑區(qū)域梯度值較小,灰度級(jí)為常數(shù)的區(qū)域梯度值為零[5-6]。本文使用Prewitt梯度算子進(jìn)行梯度值計(jì)算。
圖像方差表示圖像中灰度分布的離散程度,對(duì)比度較高的圖像灰度方差較大,反之亦然。有霧圖像的灰度值較小,去霧處理后灰度值變大,所以用圖像方差能有效判斷去霧的效果和程度。
在計(jì)算機(jī)視覺圖形學(xué)領(lǐng)域,有霧圖像的退化模型如式(1)所示[7]。
I(x)=J(x)t(x)+A(1-t(x))
(1)
式中:I(x)為傳感器接收到的場(chǎng)景信號(hào),即輸入有霧影像;J(x)表示場(chǎng)景輻射,即處理后的清晰圖像;A是全局大氣輻射;t(x)為透射率。J(x)t(x)稱為直接衰減項(xiàng)用于量化場(chǎng)景輻射及其在傳播中的信號(hào)損失量。A(1-t(x))稱為環(huán)境光照表示圖像接收到的大氣散射光強(qiáng),是導(dǎo)致圖像色彩偏移和云霧效果的直接原因。
暗通道先驗(yàn)理論是在觀測(cè)大量清晰圖片基礎(chǔ)上得出的統(tǒng)計(jì)理論[8]:在大多數(shù)不包含天空的優(yōu)質(zhì)圖片中,每個(gè)像素在r,g,b3個(gè)顏色通道上至少有1個(gè)通道的灰度值很低甚至趨近于0,也就是在某個(gè)微小局部區(qū)域內(nèi)輻射強(qiáng)度的最小值應(yīng)該很低。于是,對(duì)于一副圖像J可以定義:
(2)
式中:Jc表示圖像J中某一個(gè)通道的灰度值;Ω(x)表示以像素x為中心的某局部區(qū)域。在清晰圖片中(除天空之外的區(qū)域內(nèi)),幾乎所有Jdark通道的灰度值都很小甚至趨近于0,圖像J的暗通道值即為Jdark,此觀測(cè)統(tǒng)計(jì)結(jié)論稱為暗通道先驗(yàn)。
去霧處理目標(biāo)是將傳感器接收的有霧圖像利用獲得的有用信息通過(guò)去霧還原出清晰圖像。暗通道先驗(yàn)圖像去霧處理是根據(jù)暗通道原理獲取先驗(yàn)知識(shí),再利用有霧圖像退化模型實(shí)現(xiàn)圖像去霧效果。
1) 估算環(huán)境光照強(qiáng)度。暗通道圖像中灰度值越高的區(qū)域云霧越厚,在輸入圖像中位于這部分區(qū)域的像素灰度值越接近于環(huán)境光照強(qiáng)度。估算環(huán)境光照強(qiáng)度首先需要找到暗通道圖像中灰度值最高并占圖像總像素?cái)?shù)量0.1%的像素點(diǎn),記錄它們對(duì)應(yīng)的坐標(biāo)索引,然后根據(jù)坐標(biāo)索引在輸入的有霧圖像中找到對(duì)應(yīng)像素點(diǎn),計(jì)算有霧圖像中對(duì)應(yīng)像素點(diǎn)的灰度平均值作為環(huán)境光照強(qiáng)度A。
(3)
將3個(gè)顏色通道的最小值按照式(4)再次運(yùn)算,可得出以像素x為中心的濾波窗口內(nèi)的灰度最小值。
(4)
根據(jù)暗通道先驗(yàn)原理和式(2)可以得出式(5)。
(5)
由式(4)、式(5)可以計(jì)算出大氣透射率,如式(6)所示。
(6)
3) 去霧處理?;诎低ǖ老闰?yàn)條件可以量化云霧厚薄程度以及每個(gè)像素點(diǎn)的輻射還原量,從而還原出高質(zhì)量的清晰圖像。通過(guò)式(1)有霧圖像退化模型和環(huán)境光照強(qiáng)度A、大氣透射率t(x),可進(jìn)行單幅圖像去霧處理,如式(7)所示。
(7)
通過(guò)對(duì)暗通道先驗(yàn)算法的剖析和代碼實(shí)驗(yàn),發(fā)現(xiàn)算法運(yùn)行中耗時(shí)較多的2個(gè)環(huán)節(jié)是:計(jì)算暗通道圖像和使用引導(dǎo)濾波精化透射率圖層(transparent layer,TL)。本文從計(jì)算暗通道圖像這個(gè)環(huán)節(jié)對(duì)去霧處理方法進(jìn)行速度優(yōu)化。
暗通道先驗(yàn)是在一個(gè)微小的局部區(qū)域內(nèi),需要很低的最小輻射強(qiáng)度[9-10],暗通道濾波就是用濾波方式找到其窗口區(qū)域內(nèi)輻射強(qiáng)度最小值[11]。將暗通道濾波當(dāng)成二維黑白圖像的最小值濾波向三維空間彩色圖像的擴(kuò)展,三維空間是指r、g、b顏色空間[12-13],那么暗通道濾波便是要找到濾波窗口區(qū)域內(nèi)3個(gè)顏色空間中輻射強(qiáng)度最小的像素,并將該像素的輻射強(qiáng)度作為暗通道值。
最小值濾波算法具有非線性和不可分離性,普通的優(yōu)化技術(shù)對(duì)其并不適用,算法復(fù)雜度較高,影響了最小值濾波器的應(yīng)用。將圖像像素作為一個(gè)列表,排序后取其中最小值,由于最小值濾波的算法復(fù)雜度隨排序方法不同而改變,若使用桶排序(bucker sort,BS),那么最小值濾波的算法復(fù)雜度即為O(n^2),其中n為窗口大小。為降低最小值濾波的算法時(shí)間復(fù)雜度,Huang等[14]提出了一種算法復(fù)雜度為O(n)的中值濾波算法。該算法通過(guò)計(jì)算直方圖獲得中值,當(dāng)滑塊移動(dòng)時(shí),只需對(duì)直方圖進(jìn)行一次更新即可,如圖1所示,通過(guò)借鑒該中值濾波算法也可實(shí)現(xiàn)相同算法時(shí)間復(fù)雜度的最小值濾波器。
圖1 Huang等提出的中值濾波原理
考慮改進(jìn)Huang的算法,由于2個(gè)直方圖累加是一個(gè)O(1)操作,使得對(duì)每增加一個(gè)像素,直方圖只需累加一個(gè)固定的數(shù),從而獲得O(1)的復(fù)雜度。實(shí)現(xiàn)算法時(shí)間復(fù)雜度為O(1)的最小值濾波過(guò)程如下。
1) 初始化核直方圖。若圖像有n列,每個(gè)直方圖對(duì)應(yīng)于圖像中的一列,故需要處理n個(gè)直方圖,這些直方圖包含了以某個(gè)像素為中心的2r+1個(gè)像素信息(r為濾波窗口的半徑)。以每一列直方圖第一個(gè)像素為中心的2r+1個(gè)像素信息為圖像初始狀態(tài),更新處理時(shí),這些直方圖隨著滑塊移動(dòng)并同時(shí)完成更新。
2) 更新核直方圖。隨著滑塊移動(dòng),將每一列直方圖減去最左側(cè)像素的直方圖信息,同時(shí)增加最右側(cè)像素的直方圖信息,如圖2所示,每移動(dòng)一列都是O(1)操作。
圖2 更新核直方圖
3) 獲取最小值。根據(jù)更新的核直方圖獲取最小值。通過(guò)上述算法的計(jì)算,所有單像素操作都與窗口大小無(wú)關(guān),即算法空間復(fù)雜度為O(1)。該算法的偽代碼如下。
輸入:圖像X,大小為m*n,濾波窗口半徑為r
輸出:與圖像X大小相同的圖像Y
初始化核直方圖H以及每一列的直方圖h1,h2,……,hn
Fori=1tomdo
Forj=1tondo
RemoveXi-r-1,j+rfromhj+r
AddXi+r,j+rtohj+r
H←H+hj+r-hj+r-1
Yi,j←min(H)
EndFor
EndFor
要將上述灰度圖像最小值濾波后擴(kuò)展適用于彩色圖像,可以分別對(duì)r、g、b3 個(gè)波段圖層進(jìn)行最小值濾波,然后比較3個(gè)波段圖層最小值濾波后的像素點(diǎn),取3個(gè)像素值中的最小值作為暗通道值,可實(shí)現(xiàn)與濾波窗口無(wú)關(guān)算法時(shí)間復(fù)雜度為O(1)的暗通道濾波。
圖像縮放需要平衡處理結(jié)果的平滑度、清晰度和處理效率。當(dāng)圖像縮小時(shí),平滑度和清晰度將會(huì)增加,而數(shù)據(jù)量會(huì)被壓縮;當(dāng)圖像放大時(shí),數(shù)據(jù)量會(huì)增大,平滑度和清晰度將會(huì)下降??s小圖像的過(guò)程稱為圖像下采樣,放大圖像的過(guò)程為上采樣[15]。圖像下采樣可以壓縮圖像大小,在符合顯示區(qū)域要求的條件下生成對(duì)應(yīng)圖像的縮略圖,減少其數(shù)據(jù)量。圖像上采樣主要是對(duì)其進(jìn)行放大,使其滿足更高分辨率的顯示需要。
暗通道先驗(yàn)算法使用暗通道圖層粗略量化云霧厚度,通過(guò)暗通道圖像粗略計(jì)算大氣透射率,然后使用引導(dǎo)濾波等方法精細(xì)化大氣透射率圖層。暗通道圖像在去霧算法中具有承上啟下的重要作用,但考慮到其精度要求不高,處理過(guò)程易受到圖像中的噪聲影響。因此考慮使用圖像下采樣的方式減少輸入圖像數(shù)據(jù)量,生成輸入圖像縮略圖,利用輸入縮略圖計(jì)算暗通道圖像的縮略圖,然后用圖像上采樣的方法將暗通道圖像的縮略圖放大,以便進(jìn)一步處理。這樣既可以減小輸入圖像中的噪聲影響,也可以降低數(shù)據(jù)計(jì)算量,從而縮短計(jì)算時(shí)間。
(8)
綜上所述,基于暗通道先驗(yàn)的圖像去霧處理方法經(jīng)過(guò)速度優(yōu)化后的流程如圖3所示。
圖3 速度優(yōu)化后的暗通道先驗(yàn)圖像去霧處理流程圖
針對(duì)第3節(jié)提出的實(shí)現(xiàn)算法時(shí)間復(fù)雜度為O(1)的暗通道濾波和使用圖像下采樣減少數(shù)據(jù)量2種暗通道去霧處理速度優(yōu)化方法,通過(guò)實(shí)驗(yàn)進(jìn)行結(jié)果驗(yàn)證。實(shí)驗(yàn)使用的計(jì)算機(jī)配置為:CoreTMi7-5500U @ 2.4 GHz處理器,16 GB RAM內(nèi)存,Windows 10 64位操作系統(tǒng)。實(shí)驗(yàn)選用無(wú)人機(jī)航拍的28張湖北省黃岡市平原區(qū)有霧圖像(圖幅大小5 780像素×5 400像素)和23張湖北省恩施市高山區(qū)有霧圖像(圖幅大小5 180像素×3 456像素)作為原始數(shù)據(jù),圖片格式為jpeg,包含r、g、b3個(gè)顏色通道。為使算法優(yōu)化處理前后的去霧效果偏差較小,在不影響輸出圖像后期處理的條件下盡可能提高優(yōu)化算法運(yùn)行速度,通過(guò)統(tǒng)計(jì)設(shè)定了統(tǒng)一參數(shù)批量處理全部原始有霧圖像。
本文使用無(wú)參考的客觀圖像評(píng)價(jià)方法,將圖像信息熵、邊緣強(qiáng)度、方差作為3個(gè)評(píng)價(jià)指標(biāo)。從平原和高山2組圖像中各選1幅作為代表進(jìn)行說(shuō)明。圖4(a)文件大小為7.3 MB,圖4(b)文件大小為6.77 MB。
將圖4經(jīng)過(guò)暗通道處理后得到圖5。圖5(a)、圖5(c)是使用算法時(shí)間復(fù)雜度為O(1)的暗通道濾波以及圖像下采樣減少數(shù)據(jù)計(jì)算量得到的暗
通道圖像,圖5(b)、圖5(d)是未使用優(yōu)化方案的暗通道圖像,優(yōu)化與未優(yōu)化處理的暗通道圖像差別不大。
圖4 用于實(shí)驗(yàn)的有霧圖像
圖5的2組暗通道圖像分別去霧處理后得到圖6所示的2組清晰圖像,其中圖6(a)、圖6(c)是使用速度優(yōu)化方案的暗通道圖像去霧后得到的清晰圖像,圖6(b)、圖6(d)是未使用速度優(yōu)化方案的暗通道圖像去霧后得到的清晰圖像。
通過(guò)觀察很難發(fā)現(xiàn)2組圖像的差異,所以使用客觀圖像評(píng)價(jià)方法進(jìn)行比較,評(píng)價(jià)指標(biāo)和結(jié)果見表1至表3。表1為平原圖例暗通道模塊速度優(yōu)化方案的客觀評(píng)價(jià)。
從平原圖例的對(duì)比看出,使用速度優(yōu)化方案比未使用速度優(yōu)化方案的去霧圖像其信息熵、邊緣強(qiáng)度和方差都略低,但暗通道圖層的計(jì)算時(shí)間明顯縮短。表2為高山圖例暗通道模塊速度優(yōu)化方案的客觀評(píng)價(jià)。
對(duì)比高山圖例同樣發(fā)現(xiàn),使用速度優(yōu)化方案比未使用速度優(yōu)化方案的暗通道圖層計(jì)算時(shí)間顯著減少,其去霧圖像的信息熵、邊緣強(qiáng)度、方差相差不大。表3是全部原始有霧圖像使用暗通道模塊速度優(yōu)化方案的客觀評(píng)價(jià)。
將表1至表3中的圖像信息熵、邊緣強(qiáng)度、方差和暗通道圖層計(jì)算時(shí)間對(duì)應(yīng)比較,得出以下結(jié)論:1)暗通道先驗(yàn)去霧算法改善了圖像清晰度,去霧效果顯著;2)在計(jì)算暗通道圖層時(shí),通過(guò)使用算法時(shí)間復(fù)雜度為O(1)的暗通道濾波和圖像下采樣減少數(shù)據(jù)量2種優(yōu)化方案得到的暗通道圖像,與未使用速度優(yōu)化方案計(jì)算得到的暗通道圖像差別不大,使用速度優(yōu)化方案得到的暗通道圖像對(duì)去霧處理效果沒有明顯影響;3)使用算法時(shí)間復(fù)雜度為O(1)的暗通道濾波和圖像下采樣減少數(shù)據(jù)量的優(yōu)化方法相比傳統(tǒng)暗通道先驗(yàn)圖像去霧方法的計(jì)算速度大幅度提高。
圖5 優(yōu)化與未優(yōu)化處理的暗通道圖像對(duì)比
圖6 去霧處理后的清晰圖像對(duì)比
表1 平原圖例暗通道模塊速度優(yōu)化方案客觀評(píng)價(jià)
表2 高山圖例暗通道模塊速度優(yōu)化方案客觀評(píng)價(jià)
表3 全部原始圖像暗通道模塊速度優(yōu)化方案客觀評(píng)價(jià)
針對(duì)無(wú)人機(jī)航拍圖像圖幅較多、分辨率較高、數(shù)據(jù)量較大的特點(diǎn),采用圖像下采樣減少數(shù)據(jù)量和使用算法時(shí)間復(fù)雜度為O(1)的暗通道濾波對(duì)基于暗通道先驗(yàn)的圖像去霧算法進(jìn)行速度優(yōu)化,通過(guò)計(jì)算機(jī)編碼對(duì)優(yōu)化方案展開實(shí)驗(yàn)。結(jié)果表明,基于暗通道先驗(yàn)的圖像去霧處理速度優(yōu)化方法可以較好地適應(yīng)無(wú)人機(jī)圖像數(shù)據(jù)量大的特點(diǎn),有效減少了運(yùn)算時(shí)間。該技術(shù)符合無(wú)人機(jī)航拍圖像快速去霧處理的需求,可用于氣象、農(nóng)業(yè)、地質(zhì)、環(huán)境監(jiān)測(cè)、軍事偵察以及社會(huì)生活等方面,具有廣闊的應(yīng)用前景。