天天看點

Tan基于最大化對比度的去霧方法一、摘要二、基本原理三. 計算方法四、實驗結果與分析

Visibility in Bad Weather from a Single Image

劉海山,2021年7月8日

文獻引文資訊: Tan, R. T. Visibility in bad weather from a single image. 2008 Ieee Conference on Computer Vision and Pattern Recognition, Vols 1-12, 2347-2354, doi:DOI 10.1109/cvpr.2008.4587643 (2008).

文獻來源:https://ieeexplore.ieee.org/document/4587643

從暗通道的文章中知道這篇極大化對比度的文章,是以想專門學習一下這篇文獻的方法。

内容提綱

  • 一、摘要
  • 二、基本原理
    • 1. 光學模型:
    • 2. 問題描述
    • 3. 使用單幀圖像進行求解
      • 3.1 最大化對比度
      • 3.2 大氣光的平滑限制
  • 三. 計算方法
  • 四、實驗結果與分析
    • 1. 薄霧的情況
    • 2. 較濃霧的情況

一、摘要

In this paper, we introduce an automated method to removal fog. Based on two priors: first, images with enhanced visibility(or clear-day images) have more contrast than images plagued by bad weather; second, airlight whose variation mainly depends on the distance of objects to viewer, tends to be smooth. Relying on these two priors, we develop a cost function in the framework of Markov random fields, which can be significantly optimized by various techniques, such as graph-cuts or belief propagation.

本文介紹了一種隻需要一張圖檔的自動去霧算法。存在兩個基本的先驗:首先,高能見度(或清晰場景)圖檔相比于受惡劣天氣幹擾的圖檔具有更高的對比度;其次,天空光的變化主要依賴于場景到觀察者的距離,并趨向于平滑圖像。基于這些先驗,本文提出了一個基于馬爾科夫場的損失函數。該損失函數可以由多種技術進行優化,比如graph-cuts或者簡單傳播等。

像霧、霾等惡劣天氣會極大地降低場景的能見度。光學上來說,這是由于大氣中存在大量的吸收和散射光的粒子。在計算機視覺中,這些吸收和散射過程通常由直接衰減和大氣光的線性組合所描述。

二、基本原理

1. 光學模型:

I ( x ) = L ∞ ρ ( x ) e − β d ( x ) + L ∞ ( 1 − e − β d ( x ) ) … … ( 1 ) I(x) = {L_\infty }\rho (x){e^{ - \beta d(x)}} + {L_\infty }(1 - {e^{ - \beta d(x)}}) ……(1) I(x)=L∞​ρ(x)e−βd(x)+L∞​(1−e−βd(x))……(1)其中第一項是衰減項,第二項是大氣光幹擾項。 L ∞ {L_\infty } L∞​表示無窮遠處的大氣光值。 ρ ( x ) \rho (x) ρ(x)表示場景反射率。

定義色度:

σ c = I c I r + I g + I b … … ( 2 ) {\sigma _c} = \frac{{{I_c}}}{{{I_r} + {I_g} + {I_b}}}……(2) σc​=Ir​+Ig​+Ib​Ic​​……(2)c表示某一色彩通道。

是以,位于無窮遠的場景,其色度為:

α c = L ∞ c L ∞ r + L ∞ g + L ∞ b … … ( 3 ) {\alpha _c} = \frac{{{L_{\infty c}}}}{{{L_{\infty r}} + {L_{\infty g}} + {L_{\infty b}}}}……(3) αc​=L∞r​+L∞g​+L∞b​L∞c​​……(3)若場景中不存在散射,則有

γ c = L ∞ c ρ c L ∞ r ρ r + L ∞ g ρ g + L ∞ b ρ b … … ( 4 ) {\gamma _c} = \frac{{{L_{\infty c}}{\rho _c}}}{{{L_{\infty r}}{\rho _r} + {L_{\infty g}}{\rho _g} + {L_{\infty b}}{\rho _b}}}……(4) γc​=L∞r​ρr​+L∞g​ρg​+L∞b​ρb​L∞c​ρc​​……(4)故而,由上面(3)(4)式可以将(1)轉換為:

