?

融合注意力機制的安全帽檢測算法

2024-01-15 02:49張帥帥
金陵科技學院學報 2023年3期
關鍵詞:安全帽損失函數

張帥帥,田 錦,劉 靜

(1.安徽理工大學計算機科學與工程學院,安徽 淮南 232001;2.金陵科技學院網絡與通信工程學院,江蘇 南京 211169)

工業施工場所安全帽的佩戴問題,一直是人們比較關注的焦點。秉承生命至上的原則,須對安全帽的佩戴情況加大監督力度,但管理人員精力有限,不可能時刻監督未戴安全帽的人員。為了消除工地上此類安全隱患,需要一個可以檢測工作人員是否佩戴安全帽的智能裝備[1]。

安全帽檢測是一種目標檢測類問題。目標檢測常常應用于人臉識別、實時監控、無人駕駛等方面[2-3],檢測算法分為傳統的目標檢測算法和基于深度學習的目標檢測算法。傳統的目標檢測算法,前期先選出候選框,再經過手工設計的提取器提取特征,最后送入分類器中進行檢測。隨著卷積神經網絡(convolutional neural networks,CNN)的快速發展,利用卷積神經網絡可以使網絡模型適應現實中的復雜場景,而且利用卷積神經網絡對大規模的數據集進行訓練,還可以提高模型的泛化能力。隨著深度學習的發展,基于深度學習[4]的目標檢測算法的檢測速度和精確度,都有了很大的提升。目前基于深度學習的安全帽佩戴檢測算法一般分為兩類,一類是以R-CNN[5]和Fast R-CNN[6]系列算法為代表的兩階段算法,另一類是以SSD[7]和YOLO系列[8-10]為代表的單階段算法。在單階段算法中,李明山等[11]通過在 SSD 算法中引入特征融合,提高了檢測的準確性,但忽略了遠距離的目標。方明等[12]在 YOLOv2結構中采用MobileNet中的輕量化網絡,實現了對網絡一定程度的壓縮,減少了模型的計算量,提升了模型的收斂性能,但對物體的檢測準確率較低。丁文龍等[13]在YOLOv3模型中采用K-means++聚類,引入殘差模塊,獲得安全帽檢測的先驗尺寸,提高了準確率,但對于遠距離目標的檢測仍有明顯不足,存在漏檢、誤檢的情況。王英酈[14]在YOLOv5模型中引入輕量化的CBAM注意力模塊,提高了檢測精度,但存在誤檢情況。

基于深度學習的安全帽檢測算法,檢測準確度和速度優于傳統方法,但在檢測遠距離目標方面存在不足。由于遠距離目標特征信息少,因而在網絡中捕捉到的特征信息也會減弱,在實際檢測中會出現漏檢、誤檢的情況。針對此問題,本文對容易部署的YOLOv5s算法模型進行改進,通過在主干網絡Backbone層添加坐標注意力(coordinate attention,CA)模塊,增強復雜背景中遠距離目標特征的提取能力,從而提高檢測能力;再優化損失函數,使用EIoU損失函數提高回歸精度和收斂速度。

1 基礎網絡模型

YOLOv5是由Uitralytics LLC公司發布的一種單階段目標檢測算法,它提供了YOLOv5m、YOLOv5s、YOLOv5x、YOLOv5l四種不同的模型算法,其中YOLOv5s模型在深度和寬度上都是最小的,且計算量較少,因此選用YOLOv5s作為基礎網絡模型。網絡模型包括4部分:輸入層、主干網絡層、特征融合層和預測層。YOLOv5s的結構如圖1所示。

第1部分為輸入層(Input),采用Mosaic數據增強的方法,對輸入的圖片進行數據增強、尺寸大小調整處理,該方法是將4張圖片隨機地拼湊到一起,提高數據樣本的多樣性;第2部分為主干網絡層(Backbone),采用Focus、C3、SPP[15]等多種特征提取模塊,對安全帽佩戴區域進行特征提取,生成目標語義信息;第3部分為特征融合層(Neck),使用FPN[16]+PAN結構,采用自下而上的方法傳遞位置信息,聚合主干層中不同檢測層的參數,在降低網絡深度的同時加強安全帽特征信息的融合能力;第4部分為預測層(Prediction),采用3種不同尺度的特征圖來檢測大目標、中目標和小目標對象,生成邊界框用來預測檢測的類別,提高模型對安全帽檢測的準確度。

2 改進網絡模型

2.1 引入注意力模塊

由于安全帽檢測圖片背景復雜,可能會造成特征信息的丟失,為了使模型能更好地關注所需要的目標信息,在主干網絡Backbone層整體引入CA模塊,將其添加在主干網絡層的最后一層,強化重要的特征信息和對特征信息的提取能力。CA模塊[17]的結構如圖2所示。

