楊天宇,王海瑞
(650000 云南省 昆明市 昆明理工大學(xué) 信息工程與自動(dòng)化學(xué)院)
火災(zāi)多發(fā)于森林、工業(yè)生產(chǎn)、居民住宅等場景。小的起火點(diǎn)如果未被及時(shí)發(fā)現(xiàn)便會(huì)發(fā)展為火災(zāi),造成巨大的經(jīng)濟(jì)損失,威脅人們的生命財(cái)產(chǎn)安全。對(duì)于火災(zāi)防控,重要任務(wù)是及時(shí)發(fā)現(xiàn)、及時(shí)撲滅?;谶@一目標(biāo),各種火焰檢測系統(tǒng)相繼誕生。
傳統(tǒng)的火焰檢測使用基于光學(xué)或溫度傳感器對(duì)火災(zāi)進(jìn)行預(yù)警[1-2],此類方法穩(wěn)定性較差,會(huì)出現(xiàn)誤報(bào)情況,且應(yīng)用場景有限。鑒于此,Lasaponara[3]等人提出了基于AVHRR(Advanced Very High Resolution Radiometer)的改進(jìn)自適應(yīng)火焰檢測算法;Celik[4]等人提出了一種將目標(biāo)前景信息與顏色像素統(tǒng)計(jì)相結(jié)合的實(shí)時(shí)火焰檢測算法;Zhou[5]等人提出了一種基于火焰輪廓的火焰檢測,根據(jù)檢測到目標(biāo)的輪廓面積、邊緣、圓度3 個(gè)特征判斷是否為火焰目標(biāo)。由于火焰目標(biāo)特征受顏色、輪廓變化及復(fù)雜場景影響較大,傳統(tǒng)火焰目標(biāo)檢測易出現(xiàn)誤檢和對(duì)小尺寸目標(biāo)的漏檢問題。
現(xiàn)階段對(duì)火焰目標(biāo)的檢測多被歸為計(jì)算機(jī)視覺領(lǐng)域的目標(biāo)檢測任務(wù)。隨著深度學(xué)習(xí)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)被應(yīng)用于目標(biāo)檢測任務(wù),取得了極好的效果,也衍生出許多目標(biāo)檢測算法如YOLO[6]、Faster R-CNN[7]、SSD(Single Shot MultiBox Detector)[8]等。此類算法被應(yīng)用于各類目標(biāo)檢測任務(wù)。盧鵬[9]等人使用MobileNet[10]替換SSD 的特征提取網(wǎng)絡(luò)VGG16[11],使用深度可分離卷積構(gòu)建復(fù)雜背景環(huán)境下的火焰目標(biāo)檢測模型,使得檢測精度高于原SSD 模型;劉鳴瑄[12]等人基于SSD 網(wǎng)絡(luò)模型通過殘差模塊設(shè)計(jì)了特征融合結(jié)構(gòu),使其對(duì)遠(yuǎn)距離車輛檢測有更好的效果;侯易呈[13]等人使用ResNet50[14]作為Faster R-CNN 的特征提取網(wǎng)絡(luò),添 加SENet(Squeeze-and-Excitation Networks)模塊[15],將多個(gè)尺度的特征融合,提高了模型的檢測精度;曹紅燕[16]等人在原YOLOv3[17]算法的基礎(chǔ)上增加特征尺度,改進(jìn)BN[18]層并與卷積神經(jīng)網(wǎng)絡(luò)層相融合,相比原算法取得了更高的檢測精度。
本研究基于YOLOv3 算法,在損失函數(shù)、特征融合方面提出改進(jìn)策略,加入通道注意力機(jī)制,使得改進(jìn)后的算法更適用于火焰目標(biāo)檢測。
YOLOv3 是Redmon 等人于2018 年提出的目標(biāo)檢測算法,是對(duì)YOLO 和YOLOv2 的改進(jìn),結(jié)構(gòu)如圖1 所示。
圖1 YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Network structure of YOLOv3
使用DarkNet53 作為特征提取網(wǎng)絡(luò),借鑒了ResNet 的結(jié)構(gòu),在多個(gè)卷積層之間設(shè)置捷徑層(shortcut),將之前層的輸出和指定層的輸出結(jié)合得到本層的輸出,實(shí)現(xiàn)了殘差網(wǎng)絡(luò)結(jié)構(gòu),以此加深了網(wǎng)絡(luò)層數(shù)。使用FPN(Feature Pyramid Networks)將特征提取網(wǎng)絡(luò)3 個(gè)尺度13×13、26×26、52×52 的特征相融合,實(shí)現(xiàn)了多尺度特征的預(yù)測。之后將3 個(gè)尺度的特征輸入YOLO 層,進(jìn)行邊界框(Bounding box)回歸和目標(biāo)類別的預(yù)測。YOLO 使用錨點(diǎn)框(Anchor box)預(yù)測邊界框,錨點(diǎn)框是一組預(yù)先設(shè)定的超參數(shù)。由于YOLO 對(duì)3 個(gè)尺度的特征進(jìn)行預(yù)測,因此分別為每個(gè)尺度特征設(shè)置3 個(gè)錨點(diǎn)框,通過特征圖譜預(yù)測目標(biāo)在原圖像中的位置和目標(biāo)的具體大小,錨點(diǎn)框與真實(shí)邊界框的重疊區(qū)域大小使用交并比(Intersection over Union,IOU)判定。
YOLOv3 的損失函數(shù)如式(1)所示,分為中心坐標(biāo)定位損失、寬高損失、置信度損失、分類損失4 部分。
(1)lossxy指中心坐標(biāo)的均方誤差,如式(2)所示:
式中:xi,yi——真實(shí)目標(biāo)框中心點(diǎn)的橫縱坐標(biāo);,——預(yù)測目標(biāo)框中心點(diǎn)的橫縱坐標(biāo);S2——特征圖譜的尺寸,即13×13、26×26、52×52;——預(yù)測第i 個(gè)特征圖譜網(wǎng)格的第j 個(gè)錨點(diǎn)框是否預(yù)測到真實(shí)目標(biāo)。
首先計(jì)算錨點(diǎn)框與真實(shí)邊界框的交并比,計(jì)算方式如式(3)所示。
式中:S(A)——真實(shí)邊界框區(qū)域的面積;S(B)——錨點(diǎn)框的面積;∩——交集;∪——并集。
因此IOU 的值就等于真實(shí)邊界框與錨點(diǎn)框交集的面積與兩者并集的面積之間的比值。預(yù)先設(shè)定一個(gè)IOU 閾值,通過計(jì)算每個(gè)網(wǎng)格的錨點(diǎn)框與真實(shí)邊界框的IOU 值,若大于預(yù)先設(shè)定的閾值,則認(rèn)為此錨點(diǎn)框可預(yù)測到真實(shí)目標(biāo),=1;若小于閾值則認(rèn)為此錨點(diǎn)框?yàn)轭A(yù)測到真實(shí)目標(biāo),=0。
在原損失函數(shù)中,使用IOU 并預(yù)先設(shè)定閾值作為篩選錨點(diǎn)框的標(biāo)準(zhǔn),舍棄低于此閾值的錨點(diǎn)框,對(duì)滿足條件的錨點(diǎn)框使用lossxy與losswh進(jìn)行損失回歸。IOU 只考慮了兩框的重疊面積,而沒有考慮到兩框的重合情況,且忽略了兩框沒有重疊的情況,使得部分錨點(diǎn)框沒有被用于損失回歸,造成漏檢的問題。
基于以上損失函數(shù),使用lossdiou[19]替換其中的定位損失lossxy和寬高損失losswh。lossdiou的計(jì)算方式如式(7)所示。
式中:b,bgt——真實(shí)邊界框和錨點(diǎn)框的中心點(diǎn);ρ2——計(jì)算2 個(gè)中心點(diǎn)歐氏距離的平方;c——能夠同時(shí)包圍真實(shí)邊界框和錨點(diǎn)框的最小矩形的對(duì)角線距離。具體展示如圖2 所示。
圖2 DIOU 損失函數(shù)示意圖Fig.2 Diagrammatic sketch of DIOU loss function
由于lossdiou直接對(duì)錨點(diǎn)框與真實(shí)邊界框的直接距離進(jìn)行損失回歸,收斂速度要比lossxy+losswh更快,既作為錨點(diǎn)框的篩選標(biāo)準(zhǔn)使得獲得的錨點(diǎn)框更合理有效,同時(shí)又可對(duì)滿足條件的錨點(diǎn)框進(jìn)行優(yōu)化使其能夠預(yù)測真實(shí)邊界框。它將兩框之間的距離、重疊情況和尺度都考慮進(jìn)去,使得損失回歸更穩(wěn)定。
隨著特征提取網(wǎng)絡(luò)深度加深,可以獲得圖像更深層次的語義特征。淺層次的特征包含了更多的細(xì)節(jié)信息,深層次的特征包含更豐富的語義信息。淺層次的特征和深層次的特征都是后續(xù)目標(biāo)分類和目標(biāo)位置回歸的基礎(chǔ)。因此,YOLOv3 選用特征提取網(wǎng)絡(luò)獲得的3 個(gè)不同深度的特征圖譜,分別為52×52×256、26×26×512、13×13×1 024。通過特征金字塔網(wǎng)絡(luò)FPN 以自底向上的順序?qū)⑸顚哟翁卣魃喜蓸优c淺層次特征融合,實(shí)現(xiàn)了多尺度特征融合。多尺度特征融合對(duì)目標(biāo)檢測效果有著顯著的提升,但由于經(jīng)過一定深度卷積和下采樣的深層特征丟失了圖片的細(xì)節(jié)信息,因此對(duì)小尺寸目標(biāo)的檢測具有一定的影響。本文基于空洞卷積提出空洞卷積融合模塊,使用不同膨脹率的卷積核對(duì)融合后的特征進(jìn)一步特征提取??斩淳矸e通過在卷積核添加0 權(quán)重,在不增加額外參數(shù)的情況下,擴(kuò)大了卷積的感受野,提升了空間分辨率。空洞卷積融合模塊的結(jié)構(gòu)如圖3 所示。
圖3 空洞卷積融合模塊Fig.3 Dilated convolution fusion module
首先使用大小為3×3、步長為1、膨脹率為2的空洞卷積核、2 個(gè)1×1 卷積核和ReLU 激活函數(shù),構(gòu)成第1 個(gè)卷積層作為其中一個(gè)分支,這一層擁有5×5 的感受野。第2 個(gè)卷積層由大小為3×3、步長為1、膨脹率為3 的空洞卷積核、2 個(gè)1×1 卷積核和ReLU 激活函數(shù)組成,這一層擁有7×7 的感受野。將特征金字塔獲取到的3 個(gè)尺寸的特征分別輸入2 個(gè)空洞卷積分支,將輸出特征以矩陣拼接的方式得到最終輸出。
注意力機(jī)制一般分為通道注意力、空間注意力和通道空間混合注意力,其中通道注意力機(jī)制將特征圖譜逐通道調(diào)整其權(quán)重,使其自適應(yīng)地增強(qiáng)包含重要信息的通道權(quán)重,抑制無關(guān)信息的通道權(quán)重,從而避免特征中的干擾信息對(duì)目標(biāo)檢測的影響。由于此前的輸出特征經(jīng)過特征金字塔網(wǎng)絡(luò)多尺度特征融合和空洞卷積模塊的特征融合,產(chǎn)生大量的冗余信息,因此引入通道注意力機(jī)制,具體結(jié)構(gòu)如圖4所示。
圖4 通道注意力機(jī)制模塊Fig.4 SENet module
圖4 中特征圖譜的尺寸為H×W,通道數(shù)為C。進(jìn)入此模塊的特征圖通過全局平均池化(Global average pooling)使得每一個(gè)通道得到一個(gè)標(biāo)量,后經(jīng)過激活層(Excitation)使用sigmoid 激活函數(shù)將此標(biāo)量的范圍控制在0 到1 之間,作為每個(gè)通道的權(quán)重,將原特征圖譜與權(quán)重進(jìn)行Scale 操作,即將對(duì)應(yīng)通道的每個(gè)元素與權(quán)重相乘,得到加權(quán)特征。通過調(diào)整權(quán)重使得特征圖更關(guān)注重要的信息,從而減少信息冗余,進(jìn)一步加強(qiáng)有效特征。
現(xiàn)有的經(jīng)過標(biāo)注的火焰目標(biāo)數(shù)據(jù)集較少,本實(shí)驗(yàn)選擇公開數(shù)據(jù)集BoWFire 和從互聯(lián)網(wǎng)搜集的包含有火焰目標(biāo)的1 814 張圖片構(gòu)成,使用labelImg 工具對(duì)圖片中的火焰目標(biāo)標(biāo)注。從而獲取到由2 040張圖片構(gòu)成的實(shí)驗(yàn)數(shù)據(jù)集,按91 的比例隨機(jī)分為訓(xùn)練集和驗(yàn)證集。部分?jǐn)?shù)據(jù)集如圖5 所示。
圖5 數(shù)據(jù)集部分?jǐn)?shù)據(jù)Fig.5 Parts of datasets
實(shí)驗(yàn)引入ImageNet 數(shù)據(jù)集訓(xùn)練好的DarkNet53權(quán)重參數(shù),通過遷移學(xué)習(xí)調(diào)整新模型的參數(shù),使其更快收斂。學(xué)習(xí)率初始設(shè)定為0.001,學(xué)習(xí)率策略選用余弦退火方式,batchsize 設(shè)為4,如圖6 所示。經(jīng)過50 個(gè)epoch 損失趨于穩(wěn)定。
圖6 模型訓(xùn)練過程Fig.6 Process of model training
深度學(xué)習(xí)模型的評(píng)價(jià)指標(biāo)一般使用精確率(Precision)和召回率(Recall),其中精確率用于評(píng)估預(yù)測結(jié)果中對(duì)正樣本預(yù)測正確的情況,計(jì)算公式如式(8)。召回率用于評(píng)估預(yù)測的正樣本在所有正樣本中所占的比率,計(jì)算公式如式(9)。
式中:TP——真陽率,即將正樣本預(yù)測為正的個(gè)數(shù);FP——假陽率,即將負(fù)樣本預(yù)測為正的個(gè)數(shù)。
式中:FN——假陰率,既將正樣本預(yù)測為負(fù)的個(gè)數(shù)。
目標(biāo)檢測任務(wù)基于以上精確率和召回率引入平均精度均值mAP(mean Average Precision)作為評(píng)估模型性能的指標(biāo),計(jì)算公式如式(10)。
式中:APi——以精確率和召回率為橫縱坐標(biāo)的PR曲線與坐標(biāo)軸區(qū)域的面積;N——目標(biāo)類別數(shù)。因此mAP 即為取每個(gè)類AP 值的平均值。
本實(shí)驗(yàn)采用mAP 值作為模型檢測精度的衡量標(biāo)準(zhǔn),值越高則模型檢測精度越高。采用每秒傳輸幀數(shù)FPS 作為衡量模型檢測速度的標(biāo)準(zhǔn),值越高則模型檢測速度越快。
本實(shí)驗(yàn)所使用的實(shí)驗(yàn)環(huán)境配置為Windows10操作系統(tǒng)、16 GB內(nèi)存、RTX2060GPU 和AMD Ryzen7 CPU;軟件平臺(tái)包括深度學(xué)習(xí)框架Pytorch1.7.0 和Python3.8。
實(shí)驗(yàn)通過以上環(huán)境使用同一組數(shù)據(jù)集對(duì)YOLOv3、Faster R-CNN、以VGG16 為特征提取網(wǎng)絡(luò)的SSD、以MobileNet 為特征提取網(wǎng)絡(luò)的SSD 和本文算法相對(duì)照。實(shí)驗(yàn)結(jié)果如表1 所示。
表1 模型效果對(duì)比Tab.1 Comparison of model performance
實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的模型整體檢測精度達(dá)到了81.2%mAP,相比原YOLOv3 模型提升了2.9%。與兩種SSD 模型相比,在檢測精度上分別提升了10.65%和5.07%。與Faster R-CNN 模型檢測精度相差0.6%,檢測速度達(dá)到了45.4 f/s,相比Faster R-CNN 提升了32.9 f/s。使用訓(xùn)練好的模型對(duì)測試集進(jìn)行測試標(biāo)注,部分結(jié)果如圖7 所示。
圖7 測試結(jié)果Fig.7 Experimental results
圖7(a)是YOLOv3 模型的檢測結(jié)果,圖7(b)為本文改進(jìn)模型的檢測結(jié)果。實(shí)例中YOLOv3 模型對(duì)圖片中的小尺寸目標(biāo)存在漏檢的情況,而改進(jìn)后的模型成功檢測到了小尺寸的火焰目標(biāo)。通過以上測試實(shí)例的對(duì)比,可以證明改進(jìn)模型對(duì)小目標(biāo)的檢測有更優(yōu)秀的效果,更適合于火焰目標(biāo)檢測任務(wù)。
本文基于YOLOv3 算法提出改進(jìn)策略并將其應(yīng)用于火焰目標(biāo)檢測任務(wù),實(shí)現(xiàn)了對(duì)火焰目標(biāo)檢測效果的提升以及對(duì)小目標(biāo)檢測的適用性。通過實(shí)驗(yàn)分析證明改進(jìn)模型在目標(biāo)檢測精度和檢測速度上都有優(yōu)秀的表現(xiàn)。
實(shí)驗(yàn)存在的不足之處為所用數(shù)據(jù)集較小,后續(xù)工作將會(huì)繼續(xù)擴(kuò)充數(shù)據(jù)集,以及獲取不同背景條件下火焰目標(biāo)圖片。通過圖像增強(qiáng)方法降低復(fù)雜背景條件對(duì)檢測任務(wù)的影響。使得模型能夠適應(yīng)不同的應(yīng)用場景,提升模型的泛用性。