李 欣
(深圳職業技術學院 電子與通信工程學院,廣東 深圳518055)
據衛生部發布的信息,我國目前吸煙人數達3.5 億,預計到2025年,中國每年與煙草使用相關的死亡會達到200 萬人,占全國死亡人口總數比重的15.8%,吸煙者的人均期望壽命要比總人群的期望壽命平均縮短15年[1].我國由吸煙引起的火災由1987年的3243 起,上升到當前的7000 多起.目前的禁煙控煙僅靠責任部門執法和社會群眾監督,覆蓋面窄、執行力低,在校園、醫院等公共地方已強制禁煙多年,但仍未收到較好的效果[2].因此,依靠先進的技術手段來提高禁煙效果和責任追溯勢在必行.目前,在飛機、高速列車等重要大眾高速交通工具上已采用煙霧報警裝置,對乘客空間內的抽煙行為具有較好的監控措施[3].然而,該裝置僅為一般的氣體檢測傳感器,對具體抽煙人員的辨別和取證較為困難,事故處理人員難以第一時間掌握事故現場信息,在半封閉和開放環境下效果差等.
把人工智能引入到視頻圖像大數據中,徹底改變傳統視頻監控靠人眼逐幀回放辨別的后發模式,將安防監控技術帶入先發可視的智能時代.目前,基于視覺的智能監控已在車牌識別、違章抓拍、人臉身份信息比對、鐵道異物檢測等領域得到廣泛的應用,技術和市場都趨于成熟[4-5].
本文提出一種以視覺為主、嗅覺為輔的吸控煙防火系統設計方案,有別于現有的單一依靠視覺或嗅覺的系統,該方案采用深度學習算法,通過海量數據訓練,使其能將有吸煙特征的有效幀識別出來,使得攝像頭能夠準確識別煙的特征,并配合煙霧傳感器,達到準確示警的目的.該方案能主要實現以下幾個功能:
1)智能監控系統具有吸煙動作和起火特征的視覺識別功能.針對吸煙行為檢測與識別是將視頻流轉化成連續的視頻序列幀圖像,檢測并提取分析視頻源中關鍵有用信息,識別出吸煙行為.
2)智能監控系統具有對弱光環境和視頻監測盲區進行嗅覺監控功能.在光照條件不好,或者吸煙攝像頭監控盲區的情況下,啟動煙霧嗅覺識別,使得系統在各種環境下均能發揮作用.
3)智能監控系統具有警示報警功能.如果監控區域出現吸煙人員,系統在自動記錄信息的同時自動啟動報警裝置.
整套系統的設計方案如圖1所示.系統采用視覺和嗅覺2 個子系統對抽煙冒煙動作特征進行識別檢測,經過降噪濾波等前處理后,交由基于深度學習模型的運算決策系統進行運算,最后將帶識別特征的摘要信息傳輸給PC 端保存和手機APP 端查看,并對吸煙人員發聲示警.

圖1 整體系統設計圖
在硬件方面,選用現有成熟的硬件產品,計算機采用盒式工業級控制器IPC,英特爾i5 處理器和win10 操作系統,攝像頭和煙霧傳感器通過USB 與計算機連接,手機終端與PC 端通過wifi熱點通信.硬件框架如圖2所示.
煙霧傳感器自帶RS485 通信協議和串口線,需要外置一個485-USB 轉換器實現與計算機的連接.此外,還需要設置端口、設備地址、波特率和數據幀格式等參數,以便后面用軟件調用數據.

圖2 核心硬件框架
智能監控的軟件設計主要包含4 個方面:1)用深度學習框架Caffe 中的ssd 訓練樣本;2)使用Python 調用Opencv 對圖像進行處理;3)使用MySQL 實時讀取煙霧傳感器數據;4)數據結果保存.
近年來,深度學習(Deep learning)算法在人工智能領域非常的火,得到了學術界和工業界得到廣泛認可,也出現了眾多的深度學習開源框架,例如UC Berkeley 的Caffe、University de Montreal 的Theano、Google 的Tensorflow、Facebook 的Torch和PYTorch 等[6-7].Caffe 是其中較為成熟和完善的一類深度學習框架.它是一種開源的軟件框架,其內部包含著一套基本的編程框架下定義自己的卷積神經網絡結構,也可以在此框架下添加自己的代碼,設計新的算法[8].
在訓練數據前,先要收集足夠的吸煙照片樣本,來源主要是自己找人拍攝和網上搜尋,使用標注工具LabelImg 對其中的特征進行標注.每張圖片中只標注一個特征,命名為“smoke”,如圖3所示.總的樣本量超過5000 個.標注后轉換為xml 文件以供程序訓練.
訓練用的計算機,采用4 個英偉達P100 的GPU,閾值設為0.7,訓練次數5 萬次,耗時約20 h.結果顯示如圖4所示,識別準確率達80%以上.

圖3 樣本標注

圖4 訓練結果輸出
OpenCV 是一個開源的計算機視覺庫,可以跨平臺運行,此外它還為C++、JAVA、Phthon、MATLAB 等語言提供了接口,包含眾多圖像處理函數庫,極度簡化了計算機視覺軟件的開發.Python是一種面向對象的解釋型計算機編程語言,具有十分豐富且強大的數據庫,它已經逐步變成繼Java 和C++之后的第三大程序開發語言[8].在眾多項目研究經驗中發現Python 語言靈活性大,可靠性高,因此本系統選用python 作為主體開發語言.本文進行圖像處理時所選擇的環境為Open CV3.2+Python2.7.9.
煙霧傳感器設置為每秒鐘傳回一個數據,有煙霧時狀態值為100,否則為0,數據實時保存到MySQL數據庫中,數據界面如圖5所示.主程序實時讀取數據庫的狀態值,實現煙霧傳感器的輔助功能.

圖5 煙霧傳感器數據
經過調試,軟硬件均達到設計要求.實測表明,在一般環境中,只要出現帶煙的特征,或者有煙霧的特征和氣體,系統均能準確識別出,并由IPC 自帶的音響發聲示警,手機APP 中亦能讀取到此次報警的關鍵幀.
圖6所示為現場測試照片,當出現帶有卷煙的畫面時,經過訓練的系統就能準確將其識別出,并發出聲音報警,最終實現將視覺和嗅覺合二為一的控煙防火智能監控系統.該系統具有很好的創新性和實用性,如能在系統集成、識別率、手機APP 和遠程通信等方面繼續完善,有望在校園、醫院等場所推廣使用.

圖6 實測結果