[圖像處理] 濾波器對圖像雜訊處理比較 (下)

本文說明幾種濾波器在不同雜訊種類、雜訊比例下的處理效果,總結雜訊處理對應合適的濾波器,並在最後說明為什麼需要自適應濾波器。本文分為系列文下篇,上篇示範濾波器在無雜訊與均勻雜訊的效果,本篇則說明濾波器在高斯 (Gaussian Noise)與脈衝雜訊 (Impulse noise)的處理效果。

Ben Hsu
Sep 16, 2023

目錄

  1. 高斯雜訊的處理
  2. 脈衝雜訊
  3. 鹽式/胡椒雜訊 — 當雜訊為白點/黑點
  4. 椒鹽雜訊 — 當雜訊為黑白混合
  5. 結論

1. 高斯雜訊的處理

高斯雜訊產生的原因可能源自照明不佳或是取像設備本身的雜訊,此雜訊的機率密度函數可以寫為:

設定高斯雜訊之 (z^bar、sigma)表示雜訊的灰度值有95%會落在±50內,但有5%雜訊會超出此範圍,影響較均勻分布大。加入雜訊結果如圖1.。

圖1. 加入高斯雜訊的狀態

圖2 為使用不同濾波器對30%高斯濾波器的濾波結果,結果與均勻雜訊相似,中位數濾波器有最好的結果。

圖2. 均勻、排序濾波器對高斯雜訊的處理效果

接著比較表現最好的中位數濾波器,在更高比例的高斯雜訊的效果,如圖3. ,當高斯雜訊比例提升至70%時,擴大kernel size可以有效過濾雜訊,但會造成圖像模糊。

圖3. 中位數濾波器在不同kernel size下,對50%、70%高斯雜訊效果

2. 脈衝雜訊

脈衝雜訊由隨機的黑點與白點組成,可以分為下列三種:

  • 胡椒雜訊 (pepper noise):雜訊為黑點
  • 鹽式雜訊(salt noise):雜訊為白點
  • 胡椒鹽雜訊(salt-and-pepper noise):雜訊為黑點與白點

圖像黑點與白點對應灰度值為0與255,容易成為整張圖像的極端值,平均濾波器容易受極端值影響,因此不容易有好的效果,而排序型的濾波器則可以排除離群值,會有較好的濾波效果。

2.1 鹽式/胡椒雜訊 — 當雜訊為白點/黑點

這裡以白點的鹽式雜訊為例,黑點的胡椒雜訊處理方式相反。圖4. 可以看到,相較於高斯與均勻,鹽式雜訊更大程度的影響了圖像,70%鹽式雜訊幾乎讓圖像的圓形邊界消失。

圖4. 加入鹽式雜訊情形

圖5. 為不同濾波顯對鹽式雜訊的處理效果,而表現最好的是最小值濾波器,幾乎將所有白點(灰度值255)去除,其次是中位數濾波器,而最大值濾波器反而使圖像更為模糊。

圖5. 使用不同濾波器對30%鹽式雜訊的濾波結果

接著來看中位數與最小值濾波器在更高比例鹽式雜訊的效果,圖6. 為中位數與最小濾波器在kernel size為3×3的濾波結果,可以看到中位數濾波器無法處理50%以上的鹽式雜訊,原因在於中位數濾波是取範圍內中心灰度值做代表,所以當鹽式雜訊的比例超出50%時,圖像會被破壞,此時就必須要使用最小值濾波器;

圖6. 以kernel size 3×3 對50%、70%鹽式雜訊的濾波結果

圖7. 為提高kernel size的結果,可以看到50%的中位數濾波效果仍不錯,但只要雜訊比例到達70%,就僅能使用最小值濾波器處理,但也可以發現最小值濾波器讓圓形膨脹。

圖7. 以kernel size 13×13 對50%、70%鹽式雜訊的濾波結果

2.2 椒鹽雜訊 — 當雜訊為黑白混合

這裡使用胡椒鹽雜訊 (s&p noise, biopolar impulse noise),是鹽式與胡椒雜訊各占一半,例如30%的胡椒鹽雜訊,會有15%的鹽式雜訊與15%的胡椒雜訊。

圖8. 加入胡椒鹽雜訊

圖9. 為各濾波器面對30%胡椒鹽雜訊的結果,表現最佳的是中位數濾波器,幾乎只有些微的黑白點。但其他種類的濾波器,均無法去除雜訊。

圖9. 排序濾波器以kernel size 3×3 對30%胡椒鹽雜訊的濾波結果

圖10. 將胡椒鹽雜訊提升至50%與70%,可以看到中位數濾波器在 3×3的kernel size 無法有效去除雜訊,如圖10. 左上與左下;當雜訊密度在50%時,提升kernel size有幫助,如圖10 右上;當雜訊密度在70%時,提升kernel size也產生嚴重的圖像失真,如圖10. 右下。

圖10. 中位數濾波器在不同脈衝雜訊比例與kernel size的結果

透過上面的實驗,可以理解到使用傳統的濾波器調整時,需要針對雜訊的比例調整kernel size,才能有效去除雜訊。但這在實務上很難做到。此時就需要導入自適應濾波器來處理。

圖11. 上排為未濾波帶有雜訊的圖像,中排為使用中位數濾波器的結果,下排為使用自適應中位數濾波器的結果。可以看到自適應中位數濾波與中位數濾波器效果持平,甚至表現更好。

圖11. 中位數與自適應中值濾波器對不同胡椒鹽雜訊濾波前後比較

3. 結論

從上述的實驗,可以整理出幾個結論:

  • 當雜訊低於50%,不論是高斯、均勻或是脈衝雜訊,使用中位數濾波器可以有好的結果
  • 當雜訊高於50%,鹽式雜訊建議使用最小值濾波器;胡椒雜訊使用最大值濾波器;胡椒鹽雜訊使用中位數濾波器
表1. 不同雜訊比例下濾波器選擇

最後來看一個極端案例,圖12. 左上圖,是加入了90%的胡椒鹽雜訊,基本上什麼都看不出來了,此時我們想將對此圖形去噪。步驟如下:

  • 繪製直方圖來判斷雜訊污染的種類:如圖12. 右上圖,分布於0與255有大量數值,可以看出圖形受到胡椒鹽雜訊污染。
  • 決定使用的濾波器:參考表1,胡椒鹽雜訊需要使用中位數濾波器。
  • 中位數濾波結果:如圖12. 左下,發現效果不佳,不太能看出圖形原貌。
  • 自適應中位數濾波結果:如圖12. 右下,可以看到濾波結果可以看出圖像中有一個風扇,線路,恢復效果較更佳。
圖12. 恢復加入90%胡椒鹽雜訊的NVIDIA Jetson TX2

使用自適應中位數濾波器,即使圖像有9成被汙染,仍然可以恢復成能夠辨識的程度,這是一般中位數濾波器無法做到的。有空時,再介紹幾種進階的濾波器,目標可以處理高比例、多種雜訊混雜的情況。

--

--