?

基于改進YOLOv7 的安全帽佩戴檢測算法

2024-01-10 17:05楊大為張成超
沈陽理工大學學報 2024年1期
關鍵詞:安全帽卷積精度

楊大為,張成超

(沈陽理工大學信息科學與工程學院,沈陽 110159)

安全帽在建筑工地或礦區等場所是一種必不可少的防護工具,也是我國生產規模和使用量最大的個體防護產品之一,是安全工業和應急產品領域的重要組成部分。 針對工人在作業期間不佩戴安全帽帶來的安全隱患,我國大部分場所都是通過人工形式對安全帽佩戴情況進行監督,難免出現疏忽等情況[1]。 為此,研究一種智能化且實時有效的安全帽佩戴檢測方法有著重要的意義。

基于深度學習的目標檢測主要分為兩類:一類是兩階段目標檢測算法;另一類是一階段目標檢測算法。 前者先由卷積神經網絡生成一系列作為樣本的候選框,之后進行樣本分類和回歸[2],代表算法有R-CNN、Faster R-CNN[3];后者直接通過主干網絡得到目標的類別和位置信息,代表算法有YOLO[4]、SSD 和RetinaNet[5]。 兩階段的目標檢測算法在檢測精度上優于一階段的檢測算法,但是檢測速度慢。 隨著一階段算法的發展,其檢測精度不斷上升, 本文在一階段檢測算法YOLOv7 的基礎上進行改進,以期在保證實時性的同時獲得更高的檢測精度。

在安全帽檢測算法的研究中,文獻[6]通過先檢測人臉再使用邊緣檢測算法檢測人臉上方是否有安全帽的半圓形輪廓,但此檢測算法計算量較大且抗干擾能力較差,漏檢和錯檢的情況較多。文獻[7]在YOLOv5s 模型的主干網絡中引入注意力機制并替換主干網絡中原有殘差塊,達到增強細粒度融合的能力,提高了算法的精度和速度。文獻[8]通過改進的YOLOv3 將整個人體作為檢測對象,完成安全帽的檢測,但由于人體特征較多,其檢測精度較低。 在工地或高危工作廠區大都存在人員流動大,目標存在遮擋或目標較小的情況,文獻[9]通過使用并行網絡模塊增加網絡寬度,并使用四尺度特征預測代替三尺度特征預測等方式保留更多特征信息,以提高YOLOv3 模型檢測精度。 文獻[10]通過在Faster R-CNN 網絡中引入樣本注意力機制和可變卷積等方法優化樣本不均衡等問題,以提高目標檢測精度,但其檢測速度只達到每秒5 幀,無法做到實時檢測。

綜上所述,為保證實時性的同時獲得更高檢測精度,本文對YOLOv7 進行兩處改進:首先,針對特征提取不充分等問題,在YOLOv7 中使用卷積塊注意力機制(CBAM)替換原有卷積模塊(CBS),增強特征的提取能力,使網絡能夠關注更多有用的特征;其次,為防止網絡層數加深導致小目標的特征信息過多損失,采用增加小目標層的方法進行淺層和深層的特征信息融合,保留更多的目標特征信息。

1 YOLOv7 模型

YOLOv7 結構如圖1 所示,包含輸入端(Input)、主干網絡(Backbone)、檢測頭(Head)三個部分。

圖1 YOLOv7 結構圖Fig.1 YOLOv7 structure diagram

1.1 Input

Input 部分采用數據增強、自適應圖片縮放等技術對圖像進行預處理,數據增強方式能豐富數據集,自適應圖像縮放則可有效地統一圖像的尺寸。

1.2 Backbone

Backbone 的作用是提取輸入圖像的特征信息,為特征融合做準備。 其主要由若干CBS 模塊、高效層聚合網絡(ELAN)模塊以及雙分支下采樣(MPConv)模塊組成。 其中CBS 模塊由卷積層、批量歸一化層、激活函數組成。

ELAN 結構通過控制不同長度的梯度路徑,使更深層次的網絡在訓練過程中能夠有效收斂,其結構如圖2 所示。

圖2 ELAN 結構圖Fig.2 ELAN structure diagram

MPConv 模塊分為上下兩分支,上分支通過最大池化(Maxpool)結合CBS 的結構進行一次下采樣,下分支使用卷積步長為2 的CBS 模塊進行下采樣,最后將兩者進行拼接(Concat)操作,防止在下采樣的過程中丟失過多的特征信息,同時保持輸入輸出通道數相同,其結構如圖3 所示。

