博客 / 詳情

返回

高光譜成像(五)高光譜成像的噪聲估計

在上一篇中,我們介紹了最小噪聲分數變換 MNF,它在 PCA 基礎上引入噪聲建模的一種改進降維方法,但我們也提到了:MNF 依賴噪聲估計,其效果很大程度依賴噪聲協方差矩陣的估計,如果噪聲估計不準確,降維效果可能明顯下降。

換句話説,噪聲估計的質量,直接決定了 MNF 的最終效果。

因此,如果希望在高光譜圖像處理中更好地應用 MNF,一個關鍵問題就是:

如何更準確地估計圖像中的噪聲?

這也是本篇文章的主要內容。
我們從上一篇中提到的空間差分方法出發,進行對噪聲估計方法的簡單綜述,簡要講解現存的幾類噪聲估計方法的基本原理與適用場景。


1. 差分類方法(Difference-based Methods)

差分類方法的核心思想是:利用鄰域像素之間的差值來削弱真實信號,從而突出噪聲成分。
展開來説,在自然圖像或高光譜圖像中,真實信號通常具有一定的空間連續性,相鄰像素之間變化較為平滑。而噪聲往往是隨機波動的,因此,對相鄰像素進行差分運算時,信號部分往往會相互抵消,而噪聲則會被保留下來。

在諸多方法中,這類方法的優點是實現簡單、計算效率高
但與此同時,差分法依賴一個重要假設:相鄰像素之間的真實信號變化較小。當圖像中存在明顯的邊緣或紋理結構時,差分結果會混入真實信號變化,從而導致噪聲被高估。
而且,差分法只利用局部空間信息,而沒有利用高光譜數據中波段之間的相關性,也讓其在複雜任務中稍顯遜色。
因此,這類方法更適用於圖像變化較平滑的場景,作為一種快速、基礎的噪聲估計手段

差分類方法中最簡單的就是我們在上一篇中使用的單向空間差分(Spatial Difference)

\[\hat{N} = X(i,j) - X(i+1,j) \]

其利用相鄰像素之間的簡單差值來估計噪聲。

而在此基礎上一種簡單的改進方法是使用雙向差分(Bidirectional Difference)
在剛剛的空間差分中,我們只在一個方向上進行差分,但實際上,圖像結構可能在某個方向上變化較大,如果只使用單一方向的差分,可能會把真實信號變化誤當成噪聲。
因此,可以同時在水平和垂直方向進行差分:

\[\hat{N}_h = X(i,j) - X(i+1,j) \]

\[\hat{N}_v = X(i,j) - X(i,j+1) \]

然後再將兩個方向的差分結果進行統計,例如計算整體方差,從而得到更加穩定的噪聲估計。

還沒完,在此基礎上,還可以進一步擴展為多方向差分(Directional Difference):
這種方法不僅考慮水平和垂直方向,還會加入對角線方向的差分,例如:

\[\hat{N}_d = X(i,j) - X(i+1,j+1) \]

\[\hat{N}_{d2} = X(i,j) - X(i+1,j-1) \]

這樣就可以在多個方向上估計噪聲,然後將這些差分結果綜合起來進行統計分析。
多方向差分可以進一步降低圖像中邊緣、紋理等局部結構變化對噪聲估計造成的干擾,從而獲得更加可靠的估計結果。

我們用一個簡單的實例來進行演示:
接下來我們利用這些像素,通過不同的差分方式構造噪聲樣本。
假設有 四個相鄰像素\(P_1、P_2、P_3、P_4\),它們在空間中的位置如下:

\[\begin{matrix} P_1 & P_2 \\ P_3 & P_4 \end{matrix} \]

其中,每個像素都是一個 3 維光譜向量(3 個波段):

\[P_1 = [100,50,30] \quad\quad P_2 = [102,52,31] \]

\[P_3 = [101,49,29] \quad\quad P_4 = [103,51,30] \]

現在,在這個 \(2\times2\) 的鄰域中,豎直方向可以得到兩組相鄰像素:

  • 第一列:\(P_1\)\(P_3\)
  • 第二列:\(P_2\)\(P_4\)

因此計算它們的差分:

\[n_1 = P_1 - P_3=[100,50,30] - [101,49,29]=[-1,1,1] \]

\[n_2 = P_2 - P_4 = [102,52,31] - [103,51,30]=[-1,1,1] \]

可以看到,每一次像素差分都會得到一個 3 維噪聲向量
接下來,我們將這些差分結果按行堆疊,構造噪聲樣本矩陣:

\[N = \begin{bmatrix} -1 & 1 & 1 \\ -1 & 1 & 1 \end{bmatrix} \]

在這個矩陣中:每一行就表示一個噪聲樣本,每一列就表示一個波段的噪聲值。

現在,我們都得到了使用單向差分構造的噪聲樣本矩陣,下一步,我們就在此基礎上使用雙向差分來看看:
在雙向差分中,我們不僅考慮 豎直方向,還要加入 水平方向 的差分。
因此我們繼續計算水平方向差分:

