郭普特 鄭 斌 黃 敏 蘇 潔 李鋮杰 韋天健 劉 宇
(長沙理工大學(xué)計算機與通信工程學(xué)院,湖南 長沙 410114)
建筑業(yè)是國民經(jīng)濟的重要物質(zhì)生產(chǎn)行業(yè),它與整個國家的經(jīng)濟發(fā)展和人民的生活質(zhì)量息息相關(guān),但近幾年來,建筑行業(yè)的安全事故一直呈現(xiàn)上升趨勢,究其原因,對安全帽的忽視是很重要的一個因素。正確佩戴安全帽能夠在一定程度上避免事故的發(fā)生,然而,工人不戴安全帽的不安全行為時有發(fā)生,主要原因是安全帽智能檢測系統(tǒng)市場的空缺,依靠安全管理人員監(jiān)控來提醒工人佩戴安全帽,不光監(jiān)控時效性差、監(jiān)控范圍具有局限性以及無法全程監(jiān)控等,還會導(dǎo)致人力成本的增加。
考慮到檢測現(xiàn)場作業(yè)人員安全帽佩戴情況的任務(wù)對實時性要求很高,團隊首先考慮了實時性強且準確度也可靠的YOLO系列模型。其中,YOLOX是該系列中性能最強大的模型版本,但YOLOX、YOLOv4和YOLOv5模型對邊緣設(shè)備的架構(gòu)不具有廣泛的兼容性,考慮到這一點,本文研究采用工業(yè)制造最常用的 YOLOv3[7-9]檢測模型來實現(xiàn)檢測任務(wù)。YOLOv3(You Only Look Once V3)模型作為端到端目標檢測模型的代表,不僅具有良好的實時性,同時具有較高的準確性。本文基于YOLOv3模型設(shè)計了安全帽檢測算法,并通過PyQt5創(chuàng)建了可視化界面,實現(xiàn)了跨平臺功能的同時方便了遠程終端的智能監(jiān)控,測試過程中視頻檢測的FPS基本保持在20以上,mAP達到86.7%(數(shù)據(jù)集由本團隊制作,測試集共1518張圖片,測試設(shè)備為Nvidia AGX Xavier)
基于深度學(xué)習(xí)安全帽智能識別系統(tǒng)可分為兩個子系統(tǒng),分別為以目標檢測算法為主體的安全帽識別系統(tǒng)和以用戶操作為主體的智能終端交互系統(tǒng)。系統(tǒng)框架如圖1 所示。
圖1 系統(tǒng)整體架構(gòu)圖
在檢測過程中,性能的開銷主要來源于神經(jīng)網(wǎng)絡(luò)對特征圖的卷積等操作和網(wǎng)絡(luò)中各層參數(shù)在存儲系統(tǒng)中頻繁的調(diào)度。本系統(tǒng)所采用的YOLOv3模型本身具有較好的并行性,但由于其運行時存儲的圖像數(shù)據(jù)和模型參數(shù)會占用較大的存儲空間,所以過小的運行內(nèi)存將會導(dǎo)致其檢測性能下降,因此需要使用擁有更大內(nèi)存空間的運算平臺來支撐本系統(tǒng)的正常運行,本系統(tǒng)使用Nvidia AGX Xavier作為計算平臺。
本系統(tǒng)設(shè)計的另一個目標為跨平臺運行,為實現(xiàn)該運行效果,上位機系統(tǒng)開發(fā)階段要求所有功能均使用PyQt5框架提供的庫函數(shù)以保證系統(tǒng)的兼容性。本系統(tǒng)采用的PyQt版本為5.13.0。
YOLO3模型的網(wǎng)絡(luò)結(jié)構(gòu)如圖 2 所示,主要由三部分組成,分別是特征提取網(wǎng)絡(luò)、特征增強結(jié)構(gòu)和目標檢測層。模型檢測的過程中,首先將攝像頭捕獲的圖像信息送入特征提取網(wǎng)絡(luò)Darknet-53進行特征提取,該骨干網(wǎng)絡(luò)通過一系列的下采樣操作來提取圖像中不同層級的特征信息,其中殘差結(jié)構(gòu)通過將殘差塊的主干網(wǎng)絡(luò)處理后的特征圖和原始特征圖進行疊加來抑制反向傳播時梯度消失的發(fā)生,該結(jié)構(gòu)使得深層網(wǎng)絡(luò)在進行訓(xùn)練的時候也能穩(wěn)定地收斂。其次,在特征增強網(wǎng)絡(luò)中采用類FPN結(jié)構(gòu)(特征金字塔結(jié)構(gòu)),即連續(xù)地將Darknet-53骨干網(wǎng)絡(luò)中間層特征圖和后一層特征圖的上采樣結(jié)果進行拼接,以融合不同層級特征圖中的語義信息。最后,得到 13×13、26×26、52×52 三種不同尺寸的特征圖輸出,以適用于圖像中不同大小的安全帽目標檢測。
圖2 YOLOv3模型結(jié)構(gòu)圖[10]
傳統(tǒng)的NMS(非極大值抑制)算法有一定的缺陷,如當兩個物體在圖像中距離較近時,NMS算法會將得分較低的檢測框直接刪除,最后可能導(dǎo)致漏檢的情況。針對該問題,本文采用Bodla等[11]提出的Soft-NMS算法,該算法的核心是“合理降低重疊預(yù)測框的置信度”,如果圖像中同一個物體有多個重疊的預(yù)測框,此時通過排序算法選出得分最高的預(yù)測框,再計算其他預(yù)測框和得分最高預(yù)測框的IoU值,值越大則該預(yù)測框置信度被降低得越多,經(jīng)過一輪操作后即可濾除重復(fù)的預(yù)測框,而保留正確的預(yù)測框。傳統(tǒng)NMS算法和Soft-NMS算法處理效果對比如圖3中(a)、(b)所示。
圖3 Soft NMS優(yōu)化對比圖
對于卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,數(shù)據(jù)集中圖像的數(shù)量和質(zhì)量會直接影響模型最終的檢測性能。模型訓(xùn)練的數(shù)據(jù)集由團隊在實地中拍攝采集而來,對已有的訓(xùn)練圖像數(shù)據(jù)做圖像增強等預(yù)處理,能夠在一定程度上優(yōu)化訓(xùn)練的質(zhì)量,本文從以下兩個方面來完成圖像增強的操作:
(1)受到張等[12]提出的視覺相干圖像混合算法的啟發(fā),應(yīng)用Mixup算法防止特征增強過程中檢測目標發(fā)生畸變。采取保留圖像幾何特征的方式進行混合,可以成功減輕網(wǎng)絡(luò)中由于批量數(shù)據(jù)的變換所帶來的擾動,同時提升對復(fù)雜圖像的檢測能力。
11號礦體:該礦體的構(gòu)成為一套礦條和平行的扁豆體,在5~8線展布,總長為2 500 m,厚度為16.4~108.4 m,平均為42.7 m,走向呈北北東方向,傾向南東,傾角為80°~85°。
(2)同時結(jié)合傳統(tǒng)的數(shù)據(jù)預(yù)處理方式,包括隨機的顏色抖動、隨機翻轉(zhuǎn)、旋轉(zhuǎn)和裁剪圖像,以提高泛化精度并避免過度擬合。
IoU是一種度量在特定數(shù)據(jù)集中檢測相應(yīng)物體準確度的一個標準。但IoU作為度量和損失函數(shù)時存在以下問題:
(1)若圖像中兩個對象不重疊,IoU值將為零,則不能反映兩個對象之間的距離,在該情況下如果使用IoU作為損失函數(shù)的參考值,則梯度將為零,將無法對模型進行優(yōu)化。
(2)IoU不能正確地區(qū)分兩個目標之間不同的對齊形式,更確切地說,不同方向上有相同交叉級別的兩個重疊對象的IoU會完全相同。
針對存在的問題,本文采用了GIoU[13]的方法來計算損失,即首先計算兩個框的最小閉包區(qū)域的面積,同時計算出 IoU,再計算閉包區(qū)域中不屬于兩個框的區(qū)域占閉包區(qū)域的比重,最后用IoU減去這個比重得到GIoU,如公式(1)所示:
基于深度學(xué)習(xí)的目標檢測模型的訓(xùn)練步驟如下:
使用Python3.6.9+Pytorch1.7.0+CUDA10.2 搭建模型運行平臺,通過遷移學(xué)習(xí)算法加載已經(jīng)ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練好的模型參數(shù),提高下游任務(wù)的學(xué)習(xí)效率。
實地采集圖像數(shù)據(jù),使用Labelimg工具給圖像數(shù)據(jù)打上標簽,制作成模型訓(xùn)練、測試數(shù)據(jù)集。
使用圖像增強算法對訓(xùn)練數(shù)據(jù)集進行擴充。
將數(shù)據(jù)集接入模型,使用NAdam優(yōu)化器來實現(xiàn)對模型的優(yōu)化,同時采取余弦退火算法對學(xué)習(xí)率進行一個動態(tài)調(diào)節(jié)。
根據(jù)全插值方法把數(shù)據(jù)準確率與召回率構(gòu)成的p-r曲線的函數(shù)進行求積分操作以獲得AP,通過求出所有類別物體(未佩戴安全帽的工人和已佩戴安全帽的工人)的平均AP獲得mAP的值。
將訓(xùn)練好的模型參數(shù)導(dǎo)入網(wǎng)絡(luò)中,構(gòu)建成系統(tǒng)中的目標檢測模型。
通過以上步驟訓(xùn)練得到的模型即可實現(xiàn)視頻圖像中安全帽的實時檢測。
圖像顯示模塊的主要作用是將神經(jīng)網(wǎng)絡(luò)處理后的檢測結(jié)果信息顯示在GUI界面上,上位機顯示效果如圖4所示。
圖4 界面布局設(shè)計
團隊使用PyQt5 平臺中的QGraphicsView作為顯示圖像的控件,方便讀取 QImage 中的內(nèi)容并進行顯示。
PyQt5為開發(fā)者提供了QVBoxLayout、QHBoxLayout、QGridLayout等基本布局管理類[14],這些基本布局管理類可以通過相互嵌套來實現(xiàn)自適應(yīng)窗口大小的功能,本系統(tǒng)采用了QVBoxLayout和QHBoxLayout的嵌套來實現(xiàn)該功能,為用戶設(shè)計了“打開文件”“開始/暫?!薄按蜷_攝像頭/退出系統(tǒng)”的功能按鍵,實現(xiàn)了對本地視頻文件的讀入、對工地現(xiàn)場攝像頭進行操作等智能化功能。
PyQt5中的QImage提供了文件讀取、存儲的功能,同時提供了編輯圖像單個像素點的接口,使得開發(fā)程序得到了簡化。QImage支持讀取和保存圖片的數(shù)據(jù)格式包括JPG、JPEG、PNG、BMP等。
本文在Nvidia AGX Xavier平臺上針對1518張測試數(shù)據(jù)集進行了測試,其中包括了對密集人群檢測效果和遠距離安全帽檢測效果的測試,測試效果如圖5(a)、(b)所示。
圖5 檢測效果圖
從檢測結(jié)果來看,系統(tǒng)的核心功能達到了團隊的預(yù)期目標,系統(tǒng)實時檢測的效率較高,對密集人群和遠距離安全帽的檢測效果達到了理想的效果,其他正常環(huán)境下出現(xiàn)誤測的情況較少。同時對是否佩戴安全帽的工人采用了兩種不同顏色的檢測框來區(qū)分(白色為沒有佩戴安全帽,綠色為正確佩戴安全帽),為監(jiān)控人員了解施工人員的安全帽佩戴情況提供了良好的參考依據(jù)。
本文采用改進后的YOLOv3模型實現(xiàn)了對安全帽的實時準確檢測,并基于PyQt5開源框架開發(fā)了用于展示檢測結(jié)果的跨平臺遠程終端智能交互界面,最終實現(xiàn)的智能檢測系統(tǒng)填補了建筑行業(yè)安全帽智能識別系統(tǒng)的空缺,給現(xiàn)場作業(yè)人員的安全帶來了有效的保障。但是該系統(tǒng)依然存在一些缺陷,比如檢測效果受到光照條件影響較大、系統(tǒng)對運行平臺的算力要求較高等問題,在今后的研究中,團隊將針對這些問題繼續(xù)對檢測模型進行優(yōu)化改進。