唐勇 巫思敏













摘? 要:在工地現場的安全管理中,施工人員的安全帽佩戴與否關系到其生命安全。傳統的人工方式檢測施工人員安全帽佩戴與否的效率較低。文章提出一種基于YOLOv3目標檢測算法,可以實時地自動檢測施工人員是否佩戴安全帽:首先收集安全帽數據集和標注處理,把數據集分為訓練集、驗證集和測試集;然后使用YOLOv3對訓練集和驗證集進行訓練,并對測試集進行測試,最終結果顯示檢測準確率達到0.78、召回率0.914、mAP達到0.91、F1指數0.842、FPS為161,可滿足安全帽實時檢測的要求。
關鍵詞:YOLOv3;目標檢測;安全帽
中圖分類號:TP391? ? ? ? 文獻標識碼:A文章編號:2096-4706(2021)23-0088-05
Application of YOLOv3 in Safety Helmet Wearing Detection
TANG Yong1, WU Simin2
(1.Guangdong University of Technology, Guangzhou? 510006, China; 2.School of Computer Science and Engineering, North Minzu University, Yinchuan? 750021, China)
Abstract: Whether constructors wear safety helmets or not is related to their life safety in the safety management of the construction site. It is inefficient to detect whether the safety helmet of construction personnel is worn by traditional manual inspection. This paper proposes a target detection algorithm based on YOLOv3 to detect automatically whether the construction personnel wear safety helmets in real time. Firstly, collect the data set of safety helmets and label processing, divide the data set into training set, verification set and test set; then use YOLOv3 to train the training set and verification set, and test the test set. The final results show that the accuracy rate of detection reaches 0.78, the recall rate is 0.914, mAP reaches 0.91, F1 index is 0.842, and FPS is 161, which can meet the real-time detection requirements of safety helmet.
Keywords: YOLOv3; target detection; safety helmet
0? 引 言
施工人員在工地施工過程中,經常存在各種各樣的作業風險,威脅著施工人員的人身安全。經常可以在新聞報道中看到物體打擊、高處墜落、起重、坍塌等危害出現在施工過程中[1]。因此,施工人員在施工過程中必須正確佩戴安全帽,以保護人身安全。目前,對于安全帽佩戴的檢測方法是以人工檢測為主,人工檢測費時費力,而且檢測精度較為低下,存在較多的錯檢、漏檢現象。針對以上的問題,需要尋找一種更加高效可行的方式或方法來代替人工檢測,減少施工人員在施工過程中受傷和死亡的事件的出現。
目標檢測應用較多,包括安全帽檢測、行人檢測[2]、口罩檢測、車輛識別[3]等等,本文主要研究安全帽檢測。據統計,為了提高了安全帽檢測的準確性及效率,相關學者使用了傳統機器學習算法進行研究,如馮國臣等人探索安全帽檢測時通過機器視覺先確定目標圖像為人體[4],再定位到人體頭部;但傳統的機器學習方法應用于目標檢測,結果極其容易受施工環境的影響,檢測結果往往都是很低的準確率,檢測時延較長,不利于實際應用。Joseph Redmon在2016年提出了提出You Only Look Once(YOLO)[5],同年提出了YOLO的改進版YOLOv2算法[6],并對其改進提出了YOLOv3算法[7],不僅運算速度快,還得到了達到RetinaNet水平的mAP值。因此本文實現了基于YOLOv3的安全帽檢測,并得到了較好的精度和效率。
1? YOLOv3算法
1.1? YOLOv3網絡結構
YOLOv3是指通過特征提取網絡,提取輸入圖像的相關特征,從而得到特定大小的特征圖。比如現有一張輸入圖像,第一步是處理為一個13×13的網格單元;第二步是判斷這些網格單元中是否存在真實框中的目標的中心坐標,若存在那么可以利用這個網格單元來預測這個目標;最后利用RPN網絡來進行3×3邊框預測,需要注意的是部分邊框不會去進行預測,只有交并比值的邊框真正在預測目標。YOLOv3網絡的結構圖如圖1所示。
其中Darknet-53是YOLOv3的主干網絡,由53個卷積層和若干的residual層組成,是一種提取特征的網絡結構。Darknet-53不僅結合了殘差網絡(ResNet)的優點,還包含了5個殘差塊,分別進行5次的降采樣工作,在最后的三次降采樣過程中獲得3個尺度檢測的特征圖,并最終實現了目標預測。大特征圖和小特征圖存在較大的差異,大特征圖包含檢測目標的基本位置信息,小特征圖包含著層次的語義信息,但是這兩個特征圖能夠互相融合,從而能夠檢測大小目標。
YOLOv3相對于YOLOv2而言,能夠利用3個特征尺度進行多尺度特征融合,對目標進行預測,尤其使得小目標檢測更加精準化。其中各個特征尺度與之對應的先驗框(anchors值)如表1所示。
1.2? 模型損失函數
在YOLO算法模型中,第一步把圖片劃分成單元格,以每一個單元格為單位進行目標的預測和分類,每個單元格負責檢測目標真實框中心,判斷其是否落在本網格內。第二步工作是所有的單元格必須預測預測框和真實框的大小與坐標,并且對所有預測框生成一個預測置信度分數。第三步,根據數據集的類別數目,確定每個單元格就需要預測多少個類別的條件概率值。在這個預測過程中與真實值所產生的偏差就組成了本文算法模型YOLOv3的損失函數,Loss這個偏差由三部分組成:目標置信度損失、目標分類損失和邊界框位置回歸損失;Loss的計算公式為:
Loss=LBBox+Lconfidence+Lclass? ? ? (1)
其中目標置信度損失中的置信度主要有兩個評價指標,首先是單元格內是否存在目標,然后是候選框的準確程度。將置信度用confidence表示,Pobj表示檢測目標是否在這個單元格內,其計算公式為:
confidence=Pobj×(2)
其中,當單元格內沒有包含目標物體,Pobj的值為0,否則Pobj值為1。即,當單元格存在目標物體時,置信度的取值就為IoU的取值。下面對IoU的相關知識做一個簡單說明,指出其優點與缺陷。
1.3? 交并比
交并比(Intersection of Union, IoU)是從數學的集合引入到目標檢測算法處理過程中的,間接作為YOLO的優化損失指標。數學上,它描述了集合A和集合B兩者之間存在的關系,但在目標檢測中它被用來用于衡量真實框(ground truth)與預測框(predict box)的差距,也包括用來描述真實框與預測框的重合度,具體計算公式為:
IoU= (3)
這個指標能夠快速地直觀反映真實框與預測框的檢測效果,具備著尺度不變性特點。
1.4? NMS處理目標重復檢測
YOLOv3刪除了一些目標可能性較低的窗口框,通過非極大抑制(NMS)算法[8],將置信度偏低的重復預測框剔除,然后輸出置信分數較高的預測框。其次NMS處理目標重復檢測時,先根據置信度的分數值對預測排序;然后按照分數值高到低的順序進行檢查是否存在與之前的預測相同類別,同時滿足條件閾值(預先設置)小于當前預測的IoU時,那么可以之間忽略這個預測;最后不斷重復地執行上一個步驟,一直到所有預測檢查都完成。
2? 實驗過程
2.1? 數據集搜集和處理
本次實驗所用到的安全帽數據集是從網上搜索得到,總共分為兩類,分別為“hat”和“person”,其中未佩戴安全帽的人使用“person”來表示,而佩戴安全帽的人用“hat”標記。本次實驗總共搜集了7 581張圖片,然后利用開源軟件LabelImg標注所有的已收集到的圖片,其中一張圖片的標注過程界面圖,如圖2所示。由圖可見,綠框表示安全帽的真實框(ground truth),右上角的小框表示類別,依此類推對所有圖片進行了標注操作。
7 581張圖片對應生成7 581個xml文件。目標真實框(ground truth)的標簽信息保存至每一個xml文件,并且包括輸入圖像的大小以及目標的類別和位置信息,如圖3所示。
本文將數據集進行劃分為訓練集、驗證集和測試集的數目是5 458、1 517、606.
2.2? 訓練過程
實驗主要在PC端完成,PC的主要配置為CPU:Intel(R)Xeon(R)Platinum 8369B CPU @ 2.90 GHz 8核16線程,內存:64 GB,顯卡:NVIDIA A10 GPU 24 GB ,Ubuntu:Ubuntu 20.04.3 LTS,框架:pytorch 1.10.1,語言:Python3.9.7,實驗過程中使用網絡的重要超參數,如表2所示。
2.3? 評估標準
在本次目標檢測實驗中,當IoU取值大于等于0.5時,若檢測框中有一個目標,標記為TP,反之則標記為FP,當IoU取值小于0.5時,若檢測框內中有一個目標,標記為FN,反之則標記為TN。由這4項可求得訓練樣本的召回率(Recall)與準確率(Precision),其中計算公式為:
Precision==? ? ? (4)
Recall==? ? ?(5)
通過設置目標的置信度閾值,得到數組滿足條件的Precision值和Recall值。由Precision值和Recall值組合而成的準確率-召回率曲線(即P-R曲線)的面積,代表訓練樣本中各類目標的平均精度(AP),mAP則指所有類別的平均精度求和除以類別數目,目標檢測網絡的檢測效果常以mAP作為主要的評估指標,公式為:
(6)
其中,
(7)
(8)
除此之外,本文在進行算法性能評價時還采用F1指數,F1是P-R的調和平均,能很好地區別算法的優劣,F1值越高,物體識別算法就越好,計算公式為:
(9)
2.4? 實驗結果
迭代100個epoch之后,訓練趨于穩定,所得到的損失函數走勢圖如圖4所示,其中(a)所示的IoU Loss是通過訓練集訓練得到的邊框損失函數;(b)所示的Objectness Loss是通過訓練集得到的目標置信度損失函數;(c)所示的Classification Loss是通過訓練集得到的類別損失函數。
最后通過測試集的測試,得到各個種類和總的數值,其中安全帽的準確率為0.777,未戴安全帽的準確率為0.782,平均類別準確率為0.78;其中安全帽的召回率為0.898,未戴安全帽的召回率為0.93,平均類別召回率為0.914;AP50表示IoU取值為0.5時的精度,其中安全帽的精度為0.9,未戴安全帽的精度為0.92,平均類別精度為0.91;其中安全帽的F1指數為0.833,未戴安全帽的F1指數為0.85,平均類別F1指數為0.842;在該平臺下,當設置測試batch size為16,并且把測試的圖片resize成512×512的大小的情況下,所得到的FPS為161。得到的結果如表3所示,測試效果如圖5所示。
3? 結? 論
本文提出了一種通過YOLOv3的目標檢測算法來檢查施工人員在施工過程中安全帽的佩戴與否。首先確定從眾多的目標檢測算法模型中,挑選出綜合性能較好的YOLOv3算法模型。然后開始收集并標注制作整個實驗所需要的數據集,對制作好的數據進行合理的劃分。最后將訓練集和驗證集用于訓練,測試集用于測試評估指標,調整YOLOv3中的參數。通過這一系列的操作,得到一個安全帽佩戴檢測的YOLOv3算法模型,該模型具有較高的準確率、召回率和均值平均精度,并且在該模型下所測的結果滿足安全帽佩戴是實時檢測要求,可以很好地代替目前的人工檢測,更好地保障施工人員在施工過程中的人生安全。
參考文獻:
[1] 唐凱,陳陸,張洲境,等.我國建筑施工行業生產安全事故統計分析及對策 [J].建筑安全,2020,35(9):40-43.
[2] 謝林江,季桂樹,彭清,等.改進的卷積神經網絡在行人檢測中的應用 [J].計算機科學與探索,2018,12(5):708-718.
[3] 彭清,季桂樹,謝林江,等.卷積神經網絡在車輛識別中的應用 [J].計算機科學與探索,2018,12(2):282-291.
[4] 馮國臣,陳艷艷,陳寧,等.基于機器視覺的安全帽自動識別技術研究 [J].機械設計與制造工程,2015,44(10):39-42.
[5] REDMON J,DIVVALA S,GIRSHICK R,et al. You Only Look Once:Unified,Real-Time Object Detection [C]//2016 IEEE Conference on Computer Vision and Pattern Recognition(CVPR).Las Vegas:IEEE,2016:779-788.
[6] REDMON J,FARHADI A. YOLO9000:Better,Faster,Stronger [C]//2017 IEEE Conference on Computer Vision and Pattern Recognition(CVPR).Honolulu:IEEE,2017:6517-6525.
[7] REDMON J,FARHADI A. YOLOv3:An Incremental Improvement [J/OL].arXiv:1804.02767 [cs.CV].[2021-11-02].https://arxiv.org/abs/1804.02767.
[8] NEUBECK A,GOOL L V. Efficient Non-Maximum Suppression [C]//8th International Conference on PatternRecognition(ICPR06).Hong Kong:IEEE,2006:850-855.
作者簡介:唐勇(1993—)男,漢族,廣東河源人,碩士研究生在讀,主要研究方向:深度學習與目標檢測;通信作者:巫思敏(1993—)女,漢族,廣東信宜人,碩士研究生,高級工程師,主要研究方向:數據挖掘與知識發現。