許鎖鵬,盧 健,許心怡,吳 陽
(無錫太湖學(xué)院 智能裝備工程學(xué)院,江蘇 無錫 214064)
近年來,隨著人工智能技術(shù)的發(fā)展,深度神經(jīng)網(wǎng)絡(luò)算法的應(yīng)用越來越廣泛。深度卷積神經(jīng)網(wǎng)絡(luò)是許多視覺任務(wù)深度學(xué)習(xí)范例的關(guān)鍵,包括目標(biāo)識別、檢測、分割等。深層神經(jīng)網(wǎng)絡(luò)(DNNs)以端到端的方式,從數(shù)據(jù)中自動提取判別特征表示,已在很多基準(zhǔn)測試中超越了其他機(jī)器學(xué)習(xí)算法。
建筑工地上的安全帽檢測方法主要包括以顏色特征來檢測[1]或先檢測人臉再由安全帽特征通過分類器進(jìn)行分類[2],雖然精度上滿足了需求,但計算量大,時間復(fù)雜度高,不利于實時監(jiān)測。
近年來,人們廣泛利用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行物體檢測,但需要大數(shù)據(jù)量訓(xùn)練集且要求精準(zhǔn)標(biāo)注,這給實際應(yīng)用帶來了較大困難,對計算機(jī)內(nèi)存占用大,消耗大量計算資源,難以應(yīng)用于低成本終端設(shè)備。目標(biāo)檢測算法包含單階段和兩階段目標(biāo)檢測算法,后者需要對物體進(jìn)行定位,再對定位圖像進(jìn)行分類,是一個兩階段過程。以RCNN[3]、SPP-net[4]、Fast-RCNN[5]、Faster-RCNN[6]及Mask R-CNN[7]為代表,優(yōu)點是準(zhǔn)確率高,但是檢測速度慢,難以適應(yīng)實時要求高的場景。前者是基于回歸檢測算法的單目標(biāo)檢測,主要以YOLO[8]和SSD[9]為代表,是直接對目標(biāo)檢測框做回歸,檢測準(zhǔn)確率略低,但在檢測速度上有較大優(yōu)勢。由于安全帽檢測對實時性要求較高,故采用單階段目標(biāo)檢測的YOLOv5模型,在保證檢測速度的同時,在精度上也具有一定優(yōu)勢。實驗結(jié)果表明,方法識別準(zhǔn)確率達(dá)到較高水平,占用內(nèi)存較少,可實現(xiàn)低性能終端上的實時檢測并推廣到其他類似應(yīng)用場景。
YOLOv3[10]模型的權(quán)重文件遠(yuǎn)大于YOLOv5的27MB,考慮部署的便捷性及適用性,YOLOv5s具有更大的優(yōu)勢[10],因此選擇YOLOv5s模型作為基礎(chǔ)網(wǎng)絡(luò)架構(gòu)。
該檢測系統(tǒng)主要使用python語言進(jìn)行設(shè)計,在模型訓(xùn)練中選用了PyTorch框架,該框架靈活、穩(wěn)定、高效,系統(tǒng)開發(fā)更為高效,性能更加穩(wěn)定。模型采用YOLOv5模型,檢測精度高,體積小。YOLOv5屬于one-stage類模型,運行速度快,同時支持在GPU上使用,可極大縮短訓(xùn)練時間。
該系統(tǒng)主要用于建筑工地、礦區(qū)、電廠等需要佩戴安全帽的危險工作區(qū)域,用戶為管理人員和普通用戶,需要對視頻進(jìn)行檢測并對未正確佩戴安全帽的人員進(jìn)行報警提示。為了保證及時發(fā)現(xiàn)異常,視頻分析和檢測速度越快越好,減少延遲,界面簡潔直觀,方便使用者操作。
通過軟件運行程序調(diào)用設(shè)備攝像頭,獲取實時視頻流,判斷是否有視頻流,若有則對視頻流中的每一張圖片進(jìn)行讀取識別,如發(fā)現(xiàn)有人未戴安全帽則發(fā)出報警,同時繼續(xù)獲取實時視頻流,若沒有檢測到視頻流,則系統(tǒng)退出檢測。圖1所示為檢測流程圖。
圖1 視頻流檢測流程圖Fig.1 Flow chart of video stream detection
為了訓(xùn)練出一個識別精度高且泛化能力強(qiáng)的模型,數(shù)據(jù)集的選擇和準(zhǔn)備尤為重要。在開始訓(xùn)練模型前,需要做許多數(shù)據(jù)準(zhǔn)備工作。數(shù)據(jù)獲取階段,數(shù)據(jù)集使用的是GitHub上的Safety-Helmet-Wearing-Dataset,總共有7 581張圖片。如圖2所示為某幀訓(xùn)練圖像。
圖2 數(shù)據(jù)集圖片F(xiàn)ig.2 Dataset image
將在GitHub上獲取的Safety-Helmet-Wearing-Dataset數(shù)據(jù)集的XML格式轉(zhuǎn)化為TXT格式,如圖3所示。將數(shù)據(jù)集劃分為三類,數(shù)量分別是訓(xùn)練集5 457張圖片、驗證集607張圖片和測試集1 517張圖片。
圖3 數(shù)據(jù)的放置格式Fig.3 Data placement format
為了提高模型訓(xùn)練效率,先加載預(yù)訓(xùn)練的權(quán)值進(jìn)行網(wǎng)絡(luò)訓(xùn)練。YOLOv5提供了幾種不同尺寸的預(yù)訓(xùn)練權(quán)重,可根據(jù)用戶的不同需求選擇不同版本的訓(xùn)練前權(quán)重。訓(xùn)練前模型的權(quán)值文件越大,訓(xùn)練精度越高,但是訓(xùn)練的時長相應(yīng)地也較長,所需的權(quán)值文件可以在GitHub上下載。該訓(xùn)練數(shù)據(jù)集中使用的預(yù)訓(xùn)練權(quán)重為yolov5s.pt。
采用Precision(找回率)作為實驗結(jié)果的評價標(biāo)準(zhǔn)之一,Precision定義為驗證集中被正確檢測到的目標(biāo)數(shù)量與總的目標(biāo)數(shù)量之比,Precision越高,則在一定程度上代表模型的性能越好。Precision(召回率)和recall(準(zhǔn)確率)是一個0~1的小數(shù)值,代表概率,越趨于0表示模型質(zhì)量越差,但它們都僅從一個角度來判斷模型的質(zhì)量。因此,在對模型進(jìn)一步評價時一般采用mAP(均值平均密度)。通常精度和召回值負(fù)相關(guān),從圖4可以看出,mAP趨于1,說明該模型的性能相對較好。
圖4 訓(xùn)練結(jié)果Fig.4 Training results
本算法著重于低成本終端上模型的存儲與計算,因此將模型大小和檢測速度作為模型評估標(biāo)準(zhǔn),用以驗證模型是否能夠滿足實時要求。實驗表明,檢測準(zhǔn)確率在95%以上,實時性也滿足要求。
本系統(tǒng)開發(fā)使用的是Windows11操作系統(tǒng),操作系統(tǒng)為64位,使用PC級的GPU- GeForce GTX 1650,使用PyTorch深度學(xué)習(xí)庫,圖形化界面應(yīng)用PyQt5編寫,系統(tǒng)開發(fā)使用PyCharm編譯器。
點擊視頻文件檢測,上傳待檢測的視頻,視頻檢測結(jié)果在軟件界面展示。圖5為視頻檢測結(jié)果演示,此時會框出每個檢測到的安全帽并顯示出置信度,當(dāng)檢測到有人未佩戴安全帽時則會發(fā)出聲音報警。
圖5 視頻文件檢測和攝像頭實時監(jiān)測Fig.5 Video file detection and real-time camera monitoring
建筑業(yè)的自動化、智能化水平不斷提升,但現(xiàn)有的安防措施相對滯后,無法滿足實時性的要求。企業(yè)對生產(chǎn)安全越來越重視,需采用智能化的方式解決此問題?;赮OLOv5設(shè)計了一套以安全帽檢測為核心功能的預(yù)警系統(tǒng),用以檢測作業(yè)人員是否佩戴安全帽,并根據(jù)檢測情況實時發(fā)出預(yù)警信息。實驗結(jié)果表明,系統(tǒng)檢測準(zhǔn)確率在95%以上,滿足了用戶需求,能夠在保持較高識別準(zhǔn)確率的同時占用較少的存儲空間,在測試時間上具有一定的優(yōu)勢,可滿足生產(chǎn)過程中實時檢測的需求并推廣到其他類似應(yīng)用場景。