圖2 CA模塊結構圖

CA模塊能夠將橫向和縱向的位置信息編碼到通道中,使得移動網絡能夠關注大范圍的位置信息但又不會帶來過多的計算量,不僅獲得了通道間的信息,還考慮了方向相換的位置信息,有助于模型更好地定位和識別目標。它足夠靈活和輕量,能夠直接插入移動網絡的核心結構。CA模塊并沒有引入2維的全局池化,而是分解成了兩個1維的特征編碼,捕獲2個方向的聚合特征,避免位置信息的損失。這樣可以沿著一個空間方向捕捉遠程依賴的關系,同時沿著另一個空間方向保留精確的位置信息。CA模塊將生成的特征圖分別編碼為對方向感知和對位置敏感的注意力特征圖以及可以應用于輸入的特征圖,增加對安全帽的關注度,提高泛化能力。

具體地,給定輸入X,使用尺寸為(H,1)或(1,W)的池化核,分別沿水平坐標和垂直坐標對每個通道進行編碼。因此,高度為h的第c通道的輸出可以表示為:

(1)

寬度為w的第c通道的輸出可以表示為:

(2)

上述式(1)和式(2)變換后沿水平和垂直方向聚合信息,得到方向感知特征圖。和以往只能產生單一特征向量的通道注意力不同,這種轉換使注意力模塊可以捕獲到一個方向的持久信息,也可以捕捉到另一個方向的位置信息,從而幫助網絡精準確定所需要的目標。

通過坐標信息的嵌入將獲得的兩個方向的特征圖進行連接操作,并使用1×1卷積變換函數進行變換:

f=δ(F1([Zh,Zw]))

(3)

式中,[Zh,Zw]為沿著空間維數的連接操作,δ為非線性激活函數,f為空間信息在兩個方向上的特征映射。用1×1卷積變換函數F1分別將fh和fw變換為具有相同通道數的張量并輸入x,得到:

gh=δ(Fh(fh))

(4)

gw=δ(Fw(fw))

(5)

最后輸出Y:

(6)

CA模塊沿著垂直和水平兩個方向同時進行編碼,這種編碼過程可以使坐標注意力機制更加準確地定位ROI,從而幫助整個模型更好地進行檢測。

將CA模塊加入C3后面的一層,加入CA模塊后的Backbone網絡結構如圖3所示。在主干網絡中添加CA模塊后,網絡更加輕便,實現了輕量化,計算量也相應地減少,而且可以在眾多的信息中注意當前所需要的關鍵信息,降低對其他信息的關注。這樣不僅可以使網絡能夠分配更多的注意力給安全帽,能夠更加準確地對安全帽進行檢測,還可以提升對遠距離物體的檢測能力。

圖3 添加CA模塊后的Backbone網絡結構

2.2 優化損失函數

原網絡模型使用的損失函數為CIoU[18],CIoU損失函數反映的并不是寬高與其置信度真實值的差異,因此會影響模型的優化。EIoU損失函數[19]將縱橫比的影響因子拆開,分別計算目標框和錨框的寬高,考慮了重疊面積、中心點距離以及寬高邊長真實差異問題。EIoU損失函數對寬高預測結果進行懲罰的損失函數為:

(7)

該損失函數包含3個部分:重疊損失LIoU、中心距離損失Ldis和寬高損失Lasp。重疊損失LIoU和中心距離損失Ldis這兩部分是CIoU中的方法,寬高損失Lasp使得目標盒的寬度與高度之差相比錨盒要小,使收斂速度變快。式(7)中IoU為邊界框與真實邊界框的交并比,(b,bgt)為預測邊界框與真實邊界框的中心點,ρ(·)為歐氏距離計算函數,Cw和Ch分別為覆蓋兩個Box的最小外接框的寬度和高度。

為顯示損失函數的優點,選取IoU、GIoU、CIoU和EIoU 4類損失函數進行對比實驗,結果如表1所示。由表1可以看出,EIoU損失函數檢測的準確率最高。因此,本文將原有的CIoU更換為EIoU。對于邊界框回歸任務,EIoU 選擇計算寬高的差異值來取代縱橫比。使用EIoU損失函數可以加速收斂,解決樣本回歸中產生的不平衡問題,提高回歸精度,進而提高檢測的準確率。

表1 損失函數對比結果

3 實驗結果與分析

3.1 實驗環境

實驗環境配置:微處理器CPU Inter Xeon E5-2 620v4@2.10 GHz、GPU NVIDIA Titan Xp@Super 12 GB、Cuda 11.0、PyTorch 1.10.0、Python 3.8。

輸入網絡訓練模型的圖片大小為640像素×640像素,batch_size設置為8,利用SGD函數優化參數,動量因子為0.937,權重衰減系數為0.000 5,所用的參照模型全部按照50個epoch訓練。測試階段的交并比設置為0.5,置信度閾值設置為0.5。

