周宇杰, 徐善永, 黃友銳, 唐超禮
(安徽理工大學 電氣與信息工程學院,安徽 淮南 232001)
礦用帶式輸送機是煤礦主運輸設備,對煤礦運輸起著至關重要的作用[1]。輸送機功率大,輸送距離遠,設備長時間運轉、持續受力及運輸物料過程中會遇到重物和異物,導致輸送帶損傷[2-4]發生事故。因此,對輸送帶損傷進行快速準確的檢測十分重要。
傳統輸送帶損傷檢測方法分為接觸式檢測法和非接觸式檢測法[5-6]。接觸式檢測法包括棒形檢測法、漏料檢測法、測力托輥檢測法等,接觸式檢測法可靠性差、檢測精度低且很難實現檢測結果的可視化。非接觸式檢測法包括電磁感應檢測法、X光透視檢測法、機器視覺檢測法等,其中機器視覺檢測法[7-8]安全性強,檢測精度高,具有自動化、智能化、可視化的特點。文獻[9]將輸送帶灰度圖像轉換成一維向量,分析獲得撕裂特征函數,當撕裂故障特征值大于設置的閾值時會產生報警,但是當撕裂故障特征值不明顯時,會出現故障漏檢問題,導致檢測精度降低。文獻[10]提出一種改進SSR(Single Scale Retinex,單尺度Retinex)算法的輸送帶縱向撕裂檢測方法,通過對采集圖像進行SSR算法處理,提取面積、寬度、矩形度等特征并設定三者的閾值,通過對比閾值來判斷輸送帶是否撕裂,但往往輸送帶損傷形態不規則,大小不一,該方法難以區分除撕裂外的其他損傷,容易造成誤檢。文獻[11]利用支持向量機對輸送帶紅外圖像進行分割,根據撕裂的像素點數目判斷輸送帶撕裂情況,但該方法抗噪能力不佳,噪聲嚴重影響紅外圖像的分割效果,降低檢測精度。文獻[12]通過高斯濾波、邊緣檢測和卷積運算等算法提取輸送帶撕裂特征,再對特征進行閾值分析,判斷是否有撕裂發生,該方法提取特征這一步驟計算量較大,導致檢測速度慢。傳統輸送帶損傷檢測方法檢測速度慢、檢測精度低且缺少對面積較小損傷的檢測。
針對上述問題,本文提出了一種基于改進YOLOv4[13-14]的輸送帶損傷檢測方法。該方法以YOLOv4為基礎,對PANet路徑融合網絡部分進行改進,增加與淺層特征層的融合,可提高模型對面積較小損傷的特征提取能力,并減少特征層融合后的卷積次數,減少計算量,實現對輸送帶撕裂、表面磨損和表面缺陷3種損傷的快速、準確檢測。
YOLOv4模型從結構上分為主干網絡、Neck層及預測層3個部分,如圖1所示。

圖1 YOLOv4模型結構
YOLOv4的主干網絡采用CSPDarknet53,CSPDarknet53對輸入圖像(尺度為416×416)進行5次下采樣,不斷提取目標的特征信息,由淺入深得到5個尺度逐漸減小的特征層P1—P5,5個特征層尺度分別為208×208,104×104,52×52,26×26,13×13。YOLOv4主干網絡使用Mish激活函數加快訓練過程并實現較強的正則化效果。
Neck層處于主干網絡和預測層中間,由SPP(Spatial Pyramid Pooling,空間金字塔池化)[15]模塊和PANet組成,是一種特征金字塔結構。主干網絡的輸出進行3次卷積后作為SPP模塊的輸入,SPP模塊對該輸入進行不同尺度的最大池化和融合操作,經過該操作后可以擴大感受野。PANet是路徑聚合網絡,SPP的輸出進入PANet后進行2次上采樣,分別與P4和P3層進行融合并做5次卷積運算,得到特征層N1和N2。N2層再進行2次下采樣,分別與N1層和SPP的輸出進行融合并做5次卷積運算。
預測層是最終的檢測部分。PANet通過3個不同尺度的特征層融合,再進行卷積運算,得到3個不同尺度的Yolo Head,尺度大小分別為52×52,26×26,13×13,檢測不同大小的目標。每個Yolo Head都包含3個先驗框,預測層首先對PANet輸出的3個特征層進行預測,然后對每個先驗框里面的目標信息進行分析,最后采用非極大值抑制方法并調整先驗框來確定最終的預測框。
YOLOv4目標檢測的損失函數L由預測框回歸損失函數LCIOU、分類損失函數Lcls及置信度損失函數Lconf3個部分組成。
L=LCIOU+Lconf+Lcls
(1)
(2)
(3)
(4)

