姜國龍, 褚云飛,陳業(yè)紅,吳朝軍
摘要:火災是一種多發(fā)的破壞性災難,通常會導致生命和財產(chǎn)巨大損失,利用圖像監(jiān)控系統(tǒng),研究自動化火焰目標檢測模型意義重大。文章采用基于深度學習的目標檢測系統(tǒng)YOLOv4算法訓練模型。自建了一個沒有重復數(shù)據(jù),包含1566張火焰圖像的數(shù)據(jù)集Multifire,它是一個小規(guī)模的混合數(shù)據(jù)集,進行了精心的數(shù)據(jù)標注和清洗,旨在訓練通用性好的多形態(tài)火焰檢測模型。通過在不同分布的火焰數(shù)據(jù)子集上實施交叉驗證,篩選出3個性能良好的火焰檢測模型,模型針對規(guī)則火、森林野火和混合火進行檢測,綜合性能指標F1,分別達到了0.87、0.88和0.78。對于一般性的多形態(tài)火焰檢測任務,筆者提出一種集成檢測的策略,有效降低火焰目標檢測的漏檢率,提高火焰檢測系統(tǒng)的可用性和安全性。
關(guān)鍵詞:YOLOv4 ;火焰目標檢測;遷移訓練;交叉驗證
中圖分類號:TP183? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)32-0001-05
眾所周知,消防安全是保障人民生命財產(chǎn)的重要工作,火災自動檢測與預警意義重大。有很多基于計算機視覺的火焰目標檢測應用系統(tǒng)出現(xiàn),然而,面對復雜環(huán)境和多形態(tài)火焰目標時, 火焰檢測模型存在著很大的誤檢和漏檢的風險。近年來,因其具有強大的特征自動學習的潛力,深度學習在圖像識別與目標檢測領(lǐng)域取得了快速的發(fā)展和巨大的成功。本文旨在探討提高火焰檢測模型通用性和實用性的途徑。目標是解決目前各種火焰檢測算法普遍存在的火情誤報和漏報嚴重的情況。筆者采用的主要研究方法包括:采用深度學習目標檢測算法,建立有效的數(shù)據(jù)集,進行數(shù)據(jù)整理和清洗,模型訓練采取遷移方式,模型評估實施交叉驗證。
1引言
物體檢測建模算法一般可以分為一階段和兩階段兩大類。一階段方法的代表如YOLO,模型訓練和檢測的速度很快,被證實可以達到實時視頻處理的要求[1-2]。筆者的實驗發(fā)現(xiàn),YOLO訓練的模型普遍能達到很高的檢測精度,很少誤報,但是存在漏報的情況,提高檢測模型的召回率ReCall或者綜合指標F1是YOLO算法訓練的主要方向。另外,一階段算法對于小目標檢測普遍困難,有可能延遲發(fā)現(xiàn)隱患的時間,降低預警系統(tǒng)的應用價值。文獻表明,使用殘差卷積網(wǎng)絡層做主干網(wǎng),通過配置金字塔特征映射結(jié)構(gòu),可以有效地減輕小目標難檢測的問題[3]。同時,很多最新的網(wǎng)絡配置也被用于提高火焰檢測性能的努力,例如,采用空洞卷積網(wǎng)絡層(又稱可變形卷積網(wǎng)絡層)來提高火焰目標的模糊學習能力;采用注意力機制,顯著地幫助檢測網(wǎng)絡獲得更好的性能[4]。在YOLO之外,一些檢測網(wǎng)絡,例如SSD、RefineDet、RetinaNet,都針對小目標和檢測速度的問題進行了改進,在同樣數(shù)據(jù)集上對上述算法進行對比將是非常有益的工作。
深度學習算法高度依賴數(shù)據(jù)集的質(zhì)量和數(shù)量。數(shù)據(jù)集的建設(shè)包括數(shù)據(jù)收集、清洗和標注?;鹧鎴D像數(shù)據(jù)來源廣泛,例如來自監(jiān)控視頻、無人機航拍以及網(wǎng)上圖像搜索等。采用監(jiān)督方式訓練模型,擴大圖像數(shù)據(jù)集的規(guī)模必然需要提供更多的準確標注,然而火焰目標標注的不確定性大,存在著一定挑戰(zhàn)。
火焰檢測的訓練一般都會涉及性能和模型大小之間的權(quán)衡。如果筆者采用更深更復雜的深度網(wǎng)絡結(jié)構(gòu),能提高模型性能,但是也會增加模型存儲空間并延遲反應時間,有時這些會限制模型在嵌入式設(shè)備中的靈活布設(shè)[5-8]。本文設(shè)計的實驗方案,嘗試平衡算法處理性能和模型尺寸問題。筆者采用YOLOv4深度目標檢測算法進行建模實驗,通過交叉驗證評估模型的泛化能力,最終篩選出了性能良好的通用火焰預警模型。具體設(shè)計路線如下:首先,建立包含各種應用場景、多種火焰形態(tài)的無重復的訓練數(shù)據(jù)集。根據(jù)火焰目標學習的難度,將火焰圖像數(shù)據(jù)分為規(guī)則火焰和不規(guī)則火焰兩大類。其次,采用遷移訓練的方法緩解深度學習對于大規(guī)模數(shù)據(jù)的依賴,在規(guī)模有限的火焰檢測數(shù)據(jù)集上對預訓練一般性的目標檢測模型進行遷移[9-10]。實驗表明,筆者訓練的模型在規(guī)則火目標檢測方面性能優(yōu)異,同時基于建立的多形態(tài)火焰混合數(shù)據(jù)集,訓練的模型具有良好的泛化能力。
2 數(shù)據(jù)集建設(shè)
2.1 數(shù)據(jù)收集和劃分
為了訓練健壯的通用火焰檢測模型,需要建立一個多樣化的火災訓練數(shù)據(jù)集。筆者收集了不同來源的火焰圖像數(shù)據(jù),去除重復數(shù)據(jù)并重新標注,構(gòu)造了一個無重復圖像的綜合數(shù)據(jù)集。此數(shù)據(jù)集內(nèi)又劃分為兩個獨立數(shù)據(jù)子集,保證子集之間都沒有重疊。數(shù)據(jù)子集按照形態(tài)特點分為規(guī)則火焰和不規(guī)則火焰子集。其中,規(guī)則火焰子集包含873張無重復圖像的火焰檢測數(shù)據(jù);不規(guī)則火焰子集包含693張圖像。所謂的規(guī)則火焰,一般圖像質(zhì)量較好,圖像中的火焰目標有清晰的外部輪廓并且形狀相近,如蠟燭、火柴、打火機等;或者能很好地分割出獨立的火焰目標,如火炬、堆火、營火等。不規(guī)則火焰主要來自火災現(xiàn)場,包括社區(qū)房屋,道路交通以及室內(nèi)室外等,一般出現(xiàn)大量的遮擋、連綿燃燒物以及濃煙,不容易分割出獨立火焰目標。規(guī)則數(shù)據(jù)集和不規(guī)則數(shù)據(jù)集之間是沒有重疊數(shù)據(jù)的。Multifire是一個混合火焰數(shù)據(jù)集,它是上面兩類數(shù)據(jù)集的合集,包含1566張圖像。可以訓練通用的火焰檢測模型。筆者的數(shù)據(jù)集中還包括了一個公開的數(shù)據(jù)集FLAM,它是來自北亞利桑那大學等單位學者公開的一個基于航拍圖像的森林火情檢測數(shù)據(jù)集。這些數(shù)據(jù)子集組成了筆者發(fā)布的火焰數(shù)據(jù)集QLFLAM。表1記錄了筆者建立的火焰檢測訓練數(shù)據(jù)集中子集的劃分以及數(shù)據(jù)描述。
2.2 數(shù)據(jù)標注
數(shù)據(jù)標注也是數(shù)據(jù)集建設(shè)中工作量最大的部分。筆者使用Imagelabel軟件(https://gitcode.net/mirrors/tzutalin/labelimg)建立了數(shù)據(jù)標注或?qū)υ袠俗⑦M行校驗。實踐證實,數(shù)據(jù)標注的質(zhì)量直接會影響到模型訓練的效果。標注工作應該盡量減少不一致。獨立分布的火焰以及輪廓規(guī)則的火焰更容易標注,應該盡量按照獨立和規(guī)則的原則標注。被遮擋物割裂的零散火焰,應該忽略遮擋物,把火焰各部盡量分放在一個標注邊框里。對于小火簇,如灰燼中的火焰群,如果位置上接近,也盡量放在一個邊框里標注。特別地,對于FLAM數(shù)據(jù)集中的數(shù)據(jù),筆者還利用了數(shù)據(jù)集提供的圖像分割標注數(shù)據(jù)輔助,更準確地發(fā)現(xiàn)和定位火焰目標。
3 主要算法和性能評估
3.1 深度目標檢測算法
2014年,Ross Girshick提出R-CNN算法,首次將卷積神經(jīng)網(wǎng)絡用于目標檢測領(lǐng)域,繼之以Fast R-CNN、Faster R-CNN,基于深度學習的目標檢測算法不斷改進。由于R-CNN的網(wǎng)絡是兩階段結(jié)構(gòu),也就是將候選區(qū)域的檢測和分類識別分成兩個階段執(zhí)行,算法目標檢測精度高,但是檢測速度慢,無法滿足實時性。2016年,Joseph Redmon提出YOLO算法,將候選區(qū)域檢測和分類識別合為一個,成為單階段結(jié)構(gòu)的開山之作,大大提高了目標檢測的速度。在YOLO算法框架中,可以很好地結(jié)合上下文的圖像信息特征,檢測到的火焰目標,準確率(Precision, P )都很高,這是YOLO誤檢率低的主要原因。然而,比起采用候選區(qū)域的Faster RCNN,YOLO檢測邊框的定位偏差比較大,召回率(Recall, RC)還有一定差距。采用YOLOv4算法訓練的火焰檢測模型,整體性能強于YOLOv3和Faster RCNN,進一步提高召回率是YOLOv4努力的方向。
3.2 遷移訓練
YOLO模型的訓練可以有兩種方式,即從頭訓練方式,或是從預訓練的主干網(wǎng)絡上進行參數(shù)微調(diào)遷移。因為數(shù)據(jù)量的缺乏,從頭訓練火焰檢測模型的效果是很差的,需要采用預訓練的模型進行遷移訓練。YOLO目標檢測算法支持遷移訓練,負責特征抽取任務的主干網(wǎng)絡一般采用在ImageNet上訓練的一般圖像特征抽取模型進行初始化。還需要在一些大型數(shù)據(jù)集預訓練一般化的目標檢測模型,例如在VOC或COCO上進行預訓練的初始目標檢測網(wǎng)絡,分別能檢測20或80種常見目標。訓練火焰目標檢測模型需要在火焰檢測數(shù)據(jù)集上,對于初始目標檢測網(wǎng)絡進行遷移訓練。在第一階段,將預學習的主干網(wǎng)的參數(shù)凍結(jié),這是為了保持一般化的圖像特征的抽取,專門訓練深度網(wǎng)絡中的其他參數(shù),為了提高對火焰目標的識別能力;第二階段,將所有參數(shù)凍結(jié)解除,繼續(xù)訓練,這時可以學習到與火焰目標相關(guān)的特征,并達到最終訓練的模型。
3.3 火焰檢測模型訓練和檢測整體路線
本文采取YOLOv4算法,通過遷移訓練來突破深度學習模型訓練對火焰標注數(shù)據(jù)量的限制,在較小規(guī)模的數(shù)據(jù)集上訓練出性能良好的目標檢測模型。
圖2包括遷移訓練、目標檢測和性能評估幾個部分?;鹧嬗柧毢突鹧鏈y試如果來自不同分布的數(shù)據(jù)子集,形成交叉驗證,可以測試訓練模型的通用性。其中橢圓標注交叉驗證實施時訓練數(shù)據(jù)和測試數(shù)據(jù)的載入位置。
3.4主要性能評估指標
目前,基于深度學習的火焰目標檢測方法主要的挑戰(zhàn)來自檢測速度,模型存儲大小和檢測性能。這些方面的差距都影響了火焰檢測模型的訓練和實際應用的價值。YOLO算法的檢測速度公認是最好的,本次研究主要關(guān)注平均準確率AP,綜合評估F1,召回率Recall和精度Precession。特別的,F(xiàn)1更適合作為火焰檢測模型的評估標準。
3.4.1 IOU
計算兩個矩形框之間的重疊面積與重合面積之比得到IOU,如圖3所示。
通過設(shè)定IOU閾值可以定義目標檢測是否成功,以及偏差的程度。
3.4.2 Precision和Recall
查準率(Precision)也叫精確率;查全率(Recall)也叫召回率。對于二分類問題,可將樣例根據(jù)其真實類別與學習器預測類別的組合劃分為真正例TP(True Positive)、假正例FP(False Positive)、真反例TN(True Negative)、假反例FN(False Negative)四種情形,令TP、FP、TN、FN分別表示其對應的樣例數(shù),則TP+FP+TN+FN=樣例總數(shù)。查準率(精確率)(Precision)
[Precision=TP+FPTP]? ? ? ? ? ? ? ? ? ?(1)
查全率(召回率)(recall)
[Recall=TP+FNTP]? ? ? ? ? ? ? ?(2)
3.4.3? F1 score
Precision和Recall是一對矛盾的度量,一般來說,Precision高時,Recall值往往偏低;而Precision值低時,Recall值往往偏高。當分類置信度高時,Precision偏高;分類置信度低時,Recall偏高。為了能夠綜合考慮這兩個指標,F(xiàn)-measure被提出(Precision和Recall的加權(quán)調(diào)和平均),即:
[F1=2×P×RP+R]? ? ? ? ? ? ? ? ?(3)
F1的核心思想在于,在盡可能提高Precision和Recall的同時,也希望兩者之間的差異盡可能小。
3.4.4 平均精度(AP)和平均精度均值(mAP)
對于IOU選取不同的閾值,可以繪制出P-R曲線,反映模型在選取不同閾值時,其精確度和召回率的趨勢走向。在YOLO中,根據(jù)檢測器的預測得分結(jié)果,對所有檢測樣本進行降序排序,逐一作為正例的預測閾值,計算出對應的Recall和Precision兩個值作為橫、縱坐標就得到P-R曲線。AP 是計算某一類 P-R 曲線下的面積, mAP是對所有類別的 AP取平均值。和F1一樣,AP和mAP更好地反映整體應能,也是常用的性能評價指標之一。
[AP=01P(r)dr]? ? ? ? ? ? ? ? ? ? ? ? ?(4)
實際計算時一般并不進行積分。
4 實驗結(jié)果與討論
實驗采用配有NVIDIA RTX2080Ti 圖像計算卡的工作站,Win10 操作系統(tǒng), 64G RAM, Python 3.8 開發(fā)環(huán)境以及PyTorch 深度學習平臺。
4.1 多形態(tài)火焰檢測實驗
首先,筆者在Pascal VOC數(shù)據(jù)集上訓練模型初始權(quán)值作為20個類的通用對象檢測器,再在多形態(tài)火災訓練數(shù)據(jù)集上遷移模型參數(shù)?;赮OLOv4對于遷移學習的支持,在遷移訓練的過程中,前半段,設(shè)置凍結(jié)骨干網(wǎng)參數(shù),訓練其余部分卷積層參數(shù);后半段,放開全部參數(shù)權(quán)限繼續(xù)迭代優(yōu)化,直到收斂,得到火焰檢測模型。采用這樣的遷移訓練,在小樣本訓練集圖像上,依然可以得到評估指標理想的檢測結(jié)果。
針對規(guī)則和不規(guī)則火子集,按照9:1的比率劃分訓練集和校驗集,分別將兩者的訓練集train和校驗集val合并,形成混合集的訓練和校驗集。表2記錄了在規(guī)則火、不規(guī)則火和混合火的數(shù)據(jù)上,遷移火焰檢測模型得到的性能評價結(jié)果。FLAM是一個圖像數(shù)量較大,背景比較單一的視頻幀數(shù)據(jù)集,作為平行對比。
經(jīng)過對實驗數(shù)據(jù)進行分析,得到下列結(jié)論:
1)在數(shù)據(jù)集FLAM上訓練得到的檢測模型,評估性能最好。分析原因主要是因為FLAM圖像背景相似,視頻幀圖像彼此相關(guān)性大,并分散均勻。FLAM的主要挑戰(zhàn)來自樹枝遮擋、雪地反光和拍攝距離等。結(jié)果,在同分布測試數(shù)據(jù)上性能非常優(yōu)秀,mAP達到91.2%,F(xiàn)1達到最高的0.88。
2)在規(guī)則火焰數(shù)據(jù)集Regularfire上訓練的檢測模型表現(xiàn)也很不錯。規(guī)則火焰數(shù)據(jù)集上訓練的檢測模型,評估指標mAP達到80%以上,F(xiàn)1達到0.87。
3)在不規(guī)則火訓練集UNregularfire上訓練的檢測模型,評估性能較差,mAP比50%略高。這個可能是因為數(shù)據(jù)量太少造成的。同時也說明不規(guī)則火焰的檢測任務難度最大。在特征提取和選擇上加強模型能力,同時提高數(shù)據(jù)集數(shù)量和質(zhì)量是需要進一步探索的途徑。
4)采用混合數(shù)據(jù)集進行實驗,訓練模型性能優(yōu)于不規(guī)則火焰訓練效果的。mAP相比較于Unregular上升到65%左右,F(xiàn)1也可以達到0.79。說明通過添加規(guī)則火焰到不規(guī)則火焰檢測數(shù)據(jù)集里,可以提高不規(guī)則火焰檢測模型的效率。
綜上所述,在小樣本上通過遷移訓練可以得到性能良好的規(guī)則火焰檢測模型和森林航拍火焰檢測模型。如果想要提高不規(guī)則火焰模型的性能,可以混入規(guī)則火焰訓練數(shù)據(jù)。筆者也嘗試了采用數(shù)據(jù)集增廣程序增加訓練集圖像數(shù)量,但效果不明顯。
4.2交叉驗證
交叉驗證實驗可以用于研究在分布、規(guī)模和外觀等不同的數(shù)據(jù)集上訓練出的火焰檢測模型的泛化能力。在訓練數(shù)據(jù)較少的情況下,交叉驗證尤其重要。筆者發(fā)現(xiàn)規(guī)則火、不規(guī)則火以及混合火訓練的模型在FLAM上檢測性能指標非常差,略去沒有記錄,反之依然,說明FLAM訓練的模型泛化能力不好。
表3記錄了交叉實驗的驗證結(jié)果數(shù)據(jù)。規(guī)則火焰和不規(guī)則火焰數(shù)據(jù)子集之間的交叉驗證數(shù)據(jù)表明,模型交叉檢測性能不高,F(xiàn)1在0.5左右。說明規(guī)則火焰上訓練的檢測模型,不適合檢測不規(guī)則火焰類型的目標。然而,在混合火焰Multifire訓練集上得到模型,在規(guī)則火Regular和不規(guī)則火Unregular的驗證集上檢測,都得到了較好的性能,F(xiàn)1能達到0.81和0.74。這說明混合數(shù)據(jù)集訓練模型適用于多種形式的火焰檢測。
4.3 集成檢測
從表2和表3可以看出,YOLO模型一般Precission都達到了很高的程度,說明誤檢的情況不嚴重,但是RC數(shù)據(jù)波動很大,漏檢情況還是比較多?;谏鲜鎏攸c,對不同火焰形態(tài)下訓練的模型可以集成檢測結(jié)果,用于一般性的圖像火焰檢測的任務,提高模型的通用性。即對于一般性需要進行火焰檢測的圖像,先用混合火焰模型檢測,之后,在前一步檢測基礎(chǔ)上,再疊加森林火焰模型檢測結(jié)果,最后,疊加規(guī)則火焰檢測模型的檢測結(jié)果。從圖4看出,集成檢測結(jié)果召回率提高,準確度沒有太大影響。這樣集成檢測結(jié)果,勢必會進一步提高現(xiàn)場火情的反應速度和準確度。
第一列是用混合數(shù)據(jù)訓練模型檢測的結(jié)果,中間列在第一列結(jié)果上集成FLAM訓練模型的檢測結(jié)果,最右列在中間列檢測結(jié)果的基礎(chǔ)上集成了Regular火焰訓練模型的檢測結(jié)果。
在圖4中,需要檢測多形態(tài)火焰在一般性的圖像中是否存在,筆者首先選擇泛化能力好,性能也不錯的混合數(shù)據(jù)訓練的模型。因為火焰形態(tài)的多樣性,有一些火焰目標還是檢測不出來(第1列),疊加檢測準確度高的FLAM訓練模型和Regular訓練模型,結(jié)果將更多的火焰目標檢測了出來,無疑會提高火焰檢測系統(tǒng)的實用性。
5 結(jié)論與展望
從研究和實驗中可以發(fā)現(xiàn),火焰檢測的難度來自火焰目標形態(tài)的多樣性,以及圖像背景的復雜性。建立起來一系列火焰形態(tài)或者環(huán)境場景比較單調(diào)的火焰訓練數(shù)據(jù)集非常重要。筆者建立了一個沒有重復數(shù)據(jù)的數(shù)據(jù)集Multifire,進行了精心的標注和清洗,最后得到規(guī)則火、不規(guī)則火的訓練模型,F(xiàn)1分別達到了0.87、0.67。不規(guī)則火焰目標包含的火焰形態(tài)分布廣泛,模型訓練難度大。不規(guī)則訓練集中添加規(guī)則火數(shù)據(jù),混合火檢測模型更加健壯,F(xiàn)1指數(shù)達到0.78。這些數(shù)據(jù)集,都能保證在同分布的情況下訓練模型有較好的性能。不過這些訓練數(shù)據(jù)一般泛化性有限。提出一個一般化檢測的集成策略,即采用針對不同火焰形態(tài)和背景的多個訓練模型進行檢測,檢測結(jié)果通過集成疊加得到。
未來工作中,包括繼續(xù)建設(shè)火焰目標多形態(tài)多場景的訓練數(shù)據(jù)集,并對更多算法進行平行測試和比較。
參考文獻:
[1] Redmon J,Divvala S,Girshick R,et al.You only look once:unified,real-time object detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition.Las Vegas,NV,USA.IEEE,2016:779-788.
[2] YOLOv4 model zoo website.https://github.com/AlexeyAB/darknet/wiki/YOLOv4-model-zoo.
[3] Jahani Heravi E.An optimized convolutional neural network with bottleneck and spatial pyramid pooling layers for classification of foods[J].Pattern Recognition Letters,2018,105:50-58.
[4] Majid S.Attention based CNN model for fire detection and localization in real-world images[J].Expert Systems With Applications,2022,189:116114.
[5] Shen D Q,Chen X,Nguyen M,et al.Flame detection using deep learning[C]//2018 4th International Conference on Control,Automation and Robotics (ICCAR).Auckland,New Zealand.IEEE,2018:416-420.
[6] Shetty A K,Saha I,Sanghvi R M,et al.A review:object detection models[C]//2021 6th International Conference for Convergence in Technology (I2CT).Maharashtra,India.IEEE,2021:1-8.
[7] Yue C H,Ye J.Research on improved YOLOv3 fire detection based on enlarged feature map resolution and cluster analysis[J].Journal of Physics:Conference Series,2021,1757(1):012094.
[8] Kang L W,Wang I S,Chou K L,et al.Image-based real-time fire detection using deep learning with data augmentation for vision-based surveillance applications[C]//2019 16th IEEE International Conference on Advanced Video and Signal Based Surveillance.Taipei,China.IEEE,2019:1-4.
[9] Li G Q,Song Z Y,F(xiàn)u Q.A new method of image detection for small datasets under the framework of YOLO network[C]//2018 IEEE 3rd Advanced Information Technology,Electronic and Automation Control Conference.Chongqing,China.IEEE,2018:1031-1035.
[10] Tan C Q,Sun F C,Kong T,et al.A survey on deep transfer learning[EB/OL].2018:arXiv:1808.01974.https://arxiv.org/abs/1808.01974
【通聯(lián)編輯:唐一東】