計算機視覺中的煙火檢測是在監控影片或者影像中進行煙火影像分類或者煙火定位,在消防安全領域具有獨特的意義。
我們常見的在大廈內部安裝的煙霧感測器,靠檢測物質燃燒後空氣中濃度升高的二氧化錫等來報警。影片監控中基於視覺的煙火檢測可以覆蓋較為廣闊的區域,而且適合室外的環境,比如無人機森林防火巡查。
昨天 PyImageSearch 網站博主 Adrian Rosebrock 釋出了一篇基於Keras的煙火檢測博文,將資料和程式碼公佈了,其使用的資料量有限,從效果看並不是可實際部署的煙火檢測程式,但對於瞭解該領域還是很有幫助的。
整體思路
作者將煙火檢測看作為影像分類問題,即影像中含有煙火和不含煙火。直接使用CNN網路+SoftMax分類。
資料集
作者使用了兩個資料集,含有煙火資料集來自Google搜尋“fire”“smoke”返回的圖片,並經過手動挑選,共有1315幅影像。
不含煙火的資料集來自8-scenes資料集,其類目包括
Coast
Mountain
Forest
Open country
Street
Inside city
Tall buildings
Highways
可見主要是室外開放場景,總計2688幅影像。
網路結構
作者使用了4個卷積層、2個全連線層 + SoftMax分類。
由於煙火檢測經常部署於物聯網終端等邊緣裝置,故作者選擇使用深度可分離卷積,因為其計算和儲存開銷小,而且相比標準卷積效果也往往更好一些。
作者的程式和資料組織目錄如下:
在訓練時,為找到更好的初始學習率,使用Learning Rate Finder 方法,
實驗結果
經訓練的煙火檢測網路FireDetectionNet在該資料集上可以達到92%的分類精度:
下圖為一些正確預測的結果展示:
雖然精度看起來高了,不過還是有一些明顯的錯誤:
作者指出想要取得更好的效果,收集更大和更適合應用場景的資料集是關鍵。
另外,使用影片進行煙火檢測應該可以提高檢測的精度,因為燃燒過程明顯動態發展的。
總體來說,該文實現了簡單的煙火檢測Demo,資料和程式碼完備,對於想要了解體驗該方向的朋友是有幫助的。
原博文地址:
https://www.pyimagesearch.com/2019/11/18/fire-and-smoke-detection-with-keras-and-deep-learning/