田維青,唐云鵬,周 超,王鑫靚,景文林,張 萌
(1.貴州黔源電力股份有限公司,貴州 貴陽(yáng) 550002;2.南京南自信息技術(shù)有限公司,江蘇 南京 210003;3.東南大學(xué)電子科學(xué)與工程學(xué)院,江蘇 南京 210096)
隨著我國(guó)經(jīng)濟(jì)社會(huì)的高速發(fā)展與各項(xiàng)基礎(chǔ)建設(shè)的不斷推進(jìn),各種大小場(chǎng)景、事務(wù)中的安全隱患日益增多,安全問(wèn)題越來(lái)越得到社會(huì)的廣泛關(guān)注,其中消防安全是安全問(wèn)題中的重要一環(huán),許多場(chǎng)景都格外重視消防安全,電廠也不例外。電廠是電力系統(tǒng)的核心,電廠的消防安全關(guān)系到電廠員工的生活安全與生產(chǎn)安全,關(guān)系到國(guó)家能源安全與電力系統(tǒng)的安全穩(wěn)定以及廣大公民的民生福祉[1]。因此對(duì)于電廠而言,為了避免經(jīng)濟(jì)損失、避免給現(xiàn)場(chǎng)員工帶來(lái)安全威脅,消防安全至關(guān)重要,防患于未然的同時(shí),時(shí)刻監(jiān)控消防器材的狀態(tài)是對(duì)消防安全的又一有利保障。
隨著計(jì)算機(jī)技術(shù)與人工智能的飛速發(fā)展,越來(lái)越多需要大量人力的工作開(kāi)始交付由計(jì)算機(jī)或者機(jī)器人來(lái)完成。智能是知識(shí)與智力的總和,人能夠獲取知識(shí)并利用知識(shí)解決問(wèn)題,比如圖像識(shí)別等。人工智能是通過(guò)計(jì)算機(jī)編程,讓計(jì)算機(jī)擬合人類(lèi)學(xué)習(xí)知識(shí)與解決問(wèn)題的能力[2]。通過(guò)監(jiān)控?cái)z像頭實(shí)時(shí)拍攝消防器材狀態(tài)并通過(guò)人力進(jìn)行觀察,這種傳統(tǒng)方法智能化程度低,人力與時(shí)間消費(fèi)大,如果監(jiān)控人員疏忽懈怠,無(wú)法及時(shí)發(fā)現(xiàn)消防事故地點(diǎn)附近的消防器材移動(dòng),會(huì)對(duì)電廠與電廠人員安全造成無(wú)法估計(jì)的嚴(yán)重后果[3],這種方法無(wú)法真正實(shí)現(xiàn)對(duì)器材全天候無(wú)死角的監(jiān)控。而利用人工智能領(lǐng)域的深度學(xué)習(xí)目標(biāo)檢測(cè)技術(shù)[4],可以隨時(shí)將監(jiān)控?cái)z像頭拍攝的實(shí)時(shí)圖片傳送到服務(wù)器,利用算法進(jìn)行檢測(cè)識(shí)別,真正實(shí)現(xiàn)對(duì)消防器材全天候的監(jiān)控,讓電廠具備更先進(jìn)的監(jiān)控技術(shù),減少人工成本的使用,使電廠更加數(shù)字化、智能化,推動(dòng)電廠朝更先進(jìn)的方向快速發(fā)展。
因此,利用器材移動(dòng)檢測(cè)技術(shù)對(duì)消防器材進(jìn)行智能檢測(cè),及時(shí)發(fā)現(xiàn)器材的實(shí)時(shí)狀態(tài),發(fā)現(xiàn)問(wèn)題后進(jìn)行預(yù)警,是電廠消防安全體系的重要組成部分[5]。器材移動(dòng)檢測(cè)技術(shù)分為兩個(gè)部分:首先是利用目標(biāo)檢測(cè)算法對(duì)攝像頭獲取的視頻中的每一幀進(jìn)行檢測(cè)識(shí)別,找出每一個(gè)消防器材所在的位置以及分類(lèi);其次就是通過(guò)對(duì)比預(yù)置幀與當(dāng)前幀,判別消防器材是否移動(dòng)。
傳統(tǒng)的計(jì)算機(jī)視覺(jué)圖像處理算法有基于顏色、紋理、梯度等類(lèi)型,這些方法存在細(xì)節(jié)處理弱、泛化性不強(qiáng)的缺點(diǎn),而深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)可以有效解決傳統(tǒng)算法的這些問(wèn)題[6]。目前國(guó)內(nèi)對(duì)消防方面的深度學(xué)習(xí)應(yīng)用較為薄弱,主要是應(yīng)用基于卷積神經(jīng)網(wǎng)絡(luò)的煙霧識(shí)別算法來(lái)進(jìn)行森林火災(zāi)的檢測(cè),而對(duì)消防器材的檢測(cè)識(shí)別較少。深度學(xué)習(xí)目標(biāo)檢測(cè)的任務(wù)是找出圖像中所有感興趣的目標(biāo)并確定他們的位置,是人工智能計(jì)算機(jī)視覺(jué)領(lǐng)域的核心問(wèn)題之一[7]?,F(xiàn)有的目標(biāo)檢測(cè)網(wǎng)絡(luò)包括兩階段檢測(cè)器如Fast-RCNN、Faster-RCNN 等,一階段檢測(cè)器如SSD、YOLO、EfficientDet、CenterNet 等。兩階段檢測(cè)器精度較高,先提取候選框并調(diào)整成固定大小,再輸入深度神經(jīng)網(wǎng)絡(luò)進(jìn)行分類(lèi)以及邊界框的回歸矯正[8],但由于選擇搜索等模板匹配的過(guò)程以及輸入深度神經(jīng)網(wǎng)絡(luò)后計(jì)算大量重復(fù)而沒(méi)有共享計(jì)算,導(dǎo)致運(yùn)算過(guò)慢,檢測(cè)速度不能滿(mǎn)足實(shí)時(shí)性,兩階段目標(biāo)檢測(cè)算法適合在對(duì)準(zhǔn)確性需求超過(guò)實(shí)時(shí)性的領(lǐng)域應(yīng)用,比如醫(yī)療等;而一階段檢測(cè)器將目標(biāo)檢測(cè)轉(zhuǎn)換成一個(gè)回歸問(wèn)題,利用圖片作為網(wǎng)絡(luò)輸入,經(jīng)過(guò)一個(gè)深度神經(jīng)網(wǎng)絡(luò),將回歸信息與類(lèi)別信息一起輸出[9],使用邏輯回歸預(yù)測(cè)邊界框的置信度評(píng)分[10],極大提升了目標(biāo)檢測(cè)速度。
小目標(biāo)檢測(cè)是目標(biāo)檢測(cè)技術(shù)中的重難點(diǎn),使用電廠工業(yè)電視攝像頭采集現(xiàn)場(chǎng)圖片對(duì)工業(yè)現(xiàn)場(chǎng)消防器材進(jìn)行檢測(cè),器材目標(biāo)不僅分辨率低,且易出現(xiàn)阻擋密集的情況。小目標(biāo)具有分辨率低、特征表達(dá)不充分,檢測(cè)難度高[11]等問(wèn)題。針對(duì)小目標(biāo)檢測(cè),可以使用多尺度學(xué)習(xí)、數(shù)據(jù)增強(qiáng)擴(kuò)充數(shù)據(jù)集等方式來(lái)提高對(duì)小目標(biāo)的檢測(cè)性能。
當(dāng)前目標(biāo)檢測(cè)算法都是基于anchor 的,網(wǎng)絡(luò)輸出在基礎(chǔ)anchor 上的長(zhǎng)寬以及中心點(diǎn)的偏移量來(lái)完成對(duì)目標(biāo)的回歸。anchor-based 的目標(biāo)檢測(cè)網(wǎng)絡(luò)是非常有效的,但是依然存在一些問(wèn)題:為了確保與GT(Ground Truth)框,也就是真實(shí)框,充分重疊,需要大量anchor boxes,在正負(fù)樣本之間會(huì)造成巨大的不平衡,負(fù)樣本數(shù)量遠(yuǎn)遠(yuǎn)超于正樣本,減緩訓(xùn)練速度;anchor 的使用引入了許多超參數(shù)和設(shè)計(jì)選擇,很大程度上是通過(guò)自組織啟發(fā)法做出的,當(dāng)與多尺度體系結(jié)構(gòu)相結(jié)合時(shí),情況會(huì)變得更加復(fù)雜;anchor 難以平衡小目標(biāo)召回率與計(jì)算成本之間的矛盾,導(dǎo)致了小目標(biāo)的正樣本與大目標(biāo)的正樣本極度不均衡,使得模型更加關(guān)注于大目標(biāo)的檢測(cè)性能,從而忽視了小目標(biāo)的檢測(cè)。針對(duì)這些問(wèn)題,可以采用anchorfree 方法,例如CornerNet、FCOS 等。
對(duì)于需要大數(shù)據(jù)訓(xùn)練的深度學(xué)習(xí)目標(biāo)檢測(cè)算法來(lái)說(shuō),擁有一個(gè)樣本數(shù)量多、種類(lèi)場(chǎng)景多樣化的數(shù)據(jù)集,將模型輸出結(jié)果與真實(shí)結(jié)果對(duì)比計(jì)算損失函數(shù),計(jì)算梯度,利用反向傳播算法對(duì)模型進(jìn)行迭代優(yōu)化,是至關(guān)重要的。公開(kāi)數(shù)據(jù)集中關(guān)于消防安全的比較少,然而對(duì)比于跑冒滴漏這種不常見(jiàn)的現(xiàn)象,消防器材是隨處可見(jiàn)的,圖片獲取途徑較多,比如網(wǎng)絡(luò)搜索或者實(shí)地拍攝。同時(shí),消防器材的多樣性、分辨率大小以及遮擋密集等,在手工制作數(shù)據(jù)集時(shí)也易于實(shí)現(xiàn)。
本文以YOLOv5 為基礎(chǔ),收集消防器材圖片并標(biāo)定數(shù)據(jù)集,針對(duì)消防器材的特點(diǎn)改進(jìn)YOLOv5 算法,用廠站現(xiàn)有工業(yè)電視攝像頭獲取現(xiàn)場(chǎng)實(shí)時(shí)圖像數(shù)據(jù),對(duì)區(qū)域內(nèi)指定消防器材位置是否移動(dòng)進(jìn)行檢測(cè),若區(qū)域內(nèi)指定消防器材位置移動(dòng)超過(guò)一定時(shí)間,向平臺(tái)發(fā)出警告,提取關(guān)鍵幀保存,從而杜絕電廠安全隱患。本文的貢獻(xiàn)有以下幾點(diǎn):①收集消防器材圖片構(gòu)建消防器材數(shù)據(jù)集;②給YOLOv5 算法增加一個(gè)尺度為4 倍的下采樣輸出,專(zhuān)注于改善小尺度器材的檢測(cè);針對(duì)器材減小最大池化層池化核尺寸;添加Transformer Encoder;替換FCOS 檢測(cè)頭。
YOLOv5 算法的基本原理是先對(duì)圖像特征提取,將提取到的特征輸入特征金字塔網(wǎng)絡(luò)和路徑聚合網(wǎng)絡(luò)進(jìn)行多尺度融合,最后經(jīng)由檢測(cè)頭輸出三種不同尺度的特征圖,分別適合檢測(cè)大、中、小三種尺寸的目標(biāo),在訓(xùn)練階段區(qū)分正負(fù)樣本計(jì)算損失函數(shù)后反向傳播,在檢測(cè)階段進(jìn)行非極大值抑制得到最終結(jié)果。
YOLOv5 算法需要對(duì)圖像進(jìn)行預(yù)處理,使圖像尺寸適應(yīng)網(wǎng)絡(luò)輸入,訓(xùn)練時(shí)采用數(shù)據(jù)增強(qiáng)以提高模型性能。
YOLOv5 算法使用自適應(yīng)圖片縮放的圖像預(yù)處理方法。常用的圖像縮放方法是將原始圖片統(tǒng)一縮放到一個(gè)標(biāo)準(zhǔn)尺寸,再送入檢測(cè)網(wǎng)絡(luò)??s放填充后不同尺寸圖片填充的黑邊大小都不同,而如果填充的比較多,就會(huì)出現(xiàn)信息冗余、影響推理速度的問(wèn)題。YOLOv5 算法對(duì)原始圖像自適應(yīng)地添加最少的黑邊,將長(zhǎng)邊縮放為需要的尺寸,短邊等比例縮放,將縮放后的短邊填充為最小的32 的倍數(shù)。訓(xùn)練時(shí)不采用自適應(yīng)圖片縮放而是采用傳統(tǒng)填充的方式,而在測(cè)試、使用模型推理時(shí),采用自適應(yīng)圖片縮放的方式,可提高檢測(cè)、推理的速度。
YOLOv5 算法與YOLOv4 算法一樣,訓(xùn)練時(shí)在輸入端使用Mosaic 數(shù)據(jù)增強(qiáng)。Mosaic 數(shù)據(jù)增強(qiáng)參考CutMix 數(shù)據(jù)增強(qiáng)(用兩張圖片進(jìn)行拼接),采用4 張圖片進(jìn)行隨機(jī)縮放裁剪排布的方式進(jìn)行拼接[12],如圖1 所示,大大豐富了數(shù)據(jù)集,隨機(jī)縮放豐富了許多小目標(biāo),增強(qiáng)檢測(cè)網(wǎng)絡(luò)的魯棒性,同時(shí)可以減少訓(xùn)練占用GPU 顯存。在使用網(wǎng)絡(luò)進(jìn)行推理時(shí)不使用Mosaic 數(shù)據(jù)增強(qiáng)。
圖1 Mosaic 數(shù)據(jù)增強(qiáng)示例圖
YOLOv5 的網(wǎng)絡(luò)結(jié)構(gòu)由三部分組成:Backbone、Neck、Head,如圖2 所示。
圖2 YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)圖
Backbone 部分由YOLOv4 的CSPDarkNet 改進(jìn)而來(lái),首先是Focus 層,將特征圖切片后拼接再經(jīng)過(guò)一個(gè)卷積層,進(jìn)行一次下采樣;隨后是四個(gè)卷積層與BottleneckCSP 層的組合,每一個(gè)組合都進(jìn)行一次下采樣。BottleneckCSP 是一種殘差模塊,可以更有效地提取特征,將基礎(chǔ)層的特征映射劃分為兩部分,通過(guò)跨階段層次結(jié)構(gòu)將它們合并,在減少計(jì)算量的同時(shí)可以保證準(zhǔn)確率。最后一個(gè)組合卷積層與BottleneckCSP 層中間有一個(gè)SPP 層,使用不同尺寸的池化核實(shí)現(xiàn)不同尺度的融合,比單純使用k×k最大池化,更有效地增加主干特征的接受范圍,顯著分離最重要的上下文特征。主干網(wǎng)絡(luò)Backbone 一共經(jīng)過(guò)5次下采樣,每次下采樣特征圖尺寸變?yōu)樵瓉?lái)的1/2,第五次下采樣輸出的C5 特征圖尺寸是初始的1/32,也就是32 倍下采樣。將C3 特征圖(8 倍下采樣)、C4 特征圖(16 倍下采樣)、C5 特征圖輸出到下一部分Neck。YOLOv4 的CSPDarkNet 結(jié)構(gòu)如圖3所示,可以看出YOLOv5 的Backbone 主要改進(jìn)了殘差模塊,并且使用了Focus 替換第一個(gè)下采樣模塊以及在殘差模塊之間穿插卷積層。
圖3 YOLOv4 CSPDarkNet 結(jié)構(gòu)圖
Neck 由特征金字塔網(wǎng)絡(luò)FPN(Feature Pyramid Network)和路徑聚合網(wǎng)絡(luò)PAN(Path Aggregation Network)組成,深層特征語(yǔ)義信息強(qiáng),定位信息弱,淺層特征語(yǔ)義信息弱,定位信息強(qiáng)。FPN 自頂向下傳達(dá)強(qiáng)語(yǔ)義特征,將深層特征上采樣后與淺層特征融合,增強(qiáng)語(yǔ)義表達(dá),PAN 自底向上傳達(dá)強(qiáng)定位特征,將FPN 融合后的結(jié)果用卷積層再次下采樣后與FPN 深層特征再次融合,增強(qiáng)定位能力。對(duì)比YOLOv4 的Neck 結(jié)構(gòu)采用普通的卷積操作,YOLOv5 采用Backbone 中使用的BottleneckCSP 結(jié)構(gòu),加強(qiáng)特征融合能力。
Head 有三個(gè)分支,分別對(duì)應(yīng)尺寸為32 倍、16倍、8 倍下采樣的特征圖,經(jīng)過(guò)卷積層預(yù)測(cè)結(jié)果。在YOLOv1 中,直接對(duì)box 的位置進(jìn)行預(yù)測(cè),由于沒(méi)有類(lèi)似RCNN 系列的候選框生成,網(wǎng)絡(luò)在前期訓(xùn)練時(shí)非常困難,難以收斂。自YOLOv2 開(kāi)始,引入了anchor box 機(jī)制,通過(guò)提前篩選(K-means 聚類(lèi))得到的具有代表性先驗(yàn)框anchor,網(wǎng)絡(luò)回歸位置信息時(shí)預(yù)測(cè)box 中心相對(duì)于網(wǎng)格坐標(biāo)的偏移量與box 寬高相對(duì)于anchor 寬高的偏移量,如圖4 所示,使得網(wǎng)絡(luò)在訓(xùn)練時(shí)更容易收斂。
圖4 anchor 示意圖
YOLOv5 輸出三種尺度的特征圖,每一種尺度的特征圖都各自對(duì)應(yīng)三個(gè)anchor。假如輸入尺寸為640×640,32 倍下采樣特征圖輸出尺寸為20×20,將圖片分成20×20 個(gè)較大的網(wǎng)格,對(duì)應(yīng)尺寸較大的三個(gè)anchor,感受野最大,適合檢測(cè)大目標(biāo);16 倍下采樣特征圖輸出尺寸為40×40,將圖片分成40×40 個(gè)中等的網(wǎng)格,對(duì)應(yīng)尺寸中等的三個(gè)anchor,適合檢測(cè)一般大小的目標(biāo);8 倍下采樣特征圖輸出尺寸為80×80,將圖片分成80×80 個(gè)較小的網(wǎng)格,對(duì)應(yīng)尺寸較小的三個(gè)anchor,感受野最小,適合檢測(cè)小目標(biāo)。每一個(gè)網(wǎng)格預(yù)測(cè)三個(gè)box 的anchor 偏移量、confidence以及分類(lèi)概率。
損失函數(shù)是YOLO 目標(biāo)檢測(cè)算法的重要部分。第一代的YOLO 檢測(cè)器中,主要使用總方誤差來(lái)優(yōu)化,在YOLO 算法的發(fā)展中對(duì)置信度與分類(lèi)概率改進(jìn)使用交叉熵?fù)p失,以及對(duì)定位回歸使用IoU-Loss。對(duì)計(jì)算真實(shí)框GT(Ground Truth)落在哪個(gè)網(wǎng)格內(nèi),利用四舍五入規(guī)則,找出最近的兩個(gè)網(wǎng)格,將這三個(gè)網(wǎng)格都認(rèn)為是負(fù)責(zé)預(yù)測(cè)該GT。GT 與anchor 計(jì)算寬高比,如果寬高比例大于設(shè)定閾值,GT 與anchor 匹配度不夠,將該anchor 過(guò)濾暫時(shí)丟掉。正樣本參與回歸定位、置信度confidence 以及分類(lèi)概率的loss計(jì)算,負(fù)樣本只參與置信度的loss 計(jì)算。
本文在原有YOLOv5 算法的基礎(chǔ)上改進(jìn),增加一個(gè)尺度為4 倍的下采樣輸出,專(zhuān)注于改善小尺度器材的檢測(cè);針對(duì)器材減小最大池化層池化核尺寸;添加Transformer Encoder;替換FCOS 檢測(cè)頭。改進(jìn)的YOLOv5 算法網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示。
圖5 改進(jìn)的YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)圖
在原本的YOLOv5 算法中,PAN 輸出中有3 個(gè)不同尺度的特征圖C3、C4、C5,分別對(duì)應(yīng)8、16、32 倍下采樣的尺度。下采樣倍數(shù)越大,越適合檢測(cè)大目標(biāo),而在監(jiān)控?cái)z像頭場(chǎng)景下,消防器材尺寸一般比較小,同時(shí)還有器材遮擋等情況的出現(xiàn),因此,在改進(jìn)的YOLOv5 算法中,添加一個(gè)額外的C2 輸出塊,它的特征圖尺寸為4 倍下采樣,有助于檢測(cè)尺寸稍小的消防器材。
在原本的YOLOv5 算法中,SPP 層使用不同的池化核,實(shí)現(xiàn)不同尺度的融合以增加接收域,使用了3 個(gè)內(nèi)核大小:13×13、9×9、5×5。將其修改為更小的池化核:7×7、5×5、3×3,使用較小的核有助于更容易地檢測(cè)遮擋嚴(yán)重的器材以及尺寸較小的器材,提高整體消防器材檢測(cè)性能。
使用Transformer Encoder 來(lái)代替路徑聚合網(wǎng)絡(luò)中的BottleneckCSP 模塊,Transformer Encoder 結(jié)構(gòu)如圖6 所示,一共有兩個(gè)殘差連接,第一個(gè)殘差連接先通過(guò)層間歸一化后使用多頭注意力,多頭注意力將原本的特征由高維投影到低維多次,將多次投影的自注意力結(jié)果拼接后投影回高維,隨后是Dropout隨機(jī)舍棄一部分神經(jīng)元,該操作可以緩解神經(jīng)網(wǎng)絡(luò)過(guò)擬合,最后與shortcut 路徑也就是輸入特征相加。自從Transformer 問(wèn)世以來(lái),自然語(yǔ)言處理(Natural Language Processing,NLP)領(lǐng)域中廣泛使用的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)逐漸被Transformer 取代,Transformer 成為NLP 的主流。隨著DETR(End-to-End Object Detection with Transformers) 目標(biāo)檢測(cè)器與視覺(jué)Transformer 的問(wèn)世,Transformer 開(kāi)始應(yīng)用于計(jì)算機(jī)視覺(jué)領(lǐng)域,是目前的主流趨勢(shì),對(duì)計(jì)算機(jī)視覺(jué)與自然語(yǔ)言處理大一統(tǒng)起到了推動(dòng)作用。Transformer 具有獨(dú)特的全局注意力機(jī)制,效果比原先沒(méi)有注意力機(jī)制要更好。由于在輸入Transformer 之前已經(jīng)通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取特征,卷積操作給特征圖已經(jīng)帶來(lái)位置信息,因此在使用Transformer Encoder 時(shí)候無(wú)需再添加位置編碼。
圖6 Transformer Encoder 結(jié)構(gòu)圖
原版的YOLOv5 在Head 部分僅使用一個(gè)卷積將不同尺度的回歸與分類(lèi)信息全部預(yù)測(cè),本文將其用FCOS 的檢測(cè)頭替換,檢測(cè)頭結(jié)構(gòu)如圖7 所示。將分類(lèi)與回歸分開(kāi)預(yù)測(cè),在特征圖的每個(gè)位置上預(yù)測(cè)C個(gè)分類(lèi)參數(shù)與4 個(gè)距離參數(shù)(目標(biāo)左側(cè)距離l,上側(cè)距離t,右側(cè)距離r以及下側(cè)距離b)以及1 個(gè)center-ness 參數(shù)反映該點(diǎn)距離目標(biāo)中心的遠(yuǎn)近程度,不再使用anchor。
圖7 FCOS 檢測(cè)頭結(jié)構(gòu)圖
在基于大數(shù)據(jù)的深度學(xué)習(xí)算法中,數(shù)據(jù)集是保證算法性能的重要一環(huán),保證數(shù)據(jù)種類(lèi)、場(chǎng)景(遮擋、光照)、尺寸的多樣性是算法高泛化性和魯棒性的保證。由于公開(kāi)數(shù)據(jù)集中關(guān)于消防器材比較少,選擇實(shí)地拍攝微型消防站圖片以及截取監(jiān)控?cái)z像頭視頻幀采集目標(biāo)圖片,手工標(biāo)定YOLO 格式標(biāo)簽。數(shù)據(jù)集包含1 739 張圖片,包含消防帽、消防桶、滅火器、消防斧、消防鏟、滅火器箱六個(gè)目標(biāo)分類(lèi)。其中姿態(tài)、遮擋、疏密、光照、尺寸等有多樣性,加強(qiáng)了目標(biāo)檢測(cè)的挑戰(zhàn)性,按照9 ∶1 的比例劃分訓(xùn)練集和驗(yàn)證集。
在目標(biāo)檢測(cè)任務(wù)中,精度precision 是被檢索目標(biāo)的準(zhǔn)確率,召回率recall 是正確目標(biāo)被檢索的比例。門(mén)限iou_threshold 是在計(jì)算precision 和recall 時(shí)匹配檢測(cè)框與真實(shí)框的IoU(Intersection over Union,交并比)閾值,只有IoU 大于這個(gè)閾值才算匹配成功。每一個(gè)類(lèi)別都可以計(jì)算出其precision 和recall,取不同的置信度閾值conf_threshold,每個(gè)類(lèi)別都可以得到一條PR 曲線,曲線下的面積就是平均精度(Average Precision,AP)的值。mAP 就是所有類(lèi)的AP 值求平均。mAP@.5 是門(mén)限iou_threshold 取0.5 時(shí)的mAP,mAP@.5:.95 是門(mén)限iou_threshold 取0.5 到0.95 間的多個(gè)值時(shí)的mAP 的均值。
本次實(shí)驗(yàn)環(huán)境為python3.9、pytorch1.12、cuda11.6、cudnn8.3.2,硬件平臺(tái)為Nvidia GeForce RTX 2080Ti GPU。
采用遷移學(xué)習(xí)技術(shù),將官方在COCO 數(shù)據(jù)集上的預(yù)訓(xùn)練權(quán)重作為初始權(quán)重,在初始模型的基礎(chǔ)上根據(jù)改進(jìn)的YOLOv5 算法改變模型結(jié)構(gòu)。根據(jù)自己的數(shù)據(jù)集微調(diào)訓(xùn)練150 個(gè)迭代輪次,完成源域也就是COCO 數(shù)據(jù)集到目標(biāo)域也就是消防器材的遷移。訓(xùn)練過(guò)程中,目標(biāo)檢測(cè)評(píng)估指標(biāo)mAP@.5 達(dá)到最大0.927。保存最好的模型文件,訓(xùn)練結(jié)果如圖8 所示,測(cè)試圖片結(jié)果如圖9 所示。
圖8 改進(jìn)的YOLOv5 算法訓(xùn)練結(jié)果圖
圖9 改進(jìn)的YOLOv5 算法檢測(cè)消防器材測(cè)試圖
使用相同的超參數(shù)、數(shù)據(jù)集以及預(yù)處理過(guò)程,使用原本的YOLOv5 算法以及單獨(dú)加入各個(gè)改進(jìn)方面的YOLOv5 算法進(jìn)行消融實(shí)驗(yàn),訓(xùn)練150 個(gè)迭代輪次,算法訓(xùn)練結(jié)果對(duì)比如表1 所示。單獨(dú)加入各個(gè)改進(jìn)方面的YOLOv5 算法比原本的YOLOv5 算法都有性能的提升;改進(jìn)的YOLOv5 算法相比于原本的YOLOv5 算法準(zhǔn)確率precision 和召回率recall 均有提高,算法最重要的評(píng)估指標(biāo)mAP@.5 提升了0.028 3,mAP@.5:.95 提升了0.021 3。改進(jìn)后的YOLOv5 算法在檢測(cè)效果上明顯有了較大的提升,使用改進(jìn)后的YOLOv5 算法具有很高的可靠性。
表1 消融實(shí)驗(yàn)結(jié)果表
將訓(xùn)練好的模型轉(zhuǎn)化TensorRT 模型,部署在Nvidia GeForce RTX 2080Ti 的GPU 服務(wù)器上。TensorRT 是一款高性能深度學(xué)習(xí)推理SDK,包含深度學(xué)習(xí)推理優(yōu)化器和運(yùn)行環(huán)境,可為深度學(xué)習(xí)推理應(yīng)用提供低延遲和高吞吐量。
對(duì)于每一個(gè)攝像頭,初始化每一種類(lèi)器材的個(gè)數(shù)和位置。設(shè)置規(guī)則區(qū)域和超參數(shù)檢測(cè)間隔,若消防器材搬離原位置或者搬移出指定區(qū)域,持續(xù)一段時(shí)間后,則判斷消防器材移動(dòng),并保存移動(dòng)前后關(guān)鍵幀,如圖10 所示,直到消防器材回歸原位。
圖10 器材移動(dòng)前后關(guān)鍵幀
搬離原位置是一個(gè)比較嚴(yán)格的規(guī)則,對(duì)于初始狀態(tài)的每一個(gè)消防器材,假定該器材為m,在當(dāng)前幀尋找是否有位置相近的同類(lèi)器材,如果沒(méi)有,則判斷器材m 移動(dòng);如果有位置相近的同類(lèi)器材n,計(jì)算器材m 與器材n 檢測(cè)框之間的IoU,若IoU 大于一定閾值,則判斷器材m 沒(méi)有移動(dòng),否則判斷該器材移動(dòng)。
搬移出指定區(qū)域是一個(gè)比較寬松的規(guī)則,需要為每一個(gè)攝像頭指定規(guī)則區(qū)域。規(guī)則區(qū)域可以為每一個(gè)目標(biāo)器材單獨(dú)設(shè)置,檢測(cè)到目標(biāo)后在目標(biāo)周?chē)詣?dòng)生成規(guī)則區(qū)域;也可以單純地設(shè)置規(guī)則區(qū)域是攝像頭畫(huà)面區(qū)域,或者針對(duì)每一個(gè)攝像頭,手動(dòng)設(shè)置規(guī)則區(qū)域。本文使用的方案是針對(duì)每一個(gè)攝像頭手動(dòng)設(shè)置規(guī)則區(qū)域,對(duì)于每一類(lèi)消防器材,若規(guī)則區(qū)域內(nèi)器材數(shù)量減少,則判斷器材移動(dòng)。
目前對(duì)消防方面的深度神經(jīng)網(wǎng)絡(luò)應(yīng)用較為薄弱,對(duì)消防器材的檢測(cè)識(shí)別較少。本文建立具有多樣性的消防器材數(shù)據(jù)集,通過(guò)增加輸出尺度、減小池化核尺寸、添加Transformer Encoder、替換FCOS 檢測(cè)頭改進(jìn)了深度神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測(cè)YOLOv5 算法,以對(duì)消防器材進(jìn)行檢測(cè)并且判斷移動(dòng),對(duì)六種不同的消防器材有很高的識(shí)別準(zhǔn)確率,為電廠消防安全體系提供了質(zhì)量保證。