蘭元帥 何晉
(成都信息工程大學(xué)軟件工程學(xué)院,四川 成都 610225)
森林資源是人類的重要資源,在凈化環(huán)境的同時給人類帶來多樣的物種資源。但是,我國每年都有不少森林防火不當引起的災(zāi)難和損失。
早期森林防火僅依靠人工觀測技術(shù),不僅精度低,而且實時性差。在森林防火中傳感器技術(shù)帶來了較大影響,但對于大面積的森林空間,傳統(tǒng)的傳感技術(shù)并不是很有效[1]。由于空間距離大,傳感器無法快速采集煙氣變化信息,有效探測火災(zāi)情況。目前,森林火災(zāi)的探測方法大多是紅外探測方法,具有火災(zāi)探測精度高的特點,但紅外探測系統(tǒng)的探測算法易受到外界干擾,火災(zāi)早期煙霧微弱時探測精度較低[2]。
通過深度學(xué)習方法訓(xùn)練目標檢測模型,運用樹莓派4B搭載YOLOv3機器視覺模型對火焰智能識別,采用這種森林防火方法,抗干擾能力強,檢測精度高。本系統(tǒng)采用樹莓派4B+,性能強、價格低、功耗低、體積小,能很好地解決森林防火中因環(huán)境特殊性帶來的防火預(yù)警不及時的問題,具有一定的推廣價值。
森林防火系統(tǒng)采用模塊化的設(shè)計理念,主要由Gan網(wǎng)絡(luò)數(shù)據(jù)生成模塊、YOLOv3目標檢測模塊、實時圖像采集模塊、動態(tài)報警系統(tǒng)4部分組成,系統(tǒng)總體框圖如圖1所示。
圖1 系統(tǒng)總體框架圖
數(shù)據(jù)處理是模型訓(xùn)練過程中很重要的一步。通過將煙霧和明火的圖片數(shù)據(jù)輸入到圖片生成Gan模型進行訓(xùn)練,圖片生成Gan模型訓(xùn)練成熟后再輸入固定格式的編碼即可生成大量目標圖片數(shù)據(jù),以此降低尋找大量訓(xùn)練圖片數(shù)據(jù)的成本,再將由圖片生成Gan模型的生成的目標圖片數(shù)據(jù)根據(jù)需求進行標注,標注后的圖片數(shù)據(jù)進行歸一化處理,加快網(wǎng)絡(luò)訓(xùn)練的收斂性;再將歸一化處理后的目標圖片數(shù)據(jù)輸入到目標檢測模型進行訓(xùn)練,目標檢測模型訓(xùn)練成熟后即可連接至輸入設(shè)備待用。
火災(zāi)主要的特征是明火和煙霧,因此對于森林火災(zāi)識別模型的訓(xùn)練數(shù)據(jù)應(yīng)為明火和煙霧的圖片數(shù)據(jù)及視頻數(shù)據(jù),同時增加“光線”相關(guān)特征使目標檢測模型精度更高。對于模型算法的使用優(yōu)選為YOLOv3模型。YOLOv3目標檢測模型引用更加強大的特征提取網(wǎng)絡(luò)darknet-53使得計算速度大大加快,對象分類引用Logsitic支持多標簽以增加檢測精度。模型在PC端完成訓(xùn)練后,將模型和數(shù)據(jù)優(yōu)化后部署到樹莓派4B上,作為系統(tǒng)的目標檢測模塊。
相關(guān)圖像或視頻的數(shù)據(jù)通過鐵塔上安裝的攝像頭以及相關(guān)已部署的無人機完成采集。通過鐵塔和無人機采集視頻數(shù)據(jù)傳輸至監(jiān)控中心,監(jiān)控中心利用SLIC圖像分割技術(shù)對視頻進行分幀,分幀后的視頻數(shù)據(jù)變?yōu)榇龣z測的圖片數(shù)據(jù)[3],本系統(tǒng)SLIC搜索的限制范圍示意圖見圖2。
圖2 SLIC搜索限制范圍示意圖
攝像頭為雙目攝像頭,雙目攝像頭包括紅外攝像頭和高清攝像頭,紅外攝像頭用于夜晚,高清攝像頭用于白天[4]。由于光線的影響,將夜晚和白天分別用不同的攝像頭進行視頻采集,提高視頻采集的精度。
對于相關(guān)設(shè)備的供電則由設(shè)置的太陽能供電模塊完成。太陽能供電模塊包括若干光伏電池板、穩(wěn)壓模塊、蓄電池組。將太陽能板與穩(wěn)壓模塊的輸入端連接,再將穩(wěn)壓模塊LM317輸出端與蓄電池的輸入端連接,并使用蓄電池為攝像頭提供備用電源,本系統(tǒng)的LM317穩(wěn)壓電源電路,如圖3所示。
圖3 LM317穩(wěn)壓電源電路
通過無人機和鐵塔部署好的傳感器和攝像頭在定期采集數(shù)據(jù)后將數(shù)據(jù)回傳,通過原來訓(xùn)練好的識別模型進行判斷目標檢測的模型是否大于預(yù)先設(shè)定好的閾值。如果超過所設(shè)閾值則觸發(fā)森林防火報警器,根據(jù)火災(zāi)發(fā)生的位置通知相關(guān)人員滅火,并將數(shù)據(jù)存儲于數(shù)據(jù)庫[5]。
用于模型訓(xùn)練的原始數(shù)據(jù)是明火和煙霧的圖片數(shù)據(jù)及視頻數(shù)據(jù)。由于獲取到大量的相關(guān)數(shù)據(jù)存在一定的困難,因此使用Gan網(wǎng)絡(luò)對于有限的真實原始數(shù)據(jù)進行處理。通過Gan網(wǎng)絡(luò)可以生成大量圖片,標注后的圖片可以提供給目標識別模型的訓(xùn)練[6]。
圖片生成模型的Gan網(wǎng)絡(luò)是G網(wǎng)絡(luò)和D網(wǎng)絡(luò)的動態(tài)“博弈”。生成網(wǎng)絡(luò)G欺騙判別網(wǎng)絡(luò)D通過生成大量真實圖片;D網(wǎng)絡(luò)就盡最大努力區(qū)分生成圖片和真實圖片。最理想狀態(tài)下,G可以生成足以“以假亂真”的圖片G(z)。將煙霧和明火的圖片數(shù)據(jù)輸入到Gan網(wǎng)絡(luò)進行訓(xùn)練,訓(xùn)練成熟后生成編碼網(wǎng)絡(luò)和解碼網(wǎng)絡(luò),編碼網(wǎng)絡(luò)輸出固定格式的編碼,這樣只需要輸入與編碼網(wǎng)絡(luò)輸出的相同格式的編碼到解碼網(wǎng)絡(luò)即可生成大量足以“以假亂真”的圖片,以降低尋找原始圖片數(shù)據(jù)進行目標檢測模型訓(xùn)練的成本。
Gan的判別公式:
整個式子由2項構(gòu)成,x表示真實圖片,z表示輸入G網(wǎng)絡(luò)的噪聲;G(z)表示G網(wǎng)絡(luò)生成的圖片;D(x)表示D網(wǎng)絡(luò)判斷真實圖片是否真實的概率。D(G(z))是D網(wǎng)絡(luò)判斷G生成的圖片是否真實的概率,G希望盡可能的大,這時V(D,G)會變小[7]。D的能力越強,D(x)應(yīng)該越大,D(G(x))應(yīng)該越小,這時V(D,G)會變大,因此,式子對于D來說是求最大。
生成器的定義:
def G(w,name="G"):
with fluid.unique_name.guard(name + "/"):
w=fluid.layers.fc(y,size=1024,act='relu')
w=fluid.layers.batch_norm(y,act='relu')
w=fluid.layers.fc(y,size=128×7×7)
w=fluid.layers.batch_norm(y,act='relu')
w=fluid.layers.reshape(y,shape=(-1,128,7,7))
w=fluid.layers.conv2d(y,num_filters=64,filter_size=5,padding=2,act='relu')
w=fluid.layers.image_resize(y,scale=2)
w=fluid.layers.conv2d(y,num_filters=1,filter_size=5,padding=2,act='relu')
return y
判別器的定義:
def D(images,name="D"):
def conv_bn(input,num_filters,filter_size):
y=fluid.layers.conv2d(input=input,num_filters=num_filters,filter_size=filter_size,stride=1,bias_attr=False)
y=fluid.layers.batch_norm(y,act="leaky_relu")
return y
開始訓(xùn)練后,訓(xùn)練判別器D識別生成器G生成的假圖片。訓(xùn)練判別器D識別真實圖片進行對比,訓(xùn)練生成器G生成符合判別器D標準的假圖片,然后測試。
目標檢測模型為YOLOv3目標檢測模型[8]。YOLOv3目標檢測模型引用更加強大的特征提取網(wǎng)絡(luò)darknet-53使得計算速度大大加快[9]。darknet-53的網(wǎng)絡(luò)結(jié)構(gòu)包含53個卷基層,借鑒殘差網(wǎng)絡(luò)Residual Network的做法,在一些層之間設(shè)置了快捷鏈路,最左側(cè)1列的1、2、8等數(shù)字表示多少個重復(fù)的殘差組件,每個殘差組件有2個卷基層和1個快捷鏈路,殘差組件結(jié)構(gòu)如圖4所示[10,11]。
圖4 殘差組件結(jié)構(gòu)
YOLOv3網(wǎng)絡(luò)使用了darknet-53前面的52層,YOLOv3網(wǎng)絡(luò)是一個全卷積網(wǎng)絡(luò),大量使用殘差的跳層連接。使用這種殘差結(jié)構(gòu)的好處是,保證網(wǎng)絡(luò)結(jié)構(gòu)在很深的情況下,仍能收斂;網(wǎng)絡(luò)越深,表達的特征越好,分類和檢測的效果都會提升。由于大量減少了參數(shù)量,進一步減少了計算量。對象分類引用Logsitic支持多標簽以此增加檢測精度。
YOLOv3將輸入圖像分成S×S個格子,每個格子預(yù)測B個bounding box,每個bounding box預(yù)測內(nèi)容包括Location(x,y,w,h)、Confidence Score和C個類別的概率,因此YOLOv3輸出層的channel數(shù)為B×(5+C)[12,13]。YOLOv3的loss函數(shù)也由3部分組成,Location誤差、Confidence誤差和分類誤差。
使用互聯(lián)網(wǎng)易于搜索到的數(shù)據(jù)集進行Gan網(wǎng)絡(luò)訓(xùn)練,并在高性能的計算機進行計算得到較成熟的Gan網(wǎng)絡(luò)圖片生成模型,并使用Gan網(wǎng)絡(luò)模型生成大量圖片數(shù)據(jù)訓(xùn)練YOLOv3目標檢測模型。
部署相關(guān)硬件,采集相關(guān)數(shù)據(jù)。通過對隨機采集到的30張的森林火焰圖片輸入掛載目標檢測模型的樹莓派4B上進行計算,得到識別目標的準確率,如圖5所示。
圖5 實際測試結(jié)果
經(jīng)過訓(xùn)練,模型的準確率逐步增高。隨著數(shù)據(jù)采集數(shù)量的增多,模型對于森林火焰的數(shù)據(jù)有較強的敏感性;通過部署到樹莓派4B,輸入視頻和圖片完成測試,可以精準地識別森林中的火焰和煙霧,并輸入相應(yīng)的較高的準確率。
這種基于樹莓派4B森林防火系統(tǒng)采用深度學(xué)習模型完成對森林火焰的識別。經(jīng)過實驗測試,通過Gan網(wǎng)絡(luò)的圖片生成模型以及基于YOLOv3的目標檢測模型均可以良好的工作,具備較好的可移植性。整個系統(tǒng)運行穩(wěn)定、準確度高,具備較強的抗干擾性,具有一定的應(yīng)用市場。