圖3 MPConv 結構圖Fig.3 MPConv structure diagram

1.3 Head

Head 部分首先使用特征融合網絡(PAFPN)進行兩次特征融合,保留更多的淺層信息,其中SPPCSPC 模塊通過不同尺寸的最大池化增大目標感受野,并提高了算法的計算速度。 UP 模塊調整輸入的特征圖通道數并進行上采樣,為與淺層特征融合做準備。 Concat 操作將輸入特征圖按通道維度進行拼接,以保留更多特征信息。 ELAN-H的結構與ELAN 類似,唯一的不同是ELAN-H 將每一層CBS 都進行了Concat 操作,保留更多的特征信息。 PAFPN 中的MPConv 模塊與Backbone中的類似,通過調整輸入特征圖通道數為原來的兩倍,并進行下采樣與淺層特征尺寸對應,以便于進行特征圖的Concat 操作。

其次,將輸出的三個不同尺度的特征經過結構重參數化(REP)網絡進一步提煉并經過卷積進行通道數的調整后進行目標預測。 其中REP 網絡在訓練時為一個三分支網絡,通過不同尺寸卷積核進行特征提取,增加模型對特征信息的提取能力,在部署時三分支結構會轉為單分支結構,增加模型的運行速度。 CBM 模塊整體結構與CBS類似,主要作用是通過卷積層調整特征通道數。

2 YOLOv7 模型的改進

YOLOv7 雖有一定的先進性,但其在Backbone 中連續使用CBS 模塊導致特征提取不夠充分,丟失信息過多,且在特征融合時損失較多小目標的特征信息。 本文通過CBAM 替換原有CBS模塊和增加小目標層的方式對模型進行改進,以期達到更好的檢測效果。

2.1 CBAM

注意力機制是模擬人腦、將有限的算力聚焦于重要區域的算法[11],能夠高效地分析復雜場景信息。 CBAM 結構如圖4 所示。 CBAM 整體又可分為通道注意力模塊(CAM)和空間注意力模塊(SAM)兩部分,CAM 結構如圖5 所示,SAM 結構如圖6 所示。

圖4 CBAM 結構圖Fig.4 CBAM structure diagram

圖5 CAM 結構圖Fig.5 CAM structure diagram

圖6 SAM 結構圖Fig.6 SAM structure diagram

在CAM 部分,首先將輸入的特征圖分別經過平均池化和最大池化,得到兩個長、寬均為1 的特征圖,再將兩者送入共享多層感知機中,將得到的兩個特征圖相加之后經過激活函數得到通道特征圖,整體過程用公式表示為

式中:Mc為輸出的通道特征圖;F為輸入特征;MLP 為多層感知機;AvgPool 為平均池化;Max-Pool 為最大池化;σ為激活函數。

將CAM 部分所得特征圖與F相乘得到特征圖F' 作為SAM 部分的輸入,分別經過最大池化和平均池化,得到兩個通道數為1 的特征圖,將兩者Concat 到一起,通過卷積降維操作和Sigmoid 激活函數生成空間特征圖,整體過程用公式表示為

式中:Ms為輸出的空間特征;F' 為輸入的空間特征;f7×7為7 ×7 卷積。 在CBAM 前添加一個卷積模塊,用于調整輸入特征圖的通道數,使CBAM能夠直接替換原CBS 模塊,簡化網絡的修改。

2.2 小目標層

小目標的劃分主要分為兩類:一類是以相對尺寸劃分,要求檢測目標的高寬要小于圖像高寬的十分之一;另一類是以絕對尺寸進行劃分,如MS COCO 數據集要求小目標的像素值小于32 ×32。 小目標相比于大、中目標在特征提取時信息過少,匹配錨點框的訓練效果較差,影響檢測精度[12]。 文獻[13]通過改進Faster R-CNN 算法提高無人機對小目標的識別精度,文獻[14]通過改進YOLOv5s 的網絡模型提高算法對安全帽的檢測精度,文獻[15]通過改進SSD 算法提高模型對于小目標的檢測精度和速度。 在目標檢測過程中,小目標的特征信息會隨著網絡模型的加深逐漸消失,在環境復雜多變、人員流動性強的情況下,小目標檢測精度仍需提高。