I ( x ) = D ( x ) e − β d ( x ) γ ( x ) + A ( x ) α … … ( 5 ) {\bf{I}}(x) = D(x){e^{ - \beta d(x)}}\gamma (x) + A(x){\bf{\alpha }}……(5) I(x)=D(x)e−βd(x)γ(x)+A(x)α……(5)其中:

D ( x ) = L ∞ r ρ r + L ∞ g ρ g + L ∞ b ρ b … … ( 6 ) D(x) = {L_{\infty r}}{\rho _r} + {L_{\infty g}}{\rho _g} + {L_{\infty b}}{\rho _b}……(6) D(x)=L∞r​ρr​+L∞g​ρg​+L∞b​ρb​……(6) A ( x ) = ( L ∞ r + L ∞ g + L ∞ b ) ( 1 − e − β d ( x ) ) … … ( 7 ) A(x) = ({L_{\infty r}} + {L_{\infty g}} + {L_{\infty b}})(1 - {e^{ - \beta d(x)}})……(7) A(x)=(L∞r​+L∞g​+L∞b​)(1−e−βd(x))……(7)D和A都是标量, γ \gamma γ和 α \alpha α是歸一化彩色向量。

根據色度的定義可知: ∑ σ c = σ r + σ g + σ b = 1 {\sum {{\sigma _c} = } {\sigma _r} + {\sigma _g} + {\sigma _b} = 1} ∑σc​=σr​+σg​+σb​=1, ∑ γ c = γ r + γ g + γ b = 1 {\sum {{\gamma _c} = } {\gamma _r} + {\gamma _g} + {\gamma _b} = 1} ∑γc​=γr​+γg​+γb​=1, ∑ α c = α r + α g + α b = 1 {\sum {{\alpha _c} = } {\alpha _r} + {\alpha _g} + {\alpha _b} = 1} ∑αc​=αr​+αg​+αb​=1。

白大氣光:

利用光色 ( α ) (\alpha) (α),我們可以轉換大氣光值為白色,通過簡單的歸一化即可實作:

