吳冬梅,閆宗亮,宋婉瑩,白 凡
(西安科技大學通信與信息工程學院,陜西西安710054)
在國電系統中,安全帽顏色按照視覺識別系統(VI)規定:白色代表領導人員,藍色代表管理或技術人員,黃色代表施工人員,紅色代表外來人員。為了加強施工安全管理并降低意外事故風險,嚴令施工人員必須佩戴安全帽且安全帽的顏色必須與其身份相符合。但是,由于監管力度不夠以及施工人員安全意識淡薄等原因,在施工現場由于不佩戴戴安全帽而導致的意外事故時有發生。在中國,2012-2016年,超過2850名建筑工人死于建筑施工,平均每天1.57人死亡[1]。因此,急需在建筑現場實現對安全帽的自動化檢測,目前已經有大量關于自動檢測安全帽佩戴的研究。
傳統的安全帽佩戴檢測方法可以分為兩類:基于傳感器的檢測和基于計算機視覺的檢測。基于傳感器的檢測技術,側重于遠程定位和跟蹤技術,例如射頻識別(RFID)和無線局域網(WLANs)。Kelm等[2]設計了一個移動射頻識別門戶,用于檢查人員個人防護設備穿戴的正確性。但是位于建筑工地入口的RFID閱讀器無法檢查非入口區域,無法識別施工人員是否佩戴安全帽。Dong等[3]開發了工人位置跟蹤的實時定位系統(RTLS),在安全帽上放置壓力傳感器后通過藍牙傳輸壓力信息進行監控判斷工人是否應該戴安全帽并發送警告。Zhang等人[4]使用基于物聯網的架構開發了一個智能安全帽系統。為了確定安全帽的使用狀態,將一個紅外光束探測器和一個熱紅外傳感器安置在安全帽內。當紅外光束探測器和熱紅外傳感器都被激活時,該工人的安全帽使用被確認。一般來說,現有的基于傳感器的方法很難準確識別建筑工地上人們是否佩戴安全帽。此外,傳感器的使用將導致大量的生產成本。與基于傳感器的檢測方法相比,基于計算機視覺的檢測技術越來越受到人們的重視。2014年劉曉慧等[5]使用Hu矩陣和膚色檢測來識別安全帽。2015年周艷青等[6]采用人工提取頭部特征區域,再利用分類器和反向人工神經網絡進行分類預測。Wu等人[7]提出了一種基于顏色的混合描述子,由局部二值模式(LBP)、Hu矩不變量(HMI)和顏色直方圖(CH)組成,用于提取不同顏色的安全帽特征。然后利用支持向量機(H-SVM)將特征分為四類(紅色、黃色、藍色和沒有佩戴安全帽)。
近年來,基于深度學習的目標檢測越來越受歡迎,2019年施輝等[8]提出一種將圖像金字塔網絡加入到YOLOv3中并改進的安全帽佩戴檢測方法。張明媛[9]等提出的基于Faster RCNN的安全帽檢測方法。2020年王雨生等[10]提出了一種通過骨骼點位置信息確定頭部區域以縮小檢測范圍的安全帽佩戴檢測方法。秦嘉[11]等人提出了一種安全帽的檢測與跟蹤的方法。2020年吳冬梅和王慧等[12]提出了改進的Faster RCNN算法,可以檢測出不同顏色的安全帽并識別佩戴者的身份。Jixiu Wu等人[13]提出了一種基于卷積神經網絡的單階段檢測系統,可以檢測出四種顏色的安全帽。傳統的安全帽檢測方法很難準確識別安全帽是否正確佩戴,基于深度學習的安全帽佩戴檢測無法在檢測精度和檢測速度之間達到一個好的平衡,本文針對前人工作的局限性,提出一種基于改進的YOLOv4算法的安全帽檢測及身份識別模型。
YOLOv4是Alexey Bochkovskiy,Chien-Yao Wang等[14]人于2020年在YOLOv3基礎上做了大量的改進后得到的新的檢測網絡。在網絡結構方面,主要有三個方面的改進。
特征提取網絡由YOLOv3中的Darknet53改進為CSPDarknet53,在Darknet53的基礎上加入了CSPNet(跨階段部分網絡)中的跨階段連接方法。跨階段局部連接網絡是一種可以提高卷積神經網絡學習能力的一種新型骨干網絡,利用跨階段特征融合方法和階段梯度流來增強不同的層中學習特征的可變性。
在YOLOv4中加入了SPP-Net(空間金字塔池化)網絡。一般在卷積神經網絡結構中,對圖片的輸入大小要求固定,但在現實中通常會使用裁剪和拉伸兩種方法來將圖片的大小統一,這樣做會破壞圖像的縱橫比,SPP-Net網絡的出現很好的解決了這個問題,它可以產生固定大小的輸出,并且可以使用同一圖像像不同尺寸作為輸入,得到同樣長度的池化特征,提高了尺度不變性,降低了過擬合,使用不同尺寸的圖像進行網絡訓練更容易使得網絡收斂。
YOLOv4中還采用了PANet(路徑聚合網絡),從YOLOv4的網絡結構圖中可以看出,PANet網絡將特征提取網絡底層的全局信息和高層的語義信息進行融合,使得YOLOv4輸出的特征更加完整。在YOLOv4的網絡的訓練中采用了一些小的技巧,對網絡的精度有一定的提升。Mish激活函數、CIOU作為損失函數、馬賽克數據增強(Mosaic data augmentation)、標簽平滑處理技術和DropBlock正則化技術等。
YOLOV4中的非極大值抑制算法采用NMS算法,首先取出得分最大的框,然后計算得分最大的框與其它所有預測框的重合程度,重合程度過大的框則被剔除。由于本文所要檢測的小目標很容易被遮擋,那么NMS算法就會抑制掉遮擋比較嚴重的目標。針對此問題,本文將YOLOv4中的NMS算法改進為Bodla提出的Soft-NMS[17]算法,其公式為

