呂宗寶, 徐英博, 謝子殿
(1.哈爾濱天源石化工程設(shè)計有限公司, 哈爾濱 150022; 2.黑龍江科技大學(xué) 電氣與控制工程學(xué)院, 哈爾濱 150022)
近年來,隨著智慧礦山的持續(xù)推進(jìn),煤炭生產(chǎn)中逐步應(yīng)用智能自動化設(shè)備及智能安全保障措施。煤礦電力場所作為核心區(qū)域需要人員每天定期進(jìn)行巡查與檢修。根據(jù)《煤礦安全規(guī)程》規(guī)定,高壓作業(yè)人員必須穿戴絕緣靴、安全帽和絕緣手套等才能進(jìn)入作業(yè)區(qū)域,以此來保障電力工人的作業(yè)安全。煤礦電力作業(yè)人員因未正確穿戴安全防護(hù)裝備而造成的安全事故時有發(fā)生,作業(yè)人員穿戴防護(hù)受人員思想意識影響,隨意性很大,很難用人工的方式實現(xiàn)實時監(jiān)督,因此采用人工智能方式,實時檢測作業(yè)人員是否穿戴絕緣靴、安全帽、絕緣手套等防護(hù)裝備尤為重要。
目前,基于深度學(xué)習(xí)的人員安全裝備檢測研究已經(jīng)有一定的進(jìn)展。趙凌駿等[1]采用Gamma校正技術(shù)對圖像進(jìn)行預(yù)處理,同時將K-means++算法融入YOLOv3提高了檢測精度。田有文等[2]將YOLOv4與人臉識別算法結(jié)合,在識別人員安全裝備的同時對員工信息進(jìn)行檢測。王征勇等[3]基于YOLOv4目標(biāo)檢測網(wǎng)絡(luò),結(jié)合人臉識別和行人重識別技術(shù)有效檢測出未佩戴安全帽的電力工人并識別身份。伏德粟等[4]改進(jìn)了YOLOv5網(wǎng)絡(luò)結(jié)構(gòu),采用加權(quán)雙向特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)代替原有的特征金字塔網(wǎng)絡(luò)結(jié)構(gòu),提高了網(wǎng)絡(luò)提取特征的能力。當(dāng)前,YOLOv5目標(biāo)檢測算法在電力工人安全設(shè)備檢測方面表現(xiàn)出了較高的準(zhǔn)確率。但從目前研究結(jié)果來看,電力工人安全裝備檢測的檢測效率還不能滿足煤礦實際應(yīng)用的需求。因此,筆者對輕量級的YOLOv5深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,降低網(wǎng)絡(luò)的計算成本,以提高網(wǎng)絡(luò)在嵌入式設(shè)備上的檢測速度。
YOLOv5[5]作為當(dāng)下使用最普遍的單階段目標(biāo)檢測算法[6],對比YOLOv4[7]有了較大的改動。YOLOv5共有四種網(wǎng)絡(luò)模型s、m、l和x。它們具有相同的配置文件,僅是層深度和寬度參數(shù)不同。YOLOv5s是其中最簡潔的網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv5s 網(wǎng)絡(luò)結(jié)構(gòu)
整體上可以分為Input、Backbone、Neck和Head四個部分。在輸入部分采用Mosaic數(shù)據(jù)增強(qiáng)方式,同時加入了自適應(yīng)錨框計算功能。輸出部分,選取GIOU Loss損失函數(shù),并采用加權(quán)NMS法過濾多余預(yù)測框。
網(wǎng)絡(luò)主干負(fù)責(zé)提取圖像特征,其中,增加的Focus結(jié)構(gòu),周期性地從高分辨率圖像中提取像素并重構(gòu)為低分辨率圖像,輸入通道擴(kuò)展四倍,三通道模式改為12通道。最后,對新圖像進(jìn)行卷積運(yùn)算,得到新的采樣特征圖像。該設(shè)計減少了計算量,提高了處理速度,頸部部分采用了FPN+PAN結(jié)構(gòu)加強(qiáng)了網(wǎng)絡(luò)的多尺度融合能力。
GhostNet[8]網(wǎng)絡(luò)是華為諾亞方舟實驗室于2020年推出的輕量型神經(jīng)網(wǎng)絡(luò),它可以保證高精度和卷積運(yùn)算的低成本,如圖2所示。 Ghost module生成特征圖像的過程分為兩步:第一步,通過卷積運(yùn)算獲得初始特征圖;第二步,通過對初始特征圖像進(jìn)行小波變換或恒等映射等線性變換,得到剩余的特征圖像[9]。
圖2 Ghost module結(jié)構(gòu)
GhostNet網(wǎng)絡(luò)的基本單元Ghost Bottleneck模塊由兩個Ghost module構(gòu)成:第一個Ghost module用于增加特征的通道數(shù)目;第二個Ghost module減少通道數(shù)目,使得當(dāng)Ghost特征連接到輸入特征時不會通道失配。
CSPNet式結(jié)構(gòu)[10]是YOLOv5成功的關(guān)鍵。它采用跨階段特征融合策略和梯度截斷流技術(shù),增強(qiáng)網(wǎng)絡(luò)各層學(xué)習(xí)特征的可異性,從而降低冗余梯度信息的影響,增強(qiáng)網(wǎng)絡(luò)的學(xué)習(xí)能力。CSPNet優(yōu)化了網(wǎng)絡(luò)檢測的準(zhǔn)確性,同時減少了計算量和內(nèi)存成本,因此,在改進(jìn)YOLOv5模型時,CSPNet架構(gòu)并沒有被刪除,而是應(yīng)用到了GhostNet網(wǎng)絡(luò)。
原GhostNet網(wǎng)絡(luò)采用MobileNetV3結(jié)構(gòu),使用這種結(jié)構(gòu)在YOLOv5中提取多尺度特征將增加模型計算量和參數(shù)量。即便使用輕量型網(wǎng)絡(luò),也無法實現(xiàn)最終的輕量級設(shè)計目標(biāo)。結(jié)合這兩點考慮,C3Ghost結(jié)構(gòu)應(yīng)用在YOLOv5中的設(shè)計,如圖3所示。其中,一半的特征信息由Ghost Bottleneck生成,其余通過卷積,正則化和激活函數(shù)生成[11]。對兩部分特征圖像進(jìn)行拼接,減少了大量梯度信息,同時最大化梯度組合的差異。
圖3 C3Ghost 結(jié)構(gòu)
圖4 CA注意力結(jié)構(gòu)
新加坡國立大學(xué)的Hou 等提出的注意力(Coordinate attention,CA)是一種針對輕量級網(wǎng)絡(luò)的高效注意力機(jī)制[12]。對通道注意力機(jī)制[13]進(jìn)行改進(jìn),將位置信息嵌入其中。同時,將通道分解為兩個方向不同的一維特征張量。一個捕獲沿空間方向的長程依賴,另一個保留沿空間方向的位置信息。
CA 注意力結(jié)構(gòu),如圖 4所示。整體可分為坐標(biāo)信息嵌入和坐標(biāo)注意力生成兩部分。其中,W和H分別表示特征圖的寬和高,C代表通道數(shù),r表示控制模塊大小的縮減率。
坐標(biāo)信息嵌入部分,對輸入X使用尺寸為(H,1)或(1,W) 的池化核,對每一個通道的垂直和水平方向的坐標(biāo)分別進(jìn)行編碼。對于第c個通道高度為h和寬度為w的輸出,其輸出表達(dá)式分別為
(1)
(2)
坐標(biāo)注意力生成部分是將坐標(biāo)信息嵌入產(chǎn)生的兩個特征圖拼接后進(jìn)行特征聯(lián)合,然后用一個共享 1×1 卷積對F1變換函數(shù)變換得到f,表達(dá)式為
f=δ(F1([zh,zw]))。
(3)
將f沿水平和垂直兩個方向分解成fh和fw單獨(dú)的張量,fh和fw再經(jīng)過兩個 1×1 卷積Fh和Fw變換為與輸入相同的通道數(shù),表達(dá)式為
gh=σ(Fh(fh)),
(4)
gw=σ(Fw(fw))。
(5)
經(jīng)過Sigmoid激活函數(shù)得到注意力權(quán)重gh和gw,再將輸入特征圖與gh和gw注意力權(quán)重相乘,最終得到CA模塊的特征圖輸出,表達(dá)式為
(6)
在 YOLOv5的Backbone網(wǎng)絡(luò)提取特征的尾部添加CA注意力模塊,增強(qiáng)主干網(wǎng)絡(luò)捕獲特征圖信息能力。同時將原YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)中的卷積全部替換為GhostConv, C3結(jié)構(gòu)替換成C3Ghost模塊,從而有效減少模型大小,提升計算速度。網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示。
圖5 改進(jìn)后YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)
在數(shù)據(jù)集制作方面,由于沒有公開的煤礦電力工作人員穿戴數(shù)據(jù)集,因此,文中制作了一個小型數(shù)據(jù)集,主要包括在鶴崗峻德煤礦、振興煤礦、興安煤礦采集到的煤礦電力工作人員實際工作時佩戴安全帽、絕緣手套和絕緣靴的工作照片,如圖6所示。然后通過數(shù)據(jù)清洗、圖片增強(qiáng)(模糊、旋轉(zhuǎn)、明暗度調(diào)整、添加噪聲)等方式,最終得到了7 900張照片。將這些圖片劃分訓(xùn)練集和測試集,80%作為訓(xùn)練集,20%作為測試集。
圖6 數(shù)據(jù)集照片
該實驗在操作系統(tǒng)為ubuntu20.4, GPU處理器為Tesla T4×4,CPU 處理器為Intel(R) Xeon(R) Gold 6226R CPU @2.90GHz×64,內(nèi)存187.6 GB,運(yùn)行環(huán)境為Anaconda3,編譯環(huán)境為Python3.9的服務(wù)器上進(jìn)行訓(xùn)練與測試。
模型性能評價指標(biāo)采用準(zhǔn)確率(P)、召回率(R)、平均精度(αmAP)、檢測速度和模型大小來衡量。準(zhǔn)確率是模型預(yù)測目標(biāo)正確的比例,召回率是模型正確預(yù)測的所有真實目標(biāo)的比例,平均精度是所有類別預(yù)測精準(zhǔn)度的平均值。
檢測模型推理速度常用兩種評價方法:一種是通過每秒檢測幀的數(shù)量,單位 FPS;一種是通過檢測單張圖片所需時間來評價檢測速度,單位 ms。模型的空間復(fù)雜度常用參數(shù)量β來衡量,它表示模型參數(shù)量總和,單位為 M。
相關(guān)計算公式為
(7)
(8)
式中:FP——檢測模型誤檢的樣本數(shù)量;
TP——檢測模型檢測正確的樣本數(shù)量;
FN——沒有檢測到真實標(biāo)簽即漏檢的樣本數(shù)量。
(9)
(10)
式中:AP——P-R曲線下的面積計算值;
αmAP——所有類別的平均精度AP的均值;
N——類別數(shù)量。
訓(xùn)練過程中設(shè)置初始學(xué)習(xí)率為 0.001,選用余弦退火衰減法讓學(xué)習(xí)率進(jìn)行下降,采用SGD優(yōu)化器,EPOCH 設(shè)置為 70,根據(jù)顯存大小, Batch Size 設(shè)置為 64。實驗結(jié)果如表1和2所示。YOLOv5改進(jìn)前后網(wǎng)絡(luò)預(yù)測結(jié)果,如圖7所示。
表1 網(wǎng)絡(luò)訓(xùn)練 70 個 EPOCH 后性能對比
表2 改進(jìn)前后檢測的每一類性能對比
圖7 YOLOv5改進(jìn)前后網(wǎng)絡(luò)預(yù)測結(jié)果
從表1可知,引入C3Ghost模塊后網(wǎng)絡(luò)的模型減小到僅有3.6 M,推理的速度tv達(dá)到3.1 ms,但準(zhǔn)確率、召回率、平均精度均下降。在引入各種注意力模塊后準(zhǔn)確率、召回率、平均精度均有所增長,但文中所加CA注意力模塊效果是最好的。改進(jìn)后的 YOLOv5 對比原有網(wǎng)絡(luò)結(jié)構(gòu)準(zhǔn)確率由0.938提升至0.955,提升了1.7%,召回率由0.912提升到了0.926,提升了1.4%, 由0.952提升到了0.962,提升了1%,推理速度提高了27%,同時,模型參數(shù)量由7.2 M減少到4.3 M 壓縮了40%。
由表 2可知,絕緣靴的識別精度提升了2.4%,效果最好;絕緣手套的識別精度提升了2.3%;作業(yè)區(qū)人員與安全帽的識別精度分別提升了0.9%和1.6%。召回率方面,改進(jìn)后算法對于絕緣靴和絕緣手套分別提升了0.5%和1.3%,但作業(yè)區(qū)人員降低了0.3%,安全帽檢測的召回率保持不變。改進(jìn)后比改進(jìn)前絕緣靴、絕緣手套、作業(yè)區(qū)人員和安全帽分別提高了0.7%、0.7%、0.1%、0.3%??傮w來看,改進(jìn)后的算法提高了整體識別檢測效果。
由圖7可知,原YOLOv5網(wǎng)絡(luò)在檢測過程中由于被測物體受到遮擋、位置、距離等因素的影響對于絕緣手套出現(xiàn)了漏檢的情況,而改進(jìn)后的模型由于添加了C3Ghost模塊以及CA注意力模塊,加強(qiáng)了對小目標(biāo)的檢測能力,成功檢測出絕緣手套,降低了漏檢率,同時又提升了各類安全裝備的檢測精度。
文中使用 NIVDIA Jetson Nano 深度學(xué)習(xí)終端設(shè)備來部署和測試網(wǎng)絡(luò)模型。Jetson Nano 是由英偉達(dá)公司推出的一塊用于深度學(xué)習(xí)或者計算機(jī)視覺的開發(fā)板,它搭載了I7-10750H處理器,128核的NVIDIA Max Well GPU,4GB的64位LPDDR4內(nèi)存,運(yùn)行在Ubuntu 18.04操作系統(tǒng)下,算力可達(dá)到472 GFLOPS ,而功耗只有5~10 W。
在深度學(xué)習(xí)主機(jī)上將訓(xùn)練好的改進(jìn)YOLOv5模型傳入Jetson Nano開發(fā)板,對相應(yīng)的YOLOv5模型文件進(jìn)行優(yōu)化并編譯,完成后進(jìn)行模型轉(zhuǎn)換,轉(zhuǎn)換的過程為Pytorch格式(Pt),開放神經(jīng)網(wǎng)絡(luò)交換模式(Onnx),TensorRT格式(TRT)。對改進(jìn)前后的YOLOv5模型進(jìn)行測試,結(jié)果顯示,改進(jìn)前的模型在Pt格式下以8幀每秒(FPS)的速度運(yùn)行,而在TRT格式下提高到14 FPS;改進(jìn)后的模型在Pt格式下達(dá)到15 FPS,而在TRT格式下提高到26 FPS。這表明,TensorRT 進(jìn)一步加快了推理過程。對比人眼舒適放松狀態(tài)下可視幀數(shù)為 24 FPS,已基本實現(xiàn)了實時流暢,可以滿足實時性要求。
(1) 將原YOLOv5網(wǎng)絡(luò)中的卷積替換為Ghost卷積,同時構(gòu)造C3Ghost模塊替換原有的CSP結(jié)構(gòu),并在骨干網(wǎng)絡(luò)尾部加入CA注意力模塊,大幅減小模型參數(shù),降低計算成本,同時增強(qiáng)了模型特征提取能力和檢測能力。
(2) 采用自建煤礦電力人員作業(yè)安全裝備數(shù)據(jù)集訓(xùn)練后,對比原網(wǎng)絡(luò)準(zhǔn)確率提高了1.7%,召回率提高了1.4%,平均精度提升1%,模型縮小40%。大大縮減了模型的大小,從而提高了網(wǎng)絡(luò)的檢測速度。成功將訓(xùn)練好的輕量化模型部署到NVIDIA Jetson Nano開發(fā)板上,經(jīng)過實驗測試,模型可滿足實時性要求。