I ′ c ( x ) = I c ( x ) / α c … … ( 8 ) → {{I'}_c}(x) = {I_c}(x)/{\alpha _c} ……(8)→ I′c​(x)=Ic​(x)/αc​……(8)→ I ′ c ( x ) = D ( x ) e − β d ( x ) γ c α c + A ( x ) = D ( x ) e − β d ( x ) γ ′ c + A ( x ) … … ( 10 ) {{I'}_c}(x) = D(x){e^{ - \beta d(x)}}\frac{{{\gamma _c}}}{{{\alpha _c}}} + A(x) = D(x){e^{ - \beta d(x)}}{{\gamma '}_c} + A(x)……(10) I′c​(x)=D(x)e−βd(x)αc​γc​​+A(x)=D(x)e−βd(x)γ′c​+A(x)……(10)其中 γ ′ c {{\gamma '}_c} γ′c​表示歸一化的目标色度。 I ′ c {{I'}_c} I′c​即是我們轉化大氣光點為白點的結果。

最終方程可以寫成彩色向量的形式:

I ′ ( x ) = D ( x ) γ ′ ( x ) e − β d ( x ) + A ( x ) [ 1   1   1 ] T … … ( 11 ) I'(x) = D(x)\gamma '(x){e^{ - \beta d(x)}} + A(x){\left[ {1{\text{ }}1{\text{ }}1} \right]^{\text{T}}}……(11) I′(x)=D(x)γ′(x)e−βd(x)+A(x)[1 1 1]T……(11)其中 I ′ I' I′和 γ ′ \gamma' γ′是歸一化彩色向量,其餘變量都是标量。

2. 問題描述

參考方程(11)并假設我們有 I ′ ( x ) I'(x) I′(x)和 L ∞ L_\infty L∞​的值,故而本文的目标是估計整個圖像的 D ( x ) γ ′ ( x ) D(x)\gamma'(x) D(x)γ′(x)。這幅圖像表示場景輻照度(未被散射和吸收)。

估計 D ( x ) γ ′ ( x ) D(x)\gamma'(x) D(x)γ′(x)實際上相當于估計A。我們可以根據以下流程進行計算:首先,基于方程(7),我們有

e − β d ( x ) = ∑ c L ∞ c − A ( x ) ∑ c L ∞ c … … ( 12 ) {e^{ - \beta d(x)}} = \frac{{\sum\nolimits_c {{L_{\infty c}}} - A(x)}}{{\sum\nolimits_c {{L_{\infty c}}} }}……(12) e−βd(x)=∑c​L∞c​∑c​L∞c​−A(x)​……(12)其中 ∑ c L ∞ c = L ∞ r + L ∞ g + L ∞ b {\sum\nolimits_cL_{\infty c}}={{L_{\infty r}} + {L_{\infty g}} + {L_{\infty b}}} ∑c​L∞c​=L∞r​+L∞g​+L∞b​.其次,基于方程(11)有

Tan基于最大化對比度的去霧方法一、摘要二、基本原理三. 計算方法四、實驗結果與分析

是以,我們首先估計A值,而不是直接估計 D γ ′ D\gamma' Dγ′,這大大簡化了計算過程。因為A獨立物體的反射率,而僅僅依賴于成像深度d,這裡我們已經假設 β \beta β和 L ∞ L_\infin L∞​是全局常數。

3. 使用單幀圖像進行求解

在第一小節中描述問題是一個完全病态的問題:方程(11)已知的變量數少于未知的變量數。然而,這裡有一些線索或者先驗可以被考慮進來:

  • ①輸出圖像 D γ ′ D\gamma' Dγ′相比于輸入圖像必須有更大的對比度;
  • ②A值的變化隻依賴于場景深度,即相同成像距離具有相同的A值,無需考慮反射率。是以A的鄰域趨向于有相同的值。再者,在很多情況下A在很小的區域是平滑變化的。隻有在場景中depth斷層的地方例外,但這些像素總體較少。
  • ③除了以上兩個主要的先驗外,我們同樣可以考慮:被惡劣天氣幹擾的圖像通常情況下都是采集戶外自然場景。是以準确的 D γ ′ D\gamma' Dγ′必須符合清晰自然圖像的特點。

3.1 最大化對比度

針對第一條線索,我們定量地定義與邊緣數量相關的圖像對比度,它可以表示為:

C e d g e s ( I ) = ∑ x , c ∣ ∇ I c ( x ) ∣ … … ( 14 ) {C_{edges}}(I) = \sum\limits_{x,c} {\left| {\nabla {I_c}(x)} \right|}……(14) Cedges​(I)=x,c∑​∣∇Ic​(x)∣……(14)其中 ∇ \nabla ∇是沿着x軸與y軸的差分操作。這個方程表明了對比度更大的圖像具有更多的邊緣。換而言之,清晰圖像相比于霧圖具有更多的邊緣,也即 C e d g e s ( D γ ′ ) > C e d g e s ( I ′ ) {C_{edges}}(D\gamma')>{C_{edges}}(I') Cedges​(Dγ′)>Cedges​(I′)。

從第一小節我們已經知道 D γ ′ D\gamma' Dγ′可以根據方程(7)從A中獲得: 0 ⩽ A ( x ) ⩽ ∑ c L ∞ c ( x ) 0 \leqslant A(x) \leqslant \sum\limits_c {{L_{\infty c}}(x)} 0⩽A(x)⩽c∑​L∞c​(x)。

是以,我們準備一小圖像塊(假設塊中depth和 β \beta β是常數),那麼存在一個标量A,它可以給出正确的 D γ ′ D\gamma' Dγ′,其中 D γ ′ D\gamma' Dγ′必須滿足: C e d g e s ( D γ ′ ) > C e d g e s ( p ) {C_{edges}}(D\gamma')>{C_{edges}}(p) Cedges​(Dγ′)>Cedges​(p)和 0 ⩽ D γ ′ ⩽ L ∞ c 0 \leqslant D\gamma' \leqslant {{L_{\infty c}}} 0⩽Dγ′⩽L∞c​。

進一步表示 D γ ′ D\gamma' Dγ′為:

C e d g e s ( D γ ′ ) = ∑ c L ∞ c ∑ c L ∞ c − A ∑ x , c ∣ ( I ′ x , c − I ′ x − 1 , c ) ∣ {C_{edges}}(D\gamma ') = \frac{{\sum\nolimits_c {{L_{\infty c}}} }}{{\sum\nolimits_c {{L_{\infty c}}} - A}}\sum\limits_{x,c} {\left| {\left( {{{I'}_{x,c}} - {{I'}_{x - 1,c}}} \right)} \right|} Cedges​(Dγ′)=∑c​L∞c​−A∑c​L∞c​​x,c∑​∣(I′x,c​−I′x−1,c​)∣

在一小塊區域中,通過設定不同的A找到對比度最大時的情況;

Tan基于最大化對比度的去霧方法一、摘要二、基本原理三. 計算方法四、實驗結果與分析

通過設定不同的A,我們繪制出對比度的變化曲線:

Tan基于最大化對比度的去霧方法一、摘要二、基本原理三. 計算方法四、實驗結果與分析

本文中提到,當對比度取得最大值時,不一定是物體真實的輻照度情況,但它極大地增強了圖像的對比度;

3.2 大氣光的平滑限制

根據第二個線索,A在大部分像素上是平滑的。由此啟發我們使用馬爾科夫場來對A模組化。我們建立了潛在的馬爾科夫場函數:

E ( { A x } ∣ p x ) = ∑ ϕ ( p x ∣ A x ) + η ∑ x , y ∈ N x ψ ( A x , A y ) … … ( 17 ) E\left( {\left\{ {{A_x}} \right\}|{p_x}} \right) = \sum\limits_{} {\phi \left( {{p_x}|{A_x}} \right) + \eta \sum\limits_{x,y \in {N_x}} {\psi \left( {{A_x},{A_y}} \right)} } ……(17) E({Ax​}∣px​)=∑​ϕ(px​∣Ax​)+ηx,y∈Nx​∑​ψ(Ax​,Ay​)……(17)其中 p x p_x px​是以x為中心的小塊,并假設 A x ≡ A ( x ) {A_x} \equiv A(x) Ax​≡A(x)。 η \eta η是平滑項的強度, N x N_x Nx​表示x的鄰域。我們定義第一項為:

ϕ ( p x ∣ A x ) = C e d g e s ( [ D γ ′ ] x ∗ ) m … … ( 18 ) \phi \left( {{p_x}|{A_x}} \right) = \frac{{{C_{edges}}([D\gamma ']_x^*)}}{m}……(18) ϕ(px​∣Ax​)=mCedges​([Dγ′]x∗​)​……(18)m用于歸一化對比度,使得機率小于1大于0。m的值依賴于塊的尺寸。第二項(平滑項)定義為:

ψ ( A x , A y ) = 1 − ∣ A x − A y ∣ ∑ c L ∞ c \psi \left( {{A_x},{A_y}} \right) = 1 - \frac{{\left| {{A_x} - {A_y}} \right|}}{{\sum\nolimits_c {{L_{\infty c}}} }} ψ(Ax​,Ay​)=1−∑c​L∞c​∣Ax​−Ay​∣​這個方程激勵A_x的鄰域變得平滑。

為了找到所有{A_x}的值,我們必須最大化p{A_x}的機率分布。可以使用現存的推理技術,如圖形切割或置信傳播。

三. 計算方法

Tan基于最大化對比度的去霧方法一、摘要二、基本原理三. 計算方法四、實驗結果與分析

根據對本文算法的了解,自行實作相應的代碼。

四、實驗結果與分析

1. 薄霧的情況

Tan基于最大化對比度的去霧方法一、摘要二、基本原理三. 計算方法四、實驗結果與分析

從結果上看,本文的方法在求解模型的基礎上給出了最大對比度的結果,相比于直方圖均衡化,具有更真實的輻照情況。在計算過程中,其對比度變化曲線如下:

Tan基于最大化對比度的去霧方法一、摘要二、基本原理三. 計算方法四、實驗結果與分析

2. 較濃霧的情況

Tan基于最大化對比度的去霧方法一、摘要二、基本原理三. 計算方法四、實驗結果與分析

當霧比較濃時,從分辯場景的角度來看,直方圖均衡化具有更明顯的效果。對應的對比度變化曲線:

Tan基于最大化對比度的去霧方法一、摘要二、基本原理三. 計算方法四、實驗結果與分析

繼續閱讀