鄭楚偉,林 輝,吳曉明,劉孝煒,凌福龍
(韶關(guān)學(xué)院智能工程學(xué)院,廣東韶關(guān) 512005)
在施工現(xiàn)場正確佩戴安全帽能有效地防止施工人員在生產(chǎn)過程中遭受墜落物體對頭部的傷害。然而在實際生產(chǎn)活動中,仍然出現(xiàn)個別工人不按規(guī)定佩戴安全帽的情況,給企業(yè)的安全生產(chǎn)管理帶來不便。
由于安全帽檢測具有很大的應(yīng)用價值,目前國內(nèi)對安全帽檢測有了初步的研究成果,孫國棟等[1]提出了一種通過融合自注意力機(jī)制來改進(jìn)Faster R-CNN 的目標(biāo)檢測算法,對于不同場景不同尺度的安全帽有著較好的檢測效果;農(nóng)元君等[2]以Tiny-YOLOv3 檢測網(wǎng)絡(luò)為基礎(chǔ),首先通過改進(jìn)特征提取網(wǎng)絡(luò)和多尺度預(yù)測優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),其次引入空間金字塔池化模塊和CIoU 邊界框回歸損失函數(shù)以提高安全帽檢測精度;徐傳運(yùn)等[3]提出將訓(xùn)練集中隨機(jī)抽取的圖像中的檢測目標(biāo)隨機(jī)縮放后,粘貼到另一隨機(jī)場景圖像上的任意位置,通過場景增強(qiáng)擴(kuò)充安全帽佩戴訓(xùn)練數(shù)據(jù)集,增加訓(xùn)練數(shù)據(jù)集的多樣性;馬小陸等[4]在YOLOv3 輸出端引入了跳躍連接構(gòu)成殘差模塊,同時改進(jìn)分類損失函數(shù)以平衡正負(fù)樣本、難易樣本對模型的影響,提高了識別的準(zhǔn)確度;施輝等[5]提出基于改進(jìn)YOLO v3 算法的安全帽佩戴檢測方法,通過采用圖像金字塔結(jié)構(gòu)獲取不同尺度的特征圖,在訓(xùn)練迭代過程中改變輸入圖像的尺寸,增加模型對尺度的適應(yīng)性,具有較高的檢測準(zhǔn)確率;李天宇等[6]提出將跳躍連接和注意力機(jī)制CBAM 技術(shù)引入雙向特征融合的特征金字塔網(wǎng)絡(luò)PANet模塊中,同時采用了CIoU 來代替IoU 進(jìn)行優(yōu)化錨框回歸預(yù)測,有效提高了安全帽檢測的識別精度;張錦等[7]提出在YOLOv5 的特征提取網(wǎng)絡(luò)中引入多光譜通道注意力模塊,從而加強(qiáng)網(wǎng)絡(luò)對前景和背景的辨別能力,并在訓(xùn)練迭代過程中隨機(jī)輸入不同尺寸的圖像,以此增強(qiáng)模型的泛化能力;趙睿等[8]采用DenseBlock 模塊來代替YOLOv5 主干網(wǎng)絡(luò)中的Focus 結(jié)構(gòu),在網(wǎng)絡(luò)頸部檢測層加入SE-Net 通道注意力模塊,改進(jìn)數(shù)據(jù)增強(qiáng)方式,增加一個檢測層以便能更好地學(xué)習(xí)密集目標(biāo)的多級特征,提高模型應(yīng)對復(fù)雜場景的能力。吳宏毅等[9]提出一種基于Transformer 自注意力編碼特征融合輕量級的目標(biāo)檢測網(wǎng)絡(luò),采用輕量級的主干網(wǎng)絡(luò)提取特征,注意力機(jī)制融合多尺度特征,提出質(zhì)量焦點損失方法,改善目標(biāo)檢測模型訓(xùn)練和測試階段推理過程不一致問題。趙紅成等[10]將原始YOLOv5s主干網(wǎng)絡(luò)更改為MobileNetV2,再對模型進(jìn)行壓縮,通過在BN 層引入縮放因子進(jìn)行稀疏化訓(xùn)練,判定各通道重要性,對冗余通道剪枝,再通過知識蒸餾輔助模型進(jìn)行微調(diào),改進(jìn)后的模型具有較高的準(zhǔn)確度。
綜上所述,現(xiàn)有的安全帽佩戴檢測方法研究缺乏將理論研究應(yīng)用到實際系統(tǒng)開發(fā)與部署的實例,因此本文將提出一個應(yīng)用深度學(xué)習(xí)技術(shù)的工業(yè)現(xiàn)場安全帽佩戴檢測系統(tǒng)解決方案。解決施工現(xiàn)場對安全隱患和違規(guī)行為無法及時做出預(yù)警的問題,將事后追責(zé)變?yōu)槭虑邦A(yù)警,降低安全隱患;事中及時發(fā)現(xiàn)問題,并通知管理人員及時處理;事后將違規(guī)現(xiàn)象記錄存檔,便于溯源追責(zé),真正做到安全生產(chǎn)智能化管理。
本系統(tǒng)分為監(jiān)控視頻數(shù)據(jù)采集模塊、安全帽佩戴檢測模塊、后端數(shù)據(jù)處理模塊、前端實時展示模塊。其中,監(jiān)控視頻數(shù)據(jù)采集模塊通過在QT 環(huán)境下調(diào)用OpenCV 庫顯示??低暰W(wǎng)絡(luò)攝像頭獲取的實時視頻流。安全帽佩戴檢測模塊使用改進(jìn)的YOLOv5 網(wǎng)絡(luò)模型,通過自適應(yīng)空間特征融合網(wǎng)絡(luò)充分利用不同尺度特征圖在不同空間位置像素點的貢獻(xiàn)度,以更好地適應(yīng)不同尺度的目標(biāo)檢測任務(wù);同時根據(jù)YOLOv5 的定位信息裁剪出未佩戴安全帽的人臉區(qū)域并進(jìn)行Base64 編碼,再通過POST 網(wǎng)絡(luò)請求的方式將其傳遞到百度智能云進(jìn)行人臉識別,獲取違規(guī)人員信息并生成違規(guī)通報。后端數(shù)據(jù)處理模塊采用Mybatis 作為持久層框架,數(shù)據(jù)庫采用MySQL,統(tǒng)一管理歷史違規(guī)記錄、違規(guī)圖像、人員信息等。前端實時展示模塊設(shè)計了微信小程序和QT 客戶端,管理者只需通過權(quán)限認(rèn)證后,就具有批量審核員工信息、實時接收違規(guī)通知、查詢歷史違規(guī)記錄等權(quán)限。系統(tǒng)總體架構(gòu)如圖1所示。
圖1 系統(tǒng)總體架構(gòu)
從監(jiān)控視頻中抽幀圖像進(jìn)行后續(xù)處理是本系統(tǒng)的基礎(chǔ)功能。本系統(tǒng)使用海康威視網(wǎng)絡(luò)攝像頭,開發(fā)基于QT 環(huán)境調(diào)用OpenCV 庫顯示網(wǎng)絡(luò)攝像頭獲取的實時視頻,流程如圖2 所示。用戶在QT 界面內(nèi)點擊“設(shè)備管理”按鈕后,跳出模式對話框提示用戶輸入網(wǎng)絡(luò)攝像頭的IP 地址、用戶名、密碼等信息,隨后在QT 的槽函數(shù)中將根據(jù)這些信息整理成RTSP 協(xié)議地址,并打包成JSON 格式數(shù)據(jù),寫到內(nèi)存中,以共享內(nèi)存的方式讓Python 讀取這些數(shù)據(jù)并解析,然后在Python 端調(diào)用OpenCV 庫根據(jù)RTSP 協(xié)議地址獲取網(wǎng)絡(luò)攝像頭的視頻數(shù)據(jù),并使用YOLOv5 網(wǎng)絡(luò)模型檢測安全帽。同時,根據(jù)檢測結(jié)果繪制安全帽邊界框,并把這些圖像和檢測結(jié)果寫入內(nèi)存中,讓QT 端讀取并顯示在交互界面上。
圖2 連接網(wǎng)絡(luò)攝像頭實時檢測安全帽流程
基于YOLOv5 的安全帽佩戴檢測模塊是本系統(tǒng)的核心功能。YOLOv5 是單階段目標(biāo)檢測算法,在YOLOv4 的基礎(chǔ)上添加了一些改進(jìn),使其速度與精度都得到了極大的性能提升。在網(wǎng)絡(luò)結(jié)構(gòu)不變的情況下,可通過深度因子和寬度因子調(diào)節(jié)網(wǎng)絡(luò)的深度和寬度,形成YOLOv5s,YOLOv5m,YOLOv5l,YOLOv5x共4種網(wǎng)絡(luò)模型。
YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示,分為數(shù)據(jù)輸入、骨干網(wǎng)絡(luò)(Backbone)、頸部(Neck)及預(yù)測部分(Prediction)。數(shù)據(jù)輸入部分使用Mosaic 的方式進(jìn)行數(shù)據(jù)增強(qiáng),隨機(jī)抽取4 張圖片進(jìn)行隨機(jī)縮放、隨機(jī)裁剪和隨機(jī)排布后再拼接到一張圖上,豐富了小樣本數(shù)據(jù)集,同時自適應(yīng)圖像填充將不同尺寸的輸入圖像統(tǒng)一調(diào)整為640×640 大小。Backbone 部分使用CONV 模塊、C3模塊、SPPF 模塊組合成特征提取網(wǎng)絡(luò),在不同分辨率圖像上聚合并形成圖像特征,構(gòu)造具有層次結(jié)構(gòu)的特征圖,3 種模塊結(jié)構(gòu)如圖3 所示。Neck 部分,YOLOv5 原始使用FPN+PANet 結(jié)構(gòu)進(jìn)行特征融合,將高層特征豐富的語義信息和低層特征豐富的細(xì)節(jié)信息相互融合,本文提出在YOLOv5的FPN+PANet結(jié)構(gòu)融合的特征再使用自適應(yīng)空間特征融合,加強(qiáng)不同尺度的特征融合以提高模型精度。Prediction 部分采用非極大值抑制對多個目標(biāo)錨框進(jìn)行篩選來提高對目標(biāo)識別的準(zhǔn)確度,采用二元交叉熵?fù)p失函數(shù)(BCE loss)計算置信度預(yù)測損失和分類預(yù)測損失,使用GIOU_Loss 計算Bounding box 的損失,GIOU_Loss 的公式如下:
圖3 改進(jìn)YOLOv5網(wǎng)絡(luò)模型
式中:A、B 分別為真實邊界框和預(yù)測框;IOU為A與B的交并比;C為包含A和B的最小凸閉合框。
在目標(biāo)檢測任務(wù)中,融合不同尺度的特征是提高性能的一個重要手段。YOLOv5 使用FPN+PANet 結(jié)構(gòu)將高層特征豐富的語義信息和低層特征豐富的細(xì)節(jié)信息相互融合,如圖4(a)所示,PANet 結(jié)構(gòu)是在FPN 基礎(chǔ)上增加了自下而上的融合路徑[11],但其只是簡單的通過卷積和上采樣操作調(diào)整特征圖的通道數(shù)和尺寸后再相加,無法充分利用各個層級特征圖在不同空間位置像素點的貢獻(xiàn)度。故本文提出在YOLOv5 的FPN+PANet結(jié)構(gòu)融合的特征后再使用自適應(yīng)空間特征融合(Adaptively Spatial Feature Fusion,ASFF)[12],如圖4(b)所示,通過自適應(yīng)地學(xué)習(xí)每個尺度上特征圖融合的空間權(quán)值,將各權(quán)值參數(shù)圖與對應(yīng)的輸入特征圖進(jìn)行加權(quán)求和,來決定輸入特征圖中各像素點的激活與抑制,以此調(diào)整不同尺度特征圖在不同空間位置像素點的貢獻(xiàn)度,更好地適應(yīng)不同尺度的目標(biāo)檢測。
圖4 原始特征和本文特征融合模塊對比
具體實現(xiàn)步驟如下。
(1)特征縮放
由于YOLOv5 的Neck 結(jié)構(gòu)輸出的4 個層級的融合特征具有不同的分辨率和通道數(shù)量,所以需要做相應(yīng)的調(diào)整以匹配對應(yīng)的特征。對于上采樣操作,先使用1×1 的卷積層壓縮特征通道數(shù)量,再通過最近鄰插值提高分辨率。對于1/2比例的下采樣,使用3×3 的卷積層,步幅為2,同時調(diào)整通道數(shù)量和分辨率。對于1/4 比例的下采樣,先使用步長為2 的最大池化層,再進(jìn)行1/2 比例的下采樣;對于1/4 比例的下采樣,先使用步長為4的最大池化層,再進(jìn)行1/2比例的下采樣。
(2)特征融合
使用YOLOv5 網(wǎng)絡(luò)模型進(jìn)行安全帽佩戴檢測后,若發(fā)現(xiàn)工人沒有正確佩戴安全帽,則根據(jù)YOLOv5 的定位信息在原圖中裁剪未佩戴安全帽的人臉區(qū)域,并將裁剪的圖片依次進(jìn)行Base64 編碼,再通過POST 網(wǎng)絡(luò)請求的方式將其傳遞到百度智能云的人臉?biāo)阉鰽PI進(jìn)行人臉識別,將違規(guī)工人的人臉和數(shù)據(jù)庫中已注冊的人臉依次對比,確定違規(guī)工人的身份信息,用于后續(xù)生成違規(guī)通報。根據(jù)本系統(tǒng)對人臉識別的需求分析,需要滿足的功能主要有3 個部分:人臉注冊、人臉識別和數(shù)據(jù)庫管理,人臉識別模塊功能結(jié)構(gòu)如圖5所示,流程如圖6所示。
圖5 人臉識別模塊功能結(jié)構(gòu)
圖6 人臉識別模型功能流程
本模塊的主要功能是提供QT 客戶端的用戶服務(wù),用戶在終端安裝Qt Creator 后可調(diào)用登錄接口,服務(wù)端將會對登錄用戶進(jìn)行鑒權(quán),根據(jù)不同的用戶等級分配不同的用戶權(quán)限,之后可使用服務(wù)端提供的其他云服務(wù)功能。本系統(tǒng)所設(shè)計QT 交互界面如圖7所示。
圖7 QT交互界面
QT 交互界面中,用按鍵來作為信號的發(fā)生器,每次點擊按鍵引起信號發(fā)生后,會自動執(zhí)行相應(yīng)的槽函數(shù),在槽函數(shù)里面可以實現(xiàn)所需要的功能。圖中,“設(shè)備管理”按鍵對應(yīng)的槽函數(shù)是提示用戶輸入網(wǎng)絡(luò)攝像頭的IP 地址、用戶名、密碼等信息,從而連接網(wǎng)絡(luò)攝像頭來獲取實時視頻流,并將安全帽識別結(jié)果繪制在主界面區(qū)域;“記錄”按鍵下,通過調(diào)用云服務(wù)器的文件管理模塊接口獲取未正確佩戴安全帽的違規(guī)圖像并展示;“統(tǒng)計”按鍵對應(yīng)的槽函數(shù)是獲取MySQL 數(shù)據(jù)庫中的違規(guī)歷史數(shù)據(jù)統(tǒng)計結(jié)果并展示。
檢測到施工人員未佩戴安全帽后,調(diào)用文件管理模塊的接口保存該違規(guī)照片,同時根據(jù)人臉識別的結(jié)果在數(shù)據(jù)庫中查詢該員工的具體信息,生成違規(guī)通報并實時同步到微信小程序,將違規(guī)行為記錄存檔進(jìn)數(shù)據(jù)庫,便于事后查證。管理者只需通過微信小程序的權(quán)限認(rèn)證后,即可實時查看工地的安全生產(chǎn)情況。
小程序的后端服務(wù)采用Spring Boot 框架,使用前后端分離的方式進(jìn)行開發(fā),接口采用RESTful 設(shè)計風(fēng)格,數(shù)據(jù)庫采用的是MySQL,所有服務(wù)均以docker 容器的形式在服務(wù)器上部署。微信小程序功能流程如圖8 所示,普通用戶可以在微信小程序中通過后端服務(wù)接口將人臉信息資料上傳到系統(tǒng)的MySQL 數(shù)據(jù)庫中,管理者具有批量審核員工信息、實時接收違規(guī)通知、查詢歷史違規(guī)記錄等權(quán)限。
圖8 微信小程序功能流程
微信小程序提供的服務(wù)通知功能是在出現(xiàn)新的違規(guī)信息的時候,就使用微信官方提供的模板消息接口,立即向管理者下發(fā)服務(wù)通知,提醒管理者查看最新違規(guī)信息。查詢歷史違規(guī)記錄功能是通過官方提供的本地存儲能力接口將數(shù)據(jù)存儲到本地,能避免用戶頻繁請求接口而給服務(wù)器帶來過多的壓力,同時所有服務(wù)統(tǒng)一使用一個MySQL 數(shù)據(jù)庫,當(dāng)管理者在微信小程序端發(fā)送“查詢歷史違規(guī)記錄”的請求時,服務(wù)器端就將數(shù)據(jù)庫中的違規(guī)信息列表返回到小程序,再由小程序渲染生成違規(guī)信息列表,流程如圖9所示。
圖9 查詢歷史違規(guī)記錄流程
本實驗使用開源安全帽佩戴檢測數(shù)據(jù)集(Safety helmet wearing detect dataset,SHWD)訓(xùn)練網(wǎng)絡(luò)模型,將SHWD 提供7 581 張圖像按照9∶1 的比例劃分為訓(xùn)練集和測試集。在訓(xùn)練過程中,設(shè)置最大迭代次數(shù)為100 個epochs,采用SGD 優(yōu)化器,動量因子為0.937,權(quán)重衰減系數(shù)為0.000 5,使用余弦退火算法更新學(xué)習(xí)率。
本文使用精確度(Precision,P)、召回率(Recall,R)、平均精確度(Average Precision,AP)、平均精確度均值(mean Average Precision,mAP)指標(biāo)來評估模型性能。計算公式如下:
式中:n為類別總數(shù);AP用于衡量模型對某一類別的平均精度;mAP為所有類別的平均AP值;TP為真正例;FN為假反例;FP為假正例;TN為真反例。
實驗結(jié)果如表1 所示,其中mAP@.5 是IoU 閾值為0.5 的情況下每一類別的AP值的平均;mAP@.5:.95 表示IoU 閾值從0.5開始以0.05的步長增長到0.95所對應(yīng)的平均mAP。從表中可以看出本文所提出的改進(jìn)YOLOv5 網(wǎng)絡(luò)模型相比原始YOLOv5 網(wǎng)絡(luò)模型,在mAP@.5指標(biāo)上提升了0.5%,在mAP@.5:.95指標(biāo)上提升了0.6%。訓(xùn)練過程中的置信度預(yù)測損失、分類預(yù)測損失、Bounding box 損失情況如圖10 所示,在90 個epochs 迭代以后,3種損失值都趨于平緩且接近0。
表1 YOLOv5模型性能參數(shù)比較
圖10 訓(xùn)練過程損失情況
本文設(shè)計了基于改進(jìn)YOLOv5 網(wǎng)絡(luò)模型的智能安防監(jiān)控系統(tǒng),首先在QT 環(huán)境下調(diào)用OpenCV 庫顯示海康威視網(wǎng)絡(luò)攝像頭獲取的實時視頻流。其次,通過自適應(yīng)空間特征融合網(wǎng)絡(luò)改進(jìn)的YOLOv5 網(wǎng)絡(luò)模型進(jìn)行安全帽佩戴檢測,實驗結(jié)果表明,本文改進(jìn)的YOLOv5 在安全帽檢測任務(wù)上的mAP值為92.2%,相比原始YOLOv5提升0.5%,滿足復(fù)雜施工場景下安全帽佩戴檢測的準(zhǔn)確率要求。隨后使用百度智能云進(jìn)行人臉識別從而生成違規(guī)通報,并實時同步到微信小程序,將違規(guī)行為記錄存檔進(jìn)數(shù)據(jù)庫,便于事后查證。管理者只需通過微信小程序的權(quán)限認(rèn)證后,即可實時查看工地的安全生產(chǎn)情況,實現(xiàn)了安全生產(chǎn)智能化管理。