劉明,曹銀杰
(聊城大學(xué)物理科學(xué)與信息工程學(xué)院,聊城252059)
消防安全一直是被人們十分重視的問(wèn)題,火災(zāi)的提前預(yù)測(cè)、報(bào)警對(duì)保障人們的生命、財(cái)產(chǎn)安全十分重要。傳統(tǒng)煙霧報(bào)警器是基于閾值報(bào)警的原理,只有當(dāng)煙霧濃度和溫度到達(dá)閾值時(shí),才進(jìn)行報(bào)警,不能提前預(yù)警,發(fā)現(xiàn)時(shí),火情可能已經(jīng)比較嚴(yán)重。
筆者設(shè)計(jì)了一套基于人工神經(jīng)網(wǎng)絡(luò)的火災(zāi)預(yù)警系統(tǒng),將煙霧、溫度變化的曲線(xiàn)數(shù)值輸入到神經(jīng)網(wǎng)絡(luò)中進(jìn)行學(xué)習(xí),讓神經(jīng)網(wǎng)絡(luò)記憶不同事件引起煙霧、溫度變化的規(guī)律,比如抽煙時(shí)煙霧較小,溫度不會(huì)升高;可燃物發(fā)生燃燒時(shí),煙霧數(shù)值升高的速度、溫度升高的速度,這些規(guī)律都作為一種特征值,將這些特征值記憶在神經(jīng)網(wǎng)絡(luò)中。系統(tǒng)進(jìn)行檢測(cè)時(shí),神經(jīng)網(wǎng)絡(luò)會(huì)對(duì)煙霧、溫度變化的曲線(xiàn)進(jìn)行分析,判斷是否由于發(fā)生火災(zāi)引起,這樣可以在火情尚未嚴(yán)重時(shí),就進(jìn)行報(bào)警,達(dá)到預(yù)警的效果。通過(guò)實(shí)驗(yàn)室模擬情況下,本系統(tǒng)穩(wěn)定可靠,效率高,誤判率低,能夠滿(mǎn)足各種場(chǎng)合的使用。
系統(tǒng)使用STM32F767 作為系統(tǒng)CPU,搭建循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network)模型,預(yù)測(cè)曲線(xiàn)變化。使用激光粉塵傳感器采集檢測(cè)區(qū)域內(nèi)的空氣煙霧變化曲線(xiàn),以及DS18B20 溫度傳感器采集溫度變化曲線(xiàn)。將空氣煙霧變化曲線(xiàn)和溫度變化曲線(xiàn)輸入到循環(huán)神經(jīng)網(wǎng)絡(luò)中進(jìn)行識(shí)別,通過(guò)計(jì)算煙霧和溫度變化規(guī)律,預(yù)測(cè)火災(zāi)。煙霧數(shù)據(jù)以及溫度數(shù)據(jù)通過(guò)RS484 總線(xiàn)傳送至PC 控制臺(tái)實(shí)時(shí)顯示曲線(xiàn)。當(dāng)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果為即將發(fā)生火災(zāi)時(shí),系統(tǒng)及時(shí)向控制臺(tái)報(bào)警,并閃爍LED 燈,以及使用VS1003b MP3 模塊發(fā)出火災(zāi)警報(bào)。
循環(huán)神經(jīng)網(wǎng)絡(luò)選擇使用長(zhǎng)短時(shí)循環(huán)神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)。LSTM 神經(jīng)網(wǎng)絡(luò)克服了傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)存在梯度消失和梯度爆炸的缺點(diǎn),能夠更加精確快速地識(shí)別分析時(shí)序信號(hào)。
PC 控制臺(tái)端使用C#編程語(yǔ)言設(shè)計(jì)上位機(jī)軟件,通過(guò)選擇不同的地址碼,實(shí)現(xiàn)與多個(gè)設(shè)備同時(shí)通信,監(jiān)控多個(gè)房間。上位機(jī)軟件可以實(shí)時(shí)顯示房間內(nèi)的煙霧和溫度變化曲線(xiàn),并將數(shù)據(jù)存放在本地的SQL 數(shù)據(jù)庫(kù)中進(jìn)行保存。