\[n_3 = P_1 - P_2 =[100,50,30] - [102,52,31]=[-2,-2,-1] \]

\[n_4 = P_3 - P_4 = [101,49,29] - [103,51,30]=[-2,-2,-1] \]

可以看到,水平方向同樣得到了兩個 3 維噪聲樣本向量。接下來,我們將 豎直方向和水平方向得到的噪聲樣本統一堆疊,構造新的噪聲樣本矩陣:

\[N = \begin{bmatrix} -1 & 1 & 1 \\ -1 & 1 & 1 \\ -2 & -2 & -1 \\ -2 & -2 & -1 \end{bmatrix} \]

可以看到,相比單向差分,雙向差分產生了 兩倍數量的噪聲樣本
因此,我們獲得了 更多的噪聲觀測數據,從而能夠得到更加穩定的噪聲統計結果。

最後,我們進一步加入 對角線方向的差分

\[n_5 = P_1 - P_4 = [100,50,30] - [103,51,30] = [-3,-1,0] \]

\[n_6 = P_2 - P_3 = [102,52,31] - [101,49,29] = [1,3,2] \]

我們將得到的噪聲樣本統一堆疊,構造完整的噪聲樣本矩陣如下:

\[N = \begin{bmatrix} -1 & 1 & 1 \\ -1 & 1 & 1 \\ -2 & -2 & -1 \\ -2 & -2 & -1 \\ -3 & -1 & 0 \\ 1 & 3 & 2 \end{bmatrix} \]

你會發現,通過在多個方向上構造差分,我們不僅能夠獲得更多的噪聲觀測數據,還可以降低圖像中某一特定方向結構變化對噪聲估計造成的影響,從而得到更加穩定和可靠的噪聲統計結果。

2. 統計類方法(Statistics-based Methods)

統計類方法的核心思想是:利用圖像局部區域的統計特性來估計噪聲強度。
這類方法同樣基於一個基本假設:在較小的空間窗口內,真實信號變化相對緩慢,因此像素之間的差異主要來源於噪聲。如果能夠在圖像中找到變化較平緩的區域,那麼該區域內像素的統計波動就可以用來估計噪聲強度。

從思想上來看,這類方法與前面介紹的差分類方法有一定相似之處:二者都依賴於“局部區域內真實信號相對穩定”的假設。不同之處在於,差分法通過計算相鄰像素之間的差值來顯式削弱信號,而統計類方法則是通過分析局部像素分佈的統計特性(如方差)來間接估計噪聲水平。
在實際應用中,統計類方法通常會在圖像上使用滑動窗口計算局部統計量,或者篩選出方差較小的平滑區域進行估計,因此相比簡單差分方法往往具有更好的穩定性
但它也同樣有其缺陷,統計類方法對窗口尺寸的選擇敏感,過小窗口可能無法充分反映噪聲統計特性,過大窗口又可能引入更多信號變化,對估計精度產生影響。
同時,對於非平穩噪聲,其適應性也較差。

因此,這類方法同樣適用於信號變化較平緩、平滑區域豐富的圖像,作為一種穩健的噪聲估計手段,適合需要對每個波段分別評估噪聲強度的高光譜圖像

最常用的統計方法是局部方差估計(Local Variance Estimation)
其基本步驟通常如下:

  1. 在圖像中選取一個局部窗口,例如 \(5\times5\)\(7\times7\)
  2. 計算窗口內像素的均值
  3. 再計算窗口內像素相對於均值的方差,並將其作為噪聲強度的估計。

其思想也比較好理解:假定某個區域的像素屬於同一個分類,那麼像素值本應接近一致,因此局部像素的波動(方差)主要來源於噪聲,這樣就可以用方差來量化噪聲強度。

在此基礎上,還可以進一步進行改進。例如,一些方法會在整幅圖像中滑動窗口,計算大量局部方差,然後選擇方差最小的一部分區域作為噪聲估計的依據。
這是因為方差較小的區域通常對應信號變化較平滑的背景區域,因此更接近真實噪聲水平。

同樣來看一個實例:
假設在某個局部窗口中,我們觀測到 5 個像素,每個像素包含 3 個波段,數據如下:

\[X = \begin{bmatrix} 100 & 50 & 30 \\ 102 & 52 & 31 \\ 101 & 49 & 29 \\ 99 & 51 & 30 \\ 98 & 50 & 31 \end{bmatrix} \]

首先,計算每個波段的均值向量:

\[\bar{X} = \frac{1}{5} \sum_{i=1}^{5} X_i = [100, 50.4, 30.2] \]

然後,將每個像素與均值向量的差值構成偏差矩陣:

\[\Delta = X - \bar{X} = \begin{bmatrix} 0 & -0.4 & -0.2 \\ 2 & 1.6 & 0.8 \\ 1 & -1.4 & -1.2 \\ -1 & 0.6 & -0.2 \\ -2 & -0.4 & 0.8 \end{bmatrix} \]

接下來,計算噪聲協方差矩陣

