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