本發(fā)明涉及一種基于色彩恒常性和群稀疏的水下圖像復原方法,屬于數(shù)字圖像處理技術(shù)領(lǐng)域。
背景技術(shù):
近些年來,水下圖像處理對水資源開發(fā)和保護、海洋勘探、水體污染檢測等研究具有極其重要的意義。然而,在復雜的水下環(huán)境中,由于水對光線的吸收和散射作用,及成像過程中可能產(chǎn)生的一些不可避免的噪聲,采集得到的水下圖像往往存在一定程度的退化。具體來說,一方面,水對光的吸收作用表明不同顏色的光在水下有不同的衰減特征,這使得水下圖像會產(chǎn)生顏色失真;另一方面,水對光的散射作用和水中各種懸浮粒子給成像帶來的噪聲,使得水下圖像呈現(xiàn)“霧化”效果,圖像變得比較模糊。因此,如何同時有效解決上述兩個問題以得到良好的水下圖像復原效果,需要進一步研究。
公開號cn106600547a水下圖像復原方法,該方法將圖像去霧算法與顏色恒常算法相結(jié)合,首先,將退化水下圖像的藍綠信道根據(jù)水下成像數(shù)據(jù)模型進行去模糊處理;其次,在藍綠信道去霧的基礎(chǔ)上,退化的紅信道根據(jù)復原的藍綠信道的像素值,依據(jù)灰度世界色彩恒常算法進行顏色矯正。該方法雖然可以取得一定的水下圖像復原效果,但是在去模糊的過程中,沒有考慮水體中懸浮微粒和溶質(zhì)的分布不均問題,去模糊的效果不是很理想;另外,針對水下圖像而言,該方法采用的灰度世界顏色失真矯正算法還會引入一些鮮艷顏色噪聲。
公開號cn104766284a水下彩色圖像的復原方法,該方法首先采用中值濾波的方法實現(xiàn)圖像的光照均勻化操作;其次依據(jù)暗原色先驗理論建立水下光學圖像成像模型i(x,y)=j(x,y)t(x,y)+a(1-t(x,y));再次通過自適應求解水體光強a,利用雙邊濾波法求解水體透射率t(x,y),將a和t(x,y)代入水下光學圖像成像模型,得到去模糊圖像t0為水體透射率下限值;最后對去模糊圖像的每個顏色通道直方圖分析的基礎(chǔ)上,對每個通道的中間灰度區(qū)進行量化處理。該方法在去模糊的過程中,使用了一個固化的自適應模型,沒有閾值的控制和反復的修正過程,在水下成像條件較差的時候,去模糊效果不是很好;另外,針對于水下圖像的顏色失真問題,該方法采用的直方圖方法效果不是很理想。
guo等人在2014年ieeeoceans上發(fā)表論文“improvingvisibilityandfidelityofunderwaterimagesusinganadaptiverestorationalgorithm”,該文獻使用了暗通道先驗去除水下圖像模糊,之后使用了r、g、b三個通道中均衡顏色均值來平衡顏色,然后將顏色空間從rgb變換到hsv進行了對比度的增強。該方法在水下成像條件較差的時候,去模糊效果不是很好;另外,該方法雖然增強了水下圖像的對比度,但是顏色失真矯正問題沒有很好地解決。
總之,現(xiàn)有的水下圖像處理方法,其存在的諸多局限性主要表現(xiàn)在:
(1)在水下顏色矯正方面,沒有充分考慮水下圖像的特性,僅采用傳統(tǒng)圖像顏色失真校正策略,無法得到令人滿意的結(jié)果。
(2)在圖像去模糊的過程中沒有考慮到水體本身懸浮微粒和溶質(zhì)分布不均的問題,因此也沒給出相應的解決手段,去模糊效果不是非常理想。
技術(shù)實現(xiàn)要素:
發(fā)明目的:針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種基于色彩恒常性和群稀疏的水下圖像復原方法,先利用引入顏色補償?shù)膕hadesofgray算法進行顏色失身去除,再利用基于水下圖像退化模型和群稀疏的圖像去模糊算法進行水下圖像去模糊的水下圖像復原方式。該方法不僅可以很好地對水下圖像進行顏色校正,而且能夠有效的去除模糊,達到良好的復原效果。
技術(shù)方案:一種基于色彩恒常性和群稀疏的水下圖像復原方法,包括如下步驟:
步驟一:在shadesofgray算法的基礎(chǔ)上,針對水下圖像的顏色失真特點,加入顏色補償?shù)母拍?,提出了一種改進的基于色彩恒常性的水下圖像顏色失真校正算法,對原始的水下圖像進行顏色失真矯正。
首先,給定一幅原始水下圖像,求取無窮遠處背景光,即假設相機與物體相距無窮遠處時,在該物體上顏色的背景光,該背景光一般選取各個暗通道中強度最高的像素
其中,iλ(y)表示顏色為λ通道的圖像,ω(x)表示以y為中心的局域塊,i表示圖像中所有的局域塊。
其次,求取水下圖像的衰減系數(shù)比。無窮遠處背景光不僅與圖像上像素點的位置有關(guān),而且與散射系數(shù)bλ成正比,與衰減系數(shù)cλ成反比
因此,為了得到各個通道之間的衰減系數(shù)之比cλ,我們采用richard提出的ⅰ類和ⅱ類海水中的散射系數(shù)bλ與光的波長λ之間的物理模型首先計算bλ,該模型表示為:
bλ=(-0.00113λ+1.62517)b(λr)
其中b(λr)表示參考波長的散射系數(shù)。對于水下圖像來說,藍色分量的衰減最小。因此,將藍色作為參考,由此,可以得到r、g、b三個通道的衰減系數(shù)比
其中,cr、cg、cb分別代表r、g、b三個通道衰減系數(shù),br、bg、bb分別代表r、g、b三個通道的散射系數(shù),br,∞、bg,∞、bb,∞分別代表r、g、b三個通道的無窮遠處背景光。
第三,對顏色衰減進行補償。根據(jù)光在水中的傳輸函數(shù)
其中,cλ表示波長為λ的光對水體的衰減系數(shù),d(x)表示光的傳輸距離,也就是場景景深,tλ(x)表示光的透射率。假設藍光在水體中并沒有被吸收或散射幸存?zhèn)€衰減,僅僅與景深有關(guān),即
db=e-d(x)
其中,d(x)表示場景景深,db表示藍色光的傳輸模型。以藍色光為參考,結(jié)合衰減系數(shù)比,可以分別求出紅色光分量和綠色光分量的傳輸模型
最后,將上述計算所得的db、dr、dg融入到shadesofgray算法框架中,得到改進后的顏色失真校正模型:
其中,p表示閔可夫斯基范數(shù),i(x)為圖像的信息,dλ表示r、g、b三個通道的光的傳輸模型,e為假設條件下的光源,k是系數(shù)。
步驟二:針對水下圖像的特點,設計出針對水下圖像的圖像退化模型,該模型包括兩部分內(nèi)容:退化算子的構(gòu)建和水體的分層。
1)退化算子的構(gòu)建具體步驟如下:
水下的成像有兩部分構(gòu)成,直接部分ed和介質(zhì)散射部分efb,即
e=ed+efb
水下圖像的模糊問題主要由于光在水中的散射作用,特別是后向散射所引起,并且模糊問題會隨著景深的增大成指數(shù)形式發(fā)展。由此,我們將e=ed+efb作為水下圖像的成像模型,將后向散射模型近似作為水下圖像退化部分的模型,即
efb(x)≈eb=e∞(1-e-βd(x))
其中,e∞表示水中的光照強度,β表示衰減系數(shù),d(x)表示場景的景深。
根據(jù)該水下圖像退化部分的模型的目標函數(shù),可以發(fā)現(xiàn)水下圖像的退化水平和其各場景點的景深有直接關(guān)系,景深越大,介質(zhì)散射部分就越大,在水體成像的過程中產(chǎn)生的退化也就越嚴重?;谏鲜鐾嘶?guī)律,我們構(gòu)建退化算子。
首先,考慮到場景點的退化水平和其距消失點的距離成反比,我們來選取一幅圖像中消失點的近似位置。為了方便計算,我們假設圖像中心點位置的場景點為消失點,具有最大的景深。將圖片的中心位置記為坐標原點,則坐標位置為(r1,r2)的景深可以定義為:
從該公式可以看出,中心位置的景深為d=1,隨著距消失點的距離的增大,景深逐漸減小,符合水下圖像后向散射模型的規(guī)律。
然后,結(jié)合水下后向散射模型,我們設計的后向散射退化算子hb表示為:
2)水體的分層具體步驟如下:
由于水體中懸浮粒子的分布不均,以及水體溶液本身的分布不均,光子在水中每前進一點,其退化算子的參數(shù)都會產(chǎn)生些許的變化。針對這種情況,我們引入光的傳遞函數(shù),即點擴散函數(shù)(pointspreadfunction,psf),按照光所要通過的距離,也就是沿著景深增大的方向,對水體進行分層。
下面,我們將光子所要運行的距離分為n個水層,分別由n1、n2…nn表示。
水體退化模型可以描述為y=hx+η其中,x,y分別代表原始的清晰圖像和觀測到的退化圖像,h是退化算子,η是退化過程中可能引入的噪聲。
由此可知,水下圖像的第一層退化可以表示為
y1=h1x+η
水下圖像的第二層退化可以表示為
y2=h2y1+η
=h2(h1x+η)+η
依次類推,水下圖像的第n層退化可以表示為
yn=hn(yn-1+η)+η
=hnhn-1...h1x+hnhn-1...h2η+...+hnhn-1η+hnη+η
由此可知,光子在每一層水體中,都經(jīng)過了不同的退化過程,可以說,是不同退化算子的疊加。雖然,在水體分層的過程中,每層的退化算子參數(shù)會有一些出入,但是根據(jù)微分的思想,當分一層水體的距離都趨于0時,可以將每一層退化算子的參數(shù)看成是相同的,即
h=h1=h2=...=hn
因此,水下圖像的退化模型可以用圖3來表示。其中,d為景深,x為清晰圖像,y1,y2,...yn為1,2,...n層水體經(jīng)過退化后的圖像。
我們可以看出,水體分層過程的逆過程就如同對水下圖像在不斷進行去模糊修正的過程。而在基于群稀疏的圖像去模糊算法的核心算法就是sbi算法,即一個不斷迭代的過程。因此,水體分層還可以看做該迭代過程的理論基礎(chǔ)。
步驟三:將上述退化模型,即退化算子和水體分層融入到群稀疏框架中,提出了一種融合退化模型和群稀疏的水下圖像去模糊算法,將該算法用于處理經(jīng)過顏色失真矯正之后的水下圖像,以期提高其清晰度。
首先,給定一幅退化圖像y,對其先構(gòu)造群,具體操作為,將退化圖像y分成n塊相互重疊的圖像塊,每一個圖像塊可以表示為一個矢量yk∈rb,rb表示長度為b的矢量,(k=1,2,...n)。對于每個圖像塊,在其鄰近區(qū)域利用歐氏距離尋找c個相似塊作為匹配塊,然后將所有的相似塊堆疊成一個矩陣
其次,將該退化模型融入到群稀疏表示模型的框架中,則圖像去模糊問題可以表示為:
其中,
第三,獲取學習字典。每個群
第四,對于給定的字典,基于字典
最后,當我們求得了自適應字典dg和稀疏編碼系數(shù)αg,去模糊后的圖像可以表示為:
本發(fā)明采用上述技術(shù)方案,具有以下有益效果:
(1)本發(fā)明的方法針對水體對光的吸收特性,提出了顏色補償這一概念,根據(jù)水下圖像藍光衰減最小的特點和光在水中的傳輸規(guī)律,先對圖像進行顏色補償,再融入shadesofgray算法進行顏色矯正,從而使得顏色矯正效果更加良好。
(2)本方法在群稀疏的基礎(chǔ)上,融入了水下圖像退化模型,即退化算子和水體分層,使得提出的去模糊算法更有針對性地貼合實際水下圖像特點。
附圖說明
圖1是本發(fā)明方法的整體框架圖;
圖2是群構(gòu)建示意圖;
圖3是水下圖像分層退化模型圖;
圖4是水下圖像復原示例圖,(a)為原始圖像,(b)為顏色矯正后的圖像,(c)為最終復原后的圖像。
具體實施方式
下面結(jié)合具體實施例,進一步闡明本發(fā)明,應理解這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對本發(fā)明的各種等價形式的修改均落于本申請所附權(quán)利要求所限定的范圍。
如圖1所示,基于色彩恒常性和群稀疏的水下圖像復原方法,包括如下步驟:
第一,了解經(jīng)典的水下圖像顏色矯正方法。
現(xiàn)有的經(jīng)典顏色恒常性算法都是基于灰度世界假說提出的,即對于一副豐富的彩色圖像,r、g、b三個通道的均值趨于同一灰度值
其中,i(x)為圖像的信息,e為假設條件下的光源,k是系數(shù)。
shadesofgray假設在灰度世界假設的基礎(chǔ)上提出,圖像數(shù)據(jù)的在經(jīng)過非線性變換以后,不會影響其顏色信息。因此,將閔可夫斯基范式引入到灰度世界算法,提出了shadesofgray算法,如下
其中,p表示閔可夫斯基范數(shù),i(x)為圖像的信息,e為假設條件下的光源,k是系數(shù)。
第二,針對水下圖像顏色是失真的特點,計算針對水下圖像的顏色衰減。
首先,給定一幅原始水下圖像,求取無窮遠處背景光,即假設相機與物體相距無窮遠處時,在該物體上顏色的背景光,該背景光一般選取各個暗通道中強度最高的像素
其中,iλ(y)表示顏色為λ通道的圖像,ω(x)表示以y為中心的局域塊,i表示圖像中所有的局域塊。
其次,求取水下圖像的衰減系數(shù)比。無窮遠處背景光不僅與圖像上像素點的位置有關(guān),而且與散射系數(shù)bλ成正比,與衰減系數(shù)cλ成反比
因此,為了得到各個通道之間的衰減系數(shù)之比cλ,我們采用richard提出的ⅰ類和ⅱ類海水中的散射系數(shù)bλ與光的波長λ之間的物理模型首先計算bλ,該模型表示為:
bλ=(-0.00113λ+1.62517)b(λr)(5)
其中,b(λr)表示參考波長的散射系數(shù)。對于水下圖像來說,藍色分量的衰減最小。因此,將藍色作為參考,由此,可以得到r、g、b三個通道的衰減系數(shù)比
其中,cr、cg、cb分別代表r、g、b三個通道衰減系數(shù),br、bg、bb分別代表r、g、b三個通道的散射系數(shù),br,∞、bg,∞、bb,∞分別代表r、g、b三個通道的無窮遠處背景光。
第三,根據(jù)顏色通道的衰減系數(shù)以及水下光子的傳輸模型,計算r、g、b三個通道的光線傳輸模型。
根據(jù)光在水中的傳輸函數(shù)
其中cλ表示波長為λ的光對水體的衰減系數(shù),d(x)表示光的傳輸距離,也就是場景景深,tλ(x)表示光的透射率。假設藍光在水體中并沒有被吸收或散射幸存?zhèn)€衰減,僅僅與景深有關(guān),即
db=e-d(x)(8)
其中d(x)表示場景景深,db表示藍色光的傳輸模型。以藍色光為參考,結(jié)合衰減系數(shù)比,可以分別求出紅色光分量和綠色光分量的傳輸模型
第四,將上述計算所得的db、dr、dg融入到shadesofgray算法框架中,得到改進后的顏色失真校正模型:
其中,p表示閔可夫斯基范數(shù),i(x)為圖像的信息,dλ表示r、g、b三個通道的光的傳輸模型,e為假設條件下的光源,k是系數(shù)?;谠摳倪M的模型,顏色失真校正后的水下圖像即可通過如下公式獲得:
其中,k'為常數(shù)。
第五,在經(jīng)過顏色矯正的水下圖像上,建立稀疏群表示模型。
如圖2,首先將圖像劃分成n塊相互重疊的圖像小塊xk,k=1,2,3...n,即圖中的小方塊。然后再在大方塊標記的訓練窗內(nèi)搜索與其相近的其他圖像小塊,利用歐氏距離進行圖像的相似度匹配,尋找到c個與其最相似的相似塊作為匹配塊,這些塊組成了集合
第六,分析水下圖像散射模型,并據(jù)此設計水下圖像的退化算子。
水下的成像有兩部分構(gòu)成,直接部分ed和介質(zhì)散射部分efb,即
e=ed+efb(12)
水下圖像的模糊問題主要由于光在水中的散射作用,特別是后向散射所引起,并且模糊問題會隨著景深的增大成指數(shù)形式發(fā)展。由此,我們將e=ed+efb作為水下圖像的成像模型,將后向散射模型近似作為水下圖像退化部分的模型,即
efb(x)≈e∞(1-e-βd(x))(13)
根據(jù)該水下圖像退化部分的模型的目標函數(shù),可以發(fā)現(xiàn)水下圖像的退化水平和其各場景點的景深有直接關(guān)系,景深越大,介質(zhì)散射部分就越大,在水體成像的過程中產(chǎn)生的退化也就越嚴重?;谏鲜鐾嘶?guī)律,我們構(gòu)建退化算子。
首先,考慮到場景點的退化水平和其距消失點的距離成反比,我們來選取一幅圖像中消失點的近似位置。為了方便計算,我們假設圖像中心點位置的場景點為消失點,具有最大的景深。將圖片的中心位置記為坐標原點,則坐標位置為(r1,r2)的景深可以定義為:
從該公式可以看出,中心位置的景深為d=1,隨著距消失點的距離的增大,景深逐漸減小,符合水下圖像后向散射模型的規(guī)律。
然后,結(jié)合水下后向散射模型,設計后向散射退化算子hb如下:
第七,將水下圖像沿著景深增大的方向,對水體進行分層。
我們將光子所要運行的距離分為n個水層,分別由n1、n2…nn表示。
水體退化模型可以描述為y=hx+η,其中,x,y分別代表原始的清晰圖像和觀測到的退化圖像,h是退化算子,η是退化過程中可能引入的噪聲。
由此可知,水下圖像的第一層退化可以表示為
y1=h1x+η(17)
水下圖像的第二層退化可以表示為
依次類推,水下圖像的第n層退化可以表示為
由此可知,光子在每一層水體中,都經(jīng)過了不同的退化過程,可以說,是不同退化算子的疊加。雖然,在水體分層的過程中,每層的退化算子參數(shù)會有一些出入,但是根據(jù)微分的思想,當分一層水體的距離都趨于0時,可以將每一層退化算子的參數(shù)看成是相同的,即
h=h1=h2=...=hn(20)
因此,水下圖像的退化模型可以用圖3來表示。其中,d為景深,x為清晰圖像,y1,y2,...yn為1,2,...n層水體經(jīng)過退化后的圖像。
我們可以看出,水體分層過程的逆過程就如同對水下圖像在不斷進行去模糊修正的過程。而基于群稀疏的圖像去模糊算法的核心算法就是sbi算法,即一個不斷迭代的過程。因此,水體分層還可以看做該迭代過程的理論基礎(chǔ)。
第八,將退化算子和水體分層融入到群稀疏表示模型的框架中,則圖像去模糊問題可以表示為:
其中,
第九,獲取學習字典,每個群
其中
定義每一個群字典
最后,每個群的
第十,采用分離bregman迭代,通過sbi算法,計算出稀疏編碼稀疏αg。并根據(jù)字典和稀疏系數(shù)進行水下圖像去模糊。
該最小化問題可以被等價為
其中,u是我們?yōu)榱死胹bi算法而引入的變量,再引入變量b,從而求解上述問題可以表示為求解sbi算法中的三個子問題:
其中,t代表迭代次數(shù),μ和λ均為常數(shù)。具體求解步驟如下:
(1)首先要求解u,記u(0)=y(tǒng),y是觀測到的退化圖像。對于公式(26),如果αg已知,則(26)可以表示為:
將上面函數(shù)的梯度取零,可以求得
u=(hth+μi)-1q(30)
其中,
(2)上面已經(jīng)求得u。在sbi算法每次迭代過程中,會得到原始圖像的近似圖像,稱為估計,記為r,且有r(t+1)=u(t+1)-b(t),其中設置初始值b(0)=0。這樣就可以求得每次原始圖像的估計r(t)。
(2)接著求解每個群在群字典上的稀疏系數(shù)
直接求解上述問題很難,做一下變形,令
這里記殘差為res=x-r,有實驗證明,在每次迭代中,res(t)的分布滿足廣義高斯分布,且每一個元素是獨立的,則在第t次迭代過程中,有下列等式:
說明求解αg的問題等價于求解關(guān)于n個群的子問題。其中,n為待處理圖像的大小,k=b×c×n,
其中,
將上述問題轉(zhuǎn)化為求解關(guān)于n個群的子問題,則每個子問題的求解可以表示為:
其中,
其中,
因此對應群的稀疏系數(shù)就可以求解出來:
其中,hard(·)代表的是硬閾值算子,⊙代表向量對應元素的點乘算子。對構(gòu)建的每一個群都按照上述方法求得稀疏系數(shù)
(5)在求得第t次的群字典
至此,一次完整的迭代過程就完成了,當t達到最大迭代次數(shù)之后,算法結(jié)束,可以得到最終的群字典和稀疏系數(shù)。則復原后的圖像x可以由最后一次求得的群字典和稀疏系數(shù)表示出來。