安徽理工大學電氣與信息工程學院 張占康
在工地實際施工中,由于工人未佩戴安全帽而時常發生安全事故,基于此現象提出了一種基于YOLOV3的安全帽檢測算法。實驗結果表明:YOLOV3算法對佩戴安全帽的準確率達到90.6%,對未佩戴安全帽的準確率達到89.5%,檢測速率為23fps。
中國作為基建大國,建筑業事故持續保持在高位,安全帽作為保障工人生命安全的重要保障,務必確保每個工人都佩戴安全帽,但是實際作業時不佩戴安全帽的違規行為時有發生,因此需要對是否佩戴安全帽進行檢測。目前針對安全帽的檢測分為兩大類,一類是傳統的機器學習算法,但是傳統的機器學習難以在大數據集上訓練,精度不高。另一類是深度學習的算法,如R-CNN、Fast R-CNN識別準確度雖有提升,但是其網絡結構復雜、內存占用大、檢測速度慢。Joseph Redmon陸續發表了YOLOV1、YOLOV2、YOLOV3的目標檢測算法,YOLO算法使用深度神經網絡對對象進行預測和分類,其主要特點是速度快檢測準確率高。YOLOV3使用殘差模型和FPN結構來進行多尺度測試,優化了網絡結構。綜上,本文提出了一種基于YOLOV3的安全帽檢測算法。采集數據集、將這些數據集按8:2的比例劃分訓練集和測試集、用LabelImg對原始數據進行標注、用YOLOV3對訓練集進行訓練與預測、計算未訓練過的300張數據的漏檢率、錯檢率、總錯誤數和準確率。實驗結果表明:YOLOV3算法取得的準確率為90%,檢測速率為23fps,達到識別速度快與識別準確率高。
YOLOv3的主干結構與特征提取層:
YOLOv3是識別與回歸的檢測算法,對比FAST R-CNN算法中對候選區域提出特征,YOLOv3采用了對整個圖片的區域進行提出特征,YOLOv3網絡由主干網絡DarkNet53和特征提取網絡構構成,YOLOv3的主干模型為DarkNet53,如圖1所示。DarkNet53的主要特征是采用了殘差網絡Residual,Residual易優化,并且以增加深度來提升精準度。殘差網絡所示。YOLOV3的主干網絡共有三個特征層進行下一步的特征提取,假設輸入的大小為(416,416,3),這些層的特征分別為(52,52,256)、(26,26,512)、(13,13,1024),特征提取層如圖3所示。

圖1 DarkNet53主干網絡

圖3 特征提取層
在安全帽的檢測實驗中,不同的數據集會得到不同的檢測效果,想要獲得高檢測準確度,應該包括各種不同環境不同背景的數據集。實驗的3200張安全帽、人頭檢測數據集是從SHWD提供數據集中篩選,以8:2的比例劃分2560張訓練集和640張測試集。采用標注工具LabelImg對原始數據進行標注如圖4所示。

圖2 Residual殘差網絡

圖4 數據集的標注
在模型訓練時進行兩次訓練,首先進行學習率(learning rate)1e-3進行訓練,輪次(epoch)為30次,每個epoch進行140迭代,第一次訓練共進行4200次訓練,每次epoch訓練16個樣本。第二次訓練使用減少學習率和提前終止(early stopping),初始學習率(learning rate)為1e-4,最大epoch為30次,每個epoch進行140迭代,最大迭代次數為4200次,把標注好的數據送入YOLOV3模型中進行訓練,loss曲線在進行兩次訓練后便變得平緩不再下降。圖5為YOLO v3算法在進行學習率為1e-4的loss。

圖5 YOLO v3迭代loss曲線
模型的評價指標采用漏檢數(佩戴安全帽未檢測到的數量)、錯檢數(檢測實驗中檢測錯的數量)、總錯誤數(總錯誤數為漏檢數和錯檢數的總和),本實驗中采用準確率%作為安全帽檢測算法的評價指標,準確率如公式(1)所示:

采用YOLOV3訓練好的權重,選700張測試集用訓練好的模型進行測試,在這700張數據集中分別計算佩戴安全帽與為佩戴安全帽的漏檢率、錯檢率、總錯誤數和準確率,YOLOV3評價指標檢測準確率如表1所示。
由表1可以看出YOLOV3算法對佩戴安全帽的準確率達到90.6%,對未佩戴安全帽的準確率達到89.5%。平均檢測速度達到了23 fps,滿足實時性的要求,安全帽檢測結果如圖6所示。

表1 模型的評價指標

圖6 安全帽檢測
為了解決傳統的機器學習算法在復雜環境背景下對安全帽檢測效果差,和一些深度學習算法的檢測速度慢的問題,本文提出了YOLOV3的安全帽檢測算法,實驗結果表明,YOLOV3算法對佩戴安全帽的準確率達到90.6%,對未佩戴安全帽的準確率達到89.5%,其準確率和實時性都達到了實際應用的需求。故YOLOv3對于安全帽佩戴檢測具有可行性。