張 躍, 王智遠,趙理山,朱世松,蘆碧波
(1.華能沁北電廠,河南 濟源 454650;2.河南理工大學計算機科學與技術學院,河南 焦作 454003)
電廠、建筑工地等行業從業人員眾多,且危險性高,極易發生事故。工人在現場進行作業時,身邊存在很多安全隱患,容易造成事故。事故發生時,頭部傷害造成死亡和重傷的可能性最大,應隨時對頭部做好防護措施。安全帽可以承受和分散墜落物體的撞擊,更能減輕人員從高處墜落頭部先著地時的撞擊程度,有效保護頭部。因此佩戴安全帽是有效降低事故危害、保護員工生命安全的防護措施。在實際工作中,對于不按規定佩戴安全帽的行為,通常采用人工監管的方式進行管理。人工監管缺點明顯:一是消耗人力;二是人工監管缺乏客觀性。利用智能方法來代替傳統的人工監管, 實現安全帽佩戴的自動化檢測, 既節省人力成本, 又提高了現場安全性。
近年來,隨著深度學習的快速發展,目標檢測技術掀起新的研究熱潮,為安全帽的智能化檢測提供了新的研究方向。目前主流的深度學習目標檢測算法主要分為雙階段檢測算法和單階段檢測算法。雙階段檢測算法是以R-CNN[1]系列為代表的基于候選區域的目標檢測算法;單階段檢測算法是以YOLO[2]、SSD[3-7]為代表的基于回歸分析的目標檢測算法。前者檢測精度高但速度慢,后者檢測速度快但精度較低,更加適用于需要實時檢測的目標識別問題。徐守坤[8]等提出了基于改進Faster R-CNN的安全帽佩戴檢測研究。施輝等[9]提出了基于YOLOv3的安全帽佩戴檢測方法。上述方法都是基于深度學習的目標檢測算法,但Faster R-CNN存在速度慢,不能滿足實時檢測需求的問題。YOLOv3存在檢測精度較低,對小目標識別效果較差的問題。YOLO系列最新發布的YOLOv5具有速度快、精度高、體積小等優點,采用Mosaic數據增強方式有效解決了數據集少、小目標檢測精度低等問題。
本文以佩戴安全帽的人員和未佩戴安全帽的人員2類目標為檢測任務,對視頻數據進行預處理,構建安全帽檢測數據集。使用YOLOv5算法進行數據集的訓練,以獲取能夠滿足需求的安全帽檢測模型;通過試驗結果表明,本文所使用的算法滿足相應場景下的檢測需求。
YOLOv5是YOLO系列新一代目標檢測網絡,該算法在YOLOv4基礎上添加了一些新的改進思路,使其速度與精度都得到了極大的性能提升。YOLOv5算法具有4個版本,包括YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,YOLOv5s網絡模型是YOLOv5這一系列中深度最小、特征圖寬度最小的網絡,其他3個版本均是在該版本的基礎上對網絡進行加深與加寬。從使網絡更加輕量級的角度出發,本文選擇網絡深度和寬度最小的YOLOv5s模型進行訓練。YOLOv5共劃分為4個通用的模塊,具體包括輸入端、基準網絡、Neck網絡與Head輸出端。
a.輸入端主要包括Mosaic數據增強、自適應錨框計算、自適應圖片縮放3部分。YOLOv5使用Mosaic數據增強操作,同時用4張圖片通過隨機裁剪、縮放和排布進行拼接。這種方式在小目標檢測效果上更為理想,適合本文數據集中安全帽的小目標檢測;在網絡訓練階段,針對不同的數據集,都需要設定特定長寬的初始錨點框,YOLOv5中加入了自適應錨框計算方法,可根據數據集自適應計算出最佳的錨點框;自適應圖片縮放功能自適應添加最少黑邊到縮放的圖像中,進一步提升了算法的推理速度。
b.基準網絡采用Focus[10]結構和CSP[11]結構。Focus結構如圖1所示,主要思想是通過slice操作來對輸入圖片進行裁剪。在YOLOv5s中,輸入大小為608×608×3的圖像,通過4次切片操作和1次32個卷積核的卷積操作,將原始圖像變成304×304×32的特征圖。YOLOv5中設計了2種CSP結構,以YOLOv5s網絡為例,CSP1_X結構應用于Backbone主干網絡,另一種CSP2_X結構則應用于Neck網絡中。

