基于YOLOv4的多形態火焰目標檢測模型訓練方法研究
來源:用戶上傳
作者:姜國龍, 褚云飛,陳業紅,吳朝軍
摘要:火災是一種多發的破壞性災難,通常會導致生命和財產巨大損失,利用圖像監控系統,研究自動化火焰目標檢測模型意義重大。文章采用基于深度學習的目標檢測系統YOLOv4算法訓練模型。自建了一個沒有重復數據,包含1566張火焰圖像的數據集Multifire,它是一個小規模的混合數據集,進行了精心的數據標注和清洗,旨在訓練通用性好的多形態火焰檢測模型。通過在不同分布的火焰數據子集上實施交叉驗證,篩選出3個性能良好的火焰檢測模型,模型針對規則火、森林野火和混合火進行檢測,綜合性能指標F1,分別達到了0.87、0.88和0.78。對于一般性的多形態火焰檢測任務,筆者提出一種集成檢測的策略,有效降低火焰目標檢測的漏檢率,提高火焰檢測系統的可用性和安全性。
關鍵詞:YOLOv4 ;火焰目標檢測;遷移訓練;交叉驗證
中圖分類號:TP183 文獻標識碼:A
文章編號:1009-3044(2021)32-0001-05
眾所周知,消防安全是保障人民生命財產的重要工作,火災自動檢測與預警意義重大。有很多基于計算機視覺的火焰目標檢測應用系統出現,然而,面對復雜環境和多形態火焰目標時, 火焰檢測模型存在著很大的誤檢和漏檢的風險。近年來,因其具有強大的特征自動學習的潛力,深度學習在圖像識別與目標檢測領域取得了快速的發展和巨大的成功。本文旨在探討提高火焰檢測模型通用性和實用性的途徑。目標是解決目前各種火焰檢測算法普遍存在的火情誤報和漏報嚴重的情況。筆者采用的主要研究方法包括:采用深度學習目標檢測算法,建立有效的數據集,進行數據整理和清洗,模型訓練采取遷移方式,模型評估實施交叉驗證。
1引言
物體檢測建模算法一般可以分為一階段和兩階段兩大類。一階段方法的代表如YOLO,模型訓練和檢測的速度很快,被證實可以達到實時視頻處理的要求[1-2]。筆者的實驗發現,YOLO訓練的模型普遍能達到很高的檢測精度,很少誤報,但是存在漏報的情況,提高檢測模型的召回率ReCall或者綜合指標F1是YOLO算法訓練的主要方向。另外,一階段算法對于小目標檢測普遍困難,有可能延遲發現隱患的時間,降低預警系統的應用價值。文獻表明,使用殘差卷積網絡層做主干網,通過配置金字塔特征映射結構,可以有效地減輕小目標難檢測的問題[3]。同時,很多最新的網絡配置也被用于提高火焰檢測性能的努力,例如,采用空洞卷積網絡層(又稱可變形卷積網絡層)來提高火焰目標的模糊學習能力;采用注意力機制,顯著地幫助檢測網絡獲得更好的性能[4]。在YOLO之外,一些檢測網絡,例如SSD、RefineDet、RetinaNet,都針對小目標和檢測速度的問題進行了改進,在同樣數據集上對上述算法進行對比將是非常有益的工作。
深度學習算法高度依賴數據集的質量和數量。數據集的建設包括數據收集、清洗和標注?;鹧鎴D像數據來源廣泛,例如來自監控視頻、無人機航拍以及網上圖像搜索等。采用監督方式訓練模型,擴大圖像數據集的規模必然需要提供更多的準確標注,然而火焰目標標注的不確定性大,存在著一定挑戰。
火焰檢測的訓練一般都會涉及性能和模型大小之間的權衡。如果筆者采用更深更復雜的深度網絡結構,能提高模型性能,但是也會增加模型存儲空間并延遲反應時間,有時這些會限制模型在嵌入式設備中的靈活布設[5-8]。本文設計的實驗方案,嘗試平衡算法處理性能和模型尺寸問題。筆者采用YOLOv4深度目標檢測算法進行建模實驗,通過交叉驗證評估模型的泛化能力,最終篩選出了性能良好的通用火焰預警模型。具體設計路線如下:首先,建立包含各種應用場景、多種火焰形態的無重復的訓練數據集。根據火焰目標學習的難度,將火焰圖像數據分為規則火焰和不規則火焰兩大類。其次,采用遷移訓練的方法緩解深度學習對于大規模數據的依賴,在規模有限的火焰檢測數據集上對預訓練一般性的目標檢測模型進行遷移[9-10]。實驗表明,筆者訓練的模型在規則火目標檢測方面性能優異,同時基于建立的多形態火焰混合數據集,訓練的模型具有良好的泛化能力。
2 數據集建設
2.1 數據收集和劃分
為了訓練健壯的通用火焰檢測模型,需要建立一個多樣化的火災訓練數據集。筆者收集了不同來源的火焰圖像數據,去除重復數據并重新標注,構造了一個無重復圖像的綜合數據集。此數據集內又劃分為兩個獨立數據子集,保證子集之間都沒有重疊。數據子集按照形態特點分為規則火焰和不規則火焰子集。其中,規則火焰子集包含873張無重復圖像的火焰檢測數據;不規則火焰子集包含693張圖像。所謂的規則火焰,一般圖像質量較好,圖像中的火焰目標有清晰的外部輪廓并且形狀相近,如蠟燭、火柴、打火機等;或者能很好地分割出獨立的火焰目標,如火炬、堆火、營火等。不規則火焰主要來自火災現場,包括社區房屋,道路交通以及室內室外等,一般出現大量的遮擋、連綿燃燒物以及濃煙,不容易分割出獨立火焰目標。規則數據集和不規則數據集之間是沒有重疊數據的。Multifire是一個混合火焰數據集,它是上面兩類數據集的合集,包含1566張圖像。可以練通用的火焰檢測模型。筆者的數據集中還包括了一個公開的數據集FLAM,它是來自北亞利桑那大學等單位學者公開的一個基于航拍圖像的森林火情檢測數據集。這些數據子集組成了筆者發布的火焰數據集QLFLAM。表1記錄了筆者建立的火焰檢測訓練數據集中子集的劃分以及數據描述。
2.2 數據標注
數據標注也是數據集建設中工作量最大的部分。筆者使用Imagelabel軟件(https://gitcode.net/mirrors/tzutalin/labelimg)建立了數據標注或對原有標注進行校驗。實踐證實,數據標注的質量直接會影響到模型訓練的效果。標注工作應該盡量減少不一致。獨立分布的火焰以及輪廓規則的火焰更容易標注,應該盡量按照獨立和規則的原則標注。被遮擋物割裂的零散火焰,應該忽略遮擋物,把火焰各部盡量分放在一個標注邊框里。對于小火簇,如灰燼中的火焰群,如果位置上接近,也盡量放在一個邊框里標注。特別地,對于FLAM數據集中的數據,筆者還利用了數據集提供的圖像分割標注數據輔助,更準確地發現和定位火焰目標。
nlc202301131535
3 主要算法和性能評估
3.1 深度目標檢測算法
2014年,Ross Girshick提出R-CNN算法,首次將卷積神經網絡用于目標檢測領域,繼之以Fast R-CNN、Faster R-CNN,基于深度學習的目標檢測算法不斷改進。由于R-CNN的網絡是兩階段結構,也就是將候選區域的檢測和分類識別分成兩個階段執行,算法目標檢測精度高,但是檢測速度慢,無法滿足實時性。2016年,Joseph Redmon提出YOLO算法,將候選區域檢測和分類識別合為一個,成為單階段結構的開山之作,大大提高了目標檢測的速度。在YOLO算法框架中,可以很好地結合上下文的圖像信息特征,檢測到的火焰目標,準確率(Precision, P )都很高,這是YOLO誤檢率低的主要原因。然而,比起采用候選區域的Faster RCNN,YOLO檢測邊框的定位偏差比較大,召回率(Recall, RC)還有一定差距。采用YOLOv4算法訓練的火焰檢測模型,整體性能強于YOLOv3和Faster RCNN,進一步提高召回率是YOLOv4努力的方向。
3.2 遷移訓練
YOLO模型的訓練可以有兩種方式,即從頭訓練方式,或是從預訓練的主干網絡上進行參數微調遷移。因為數據量的缺乏,從頭訓練火焰檢測模型的效果是很差的,需要采用預訓練的模型進行遷移訓練。YOLO目標檢測算法支持遷移訓練,負責特征抽取任務的主干網絡一般采用在ImageNet上訓練的一般圖像特征抽取模型進行初始化。還需要在一些大型數據集預訓練一般化的目標檢測模型,例如在VOC或COCO上進行預訓練的初始目標檢測網絡,分別能檢測20或80種常見目標。訓練火焰目標檢測模型需要在火焰檢測數據集上,對于初始目標檢測網絡進行遷移訓練。在第一階段,將預學習的主干網的參數凍結,這是為了保持一般化的圖像特征的抽取,專門訓練深度網絡中的其他參數,為了提高對火焰目標的識別能力;第二階段,將所有參數凍結解除,繼續訓練,這時可以學習到與火焰目標相關的特征,并達到最終訓練的模型。
3.3 火焰檢測模型訓練和檢測整體路線
本文采取YOLOv4算法,通過遷移訓練來突破深度學習模型訓練對火焰標注數據量的限制,在較小規模的數據集上訓練出性能良好的目標檢測模型。
圖2包括遷移訓練、目標檢測和性能評估幾個部分?;鹧嬗柧毢突鹧鏈y試如果來自不同分布的數據子集,形成交叉驗證,可以測試訓練模型的通用性。其中橢圓標注交叉驗證實施時訓練數據和測試數據的載入位置。
3.4主要性能評估指標
目前,基于深度學習的火焰目標檢測方法主要的挑戰來自檢測速度,模型存儲大小和檢測性能。這些方面的差距都影響了火焰檢測模型的訓練和實際應用的價值。YOLO算法的z測速度公認是最好的,本次研究主要關注平均準確率AP,綜合評估F1,召回率Recall和精度Precession。特別的,F1更適合作為火焰檢測模型的評估標準。
3.4.1 IOU
計算兩個矩形框之間的重疊面積與重合面積之比得到IOU,如圖3所示。
通過設定IOU閾值可以定義目標檢測是否成功,以及偏差的程度。
3.4.2 Precision和Recall
查準率(Precision)也叫精確率;查全率(Recall)也叫召回率。對于二分類問題,可將樣例根據其真實類別與學習器預測類別的組合劃分為真正例TP(True Positive)、假正例FP(False Positive)、真反例TN(True Negative)、假反例FN(False Negative)四種情形,令TP、FP、TN、FN分別表示其對應的樣例數,則TP+FP+TN+FN=樣例總數。查準率(精確率)(Precision)
[Precision=TP+FPTP] (1)
查全率(召回率)(recall)
[Recall=TP+FNTP] (2)
3.4.3 F1 score
Precision和Recall是一對矛盾的度量,一般來說,Precision高時,Recall值往往偏低;而Precision值低時,Recall值往往偏高。當分類置信度高時,Precision偏高;分類置信度低時,Recall偏高。為了能夠綜合考慮這兩個指標,F-measure被提出(Precision和Recall的加權調和平均),即:
[F1=2×P×RP+R] (3)
F1的核心思想在于,在盡可能提高Precision和Recall的同時,也希望兩者之間的差異盡可能小。
3.4.4 平均精度(AP)和平均精度均值(mAP)
對于IOU選取不同的閾值,可以繪制出P-R曲線,反映模型在選取不同閾值時,其精確度和召回率的趨勢走向。在YOLO中,根據檢測器的預測得分結果,對所有檢測樣本進行降序排序,逐一作為正例的預測閾值,計算出對應的Recall和Precision兩個值作為橫、縱坐標就得到P-R曲線。AP 是計算某一類 P-R 曲線下的面積, mAP是對所有類別的 AP取平均值。和F1一樣,AP和mAP更好地反映整體應能,也是常用的性能評價指標之一。
[AP=01P(r)dr] (4)
nlc202301131535
實際計算時一般并不進行積分。
4 實驗結果與討論
實驗采用配有NVIDIA RTX2080Ti 圖像計算卡的工作站,Win10 操作系統, 64G RAM, Python 3.8 開發環境以及PyTorch 深度學習平臺。
4.1 多形態火焰檢測實驗
首先,筆者在Pascal VOC數據集上訓練模型初始權值作為20個類的通用對象檢測器,再在多形態火災訓練數據集上遷移模型參數?;赮OLOv4對于遷移學習的支持,在遷移訓練的過程中,前半段,設置凍結骨干網參數,訓練其余部分卷積層參數;后半段,放開全部參數權限繼續迭代優化,直到收斂,得到火焰檢測模型。采用這樣的遷移訓練,在小樣本訓練集圖像上,依然可以得到評估指標理想的檢測結果。
針對規則和不規則火子集,按照9:1的比率劃分訓練集和校驗集,分別將兩者的訓練集train和校驗集val合并,形成混合集的訓練和校驗集。表2記錄了在規則火、不規則火和混合火的數據上,遷移火焰檢測模型得到的性能評價結果。FLAM是一個圖像數量較大,背景比較單一的視頻幀數據集,作為平行對比。
經過對實驗數據進行分析,得到下列結論:
1)在數據集FLAM上訓練得到的檢測模型,評估性能最好。分析原因主要是因為FLAM圖像背景相似,視頻幀圖像彼此相關性大,并分散均勻。FLAM的主要挑戰來自樹枝遮擋、雪地反光和拍攝距離等。結果,在同分布測試數據上性能非常優秀,mAP達到91.2%,F1達到最高的0.88。
2)在規則火焰數據集Regularfire上訓練的檢測模型表現也很不錯。規則火焰數據集上訓練的檢測模型,評估指標mAP達到80%以上,F1達到0.87。
3)在不規則火訓練集UNregularfire上訓練的檢測模型,評估性能較差,mAP比50%略高。這個可能是因為數據量太少造成的。同時也說明不規則火焰的檢測任務難度最大。在特征提取和選擇上加強模型能力,同時提高數據集數量和質量是需要進一步探索的途徑。
4)采用混合數據集進行實驗,訓練模型性能優于不規則火焰訓練效果的。mAP相比較于Unregular上升到65%左右,F1也可以達到0.79。說明通過添加規則火焰到不規則火焰檢測數據集里,可以提高不規則火焰檢測模型的效率。
綜上所述,在小樣本上通過遷移訓練可以得到性能良好的規則火焰檢測模型和森林航拍火焰檢測模型。如果想要提高不規則火焰模型的性能,可以混入規則火焰訓練數據。筆者也嘗試了采用數據集增廣程序增加訓練集圖像數量,但效果不明顯。
4.2交叉驗證
交叉驗證實驗可以用于研究在分布、規模和外觀等不同的數據集上訓練出的火焰檢測模型的泛化能力。在訓練數據較少的情況下,交叉驗證尤其重要。筆者發現規則火、不則火以及混合火訓練的模型在FLAM上檢測性能指標非常差,略去沒有記錄,反之依然,說明FLAM訓練的模型泛化能力不好。
表3記錄了交叉實驗的驗證結果數據。規則火焰和不規則火焰數據子集之間的交叉驗證數據表明,模型交叉檢測性能不高,F1在0.5左右。說明規則火焰上訓練的檢測模型,不適合檢測不規則火焰類型的目標。然而,在混合火焰Multifire訓練集上得到模型,在規則火Regular和不規則火Unregular的驗證集上檢測,都得到了較好的性能,F1能達到0.81和0.74。這說明混合數據集訓練模型適用于多種形式的火焰檢測。
4.3 集成檢測
從表2和表3可以看出,YOLO模型一般Precission都達到了很高的程度,說明誤檢的情況不嚴重,但是RC數據波動很大,漏檢情況還是比較多。基于上述特點,對不同火焰形態下訓練的模型可以集成檢測結果,用于一般性的圖像火焰檢測的任務,提高模型的通用性。即對于一般性需要進行火焰檢測的圖像,先用混合火焰模型檢測,之后,在前一步檢測基礎上,再疊加森林火焰模型檢測結果,最后,疊加規則火焰檢測模型的檢測結果。從圖4看出,集成檢測結果召回率提高,準確度沒有太大影響。這樣集成檢測結果,勢必會進一步提高現場火情的反應速度和準確度。
第一列是用混合數據訓練模型檢測的結果,中間列在第一列結果上集成FLAM訓練模型的檢測結果,最右列在中間列檢測結果的基礎上集成了Regular火焰訓練模型的檢測結果。
在圖4中,需要檢測多形態火焰在一般性的圖像中是否存在,筆者首先選擇泛化能力好,性能也不錯的混合數據訓練的模型。因為火焰形態的多樣性,有一些火焰目標還是檢測不出來(第1列),疊加檢測準確度高的FLAM訓練模型和Regular訓練模型,結果將更多的火焰目標檢測了出來,無疑會提高火焰檢測系統的實用性。
5 結論與展望
從研究和實驗中可以發現,火焰檢測的難度來自火焰目標形態的多樣性,以及圖像背景的復雜性。建立起來一系列火焰形態或者環境場景比較單調的火焰訓練數據集非常重要。筆者建立了一個沒有重復數據的數據集Multifire,進行了精心的標注和清洗,最后得到規則火、不規則火的訓練模型,F1分別達到了0.87、0.67。不規則火焰目標包含的火焰形態分布廣泛,模型訓練難度大。不規則訓練集中添加規則火數據,混合火檢測模型更加健壯,F1指數達到0.78。這些數據集,都能保證在同分布的情況下訓練模型有較好的性能。不過這些訓練數據一般泛化性有限。提出一個一般化檢測的集成策略,即采用針對不同火焰形態和背景的多個訓練模型進行檢測,檢測結果通過集成疊加得到。
未來工作中,包括繼續建設火焰目標多形態多場景的訓練數據集,并對更多算法進行平行測試和比較。
參考文獻:
[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.
nlc202301131535
[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,Fu 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
【通編輯:唐一東】
nlc202301131535
轉載注明來源:http://www.hailuomaifang.com/8/view-15444102.htm