(1)
相比于NMS算法,Soft-NMS則以一個權重的形式,將獲得的IOU取高斯指數后乘上原得分,之后重新排序,繼續循環,這樣將會避免遮擋嚴重的目標被直接剔除。
在卷積神經網絡提取的特征中,低層級的特征包含了豐富的全局信息,包括定位信息,高層級的特征包含了大量的語義信息,為了使安全帽的檢測定位更加準確,本文對YOLOv4的主干特征提取網絡進行改進,將第二個跨階段局部連接中的殘差塊個數由2增加為4,增加底層特征的提取。改進后的YOLOv4網絡模型如下圖所示。
本文的實驗環境為:Intel Core-I9-10900XCPU 3.70GHZ,32GB的的運行內存,11GB的顯存,Nvidia Geforce RTX 2080Ti的GPU,64位的操作系統,tensorflow深度學習框架。初始學習率為10-3,momentum為0.9,在HardHatWorkers[17]數據集上訓練時,解凍前batch_size為14,解凍后為6,在其余三個數據集上訓練時,解凍前的batch_size為10,解凍后為3,所有實驗均在相同的硬件環境下進行。
目前已經有公開的安全帽檢測的數據集用于開發和評估各種情況下的安全帽佩戴檢測算法。本文收集到了四個關于安全帽檢測的數據集,采用遷移學習的思想,在每個數據集上進行訓練已達到最好的檢測效果。第一個數據集名為HardHat Dataset[15],包含了Helmet、Person和Head三個類別,共5000張圖片,圖片的大小為416×416×3。第二個數據集是SafetyHelmetWearing-Dataset來自github的一個開源項目,共7581張圖片。其中5297張圖片作為訓練集,1766張圖片作為驗證集。共包含了9044個佩戴安全帽(正樣本)和111514個正常頭部的未佩戴安全帽(負樣本)的圖像,其中正樣本的標簽為Hat,負樣本的標簽為person。第三個數據集是Hardhat[16],包含Head,helmet,person,others四個類別,共7063張圖片。第四個數據集GDUT-HWD[13],包含red,yellow,white,blue,none五個類別。YOLOv4的先驗框是在VOC數據集上聚類得到的。直接使用原模型的先驗框顯然是不合理的,所以在訓練時,對每一個數據集進行聚類得出與其相對應的先驗框。

圖1 改進的YOLOv4網絡模型
評價目標檢測的常用指標有平均精度AP(Average Precision)、平均精度均值mAP(Mean Average Precision)、ROC曲線(Receiver Operating Characteristic curve)和幀率(Frame Per Second)。其中AP值的大小反映單一目標的檢測效果,其計算公式為

(2)
其中,p(r)表示真正率(True Positive Rate)和召回率(Recall)的映射關系,真正率和召回率的計算公式為

(3)

(4)
其中真正數(True Positive)表示正樣本被預測為正樣本的個數,假正數(False Positive)表示負樣本被預測為正樣本的個數,假負數(False Negative)表示正樣本被預測為負樣本的個數。本文采用平均準確率和幀率評價最后的檢測效果。其中幀率主要表征了檢測的速度。
為了避免梯度爆炸和過擬合并在訓練時加快了模型的收斂速度。首先將模型在VOC2007數據集上進行預訓練,然后將預訓練后的模型依次遷移到四個安全帽數據集上進行訓練。訓練時先凍結模型的前100層,訓練10個輪次之后,解凍模型。在此基礎上繼續訓練,直到模型不在收斂為止。在HardHatWorkers、SHDW和Hardhat數據集上訓練時,80%作為訓練集,20%作為驗證集。在GDUT-HWD數據集上訓練時,60%作為訓練集,20%的作為驗證集,最后對模型在剩余的20%的數據上進行測試,其中黃、紅、藍、白和沒有佩戴安帽的AP值分別95.29%、94.70%、93.59%、94.68%和84.94%,模型的mAP值為92.05%。如圖3所示。

圖2 改進YOLOv4的mAP值
為了檢驗本文所提出的模型的有效性,將改進后的模型與YOLOv3、YOLOv4、YOLOv5s和Jixiu Wu等人論文中的模型進行對比分析。表1中前6行的檢測結果來自于Jixiu Wu等人的論文,都是在GDUT-HWD數據集上訓練的結果。

表1 模型檢測結果對比
下圖是改進YOLOv4的檢測結果的示例樣圖,包括進入建筑現場的通道口,工廠內部和建筑現場,可以看出,對于距離攝像頭較遠的安全帽,依然可以準確檢測出并識別其顏色,具有良好的檢測效果和較廣的應用范圍。

圖3 改進的YOLOv4模型檢測結果示例圖
本文通過遷移學習的思想,充分利用現有的與安全帽檢測相關的數據集。使用改進的YOLOv4算法在四個有關安全帽的數據集上訓練一個可以檢測各種顏色的安全帽佩戴檢測模型,從最后的實驗數據中分析得出,模型的mAP值高達92.05%。在后續的研究中,將加入人臉識別,識別出沒有佩戴安全帽的具體人員,然后通過語音提醒的方式,提醒建筑現場的工作人員及時佩戴安全帽,從而降低事故的風險。