(5)

(6)

輸送帶很多損傷與背景區分度不高,特征不明顯,且存在許多較小的損傷,YOLOv4模型存在損傷 漏檢問題,導致檢測精度較低。為此,在YOLOv4 PANet部分的3個尺度特征層融合的基礎上,與淺層特征層進行融合,提高對輸送帶損傷的特征提取能力,同時減少特征層融合后的卷積次數,減少計算量。改進后的PANet結構如圖2所示。

圖2 改進后的PANet結構
特征層N2繼續上采樣,然后和主干網絡的P2層進行融合并做3次卷積運算,得到尺度大小為104×104的特征層N3。N3層進行下采樣,再和N2層融合并做3次卷積運算,得到尺度大小為52×52的特征層N4,N4的輸出作為改進YOLOv4的一個Yolo Head。將PANet部分每個特征層融合后的5次卷積運算減少到3次,卷積核大小分別為1×1,3×3,1×1。
本文實驗平臺為Windows 10操作系統,CPU為Intel i7-10870H,顯卡為Nvidia Geforce RTX2060,采用Tensorflow深度學習框架。
實驗數據集來源于現場拍攝,包括輸送帶撕裂、表面磨損和表面缺陷3種常見的損傷圖像。由于數據集中圖像大小不一,在訓練前通過圖像處理軟件將圖像裁剪成416×416的統一大小。為了提高模型泛化能力,避免網絡過擬合,通過旋轉、翻折、對比度調節、亮度調節等圖像處理方法對數據集進行數據增強,擴充數據集,擴充后數據集圖像共3 132張。訓練集和測試集按比例8∶2進行劃分。采用LabelImg軟件對圖像中輸送帶損傷部位進行標注,將輸送帶損傷類型及坐標信息保存到xml文件中。之后通過程序代碼將xml文件轉化成txt文本格式文件,用于網絡模型訓練。
整個訓練迭代次數為50,學習率為0.005,批尺寸為16。
采用檢測精度和檢測速度來衡量模型檢測性能。檢測精度指標包括精確率P、召回率R、平均精度PA及平均精度均值PmA;模型檢測速度指標采用幀速率fFPS。
(7)
(8)

(9)
(10)
(11)
式中:NTP為正確預測的正樣本個數;NFP為錯誤預測的正樣本個數;NFN為錯誤預測的負樣本個數;n為待檢測的目標類別數;PAi為第i個目標類別的平均精度;N為待檢測圖像個數;t為檢測時間。
通過50次迭代訓練,模型訓練結果如圖3所示。可看出在前10次迭代中損失大幅下降,10次迭代后下降幅度變緩,在40次迭代后曲線變化趨于平緩,表明基于改進YOLOv4的輸送帶損傷檢測方法損失收斂速度快,模型訓練效果好。

圖3 迭代次數和損失的關系曲線
為了驗證改進YOLOv4的優越性,將其與YOLOv4,YOLOv3及Faster-RCNN目標檢測模型進行對比,結果見表1。

表1 改進YOLOv4與其他目標檢測模型性能比較結果
從表1可看出,基于改進YOLOv4的輸送帶損傷檢測方法對輸送帶撕裂、表面磨損和表面缺陷檢測的平均精度均值達96.86%,檢測速度達20.66幀/s;與YOLOv4,YOLOv3和Faster-RCNN相比,平均精度均值分別提升了1.4%,6.35%,2.16%,檢測速度分別提升了2.39,2.34,15.25幀/s。
3種輸送帶損傷圖像檢測結果如圖4所示。在撕裂和表面磨損檢測中,改進YOLOv4檢測的置信度更高,表明檢測精度更高;在表面缺陷檢測中,YOLOv4有1處損傷漏檢,改進YOLOv4能全部檢測出3處表面缺陷,改進YOLOv4對面積較小損傷的檢測效果更好。

(a)改進YOLOv4撕裂檢測
(1)基于改進YOLOv4的輸送帶損傷檢測方法損失收斂速度快,模型訓練效果好。
(2)基于改進YOLOv4的輸送帶損傷檢測方法對輸送帶撕裂、表面磨損和表面缺陷檢測的平均精度均值達96.86%,檢測速度達20.66幀/s;與YOLOv4,YOLOv3和Faster-RCNN相比,對輸送帶撕裂、表面磨損和表面缺陷3種損傷檢測的平均精度均值分別提升了1.4%,6.35%,2.16%,檢測速度分別提升了2.39,2.34,15.25幀/s。
(3)與YOLOv4相比,基于改進YOLOv4的輸送帶損傷檢測方法檢測精度更高,對面積較小損傷的檢測效果更好。