許鎖鵬,盧 健,許心怡,吳 陽
(無錫太湖學院 智能裝備工程學院,江蘇 無錫 214064)
近年來,隨著人工智能技術的發展,深度神經網絡算法的應用越來越廣泛。深度卷積神經網絡是許多視覺任務深度學習范例的關鍵,包括目標識別、檢測、分割等。深層神經網絡(DNNs)以端到端的方式,從數據中自動提取判別特征表示,已在很多基準測試中超越了其他機器學習算法。
建筑工地上的安全帽檢測方法主要包括以顏色特征來檢測[1]或先檢測人臉再由安全帽特征通過分類器進行分類[2],雖然精度上滿足了需求,但計算量大,時間復雜度高,不利于實時監測。
近年來,人們廣泛利用深度神經網絡進行物體檢測,但需要大數據量訓練集且要求精準標注,這給實際應用帶來了較大困難,對計算機內存占用大,消耗大量計算資源,難以應用于低成本終端設備。目標檢測算法包含單階段和兩階段目標檢測算法,后者需要對物體進行定位,再對定位圖像進行分類,是一個兩階段過程。以RCNN[3]、SPP-net[4]、Fast-RCNN[5]、Faster-RCNN[6]及Mask R-CNN[7]為代表,優點是準確率高,但是檢測速度慢,難以適應實時要求高的場景。前者是基于回歸檢測算法的單目標檢測,主要以YOLO[8]和SSD[9]為代表,是直接對目標檢測框做回歸,檢測準確率略低,但在檢測速度上有較大優勢。由于安全帽檢測對實時性要求較高,故采用單階段目標檢測的YOLOv5模型,在保證檢測速度的同時,在精度上也具有一定優勢。實驗結果表明,方法識別準確率達到較高水平,占用內存較少,可實現低性能終端上的實時檢測并推廣到其他類似應用場景。
YOLOv3[10]模型的權重文件遠大于YOLOv5的27MB,考慮部署的便捷性及適用性,YOLOv5s具有更大的優勢[10],因此選擇YOLOv5s模型作為基礎網絡架構。
該檢測系統主要使用python語言進行設計,在模型訓練中選用了PyTorch框架,該框架靈活、穩定、高效,系統開發更為高效,性能更加穩定。模型采用YOLOv5模型,檢測精度高,體積小。YOLOv5屬于one-stage類模型,運行速度快,同時支持在GPU上使用,可極大縮短訓練時間。
該系統主要用于建筑工地、礦區、電廠等需要佩戴安全帽的危險工作區域,用戶為管理人員和普通用戶,需要對視頻進行檢測并對未正確佩戴安全帽的人員進行報警提示。為了保證及時發現異常,視頻分析和檢測速度越快越好,減少延遲,界面簡潔直觀,方便使用者操作。
通過軟件運行程序調用設備攝像頭,獲取實時視頻流,判斷是否有視頻流,若有則對視頻流中的每一張圖片進行讀取識別,如發現有人未戴安全帽則發出報警,同時繼續獲取實時視頻流,若沒有檢測到視頻流,則系統退出檢測。圖1所示為檢測流程圖。

圖1 視頻流檢測流程圖Fig.1 Flow chart of video stream detection
為了訓練出一個識別精度高且泛化能力強的模型,數據集的選擇和準備尤為重要。在開始訓練模型前,需要做許多數據準備工作。數據獲取階段,數據集使用的是GitHub上的Safety-Helmet-Wearing-Dataset,總共有7 581張圖片。如圖2所示為某幀訓練圖像。

圖2 數據集圖片Fig.2 Dataset image
將在GitHub上獲取的Safety-Helmet-Wearing-Dataset數據集的XML格式轉化為TXT格式,如圖3所示。將數據集劃分為三類,數量分別是訓練集5 457張圖片、驗證集607張圖片和測試集1 517張圖片。

圖3 數據的放置格式Fig.3 Data placement format
為了提高模型訓練效率,先加載預訓練的權值進行網絡訓練。YOLOv5提供了幾種不同尺寸的預訓練權重,可根據用戶的不同需求選擇不同版本的訓練前權重。訓練前模型的權值文件越大,訓練精度越高,但是訓練的時長相應地也較長,所需的權值文件可以在GitHub上下載。該訓練數據集中使用的預訓練權重為yolov5s.pt。
采用Precision(找回率)作為實驗結果的評價標準之一,Precision定義為驗證集中被正確檢測到的目標數量與總的目標數量之比,Precision越高,則在一定程度上代表模型的性能越好。Precision(召回率)和recall(準確率)是一個0~1的小數值,代表概率,越趨于0表示模型質量越差,但它們都僅從一個角度來判斷模型的質量。因此,在對模型進一步評價時一般采用mAP(均值平均密度)。通常精度和召回值負相關,從圖4可以看出,mAP趨于1,說明該模型的性能相對較好。

圖4 訓練結果Fig.4 Training results
本算法著重于低成本終端上模型的存儲與計算,因此將模型大小和檢測速度作為模型評估標準,用以驗證模型是否能夠滿足實時要求。實驗表明,檢測準確率在95%以上,實時性也滿足要求。
本系統開發使用的是Windows11操作系統,操作系統為64位,使用PC級的GPU- GeForce GTX 1650,使用PyTorch深度學習庫,圖形化界面應用PyQt5編寫,系統開發使用PyCharm編譯器。
點擊視頻文件檢測,上傳待檢測的視頻,視頻檢測結果在軟件界面展示。圖5為視頻檢測結果演示,此時會框出每個檢測到的安全帽并顯示出置信度,當檢測到有人未佩戴安全帽時則會發出聲音報警。

圖5 視頻文件檢測和攝像頭實時監測Fig.5 Video file detection and real-time camera monitoring
建筑業的自動化、智能化水平不斷提升,但現有的安防措施相對滯后,無法滿足實時性的要求。企業對生產安全越來越重視,需采用智能化的方式解決此問題。基于YOLOv5設計了一套以安全帽檢測為核心功能的預警系統,用以檢測作業人員是否佩戴安全帽,并根據檢測情況實時發出預警信息。實驗結果表明,系統檢測準確率在95%以上,滿足了用戶需求,能夠在保持較高識別準確率的同時占用較少的存儲空間,在測試時間上具有一定的優勢,可滿足生產過程中實時檢測的需求并推廣到其他類似應用場景。