梁 循,翁小林,李嘉偉,劉 倩
(1.重慶市建設工程施工安全管理總站,重慶 400010;2.重慶郵電大學 通信與信息工程學院,重慶 400065;3.移動通信技術教育部重點實驗室,重慶 400065;4.移動通信技術重慶市重點實驗室,重慶 400065)
安全帽作為勞動者最基本的個人防護裝備,對保護勞動者的生命安全具有重要意義。但是,由于缺乏安全觀念,一些工人經(jīng)常不戴安全帽上班。通過圖像和視頻進行安全帽的檢測已經(jīng)成為生產(chǎn)安全監(jiān)測的重要手段[1],特別是在建筑工地這具有一定危險性的作業(yè)場所。在傳統(tǒng)的頭盔佩戴檢測方法中,大多數(shù)檢測工作是基于人工設置的特征,但在實際應用中由于光源或角度問題使得目標與背景的區(qū)別不是很明顯,特征提取工作極為煩瑣。隨著深度學習技術的發(fā)展,特別是卷積神經(jīng)網(wǎng)絡[2]的出現(xiàn),該模型的圖像特征提取能力得到了很大的提高。另外,支持向量機等分類器[3]可以對提取的圖像特征進行分類和預測,有效地降低了特征選擇的難度。
目前,目標檢測的主流算法是R-CNN[4]系列和YOLO[5]系列。但R-CNN系列算法是兩階段檢測算法,將耗費大量時間,即使是更快的R-CNN算法。YOLO系列算法已經(jīng)開發(fā)到Y(jié)OLOv5[6],已經(jīng)是一級檢測算法,可以一步完成R-CNN系列算法檢測過程,檢測速度能夠滿足實時性要求。
針對安全帽檢測的研究已經(jīng)引起了眾多學者的關注。Wen等[7]提出了一種基于改進Hough變換的圓弧/弧檢測方法,并將其應用于ATM監(jiān)控系統(tǒng)中的安全帽檢測。Rubaiyat等[6]結(jié)合顏色特征提取技術和循環(huán)Hough變換特征提取技術,對建筑工人頭盔使用情況進行檢測。Kang等[8]采用了ViBe背景建模算法,利用實時人體分類框架對變電站內(nèi)的行人進行準確、快速的定位。然而,基于傳統(tǒng)目標檢測的方法只能應用于特定的場景,準確率不高。隨著目標檢測技術的發(fā)展,Wu等[9]對YOLOv3算法進行了改進,有效地解決了頭盔著色、部分遮擋、多目標和圖像分辨率低等問題。
而對于YOLOv5,在Tesla P100上可以實現(xiàn)140 fps的快速檢測,對輸入的圖像進行反向訓練。因此,本文使用YOLOv5作為檢測器來檢測工人是否戴頭盔。首先,對建筑工地采集的7 581張圖片進行了標注。其次,使用最先進的目標檢測算法來檢測工人是否正確佩戴頭盔。最后,對不同深度和寬度的YOLOv5(s,m,l)模型進行訓練和評估,并進行結(jié)果分析比較。
本文的其余部分主要內(nèi)容闡述如下。在第一節(jié)中,介紹YOLOv5的網(wǎng)絡架構。在第二節(jié)中,詳細介紹基于改進的YOLOv5的安全帽檢測算法。在第三節(jié)中給出實驗的結(jié)果和分析。在第四節(jié)中對本文進行的工作進行總結(jié)。
YOLOv5的網(wǎng)絡結(jié)構包括4個部分,即輸入(Input)、主干網(wǎng)絡(Backbone)、頸部(Neck)和預測(Prediction),如圖1所示(其中,concat表示合并)。
圖1 YOLOv5的網(wǎng)絡結(jié)構
輸入部分包括鑲嵌數(shù)據(jù)增強和自適應錨幀計算。使用隨機縮放、隨機剪切和隨機排列的圖像拼接完成數(shù)據(jù)增強。該方法對頭盔、人的頭部等小目標具有良好的檢測效果。而YOLOv5在訓練代碼中嵌入了自適應錨幀。在每次訓練過程中,其將自適應地計算出不同訓練集中的最佳錨幀值。
主干網(wǎng)絡部分包括焦點結(jié)構和CSPNet(Cross Stage Partial Network,跨階段局部網(wǎng)絡)結(jié)構。焦點結(jié)構是YOLOv5的一個獨特的結(jié)構,其作用是切片。一個三維張量[4,4,3],經(jīng)過分割后,可以成為一個特征映射[2,2,12]。該CSPNet結(jié)構位于Backbone部分,由卷積層和Resnet(Residual Network殘差網(wǎng)絡)的一些剩余結(jié)構組成,通過這種方式加深網(wǎng)絡的層次。
頸部部分包括FPN(Feature Pyramid Networks,特征金字塔網(wǎng)絡)和PAN(Path Aggregation Network,路徑聚合網(wǎng)絡)。FPN的功能是從上到下傳達顯著的語義特征,而PAN的功能是從下到上傳達顯著的定位特征。FPN和PAN的結(jié)合進一步提高了特征提取的能力,如圖2所示(其中,UpSampling表示升采樣,DownSampling表示降采樣,圖中數(shù)字單位均為像素)。
預測部分包括GIoU(Generalized Intersection over Union,廣義并集上的交集)損失和加權非最大值抑制。其功能是克服IoU(Intersection over Union,并集上的交集)不能直接優(yōu)化不重疊部分的問題,并在后期處理過程中保留最優(yōu)框架,同時抑制這些冗余目標檢測。
實驗部分設計的安全帽佩戴檢測方法流程如圖3所示。首先,YOLOv5的內(nèi)置目標檢測權重將用于定位人員,其次,人員的頭部區(qū)域?qū)⒈贿^濾出來,通過YOLOv5網(wǎng)絡預先訓練的頭部和安全帽的權重來確定頭部位置,然后,這些頭盔將由YOLOv5目標檢測網(wǎng)絡識別。最后,根據(jù)數(shù)據(jù)集的特征確定安全帽是否佩戴。
圖3 安全帽佩戴檢測流程
實驗的數(shù)據(jù)集來自SHWD所提供的安全頭盔佩戴和人頭探測的數(shù)據(jù)集。該數(shù)據(jù)集包括7 581張圖片,其中9 044人佩戴安全帽,111 514人沒有佩戴安全帽,相關規(guī)定佩戴安全帽的對象為正向(positive),沒有佩戴安全膜的對象為負向(negative),利用LabelImg工具對圖像進行手動標記。實驗的運行環(huán)境是Python3.8.13,并且使用Pytorch1.8.1深度學習框架對網(wǎng)絡進行訓練、驗證和測試。權重文件是YOLOv5s.pt,訓練在NVIDIA RTX A4000 GPU上進行。
為了客觀評價該算法在安全帽佩戴檢測中的性能,需要計算平均精度指標(mean Average Precision,mAP)[10]。mAP指標能客觀地反映算法的整體性能,計算公式可以表示為
式中:AP是PR曲線下的面積值,可以用定積分進行計算
通過實驗,得到了不同YOLOv5模型的mAP數(shù)據(jù),見表1。經(jīng)過100次的訓練之后,盡管YOLOv5 m的準確度相比于YOLOv5 s有所下降,但mAP0.5的值只減少了0.1%,并不明顯。隨著參數(shù)量的增加,YOLOv5 l的準確度相比于YOLOv5 s上升了1%,但mAP0.5的值只上升了0.2%。
表1 不同YOLOv5模型的mAP數(shù)據(jù)
選取馬路、工廠車間和工地現(xiàn)場3個場景進行測試,并給出原始圖片和測試結(jié)果圖片進行比較。具體情況如圖4所示(其中,helmet表示識別到的佩戴正確安全帽)。
圖4 不同場景的測試結(jié)果
從檢測結(jié)果可以看出,該算法更全面地提取了圖像的總體特征。即使目標環(huán)境不同,或者圖像中的目標是否處于運動狀態(tài),該算法也能夠準確地檢測出目標。對每個網(wǎng)格生成的邊界框進行迭代和加權非最大值抑制濾波,得到與檢測對象最一致的檢測框架。特別是在工地現(xiàn)場場景中,在一定的遮擋條件下,該算法仍然能夠準確地識別工人是否佩戴安全帽。
本文詳細介紹了基于YOLOv5的安全頭盔檢測方法,包括YOLOv5網(wǎng)絡結(jié)構、損失函數(shù)和具體檢測流程。此外,采用不同參數(shù)的YOLOv5模型(s,m,l)進行了實驗研究。實驗結(jié)果表明基于改進的YOLOv5的頭盔檢測方法在測試效果方面具有優(yōu)異的結(jié)果。