本文提出在YOLOv7 模型的基礎上增加一個小目標層的方法。 該方法的思想源于PAFPN,在原YOLOv7 結構中,通過PAFPN 會輸出三種尺寸的特征,該方法是將淺層特征與深層特征融合,達到即使在深層網絡中依然可以保留小目標信息的作用。 本文增加的小目標層可以將更淺層特征與深層特征相融合,進一步保留小目標特征。 本文改進后的YOLOv7 模型結構如圖7 所示。

圖7 改進后YOLOv7 結構圖Fig.7 Structure diagram of improved YOLOv7

3 實驗與結果分析

實驗運行的服務器環境配置如下:CPU 型號為E5-2680 v4@2.4 GHz,顯卡型號為RTX2080Ti,系統為Ubuntu 20.04,深度學習框架采用pytorch 1.9.0。

3.1 數據集與評估指標

本次實驗采用的數據是從開源的SHWD 數據集中抽取1 500 張圖片,該數據集中被檢測對象共分為兩類:佩戴安全帽的人(hat)和未佩戴安全帽的人(person),兩者樣本個數比約為1∶13。 將本次實驗所用圖片按照8∶2 的比例劃分為訓練集和驗證集進行實驗。 采用數據集樣本如圖8 所示。

圖8 樣本圖像Fig.8 Sample images

SHWD 數據集雖然不是完全的小目標數據集,但小目標占比較大,一定程度上能夠反映算法對小目標的檢測能力。

本次實驗所采用的評估指標包括準確率(Precision),召回率(Recall),均值平均精度(mAP)。

3.2 實驗結果分析

為驗證不同個數的 CBAM 替換對原YOLOv7 模型的影響,本文進行四組對比實驗,結果如表1 所示。

表1 四組實驗結果對比Table 1 Comparisons of four experimental results %

從表1 可見,隨著CBAM 替換數量的增加,算法的檢測精度并未一直隨之上升,替換三層后的結果相對較好。

為驗證本文算法的改進效果,將本文改進算法與其他檢測算法進行對比實驗。 具體結果如表2 所示。

表2 不同算法檢測結果對比Table 2 Comparisons of detection results with different algorithms %

從表2 可見,本文提出的改進算法的檢測精度優于其他算法。 在研究過程中,還進行了不同改進方式的對比實驗,具體實驗結果如表3 所示。

表3 不同改進方式檢測結果對比Table 3 Comparisons of detection results with different improvement methods %

在改進方式的對比研究中,首先在Backbone中每相鄰的兩個CBS 模塊之間增加一層CBAM,具體增加位置如圖9 所示。

圖9 CBAM 增加位置結構圖Fig.9 CBAM added position structure diagram

在此基礎上增加小目標層再次進行測試,通過表3 中數據可以看出,本文改進算法目標檢測效果更好;增加多個小目標層后精度不升反降,并且會導致模型參數量增加,降低模型的檢測速度。

經實驗測試,原YOLOv7 模型檢測速度約為每秒60 幀,本文改進算法約為每秒45 幀,雖然檢測速度有所下降,但較大提升了目標的檢測精度。

4 結論

針對工地或礦區等場所因環境復雜多樣,工人在工作期間時常會出現人員聚集、人員遮擋等不利于安全帽佩戴情況檢測,造成漏檢或錯檢的問題,本文提出了改進的YOLOv7 檢測模型,該模型在YOLOv7 的Backbone 中使用CBAM 替換CBS 模塊,使算法能夠提取更多有效特征,再加入小目標層以防止小目標特征隨著模型深度的加深而損失過多。 與原YOLOv7 模型所進行的對比實驗表明,對安全帽佩戴檢測的mAP 指標由86.1%提高到93.4%,實現了目標檢測精度的提升。

猜你喜歡
安全帽卷積精度
礦工有無數頂安全帽
小小安全帽,生命保護傘
基于3D-Winograd的快速卷積算法設計及FPGA實現
從濾波器理解卷積
基于DSPIC33F微處理器的采集精度的提高
基于傅里葉域卷積表示的目標跟蹤算法
GPS/GLONASS/BDS組合PPP精度分析
改進的Goldschmidt雙精度浮點除法器
一種基于卷積神經網絡的性別識別方法
巧用磨耗提高機械加工精度
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合