圖1 Focus結構
c.Neck網絡使用FPN+PAN結構,FPN是自頂向下的,將高層特征通過上采樣和低層特征做融合得到進行預測的特征圖,FPN自頂向下將高層的特征信息通過上采樣的方式進行傳遞融合,傳達強語義特征,PAN為自底向上的特征金字塔,傳達強定位特征。YOLOv4的Neck結構中,采用的都是普通的卷積操作,YOLOv5借鑒了CSPnet設計的CSP2結構,加強網絡特征融合的能力。
d.輸出端采用GIOU_Loss作為損失函數。在目標檢測后處理過程中,針對多目標框篩選,YOLOv5采用加權NMS操作。YOLOv5s網絡結構如圖2所示。

圖2 YOLOv5s網絡結構
本文試驗使用Windows操作系統,在pytorch環境下運行,使用GPU硬件加速運算。試驗環境配置如表1所示。

表1 試驗運行環境
本文數據集所需圖像均來源于自主采集,通過對監控視頻進行分幀,共獲得原始數據集260張。將數據集按8∶2的比例隨機進行劃分。由于采集數據集有限,文本對訓練集進行數據增強增加訓練的數據量,提高模型的泛化能力。數據增強實例如圖3所示。

(a)原圖;(b)裁剪+噪聲+鏡像+旋轉;(c)裁剪+噪聲+旋轉;(d)裁剪+旋轉圖3 數據增強實例
最終得到1160張訓練集,52張測試集。數據集類別為佩戴安全帽與未佩戴安全帽2種,使用labellmg工具對圖像進行標注。
本試驗利用YOLOv5s模型進行網絡訓練,根據試驗數據及運行環境,調整了相應參數。具體參數設置如表2所示。

表2 試驗參數設置
本文使用精度(Precision)、召回率(Recall)和平均精度均值(mean average precision,MAP)等常用指標來評估模型性能的優良。Recall 定義為所有目標都被模型檢測到的比例,用于衡量模型的查全率。MAP為平均精度均值,是模型在多個檢測類別上平均精度AP的均值,MAP的計算需要用到精度 (Precision)和召回率(Recall)2個指標。

圖4 閾值為0.5時的PR曲線
圖4為閾值取0.5時,以recall為橫坐標,precision為縱坐標制作的PR曲線,PR曲線下圍成的面積即平均精度AP,所有類別AP平均值即MAP。其公式分別為

(1)
式中:P為Precision;r為Recall。
(2)
式中:C為目標檢測的總類別數。
試驗結果表明,佩戴安全帽人員檢測平均精度為92.7%,未佩戴安全帽人員檢測平均精度為98.1%,所有類別平均精度為95.4%,權重大小為13.7 Mb,檢測視頻fps為25,結合模型大小、平均精度和檢測視頻fps來看,該算法可以滿足嵌入式設備或移動端對人員佩戴安全帽檢測的準確性和速度要求。圖5為YOLOv5s檢測結果。

圖5 YOLOv5s檢測結果
針對不佩戴安全帽進入施工現場的危險行為,本文提出了一種安全帽智能檢測方法。以YOLOv5網絡為模型,自主采集數據集并進行數據增強,以提高模型魯棒性。試驗結果表明,數據集在YOLOv5網絡模型中表現出色,網絡模型的平均精度達到了95.4%,檢測視頻fps為25,實現了在保證檢測精確度的同時,對人員不佩戴安全帽的實時檢測。