任國強, 韓洪勇, 李成江, 尹燕芳
(山東科技大學(xué) 電氣信息系, 山東 濟(jì)南 250031)
在煤礦膠帶運輸煤流過程中,可能有釬子、錨桿、木條、矸石、鐵塊等異物摻雜在煤塊中,易造成膠帶損壞甚至撕裂,不僅加大生產(chǎn)成本,還會引發(fā)安全事故,因此實現(xiàn)膠帶運輸異物檢測具有重要意義。傳統(tǒng)的膠帶運輸異物檢測方法主要有人工檢測法、金屬探測器檢測法、雷達(dá)檢測法等[1-2]。人工檢測法效率較低,且在處理膠帶上的異物時存在安全隱患。金屬探測器檢測法只能檢測釬子、錨桿、鋼板、鐵塊等金屬異物,檢測類型不全面。雷達(dá)檢測法成本較高,難以推廣應(yīng)用?;趫D像處理技術(shù)的膠帶運輸異物檢測法通過攝像頭采集膠帶運輸圖像,實時檢測膠帶上是否存在異物,可檢測種類多,且精度較高。目前基于圖像處理的煤礦膠帶運輸異物檢測大多采用Faster R-CNN(Region-based ConvolutionalNeural Network,候選區(qū)域卷積神經(jīng)網(wǎng)絡(luò))算法,如郜振國[1]對視頻采集進(jìn)行防抖動處理后,采用Faster R-CNN算法對多攝像頭采集的膠帶運輸圖像進(jìn)行異物檢測;呂志強[3]采用中值濾波算法對井下圖像進(jìn)行去噪處理,采用自適應(yīng)直方圖均衡化算法進(jìn)行圖像增強,構(gòu)建Faster R-CNN網(wǎng)絡(luò)進(jìn)行異物檢測。Faster R-CNN算法檢測精度較高,但檢測速度較慢,無法滿足煤礦膠帶運輸異物實時檢測需求。
本文基于YOLOv3算法,對其先驗框、邊界框、損失函數(shù)等進(jìn)行改進(jìn),設(shè)計了Fast_YOLOv3算法,并將其應(yīng)用于煤礦膠帶運輸異物檢測,通過實驗及現(xiàn)場測試驗證了Fast_YOLOv3算法對膠帶運輸異物檢測的精度高、速度快,整體性能良好。
基于深度學(xué)習(xí)的目標(biāo)檢測方法主要有2類:一類為two-stage算法,主要是基于Region Proposal的R-CNN系列算法,如R-CNN[4],F(xiàn)ast R-CNN,F(xiàn)aster R-CNN[5]等,該類算法檢測精度高,但檢測速度慢;另一類為以YOLO,SSD(Single Shot Multibox Detector)為代表的one-stage算法,該類算法檢測速度快,但檢測精度較Faster R-CNN算法低。為滿足煤礦膠帶運輸異物檢測實時性要求,選用YOLO算法進(jìn)行研究。
YOLOv1算法[6]利用多層卷積網(wǎng)絡(luò)提取原始圖像的全局信息,采用全連接層進(jìn)行預(yù)測和回歸,檢測速度快,但存在輸出數(shù)據(jù)尺寸固定、小目標(biāo)檢測效果不佳等問題。YOLOv2算法[7]從輸入分辨率、網(wǎng)絡(luò)結(jié)構(gòu)、邊界框訓(xùn)練方法等方面對YOLOv1算法進(jìn)行改進(jìn),使得算法模型參數(shù)更易學(xué)習(xí),模型更加穩(wěn)定。YOLOv3算法[8]將YOLOv2算法的單標(biāo)簽分類改進(jìn)為多標(biāo)簽分類,用多標(biāo)簽分類的邏輯回歸層代替單標(biāo)簽分類的softmax層,使得算法可應(yīng)用于復(fù)雜環(huán)境[9-12];采用融合了YOLOv2和殘差網(wǎng)絡(luò)的結(jié)構(gòu)對目標(biāo)進(jìn)行特征提取,其骨干網(wǎng)絡(luò)由YOLOv2算法的DartNet19改進(jìn)為DarkNet53,提高了目標(biāo)檢測性能。
雖然YOLOv3算法有較快的檢測速度和較高的檢測精度,但用于煤礦膠帶運輸異物檢測時仍存在以下問題:對小目標(biāo)檢測效果不佳且容易出現(xiàn)漏檢情況;易出現(xiàn)正負(fù)樣本不均衡問題[13-14]。YOLOv4算法采用Mosaic數(shù)據(jù)增強方法和SAT(Self Adversarial Training,自對抗訓(xùn)練)方法,提高了目標(biāo)檢測精度,但對于小目標(biāo)的檢測能力較弱。YOLOv5算法采用Focus+CSPNet (Cross Stage Partial Network),在YOLO算法中數(shù)據(jù)量最小、計算速度最快,但由于卷積網(wǎng)絡(luò)最后一層壓縮了特征圖,導(dǎo)致小目標(biāo)檢測能力較YOLOv3算法弱。
綜合考慮各YOLO算法的優(yōu)缺點,選擇對YOLOv3算法進(jìn)行改進(jìn),設(shè)計了Fast_YOLOv3算法:改進(jìn)先驗框及邊界框,以適應(yīng)煤礦膠帶運輸小目標(biāo)異物檢測場景;針對小目標(biāo)易漏檢問題,設(shè)計反卷積網(wǎng)絡(luò),以提高算法對小目標(biāo)的檢測能力;針對YOLOv3算法多尺度檢測易出現(xiàn)正負(fù)樣本不均衡的問題,引入Focal Loss改進(jìn)YOLOv3算法損失函數(shù)中負(fù)樣本置信度的交叉熵,以提高算法檢測精度。
基于Fast_YOLOv3算法的膠帶運輸異物檢測流程如圖1所示。由煤礦井下攝像頭采集的膠帶運輸監(jiān)控圖像經(jīng)數(shù)據(jù)增強等預(yù)處理后輸入Fast_YOLOv3模型進(jìn)行訓(xùn)練,之后采用訓(xùn)練好的模型對膠帶運輸異物進(jìn)行實時檢測。
圖1 基于Fast_YOLOv3算法的膠帶運輸異物檢測流程Fig.1 Foreign object detection flow for belt transportation based on Fast_YOLOv3 algorithm
為提高小目標(biāo)檢測精度,針對煤礦膠帶運輸圖像設(shè)計了StiPic數(shù)據(jù)增強方法。該方法融合了Mixup,CutMix數(shù)據(jù)增強方法,隨機(jī)將2張樣本圖像按比例混合,先裁剪掉一張圖像的部分區(qū)域,再將另一張圖像裁剪后填充至被裁剪區(qū)域,從而生成新的圖像及其對應(yīng)標(biāo)簽。
設(shè)XA,XB為2張不同的井下監(jiān)控圖像,YA,YB為其對應(yīng)的標(biāo)簽。采用StiPic數(shù)據(jù)增強方法生成的新圖像X及其標(biāo)簽Y為
X=2F⊙XA+(1-2F)⊙XB
(1)
Y=2λYA+(1-2λ)YB
(2)
式中:F為二進(jìn)制掩碼,用于標(biāo)記被裁剪區(qū)域和保留區(qū)域,被裁剪區(qū)域置為0,保留區(qū)域置為1;⊙為逐像素相乘運算符;λ為加權(quán)系數(shù)。
在圖像中以服從(W,H)(W,H分別為采集圖像的寬度和高度)的均勻分布進(jìn)行采樣,獲得裁剪框左上角位置坐標(biāo)(x,y),即x~Unif(0,W),y~Unif(0,H)。根據(jù)加權(quán)系數(shù)λ得到裁剪框?qū)挾葁和高度h:
(3)
(4)
裁剪區(qū)域比例為wh/(WH)=1-λ。確定好裁剪區(qū)域邊界后,將該區(qū)域的二進(jìn)制掩碼F置為0,其他區(qū)域的F置為1。之后將XA中的裁剪區(qū)域去除,將XB中的裁剪區(qū)域填充到XA中,生成新的訓(xùn)練樣本。
本文隨機(jī)選取4張膠帶運輸圖像,采用StiPic數(shù)據(jù)增強方法,通過隨機(jī)縮放、裁剪、排列方式拼接為1張圖像,如圖2所示,從而增加了膠帶運輸異物訓(xùn)練集數(shù)量特別是小目標(biāo)異物訓(xùn)練集數(shù)量,且增加了異物檢測樣本的多樣性,使得Fast_YOLOv3算法能夠從1張圖像的局部視圖中識別出多個異物,提高了訓(xùn)練效率,增強了算法對井下小型異物的識別能力。
2.2.1 先驗框和邊界框
煤礦膠帶運輸煤流過程中,除存在工字鋼、錨桿等較大異物外,還有矸石、釬子等較小異物。為增強小目標(biāo)異物檢測能力,在YOLOv3算法原有的9種先驗框基礎(chǔ)上,針對小尺寸特征圖,設(shè)置了3種先驗框。以在COCO數(shù)據(jù)集上進(jìn)行目標(biāo)檢測為例,增加(6×12),(8×24),(16×32)這3種尺寸的先驗框。對于不同尺寸的特征圖,均采用3種不同的先驗框,具體見表1。
圖2 數(shù)據(jù)增強Fig.2 Data enhancement
表1 不同尺寸特征圖對應(yīng)的先驗框Table 1 Priori boxes suitable for different characteristic images
獲得先驗框后,在特征圖上生成初始邊界框。根據(jù)式(5)計算預(yù)測邊界框。
(5)
式中:(xb,yb)為預(yù)測邊界框的中心點坐標(biāo);σ(·)為sigmoid激活函數(shù);Δxb,Δyb為預(yù)測邊界框中心點偏移量;(xc,yc)為初始邊界框在特征圖上的中心點坐標(biāo);wb,hb分別為預(yù)測邊界框的寬度和高度;wp,hp分別為初始邊界框的寬度和高度;twb,thb分別為預(yù)測邊界框的寬度和高度縮放比。
2.2.2 損失函數(shù)
YOLOv3算法輸出13×13,26×26,52×52這3種尺寸的特征圖,即同時輸出10 647個邊界框,其中只有少量的邊界框包含待檢測目標(biāo),特別是在有小目標(biāo)的特征圖中,10 647個邊界框中包含待檢測目標(biāo)的比例更小。在模型訓(xùn)練過程中,輸出的邊界框大部分被標(biāo)記為負(fù)樣本,使得異物檢測數(shù)據(jù)集中的負(fù)樣本數(shù)量遠(yuǎn)大于正樣本,負(fù)樣本將掌握模型梯度更新方向,導(dǎo)致模型無法學(xué)習(xí)到有用的信息,降低了模型檢測精度。針對該問題,引入Focal Loss改進(jìn)YOLOv3算法損失函數(shù)中負(fù)樣本置信度的交叉熵,以降低模型訓(xùn)練過程中負(fù)樣本損失在模型總損失的占比,避免模型在訓(xùn)練過程中負(fù)樣本主導(dǎo)梯度更新方向,提高模型檢測精度。
YOLOv3算法損失函數(shù)中負(fù)樣本置信度的交叉熵為
Lce=-dlog2d′-(1-d)log2(1-d′)=
(6)
式中:d為真實值;d′為檢測值。
對于異物檢測數(shù)據(jù)集中的正樣本來說,異物檢測模型的檢出率越高,則二元分類的交叉熵?fù)p失越小;對于負(fù)樣本來說,異物檢測模型的檢出率越高,則二元分類的交叉熵?fù)p失越大。在模型訓(xùn)練時,如果異物檢測數(shù)據(jù)集中的負(fù)樣本數(shù)量遠(yuǎn)大于正樣本,則檢測精度較低。
采用Focal Loss對式(6)改進(jìn),所得損失函數(shù)中負(fù)樣本置信度的交叉熵為
Lfl=-αd(1-d′)γlog2d′-
(1-α)(1-d)d′γlog2(1-d′)=
(7)
式中:α為平衡因子,用于平衡正負(fù)樣本的比例;γ為交叉熵調(diào)整因子。
當(dāng)γ>0時,模型會減少對負(fù)樣本置信度損失的計算;當(dāng)γ<0時,模型會減少對正樣本置信度損失的計算。通過引入γ,解決了模型訓(xùn)練過程中正負(fù)樣本數(shù)量失衡問題。
2.2.3 反卷積網(wǎng)絡(luò)
在煤礦膠帶運輸異物檢測過程中,小目標(biāo)異物易出現(xiàn)漏檢情況。為了獲得特征中更多的上下文信息,降低小目標(biāo)異物漏檢概率,對YOLOv3算法的上采樣和卷積過程進(jìn)行改進(jìn),得到如圖3所示的反卷積網(wǎng)絡(luò)結(jié)構(gòu)。在卷積層添加批處理歸一化層,并增加反卷積層改進(jìn)雙線性插值上采樣過程,設(shè)定反卷積層的步長為2;添加大小為3×3的卷積層和批處理歸一化層,采用金字塔特征圖方式將經(jīng)過反卷積處理的特征圖與淺層特征圖連接。
圖3 反卷積網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Deconvolution network structure
通過增加反卷積層改進(jìn)YOLOv3算法的雙線性插值上采樣過程,可獲得高分辨率的特征圖,使模型在異物檢測過程中保留更多的上下文信息,增強了遠(yuǎn)景圖像中小目標(biāo)的檢測效果。
采用由多個攝像頭(分辨率為1 920×1 080)采集的7 520張膠帶運輸圖像為異物檢測數(shù)據(jù)集,其中不含異物圖像有3 540張,含異物圖像有3 980張。為使異物檢測模型具有更好的泛化能力,設(shè)置較多的異物種類,包括釬子、錨桿、鐵塊、矸石、木條、工字鋼、塑料等。
取異物檢測數(shù)據(jù)集中的6 016張圖像為訓(xùn)練集,1 504張圖像為測試集。對訓(xùn)練集和測試集進(jìn)行數(shù)據(jù)增強等預(yù)處理,之后將增強訓(xùn)練集數(shù)據(jù)輸入Fast_YOLOv3模型進(jìn)行訓(xùn)練。采用訓(xùn)練好的模型對增強測試集進(jìn)行異物檢測實驗,結(jié)果如圖4所示??煽闯鯢ast_YOLOv3算法能夠準(zhǔn)確檢測出膠帶上各種異物。
圖4 膠帶運輸異物檢測結(jié)果Fig.4 Foreign object detection results of belt transportation
基于生成的增強數(shù)據(jù)集,分別采用SSD,F(xiàn)aster R-CNN,YOLOv2,YOLOv3,YOLOv5,F(xiàn)ast_YOLOv3算法進(jìn)行膠帶運輸異物檢測,結(jié)果如圖5所示??煽闯鯢ast_YOLOv3算法較其他算法能識別出更多異物。
圖5 基于不同算法的異物檢測結(jié)果Fig.5 Foreign object detection results based on different algorithms
從測試集中隨機(jī)選取200張包含釬子、鐵塊、矸石等小目標(biāo)圖像進(jìn)行異物檢測,結(jié)果見表2??煽闯鯢ast_YOLOv3算法較其他算法對于小目標(biāo)異物有更高的檢出率。
表2 小目標(biāo)異物檢測結(jié)果Table 2 Detection results of small target foreign object
采用平均檢測精度、平均檢測時間、召回率指標(biāo)評價不同異物檢測算法的性能,結(jié)果見表3??煽闯鯢ast_YOLOv3算法的平均檢測精度為90.12%,較SSD,F(xiàn)aster R-CNN,YOLOv2,YOLOv3,YOLOv5算法分別提高1.76%,-2.77%,15.91%,5.44%,3.44%;平均檢測時間為35 ms,較其他5種算法分別減少76.20%,90.33%,27.08%,33.96%,14.63%;召回率為93.86%,較其他5種算法分別提高2.72%,0.58%,9.21%,6.63%,4.41%??梢奆ast_YOLOv3算法在異物檢測準(zhǔn)確性和速度方面具有較大優(yōu)勢。
表3 異物檢測算法性能比較Table 3 Performance comparison of foreign object detection algorithms
在陜西正通煤業(yè)有限責(zé)任公司高家堡煤礦對采煤工作面西翼主運膠帶運輸進(jìn)行異物檢測。采用攝像頭采集多點圖像,經(jīng)井下千兆環(huán)網(wǎng)傳送至地面監(jiān)控中心。監(jiān)控中心主工作站對數(shù)據(jù)進(jìn)行處理后,運行異物檢測程序,并將檢測結(jié)果返回監(jiān)控界面。異物檢測程序采用Python語言在Pytorch框架下編寫,采用C#.Net設(shè)計監(jiān)控界面。程序運行環(huán)境為Inter(R) Core i7-8750H處理器,16 GB內(nèi)存,Windows10系統(tǒng)。
異物檢測監(jiān)控界面如圖6所示。可看出Fast_YOLOv3算法能夠較準(zhǔn)確地檢測出矸石、塑料、錨桿等異物,檢測速度快,漏檢率較低,小目標(biāo)檢測效果較好,異物類型及數(shù)量可實時顯示在監(jiān)控界面。
(a) 錨桿檢測
(b) 雜物檢測圖6 膠帶運輸異物檢測監(jiān)控界面Fig.6 Monitoring interface of foreign object detection in belt transportation
(1) 為滿足煤礦井下膠帶運輸異物實時、精確檢測需求,基于YOLOv3算法,通過改進(jìn)先驗框、邊界框、損失函數(shù),增加反卷積網(wǎng)絡(luò)等方法,設(shè)計了Fast_YOLOv3算法。
(2) 為提高Fast_YOLOv3算法的檢測精度,提出了StiPic數(shù)據(jù)增強方法,通過對采集圖像進(jìn)行隨機(jī)縮放、裁剪、排列,將4張圖像拼接為1張圖像,增加了訓(xùn)練樣本的數(shù)量及多樣性,提高了模型訓(xùn)練效率及對小目標(biāo)的識別能力。
(3) 對Fast_YOLOv3算法的異物檢測效果進(jìn)行了實驗及現(xiàn)場測試,結(jié)果表明,該算法對于膠帶運輸異物的平均檢測精度達(dá)90.12%,平均檢測時間為35 ms,對小目標(biāo)異物的檢出率達(dá)93.50%,滿足膠帶運輸現(xiàn)場對異物檢測精度和實時性的要求。