圖1 系統(tǒng)總體框圖
選用ST 公司推出的STM32F767 作為系統(tǒng)CPU,選擇理由如下:
(1)基于Cortex-M7 的內(nèi)核具備了DSP 指令以及ARM 公司推出的DSP 庫(kù),使芯片計(jì)算速度大大提升,具備在芯片上實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的計(jì)算速度。
(2)具備低功耗模式,CPU 使用HCLK 提供時(shí)鐘,并執(zhí)行程序代碼,降低系統(tǒng)耗電。
(3)內(nèi)部具有CRC 循環(huán)冗余校驗(yàn)計(jì)算單元,方便RS-485 通信使用。
基于以上3 點(diǎn),能夠滿(mǎn)足本系統(tǒng)設(shè)計(jì)的需求。
煙霧傳感器使用激光粉塵傳感器PMS3003(G3)傳感器,該傳感器使用功耗低、體積小、采樣時(shí)間短、靈敏高,可獲得單位體積內(nèi)空氣中的煙霧濃度。使用RS-485 接口,ModBus 通信協(xié)議進(jìn)行數(shù)據(jù)傳輸,確保了數(shù)據(jù)安全性。
溫度傳感器使用DS18B20 傳感器,DS18B20 是一款常用的數(shù)字溫度傳感器,輸出數(shù)字信號(hào),具有體積小,便于封裝,抗干擾能力強(qiáng),使用3V-5V 的工作電壓,使用方便。
采用SP3485 芯片作為RS-485 通信的收發(fā)器,該芯片支持3.3V 供電,最大傳輸效率為10Mbps,支持多達(dá)32 個(gè)節(jié)點(diǎn),并有輸出短路保護(hù)。

圖2 SP3485引腳圖
圖2 中,A、B 總線(xiàn)用于連接485 接口。RO 是接收輸出端,DI 是發(fā)送數(shù)據(jù)收入端,RE 是接收使能信號(hào),低電平有效,DE 是發(fā)送使能信號(hào),高電平有效。使用時(shí),將RE 與DE 相連接。
STM32F767 采集傳感器數(shù)據(jù),將數(shù)據(jù)輸入到LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)中,同時(shí)由STM32F767 上傳到PC 控制臺(tái)。循環(huán)神經(jīng)網(wǎng)絡(luò)通過(guò)使用已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)模型,分析出煙霧、溫度變化的原因,如果分析出是由于發(fā)生火災(zāi),引起的煙霧、溫度變化,則LED 燈進(jìn)行閃爍,同時(shí)進(jìn)行語(yǔ)音警報(bào),并向控制臺(tái)進(jìn)行警告。

圖3 系統(tǒng)總體流程圖
LSTM 中主要使用3 個(gè)門(mén)遺忘門(mén)、輸入門(mén)、輸出門(mén)以及即時(shí)狀態(tài)來(lái)控制長(zhǎng)期狀態(tài),遺忘門(mén)負(fù)責(zé)決定之前的長(zhǎng)期狀態(tài)對(duì)當(dāng)前的長(zhǎng)期狀態(tài)影響的程度;輸入門(mén)與即時(shí)狀態(tài)共同負(fù)責(zé)決定當(dāng)前輸入對(duì)長(zhǎng)期狀態(tài)的影響程度;輸出門(mén)決定當(dāng)前長(zhǎng)期狀態(tài)對(duì)輸出的影響程度。

圖4 LSTM神經(jīng)元
圖中的Wf、Wi、Wc、Wo分別表示遺忘門(mén)、輸入門(mén)、即時(shí)狀態(tài)、輸出門(mén)的權(quán)重矩陣。這些權(quán)重矩陣由Wh、Wx兩部分組成。前向傳播過(guò)程需要計(jì)算遺忘門(mén)輸出ft,輸入門(mén)輸出it,即時(shí)狀態(tài)輸出以及輸出門(mén)輸出Ot。長(zhǎng)期狀態(tài)Ct由遺忘門(mén)輸出ft、輸入門(mén)輸出Ot、即時(shí)狀態(tài)輸出和上一時(shí)刻的長(zhǎng)期狀態(tài)Ct-1共同決定。

LSTM 神經(jīng)元的最終輸出是由長(zhǎng)期狀態(tài)、輸出門(mén)的輸出共同決定的。

其中°符號(hào)表示按元素乘。這個(gè)計(jì)算過(guò)程也是LSTM 的前向傳播的計(jì)算過(guò)程。
本系統(tǒng)中,LSTM 的反向傳播在計(jì)算機(jī)上進(jìn)行,使用本實(shí)驗(yàn)室之前的研究數(shù)據(jù),訓(xùn)練神經(jīng)網(wǎng)絡(luò),將訓(xùn)練完成的權(quán)重矩陣移植到STM32F767 芯片中。煙霧、溫度變化有很多,訓(xùn)練完成權(quán)重矩陣記錄了煙霧、溫度變化的規(guī)律,能夠分析出這些變化是由于何種原因引起的,從而能夠在火災(zāi)還未發(fā)生,在有要發(fā)生火災(zāi)的趨勢(shì)時(shí),進(jìn)行預(yù)警,達(dá)到了及時(shí)防控火災(zāi)的作用。
定義forward 函數(shù),輸入為輸入向量,為了記錄前向傳播的次數(shù),使用全局變量times 來(lái)記錄前向傳播的次數(shù),也就是時(shí)刻times。根據(jù)LSTM 門(mén)的計(jì)算理論公式,編寫(xiě)程序計(jì)算遺忘門(mén)、輸入門(mén)、輸出門(mén)以及即時(shí)狀態(tài)的輸出,并將輸出的結(jié)果保存到相對(duì)應(yīng)的結(jié)構(gòu)體數(shù)組中的times 位置。使用計(jì)算所得的遺忘門(mén)、輸出門(mén)、即時(shí)狀態(tài)的輸出以及上一時(shí)刻的長(zhǎng)期狀態(tài),計(jì)算當(dāng)前時(shí)刻的長(zhǎng)期狀態(tài)。

