李曉勇,舒宇鋒,盧 軍,唐 陳,李紅玉
(1.瀘州市氣象局,瀘州 646000;2.成都信息工程大學,成都 610225;3.德陽市氣象局,德陽 618000)
傳統的天氣檢測方法就是在各個城市周邊地區設立相應的氣象觀測站,在氣象觀測站中放置空氣溫濕度傳感器、大氣壓力傳感器、監控攝像頭等設備實時對當地區域的氣象信息進行采集[1]。這種傳統的天氣檢測方法可以準確采集到監測區域的氣象信息,但是這對于其他沒有設立氣象觀測站的地區就形成了“監測死角”;而在現實中,往往是將當地氣象觀測站采集的氣象信息作為整個區域的氣象標準,這對于特殊地區(高速公路,事故多發地等)的復雜天氣就顯得不夠準確。
針對上述問題,國內外都提出了一些改進的方法,而這些方法都是需要增加新的傳感器在監控系統上。如:譚永宏設計的嵌入式氣象信息采集系統[2]、蔣方勝設計的基于ARM 的自動氣象站系統[3]以及王柏林設計的隨車移動式自動氣象站[4]。雖然這些方法都在一定程度解決了氣象觀測站的成本大、需求土地資源大的問題,但是無法避免新增加硬件的損耗以及后期人員維護的管理問題。因此,找出一個在原設施基礎上新的極端天氣監測方法就顯得至關重要。
在出現極端天氣的地區,通過監控器拍攝下來的圖像是不一樣的,在晴朗天氣狀況的城市(圖1a)和高速公路(圖1b),以及在濃霧天氣狀況下的城市(圖1c)和高速公路(圖1d)。


圖1
由圖像可以很直觀地看出在不同的天氣狀況下,同一個地區的圖像的清晰程度(可見度)[5]是不一樣的,因此,可以判斷圖像的模糊度和極端天氣是有聯系的。圖像的模糊度又可以理解為圖像邊緣的特征模糊,而檢測圖像的模糊度[6]就可以轉換為圖像的邊緣檢測。
圖像的邊緣地區像素值會發生“突變”,而對于這些“突變”的區域進行求導時會看到極值的出現,如圖2所示。而對其求二階導數時就會發現“突變”區域會通過坐標系原點,也就是其二階導數為0,如圖3所示。因此,可以用這個特點開作為檢測圖像邊緣的方法,即:Laplacian 算子。

圖2 “突變”區域極值圖

圖3 “突變”區域二階導數圖
因為圖像是“2維”的,需要在x和y兩個方向進行求導,所以Laplacian 算子公式定義如下:

在圖像處理的計算中經常采用公式的近似式,在x方向上為:

在y 方向上為:

進一步可得出在x 與y 方向上的離散計算公式:

由于Laplacian 算子對噪聲敏感度較高[7],因此,使用Laplacian 算子進行模糊度計算時通常需要在之前進行降噪處理,而經常使用的降噪方法為高斯濾波降噪。
高斯濾波器是一類根據高斯函數的形狀來選擇權值的線性平滑濾波器,對于抑制服從正態分布的噪聲非常有效[8]。對于圖像來說,高斯濾波器是利用高斯核的一個2維的卷積算子,用于圖像模糊化(去除細節和噪聲)。由于圖像是“2維”的,因此采用二維高斯分布公式:

高斯濾波后圖像被平滑的程度取決于標準差。它的輸出是領域像素的加權平均,同時離中心越近的像素權重越高。因此,相對于均值濾波(mean filter)的平滑效果更柔和,而且邊緣保留的也更好。
先將圖像進行高斯濾波去除大部分噪聲,然后將處理后的圖像進行laplacian 算子計算,得出圖像的模糊度值,這樣的方法被稱為高斯-拉普拉斯算子,簡稱為LOG 算子[9~11]。將圖1a–圖1d 使用LOG 算子進行計算,將模糊度標注在圖像中,得到圖4a’–圖4d’。