\[C_n = \frac{1}{5} \Delta^T \Delta = \begin{bmatrix} 2 & 0.4 & 0.4 \\ 0.4 & 1.12 & 0.56 \\ 0.4 & 0.56 & 0.72 \end{bmatrix} \]

現在,我們得到的局部協方差矩陣就可以直接用於 MNF 白化步驟
而如果我們選擇了多個局部窗口,得到的多個協方差矩陣也只需要取平均聚合後,就可以應用於 MNF。

此外,除去使用方差之外,也存在使用標準差、絕對偏差、最小二乘擬合殘差或 robust 方差的形式,但只是所求統計量的不同,其基本邏輯仍是一樣的。

3. 迴歸類方法(Regression-based Methods)

迴歸類方法的核心思想是:通過建立像素或波段之間的預測關係,將預測殘差視作噪聲,從而進行噪聲估計
與前兩類方法相比,迴歸類方法不僅利用局部空間信息,還可以利用高光譜數據中波段間的相關性,因此在多波段高光譜圖像中往往更加精確。
在不考慮計算成本、只追求噪聲估計精度的情況下,迴歸類方法是目前高光譜領域最權威、精確的噪聲估計方法

迴歸類方法常見做法如下:

  1. 對目標波段建立迴歸模型,用相鄰像素或其他波段進行預測。
  2. 計算預測殘差,將殘差作為噪聲樣本。
  3. 對整個圖像或多個像素重複該過程,得到噪聲估計矩陣或協方差矩陣,可直接用於 MNF 白化或噪聲分析。

對這類方法,我們需要先補充一部分理論基礎:
首先,高光譜圖像的波段間是高度相關的:高光譜圖像的每個像素都有多個波段,這些波段的光譜響應往往是連續且相關的。比如對於植被像素,紅邊波段和近紅外波段的值之間存在一定的線性或非線性關係。
一般來説,高光譜圖像中波段距離越近,相關性越強。但噪聲是設備誤差等原因產生的,它通常在各個波段中是隨機的。

因此,當我們選取波段相近的幾個鄰居,用迴歸模型去預測一個波段的真實信號,再計算觀測值與其的殘差,得到的不符合預測模式的波動,我們就認為這是噪聲。

同樣來看一個例子:
假設某像素在 三個波段 的觀測值為:

\[x = [100, 50, 30] \]

此時,我們希望估計波段 3 的噪聲。就可以利用波段 1 和波段 2 的值建立一個線性迴歸模型:$$ \hat{x}_3 = a \cdot x_1 + b \cdot x_2 + c $$ 在圖像中選取多個像素,利用最小二乘法或其他迴歸方法求解參數 \(a, b, c\)。得到預測值,我們假定如下:

\[\hat{x}_3=28 \]

下面,我們將實際觀測值與預測值相減,就能得到殘差:

\[r = x_3 - \hat{x}_3=30-28=2 \]

這個殘差 \(r=2\) 就可以作為該像素在波段 3 上的噪聲樣本,對圖像中多個像素重複上述過程,就可以得到整幅圖像波段 3 的噪聲樣本向量。

如果對每個波段都建立類似迴歸模型,得到各波段的殘差向量,就可以構造完整的噪聲樣本矩陣 \(N\)

\[ N = \begin{bmatrix} r_1^{(1)} & r_2^{(1)} & r_3^{(1)} \\ r_1^{(2)} & r_2^{(2)} & r_3^{(2)} \\ \vdots & \vdots & \vdots \\ r_1^{(m)} & r_2^{(m)} & r_3^{(m)} \end{bmatrix} \]

其中每一行表示一個像素的殘差,每一列表示一個波段的噪聲樣本。然後就可以進一步計算噪聲協方差矩陣。
迴歸類方法 利用波段間的相關性,可以得到更精確的噪聲協方差矩陣,從而在後續的 MNF 或噪聲白化處理中提供可靠的噪聲信息,是目前公認的高精度噪聲估計方法。
在目前的高光譜噪聲估計領域,研究重點也大都集中在改進迴歸模型精度、引入非線性或多變量預測策略,以進一步提高噪聲估計的可靠性上。

4.總結

方法類別 核心思想 優點 限制 適用場景
差分類方法 利用鄰域像素差值削弱真實信號,將差分結果視作噪聲。 實現簡單、計算效率高。 假設相鄰像素信號變化小;邊緣或紋理區域易高估噪聲;只利用空間信息。 圖像平滑、變化不劇烈的場景;快速噪聲估計。
統計類方法 利用局部窗口內像素統計特性(如方差)估計噪聲。 穩定性較好;可直接得到噪聲強度或協方差。 對窗口尺寸敏感;對非平穩噪聲適應性差。 信號變化平緩、平滑區域豐富的圖像;需每波段噪聲估計。
迴歸類方法 利用波段或鄰域像素建立預測模型,將預測殘差視作噪聲。 精度高;利用空間和波段相關性;可直接用於噪聲協方差矩陣構建。 計算成本高;模型擬合需足夠像素樣本。 追求高精度噪聲估計,尤其用於 MNF 或高精度降維。
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.