將當(dāng)前時(shí)刻的長(zhǎng)期狀態(tài)c 保存到結(jié)構(gòu)體數(shù)組c_list[]中,存放在times 位置,即c_list[times]。使用計(jì)算所得的輸出門(mén)的輸出以及長(zhǎng)期狀態(tài),計(jì)算當(dāng)前時(shí)刻LSTM神經(jīng)元的輸出。

這里的°表示按元素相乘,此處使用之前定義好的矩陣按元素相乘函數(shù)mul2,將Ot、tanh(c)輸入mul2,輸出結(jié)果賦值給ht。將LSTM 神經(jīng)元的輸出ht保存在h_list[]中,存放位置為times,即h_list[times]。合理設(shè)置權(quán)重矩陣大小,達(dá)到既能滿(mǎn)足使用需求,又不過(guò)產(chǎn)生過(guò)擬合的效果。
將本系統(tǒng)與傳統(tǒng)煙霧報(bào)警器放在同實(shí)驗(yàn)條件下,進(jìn)行多次實(shí)驗(yàn),模擬生活中抽煙、點(diǎn)燃可燃物、做飯等可能遇到的情況。本系統(tǒng)可以分辨出抽煙、做飯等場(chǎng)景,并且在點(diǎn)燃可燃物實(shí)驗(yàn)中,本系統(tǒng)并未和傳統(tǒng)煙霧傳感器一樣,達(dá)到某個(gè)閾值后才進(jìn)行報(bào)警,而是分析出由于火災(zāi)因?yàn)榈臒熿F、溫度的變化,并提前進(jìn)行預(yù)警,能夠提前煙霧報(bào)警器進(jìn)行報(bào)警。
該實(shí)驗(yàn)證明,本系統(tǒng)能夠分析煙霧、溫度變化是由于何種原因引起,如果是由火災(zāi)引起的變化,則會(huì)在火災(zāi)尚未過(guò)大時(shí),進(jìn)行預(yù)警,不依賴(lài)閾值等方法,能夠靈活、靈敏、準(zhǔn)確地預(yù)警火災(zāi)的情況。
本系統(tǒng)使用人工智能的方法,分析煙霧、溫度變化,判斷是否由于火災(zāi)引起,不依賴(lài)閾值,能夠及早發(fā)現(xiàn)火災(zāi),達(dá)到真正的智能火災(zāi)預(yù)警,最終的實(shí)驗(yàn),也證實(shí)本系統(tǒng)能夠較傳統(tǒng)煙霧報(bào)警器提前發(fā)現(xiàn)火情,具有較好的火情預(yù)警效果。上位機(jī)PC 控制臺(tái)既可以試試觀測(cè)不同房間的煙霧溫度變化,也能及時(shí)接收到下位機(jī)發(fā)送的火情警報(bào)。在未發(fā)生火災(zāi)時(shí),經(jīng)數(shù)據(jù)存入數(shù)據(jù)庫(kù),以備人們查看,以及未來(lái)研究的使用。本系統(tǒng)繼承自實(shí)驗(yàn)室的基于粉塵濃度傳感器的火災(zāi)預(yù)警系統(tǒng),并進(jìn)行更新改進(jìn),使用粉塵濃度傳感器的火災(zāi)預(yù)警系統(tǒng)數(shù)據(jù)庫(kù)的大量歷史數(shù)據(jù),訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,確保了本系統(tǒng)權(quán)重矩陣能夠盡可能地記錄生活中煙霧、溫度變化的規(guī)律、以及多次試驗(yàn)時(shí)記錄下的火災(zāi)煙霧、溫度變化規(guī)律。本系統(tǒng)還具備繼續(xù)優(yōu)化的潛力,可以通過(guò)優(yōu)化網(wǎng)路模型,提高運(yùn)算速度和準(zhǔn)確性以及更早的預(yù)警火災(zāi)。