吉森榮
(華北電力大學控制與計算機工程學院,北京102206)
森林火災破壞自然環(huán)境,威脅人類安全。為避免火勢蔓延失控,實現(xiàn)早期檢測至關重要,其中煙霧檢測是一種高效的預警手段。傳統(tǒng)的煙霧檢測是將手工設計的特征輸入到分類器中,特征設計的過程繁瑣,且模型好壞過度依賴人的先驗。自AlexNet[1]在ImageNet 圖像識別競賽上奪得冠軍,深度卷積神經(jīng)網(wǎng)絡獲得了越來越多的關注。2018 年,Zhang 等人[2]將Faster RCNN[3]網(wǎng)絡應用在森林火災的煙霧檢測中。2020 年,Wang 等人[4]利用SSD[5]網(wǎng)絡與背景建模實現(xiàn)火災煙霧的有效檢測。然而這些方法往往難以在嵌入式設備上實現(xiàn)煙霧的高效定位與識別。Tiny-YOLOv3 網(wǎng)絡為此提供了幫助,它大幅度精簡YOLOv3[6]的網(wǎng)絡結(jié)構(gòu),可實時運行于嵌入式設備,但檢測精度也下降明顯。為更好的平衡檢測精度與實時性,本文在Tiny-YOLOv3 網(wǎng)絡的基礎上設計一種新型網(wǎng)絡結(jié)構(gòu),將普通卷積替換為深度可分離卷積,減小模型的體積,并增加網(wǎng)絡層數(shù)和輸出通道數(shù)提升模型的精度。
Tiny-YOLOv3 的網(wǎng)絡結(jié)構(gòu)如圖1 所示,輸入是416 416 的煙霧圖像,輸出是2 種scale 的煙霧預測結(jié)果。它將7 個Conv2d 3 3 層和6 個MaxPool 2 2 層構(gòu)成的卷積神經(jīng)網(wǎng)路作為特征提取網(wǎng)絡,采用兩條支路檢測煙霧目標,輸出特征層大小分別為13 13 和26 26。這兩個特征層經(jīng)過Conv2d 1 1 處理,其中一路經(jīng)Conv2d 3 3 和Conv2d 1 1 輸出該層對應的預測結(jié)果,另一路接Conv2d 1 1 并通過UpSample 與對應特征層Concat(拼接),經(jīng)與前一路相同處理輸出該層對應的預測結(jié)果。Concat 操作可使網(wǎng)絡學習更深層次的特征,提高檢測的精度。
已訓練的Tiny-YOLOv3 模型在預測煙霧時,需先將兩條支路的輸出Concat,但同時產(chǎn)生大量的相似冗余框。本文使用Soft-NMS 后處理予以消除,實現(xiàn)最終的煙霧目標預測。
Mobilenet[7]中的深度可分離卷積,可以使網(wǎng)絡模型小型化。對于大小為k 卷積核,當輸入通道為M輸出通道為N 時,其與標準卷積的參數(shù)量比值為:
由上式可以看出,參數(shù)量可大幅度減少。本質(zhì)而言,深度可分離卷積是把標準卷積分解為逐通道卷積DW 和點卷積PW,這種分解也實現(xiàn)了跨通道特征的融合,可保持準確率不下降?;谶@些優(yōu)勢。
圖1 原始Tiny-YOLOv3 的網(wǎng)絡結(jié)構(gòu)
圖2 改進Tiny-YOLOv3 的網(wǎng)絡結(jié)構(gòu)
本文使用深度可分離卷積替換普通卷積。同時借鑒FPN 融合不同尺度特征的思想,使用三條檢測支路分別預測大中小目標。
改進Tiny-YOLOv3 的網(wǎng)絡結(jié)構(gòu)如圖2 所示,輸入與之前相同,輸出是3 種scale 的煙霧預測結(jié)果。圖中,“Conv dw”表示深度可分離卷積,“Block1”表示Conv2d 3×3 和Conv dw 3×3/2的組合模塊,“Block2”表示Conv dw 3×3 和Conv2d 1×1 的組合模塊,“×4”表示Block1 重復4 次,“×5”表示Block2 重復5 次。它舍棄了MaxPool 層,三條支路的輸出特征大小分別為13×13、26×26 和52×52。這3 個特征層經(jīng)過Block2 處理,其中一路后接Conv 2d 1×1 輸出該層的預測預測結(jié)果,另一路則UpSample 操作后與對應特征層進行Concat,經(jīng)Block2 和Conv 2d 1×1 后輸出該層的預測結(jié)果。
Tiny-YOLOv3 在改進前后的損失函數(shù)Loss 但在預測煙霧時,改進的Tiny-YOLOv3 模型是將三條支路的輸出Concat,增加了更小尺度的目標檢測。對于相似冗余框,仍采用Soft-NMS消除。
實驗使用的數(shù)據(jù)集是Zhang 等人[3]公開的"RF_dataset",包含12620 張森林火災的煙霧圖片。Tiny-YOLOv3 在改進前后的訓練設置相同。使用Adam 優(yōu)化器更新訓練參數(shù),迭代周期為80 個epoch,初始學習率設置為0.001,batch_size 為6。
為驗證本文算法的有效性,不僅將其與原始Tiny-YOLOv3對比,也將其與主流檢測算法Faster RCNN[4]和SSD[6]對比,實驗結(jié)果如表1 所示。圖3 為本文算法在RF_dataset 數(shù)據(jù)集上的部分檢測效果,紅色檢測框標定出煙霧區(qū)域。
表1 不同檢測算法的測試結(jié)果
圖3模型在RF_dataset 上的檢測效果
由表1 可知,本文算法的檢測精度mAP 為73.6%,較原始Tiny-YOLOv3 提 高6.2% ; 模 型 大 小 為25MB, 較 原 始Tiny-YOLOv3 降低10MB。同時,本文算法在各個主流檢測算法中精度最高、體積最小。這些優(yōu)勢的主要原因在于:深度可分離卷積可大幅度減少模型參數(shù),縮小模型體積,并可保持精度不下降;通過加深Tiny-YOLOv3 的網(wǎng)絡層數(shù),使用更多的檢測支路,使提取的煙霧特征更詳細,檢測精度得以提高。
本文以Tiny-YOLOv3 為基礎,引入深度可分離卷積和深層的多支路輸出,提出一種新型的網(wǎng)絡模型,可以在計算力有限的嵌入式設備上高效定位和識別煙霧。本文提出的模型不僅優(yōu)于原始的Tiny-YOLOv3,也優(yōu)于多個主流檢測模型,這表明了本文算法設計的正確性。