耿鵬志 吳富起 王瑞 葉向陽 劉煒達 王海



關鍵詞:目標檢測;消防設施;卷積神經網絡;YOLOv4
0 引言
近年來,隨著我國經濟的增長,城市人口和建筑的持續增長,火災預控愈發重要,但在發展的同時,火災隱患增量卻在逐步上升,部分火災危害大、風險高[1]。消防安全作為政府、企事業單位以及居民生活的重要管理部分,加強消防工程的建設顯得尤為重要。盡管如設立微型消防站、遠程監控系統網格化管理等智慧消防工作建設如火如荼地開展,但在某些方面仍然存在欠缺,如專業人員匱乏、日常巡檢巡查不到位、消防設施誤報漏報及監管統計等問題[2],如何提升消防安全管理建設成為當下研究熱點。
隨著深度學習的發展,目標檢測技術[3]已經得到了廣泛應用,可以從圖像中識別物體,獲取圖像區域內的信息數據,替代了枯燥乏味的工作[4]。目標檢測在早期因受計算機資源限制,需基于滑動窗口或手工構建特征,但檢測精度低,魯棒性弱,代表作為尺度不變特征[5]、局部二值模式[6]、Viola-Jones檢測器[7]或HOG 行人檢測算法[8]。然而隨著深度學習的發展,該技術取得了質的突破,由傳統的人工特征轉為數據驅動,不僅成了學術界的研究熱點,還為工業界帶來了巨大的利潤。目前目標檢測按照是否存在顯式區域可主要分為兩種,即One-stage 和Two-stage 兩類,Onestage方法是一種基于回歸目標檢測算法,對整幅圖片直接進行檢測,不生成區域,代表性算法有YOLO[9]和SSD[10]等。Two-stage方法是將檢測問題轉化為對目標局部區域內容的分類,代表性算法主要有R-CNN[11]、Fast R-CNN[12]和SPP-Net[13]等。
目前我國的消防安全管理仍有很大的不足,如檢測統計仍采用手工等方法,缺乏智能化輔助功能。2017年公安部消防局印發《關于全面推進“智慧消防”建設的指導意見》[14]提出,要加速推進現代科技與消防工作的深度融合。在此背景下,提升消防管理能力迫在眉睫,針對于建筑圖紙中消防設施自動識別算法應運而生。
本文的主要貢獻如下:
1) 構建建筑圖紙消防中設施數據集,用于圖紙中消防設施識別等研究工作。
2) 將目標檢測應用于建筑圖紙中消防設施的檢測,提出一種基于YOLOv4[15]的檢測算法,實現了自動檢測和識別功能。
3) 對模型進行了改進,使其適合當前任務檢測。首先通過實驗選取合適的特征提取層,其次采用ASPP[16]擴大模型感受野,提升模型的特征提取能力,最后對Mosaic數據增強算法進行了超參數實驗,使模型學習到更多魯棒性特征。
1 基于改進YOLOv4 的消防設施檢測算法
目標檢測作為計算機視覺領域的基本任務,可從圖像和視頻中提取出所需要的信息,在學術和工業領域中得到了廣泛應用。YOLO作為該領域內的著名模型,是一種單階段目標檢測算法,能夠直接對圖像進行計算并完成分類(Classification) 和定位(Localization) 兩類任務。
1.1 YOLOv4模型
YOLOv4 是基于 YOLOv3 改進的一種單階段目標檢測網絡模型,由Alexey Bochkovskiy于2020年提出。作為對YOLOv3 的改進,該模型融合了Weighted-Residual-Connections(WRC)、Self-adversarial-training(SAT)和Cross-Stage-Partial-connection(CSP)[16]等多種深度學習技巧,作者又進行了大量實驗,在輸入網絡分辨率、卷積層數量等參數量之間找到了最佳平衡,該網絡由Backbone、Neck和Head三部分組成:即CSP?Darknet53 作為 Backbone, SPP[17]模塊用于增大感受野;PANet作為Neck用于生成不同空間分辨率的特征圖;Head仍沿襲YOLOv3,對Neck輸出的特征圖進行結果預測,確定先驗框有無目標以及目標種類。然后根據位置參數對先驗框調整得到預測框,最后篩選出置信度高于設定閾值的預測框,并通過非極大抑制獲得分數最高的預測框作為最后檢測結果,網絡結構如圖1所示。
1.2 本文所使用的算法
YOLOv4 的先驗框和檢測層的選擇都是基于COCO[18]和PASCAL VOC[19]等公開數據集。但建筑圖紙中的消防設施目標較小,且大小相對固定,在經過降采樣后會出現語義信息的損失,所以原模型并不適用于該物體的檢測。為了更好地對消防設施進行檢測,提升特征表達。一方面需調整模型的先驗框設置,另一方面需能力對網絡結構進行調整,達到良好的檢測效果。
1.2.1 先驗框尺寸的設置
先驗框的數量在一定程度上會影響模型性能,先驗框數量不足時會無法匹配到目標,造成漏檢的情況的出現,但數量過多時,又會影響模型的推理速度,降低檢測效率,所以合適的先驗框選取至關重要。為了準確地檢測公開數據集中物體,原始YOLOv4模型對先驗框進行了聚類統計,主要是針對于不同尺寸和種類的物體。而本文檢測目標形狀相對固定,目標單一,所以不適宜使用先驗框的默認參數設置,為此使用Kmeans聚類算法對圖紙中的消防設施進行計算,根據統計結果將先驗框尺寸設置為[11,23]、[21,23]和[17,40]。
1.2.2 金字塔池化
特征金字塔作為目前在目標檢測領域中一個比較重要的部分,可以在不同尺度下擁有不同的分辨率,不僅可避免將圖片裁剪為模型的固定輸入大小,能讓小目標擁有合適的特征表示,還能通過融合多尺度信息提升對小目標的檢測性能。
空洞卷積(Atrous Convolution) [20]是在卷積核元素之間填充空格來擴大卷積核的一種方法,使用擴張率(Dilation rate) 來調節,可在不損失信息的前提下增加大感受野,以此來捕捉上下文信息,如圖2所示,擴張率從左往右分別為: dilation rate=1、dilation rate=2 和dilation rate=3。
SPP(Spatial pyramid pooling) 是由三個最大池化層組成,其步長和滑窗大小要做自適應調整,經過特征映射的特征層再進行拼接,得到相應的特征向量,這樣不僅可以將不同尺寸的特征圖輸出為固定大小向量,還可以提取不同尺寸的空間特征信息。但因為感受野較小,在面對低分辨率圖形的情況下,容易丟失許多細節信息。
ASPP很好地解決了這一問題,將卷積層改為了空洞卷積,其結構由一個1×1卷積層、三個3×3的空洞卷積和一個全局池化層構成,共4個分支機構,之后將這4個分支機構融合在一起,進行特征提取,這樣既不丟失分辨,也可通過擴大卷積核的感受野,提升模型的檢測性能,如圖3所示。
1.2.3 網絡結構設計
原YOLOv4模型是對不同尺寸的物體進行檢測,盡管融合多種深度學習技巧,也有不錯檢測性能,但是對于固定的目標檢測信息有些冗余,模型參數量較大。為此本文對原模型進行了改進,通過對不同特征層提取的特征信息進行實驗,選取合適的特征層進行檢測,同時為減少模型參數量,刪去了其余的檢測頭,得到模型YOLOv4_shallow。
文獻[15]提到,在CSPDarknet53上添加SPP塊可極大地增加感受野,分離出最顯著的上下文特征,但由于其感受野有限,會存在無法學習到目標有效的特征信息的問題。為進一步提升模型的檢測效果,獲得精確的定位信息和豐富的語義信息,以滿足實際檢測需求,本文對模型進行了改進,將SPP 模塊替換為ASPP,得到模型YOLOv4_fire-equiment,如圖4所示。
2 實驗及結果分析
2.1 消防設施數據集的構建
本文實驗數據來自消防疏散圖等建筑圖紙,為保證實驗數據的多樣性,使用ACDSEE等軟件,對圖紙進行模糊、亮度以及噪聲等處理,最終得到消防疏散圖558張。
本文檢測建筑圖紙中消防設施,為單類別檢測任務。在標注過程中使用 LabelImg軟件對消防疏散圖進行手工標注,并使標注框緊密覆蓋消防設施且不能框到疏散圖邊界,最后制成PACAL VOC數據集的格式并保存到指定的文件夾中,標簽命名為“fire equipment”,所以共標記消防設施3 552個,標注過程如圖5所示。
2.2 實驗環境的配置
本文實驗平臺為Ubuntu操作系統,開發環境為:ML-Ubuntu16.04-Desktop-v2.6,cuda11.0,GPU為1塊RTX3090 顯卡,搭配Intel(R)Xeon(R)CPUE5-2650v4@2.20GHz 處理器。代碼均在 PyTorch1.2 框架下實現。為提高訓練效果,所用算法均使用遷移學習策略。
實際訓練中的超參數設置為:Epoch =150,前50 個Epoch的訓練方式為凍結網絡,后100個epoch將其解凍,學習率分別設置為l=0.001和l=0.000 1,學習率調整策略均為 Adam,Batchsize=32。
2.3 評價指標
目標檢測領域中最常見的評價指標是Map和參數量Param,用于衡量模型檢測能力的強弱的大小。Map是由精確度P(precision) 、召回率R(recall) 和平均精度AP(Average Precision) 計算而來,AP值為PR曲線下面的面積,AP的值越大,則說明模型的平均準確率越高。但由于本文檢測任務為單類別檢測任務,所以評價指標MAP與AP值相等,故使用AP作為精度評價指標,計算如下:
2.4 實驗結果分析
2.4.1 不同特征層對于檢測結果的影響
由于不同特征層的感受野不同,對于模型檢測性能有一定影響,為此本文根據模型特征提取網絡CSP?darknet53的特點,共設置了3組不同深度特征提取網絡,分別選用特征圖大小為304×304、76×76和38×38 的特征圖作為檢測層,由淺到深分別命名為YOLO_p1、YOLO_p2和YOLO_p3,實驗結果如表1所示。
從實驗結果中可以發現,當特征圖為304x304時,盡管參數量較小,但由于網絡層數過淺,無法學習到目標有效的特征信息,存在嚴重的信息損失,不能有效地提取消防設施的圖像特征。而當特征圖為38×38檢測效果最好,AP值為72.61。所以根據實驗結果最終選取38×38作為本文模型的特征提取層,命名為YOLOv4_basline,設為本文基線的模型。
2.4.2 特征金字塔對于檢測結果的影響
Spp-Net 是一種可以不考慮圖像大小,可輸出固定長度的網絡結構,可讓目標在不同尺度下都能相應的特征表示,性能效果也在不同數據集上得到了驗證。但由于其感受野有限,丟失了較多的全局信息和局部語義信息,所以在面對低分辨率時,效果并不好。而ASPP采用空洞卷積對輸入圖像以不同的采樣率進行采樣,之后為整合空間上下文信息將多支路特征融合,進而很好地提升模型的性能,為此本文進行了對比實驗,如表2所示。
從表2中可以看出,ASPP的檢測精度高達77.82,比SPP要高5.43個百分點,說明對于消防設施這類小目標物體,ASPP中的空洞卷積由于擁有的不同感受野,可以有效地從低分辨率圖像中提取有效信息,使檢測模型獲得更豐富的特征。
2.4.3 模型的優化實驗
數據增強作為深度學習的重要驅動力,可以在不改變參數和網絡結構的情況下進行訓練,有效地緩解了過擬合情況的出現。Mosaic是一種拼接類數據增強方法,主要思想是將4張圖片進行隨機縮放,再隨機地拼接為1張圖片進行訓練,隨機縮放可以增加很多小目標,豐富數據集的多樣性,同時由于其可以一次性處理4張照片,也減少了訓練時數據的處理時間,提升了處理速度,如圖6所示。
由于不同的縮放比例對目標的大小有很大的影響。所以本文也對Mosaic的縮放比例的超參數進行了對比實驗,共設置0.3、0.4和0.5三組實驗,結果如表3所示。
從實驗結果中可以看出,Mosaic對于模型性能有著顯著提升,檢測精度提升約有11.65個百分點,這主要是由于,圖片的縮放和裁剪操作縮小了消防設施的大小,迫使模型去學習更小的目標,學習到更多的魯棒性特征,提升了模型的檢測性能。同時,當超參數p 為0.3時比p=0.4和p=0.5分別要高0.56和1.77個百分點,猜測可能是P=0.3的目標大小較p=0.5更小,豐富了檢測數據集,讓模型學習到更多消防設施特征。
綜上所述,設計的YOLOv4_fire-equipment 模型在測試集上最終的AP值達0.894 7,檢測結果優于基線模型YOLOv4_baseline,檢測精度提高16.86個百分點,圖7為實驗檢測結果。
3 結論
本文提出一種YOLOv4 模型進行改進的YO?LOv4_fire-equipment,通過聚類方法設置先驗框、選取合適的特征檢測層、使用ASPP擴大模型感受野以及對Mosaic參數進行實驗,有效地增強了網絡對建筑圖紙中的消防設施的檢測性能,對消防監督統計效率有一定提升作用。
未來將進一步考慮優化YOLOv4_fire-equipment 模型,加入不同的特征融合模塊,在提升檢測精度前提下,進一步降低模型的參數量。同時擴充實驗數據集,提升樣本的多樣性,以此來更貼近于復雜實戰場景。