張夫凈,王宏偉,王浩然,李正龍,王宇衡
(1.太原理工大學(xué) 礦業(yè)工程學(xué)院,山西 太原 030024;2.太原理工大學(xué) 山西省煤礦智能裝備工程研究中心,山西 太原 030024;3.太原理工大學(xué) 機械與運載工程學(xué)院,山西 太原 030024;4.山西焦煤集團有限責任公司 博士后工作站,山西 太原 030024;5.太原理工大學(xué) 安全與應(yīng)急管理工程學(xué)院,山西 晉中 030600)
目前我國煤礦大多采用井工開采[1],需要挖掘大量巷道,為了保持巷道圍巖的穩(wěn)定性,防止冒頂和片幫事故的發(fā)生,需要對這些巷道進行支護[2]?,F(xiàn)有掘進巷道支護包括錨桿支護、錨索支護、錨噴支護等,其中,錨桿支護的支護效果較好[3]。煤礦井下常用錨桿鉆機進行錨桿支護作業(yè),但隨著井下掘進工作面“少人則安,無人更安”[4-5]概念的提出,普通的錨桿鉆機已不能滿足錨護智能化需求,因此,對錨桿鉆機進行智能化改造研究迫在眉睫。
許多學(xué)者對錨桿鉆機機械結(jié)構(gòu)[6-9]和錨桿鉆機自動化控制[10-11]進行了研究,雖然優(yōu)化機械結(jié)構(gòu)、對錨桿鉆機進行遠程控制改造可提高工作效率、實現(xiàn)工作面少人化,但只實現(xiàn)了錨桿鉆機初步智能化,鉆錨位置的確定仍需人工完成,無法實現(xiàn)鉆錨作業(yè)全自動化。鉆錨位置(即利用鉆桿打孔并擰入錨桿的位置)的自動識別與定位是提高錨桿鉆機智能化程度的關(guān)鍵技術(shù)。頂板條件不同時,鉆錨位置有所不同,在頂板條件較差的巷道需要使用鋼帶輔助錨桿進行支護,此時鉆錨位置的確定就是對支護鋼帶上錨孔的準確識別與定位,若定位不準,鉆頭打在鋼帶或錨網(wǎng)上容易造成設(shè)備損壞,嚴重時會造成安全事故,所以對支護鋼帶上錨孔的精準識別與定位非常重要。
針對上述問題,本文提出了一種基于改進YOLOv5s 模型的煤礦巷道支護鋼帶錨孔智能識別與定位方法,采用改進YOLOv5s 模型的目標檢測方法識別煤礦井下錨孔,結(jié)合雙目攝像頭獲得錨孔相對于相機的三維坐標。首先通過超分辨率重構(gòu)(Super Resolution,SR)技術(shù)對錨孔圖像進行重構(gòu),提升圖像分辨率。然后,在YOLOv5s 的Backbone 區(qū)域嵌入坐標注意力(Coordinate Attention,CA)模塊,再利用嵌入CA 模塊的YOLOv5s 網(wǎng)絡(luò)訓(xùn)練重構(gòu)后的錨孔數(shù)據(jù)集,得到改進后的YOLOv5s 模型,將改進后的模型應(yīng)用于支護鋼帶錨孔識別。最后,利用改進后的YOLOv5s 模型結(jié)合雙目攝像頭對錨孔進行實時識別與定位。
錨孔智能識別與定位流程如圖1 所示。首先,通過網(wǎng)絡(luò)公開的DIV2K 數(shù)據(jù)集訓(xùn)練用于圖像SR 的生成對抗網(wǎng)絡(luò)(Super Resolution Generative Adversarial Network,SRGAN)[12],得到SRGAN 模型,將原始錨孔數(shù)據(jù)集輸入SRGAN 模型對錨孔圖像進行SR。然后,在YOLOv5s 模型的Backbone 區(qū)域中加入CA 模塊,得到CA-YOLOv5s 模型,利用重構(gòu)后的錨孔數(shù)據(jù)集訓(xùn)練CA-YOLOv5s 模型得到SR-CA-YOLOv5s 模型。最后,在實驗室模擬巷道中,利用SR-CA-YOLOv5s模型對鋼帶錨孔圖像進行識別,利用雙目攝像頭獲取錨孔中心到攝像頭的深度值,通過坐標轉(zhuǎn)換公式得到錨孔相對于攝像頭的三維坐標。
圖1 錨孔智能識別與定位流程Fig.1 Process of intelligent identification and positioning of anchor hole
1.2.1 SR 模型融入設(shè)計
圖像SR 是將低分辨率(Low-Resolution,LR)圖像恢復(fù)成高分辨率(High-Resolution,HR)圖像的過程[13]。
由于井下掘進巷道中有粉塵和水霧等,會造成錨孔圖像質(zhì)量、分辨率不高,因此引入SR 技術(shù)提升錨孔圖像清晰度,防止因圖像模糊而丟失圖像中錨孔邊緣高頻信息。SRGAN 模型由生成器模型和判別器模型組成。生成器模型主要用來進行特征提取,并將輸入的LR 圖像輸出為HR 圖像;判別器模型用來判斷高清圖像是不是生成器創(chuàng)造出來的[14]。
利用峰值信噪比(Peak Signal to Noise Ratio,PSNR)、結(jié)構(gòu)相似性(Structural Similarity Index,SSIM)和單張圖像重構(gòu)時間評價SRGAN 模型重構(gòu)效果,測試結(jié)果見表1,當30<RNSR<40 時,說明圖像質(zhì)量較好,SSIM 的取值為[0,1],值越大說明圖像失真程度越小。從表1 可看出,SRGAN 模型有很好的重構(gòu)效果,能夠有效提高錨孔圖像分辨率且避免錨孔圖像因SR 而失真。
表1 測試結(jié)果Table 1 Test results
1.2.2 CA 模塊融合設(shè)計
由于錨孔較小且攝像頭距錨孔有一定距離,導(dǎo)致錨孔在圖像中所占像素少,且錨孔圖像易受復(fù)雜環(huán)境等因素影響,在卷積神經(jīng)網(wǎng)絡(luò)中易出現(xiàn)較小錨孔的特征信息丟失現(xiàn)象,影響錨孔檢測效果。CA 模塊是將目標位置信息加入通道注意力中使卷積神經(jīng)網(wǎng)絡(luò)可以在更大區(qū)域上關(guān)注目標特征。CA 模塊在全局池化時分別沿水平方向和豎直方向的坐標對每個通道進行特征編碼操作,這有助于網(wǎng)絡(luò)更加準確定位被檢測目標。為此引入CA 模塊,將其加入YOLOv5s 模型Backbone 區(qū)域的CSP 模塊的后面,增加YOLOv5s 網(wǎng)絡(luò)中特征提取網(wǎng)絡(luò)的網(wǎng)絡(luò)層數(shù),將目標物體的坐標信息融入到卷積網(wǎng)絡(luò)中,可有效提取錨孔小目標特征信息,從而提高錨孔檢測成功率。
本文實驗訓(xùn)練模型使用的硬件環(huán)境為Intel(R)Xeon(R)Silver 4210R CPU@2.04GHz 處理器,顯卡為Tesla v100-PCIE。軟件環(huán)境為Ubuntu 18.04LTS操作系統(tǒng)下Pytorch1.8.0 深度學(xué)習(xí)框架和CUDA10.2并行計算架構(gòu)。采用隨機梯度下降(Stochastic Gradient Descent,SGD)作為優(yōu)化器來優(yōu)化網(wǎng)絡(luò)參數(shù),設(shè)SGD 值為0.01,動量因子為0.937,優(yōu)化器權(quán)重衰減為0.000 5,批尺寸為32,迭代次數(shù)為300。
為增加實驗結(jié)論的可靠性,搭建模擬巷道,模仿煤礦井下復(fù)雜、照度低的環(huán)境,選用白色環(huán)形光源進行實驗環(huán)境的光照補充。為提高模型泛化能力,避免網(wǎng)絡(luò)過擬合,通過旋轉(zhuǎn)、隨機裁剪、閾值化等圖像處理方法對在模擬巷道中采集的1 600 張錨孔圖像進行數(shù)據(jù)增強,擴充數(shù)據(jù)集,擴充后數(shù)據(jù)集圖像共3 200 張。采用SRGAN 模型對自制的錨孔數(shù)據(jù)集進行SR,使用labelImg 對重構(gòu)后的數(shù)據(jù)集進行標注,按8∶2 劃分訓(xùn)練集和測試集。
采用精確率、召回率和平均精度均值(mean Average Precision,mAP)作為模型精度的評價指標,衡量模型的檢測能力和實際應(yīng)用能力,YOLOv5s 模型與本文提出的模型對比見表2。其中精確率是用來反映模型分類能力的指標,召回率是用來反映模型對目標的檢測能力,mAP 是評價網(wǎng)絡(luò)檢測精度的常用指標,能更準確反映網(wǎng)絡(luò)的檢測效果。
表2 YOLOv5s 模型與SR-CA-YOLOv5s 模型對比結(jié)果Table 2 Comparison results of the YOLOv5s model and the SR-CA-YOLOv5s model %
式中:P為精確率;NTp為正確識別到錨孔的數(shù)量;NFp為將其他物體識別為錨孔的數(shù)量;R為召回率;NFN為未成功識別到錨孔的數(shù)量;M為平均精度均值;Q為各分類的平均精度;n為目標分類數(shù)。
由表2 可看出,SR-CA-YOLOv5s 模型的精確率、召回率、mAP 分別為96.6%,97.0%,96.8%,與YOLOv5s 模型相比,精確率、召回率、mAP 分別提高了2.7%,4.2%,3.1%。
為驗證本文改進YOLOv5s 模型的檢測效果,在YOLOv5s 模型基礎(chǔ)上進行不同改進來進行消融實驗,結(jié)果見表3,其中FPS 為每秒填充圖像的幀數(shù)??煽闯鯯R-YOLOv5s 模型的mAP 較YOLOv5s 模型提高了0.8%,但是FPS 降低了66.2 幀/s,說明錨孔圖像經(jīng)過SR 之后能變得清晰,使錨孔特征明顯,且錨孔在圖像中的像素占比變大,模型訓(xùn)練時能提取到更多的錨孔特征,從而提高檢測精度,但是檢測速度有輕微下降;CA-YOLOv5s 模型的mAP 較YOLOv5s模型提高了1.8%,但是FPS 降低了15.7 幀/s,說明在YOLOv5s 的Backbone 區(qū)域添加CA 機制后,模型訓(xùn)練時更加關(guān)注目標特征,減少了特征提取網(wǎng)絡(luò)卷積操作時目標特征的丟失,從而提升了模型訓(xùn)練效果;SR-CA-YOLOv5s 模型的mAP 較YOLOv5s 模型提高了3.1%,盡管FPS 降低了18.5 幀/s,但是FPS 依然達166.7 幀/s,說明利用添加CA 模塊的YOLOv5s 網(wǎng)絡(luò)訓(xùn)練經(jīng)過SR 后的數(shù)據(jù)集能在不影響檢測實時性前提下進一步提升了檢測精度。
為驗證SR-CA-YOLOv5s 模型的檢測效果,利用YOLOv5s 和SR-CA-YOLOv5s 模型對部分錨孔圖像進行對比檢測實驗,結(jié)果如圖2 所示??煽闯鯵OLOv5s 模型沒有成功檢測出錨孔,而SR-CAYOLOv5s 模型能成功檢測出錨孔,這是因為在YOLOv5s 網(wǎng)絡(luò)中融入SR 和CA 模塊增強了目標物體在圖像中所占的像素比,提高了圖像清晰度,且增大了模型訓(xùn)練時對錨孔特征的關(guān)注度,在一定程度上可避免由于圖像模糊而出現(xiàn)漏檢的問題。
圖2 各模型檢測結(jié)果對比Fig.2 Comparison of test results of each model
為驗證SR-CA-YOLOv5s 模型的實際應(yīng)用效果,將其部署到NVIDIA Jetson Xavier NX 邊緣計算設(shè)備上進行驗證。將訓(xùn)練的SR-CA-YOLOv5s 模型部署到平臺后,將其放入錨桿鉆機控制箱,結(jié)合雙目攝像頭對鋼帶錨孔進行識別與定位。由于錨孔處于巷道頂端的鋼帶上,錨孔目標較小且位置特殊,另外由于錨桿鉆機機械臂運動時錨桿鉆機機身固定不動,采用Eye-in-Hand 的手眼構(gòu)型方式將攝像頭和光源固定在錨桿鉆機機械臂上。為了模仿煤礦井下真實環(huán)境,在模擬巷道中噴灑水霧,測試在不同光照條件下利用雙目攝像頭檢測錨孔的實際情況,實驗硬 件部署如圖3 所示。
圖3 實驗裝配Fig.3 Experimental assembly
首先利用C#在WPF 框架下制作錨桿鉆機遠程控制界面,利用界面遠程控制錨桿鉆機機械臂運動到錨孔附近,即對機械臂進行粗定位。當支護鋼帶上的錨孔出現(xiàn)在攝像頭視場內(nèi)時,利用SR-CAYOLOv5s 模型對錨孔進行智能識別,當成功檢測出錨孔后,利用雙目攝像頭獲取錨孔中心到攝像頭的深度值,然后通過坐標轉(zhuǎn)換得出錨孔相對攝像頭的三維坐標,測試結(jié)果見表4??煽闯鯯R-CA-YOLOv5s模型能夠在不同光照條件下準確檢測出錨孔并獲得錨孔相對于攝像頭的三維坐標,坐標誤差在6 mm 以內(nèi),且檢測FPS 滿足實時性要求。
表4 錨孔識別與定位結(jié)果Table 4 Anchor hole identification and positioning results
(1)在YOLOv5s 模型的Backbone 區(qū)域加入CA 模塊,解決了小目標在卷積時特征丟失導(dǎo)致特征提取不充分的問題,再結(jié)合圖像SR 技術(shù)提高復(fù)雜環(huán)境下對于錨孔小目標的檢測精度。
(2)相較于YOLOv5s 模型,改進YOLOv5s 模型mAP 提高了3.1%,有更好的檢測能力,在一定程度上避免了漏檢,雖然FPS 降低了18.5 幀/s,但FPS 仍保持在166.7 幀/s,并不影響模型的實時檢測功能。
(3)將改進YOLOv5s 模型部署到邊緣計算設(shè)備后能夠準確識別出錨孔且獲得錨孔相對于相機的三維坐標,且平均檢測幀率滿足實時檢測要求。