3.2 數據集

實驗中需要訓練的圖片來自公開數據集SHWD(safety helmet wearing-dataset)。數據集SHWD共有7 581張圖片,包含了不同施工場景和不同拍攝距離的圖像。進行數據標注時,采用開源的labelimg工具,對圖片中出現的佩戴安全帽的人員標注為hat,未佩戴安全帽的人員標注為 person,標注后保存的格式為PASCAL VOC格式。實驗前將PASCAL VOC格式的xml文件轉換為txt文件,將圖片大小統一調整為640像素×640像素,為后期實驗做準備。

3.3 評價指標

使用平均精度(average precision,AP)和均值平均精度(mean average precision,mAP)檢測模型的準確性能,使用目標檢測的精確率(precision,P)和召回率(recall,R)來計算平均精度,各評價指標的計算如式(8)—式(11)所示:

(8)

(9)

(10)

(11)

3.4 消融實驗

為驗證本文改進的網絡模型的有效性,以YOLOv5s模型為基礎進行消融對比實驗,結果如表2所示。實驗結果顯示,2.1節和2.2節所述的改進方法(添加CA模塊和使用EIoU損失函數)均對mAP有所提高。結合表2消融實驗結果可知,本文改進的網絡模型與原模型相比,精確率P提高了1.1個百分點,mAP@0.5提高了1.9個百分點。

表2 消融實驗結果 單位:%

3.5 結果分析

為進一步驗證改進模型的有效性,將本文算法、YOLOv3、Faster RCNN、引入特征融合的SSD算法[11]、融合輕量化CBAM注意力機制的YOLOv5算法[14]和原YOLOv5s進行實驗測試,所得安全帽佩戴檢測結果如表3所示。表3顯示,改進后的網絡模型有更高的檢測精度,mAP值達到了94.5%,相較于對比算法提高了1.1~12.3個百分點,hat和person的AP值相較于其他算法均有一定的提升。其中文獻[14]person的AP值比原YOLOv5s的低,但其hat的AP值相比原YOLOv5s提高了2.1個百分點,因此mAP值也提高了。對于本文改進的網絡模型,所有評估指標都比原YOLOv5s高,訓練結果比較理想,驗證了本文模型的可行性。

表3 實驗結果對比 單位:%

為了更加直觀地顯示改進后的算法對安全帽佩戴的檢測效果,選取部分檢測圖像進行對比,如圖4—圖6所示。圖4(a)、圖5(a)和圖6(a)為原YOLOv5s算法的檢測結果,圖4(b)、圖5(b)和圖6(b)為改進后算法的檢測結果。原YOLOv5s算法結果圖中,將不屬于hat目標的物體檢測成hat的屬于誤檢,未檢測出圖片中hat目標的屬于漏檢。

(b)改進的YOLOv5s

(a)YOLOv5s

(b)改進的YOLOv5s

(a)YOLOv5s

(b)改進的YOLOv5s

原YOLOv5s算法存在安全帽漏檢、誤檢的情況,改進的算法在相同的環境下,可以更準確地檢測出目標。在圖4中,YOLOv5s算法沒有檢測出右上方遠處模糊的安全帽hat目標,而改進的算法可以正確檢測出,說明改進的算法對遠距離的目標有更好的檢測效果。在圖5中,YOLOv5s算法沒能檢測出左上角被遮擋的安全帽目標和旗子旁邊佩戴安全帽的工作人員,而改進的算法可以檢測出,說明改進的算法對遮擋目標有更好的檢測效果。在圖6中,YOLOv5s算法把左下角的鐵管目標誤檢成安全帽hat目標,且沒有檢測出右側被鐵管和鐵絲遮擋的安全帽目標,而改進的算法可以準確檢測出。以上結果表明,改進的算法能有效改善漏檢、誤檢以及目標檢測度不高的情況。

4 結 語

本文提出了一種融合注意力機制的安全帽檢測算法,該算法以YOLOv5s模型為基礎,通過在主干網絡中添加CA模塊,加強安全帽特征信息的提取能力,減少其他特征對模型的干擾和影響;同時,使用EIoU損失函數融合更多的邊界框信息,優化邊界框的回歸精度和收斂速度。實驗結果表明,改進的算法平均檢測精度達到了94.5%,相較于原算法提高了1.9個百分點,有效改善了安全帽檢測中的漏檢、誤檢情況,提高了模型的整體檢測性能。

猜你喜歡
安全帽損失函數
小小安全帽,生命保護傘
二次函數
第3講 “函數”復習精講
胖胖損失了多少元
二次函數
函數備考精講
爆笑四格
玉米抽穗前倒伏怎么辦?怎么減少損失?
一般自由碰撞的最大動能損失
損失
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合