圖4
由圖4a’和圖4b’、圖4c’和圖4d’的對比可以看出在不同天氣狀況下相同場景的LOG 值是不一樣的,晴朗天氣下圖像的LOG 值比霧天天氣下的圖像大,這是因為晴朗天氣下的圖像特征邊緣多導致像素點之間的“突變”情況也多;而霧天天氣下的圖像特征邊緣同化情況嚴重導致像素點之間的“突變”情況變少,所以Laplacian 值小。
本實驗使用四川省氣象局提供的“綿竹市”氣象觀測站的監控數據以及雨量檢測數據作為實驗樣本。并且取時間連續且有極端天氣出現的白天數據:2018年6月25日早上9點至下午6點的降雨數據。如圖5所示。

圖5 綿竹降雨數據圖
之后對視頻使用FFmepg 進行截取為圖像,本實驗6秒截取一次,每分鐘10張圖像,并且取10張圖像LOG值的均值作為每分鐘的LOG 值。采用圖像處理可以節省視頻逐幀處理的時間浪費。最終將監控視頻產生的圖像LOG 值繪制為一條曲線與“綿竹市”雨量檢測數據繪制的曲線放在一個坐標系中觀察,如圖6所示。由氣象數據實驗得到的實驗結果圖和理想的實驗結果有差距,而產生差距的原因則是由監控攝像儀器的分辨率、刷新率以及其他非高斯噪聲的影響,因此需要一個能夠去除這些影響的新的算法。

圖6 實驗結果圖
Canny 算子是一種多級檢測算法,它其中的一個特點就是使用雙閾值,即一個高閾值和一個低閾值來區分邊緣像素,如果邊緣像素點梯度值大于高閥值,則被認為是強邊緣點。如果邊緣梯度值小于高閥值,大于低閥值,則標記為弱邊緣點,小于低閥值的點則被抑制掉[12]。而在本實驗中由于噪聲復雜因此采用設定一個LOG 值差作為一個閾值進行去噪處理,即前一個LOG 值和后一個LOG 值的差值絕對值,如果小于閾值K,那么就讓前一個LOG 值等于后一個LOG 值;如果大于閾值K,那么就不作處理,公式如下:

由此公式處理可以最大程度消除非高斯噪聲,將極端天氣的LOG 值變化顯示出來。
根據上述思路,將閾值K 加入到LOG 算法中(以下簡稱K-LOG 算法),整體算法如下:
(1)將監控儀器視頻用FFmpeg 進行分割為圖像保存待使用。
(2)使用高斯濾波對圖像進行第一次去噪,消除高斯噪聲。
(3)使用Laplacian 算子對圖像進行模糊度值計算。
(4)使用閾值K 去掉圖像中的非高斯噪聲。
(5)將最終的模糊度和雨量檢測數據繪圖進行對比。
(6)如果效果未達到預想,重復(4)。
經過上述算法的計算得出新的實驗結果如圖7所示。經過多次實驗算出此處監控攝像儀器的閾值K 為0.4。

圖7 K-LOG算法實驗圖
將計算出來的閾值K 用于新的監控時間中,實驗結果如圖8所示。

圖8 K-LOG檢測實驗圖
將LOG 算子與經過高斯濾波器處理的Canny 算子[13]用于實驗對比,結果如圖9與圖10所示。

圖9 LOG檢測實驗圖

圖10 Canny-Gaussian檢測實驗圖
由實驗可以得出在同一個監控攝像儀器拍攝相同環境、不同時間、不同氣候都適用于同一個閾值K,這樣經過訓練出來的閾值K 就可以用于該環境的極端天氣檢測;并且比較圖9和圖10的實驗結果可以發現,K-LOG算子的檢測結果比原本的LOG 算子以及經過高斯濾波器處理的Canny 算子更加的精準和直觀。
本方法只需要使用以往采集到的數據,加上機器學習算法找出適合當前監控攝像儀器的閾值K 就能在原有的設施上完成對極端天氣的檢測,這個方法增加了對特定區域的極端天氣檢測的精確度,遍布的監控攝像儀器也降低了新增加設備的財力消耗和人力資源浪費的情況。在實際應用中只需要將算法的閾值K 用于監控攝像儀器的視頻流數據就可以做到對極端天氣的實時檢測。