崔 斌,陳 林,亓玉浩,張 坤,趙得福,黃梁松,李明霞,孔祥俊,杜明超,蔣祥卿,劉 源
(1.山東科技大學 山東省機器人與智能技術重點實驗室,山東 青島 266590;2.歐普瑞泰環(huán)境科技有限公司,山東 青島 266200;3.青島華夏橡膠工業(yè)有限公司,山東 青島 266200;4.北斗天地股份有限公司,山東 濟寧 710000;5.青海能源發(fā)展(集團)有限公司,青海 西寧 810008)
煤炭是我國最主要的能源,國家高度重視煤炭開采智能化發(fā)展[1],在煤炭開采過程中會有約10%~15%的矸石,若不及時進行煤矸石分揀并回填,摻雜矸石的煤炭會影響燃燒質量,而且大量的矸石存在會占用過多的空間,造成空間浪費。傳統(tǒng)的分揀由人工完成,存在著分揀效率低、精度差以及對工人身體危害較大的問題[2],因此,使用目標檢測模型快速高效的分揀出煤矸石從而代替?zhèn)鹘y(tǒng)分揀具有重要意義。
隨著機器視覺及相關算法的不斷發(fā)展,基于圖像處理的煤矸石檢測技術研究成為重點研究方向[3,4],相關研究人員采用數字圖像處理的方式人工提取煤矸石特征,再結合支持向量機的方法對特征進行訓練以識別煤和矸石[5-7]。自2012年以來,在圖像識別領域中以卷積神經網絡為代表的深度學習算法在各大產業(yè)中逐步得到了應用[8,9],其根據處理方式的不同,分為two-stage目標檢測算法與one-stage目標檢測算法。二階段目標檢測算法首先生成若干個可能含有目標的候選框,而后使用卷積神經網絡對這些候選框的進行檢測。RCNN系列網絡為其代表性網絡。Fast RCNN在RCNN的基礎上,使用選擇搜索算法提取候選框后,將全圖送入卷積神經網絡,并將候選區(qū)域通過ROI池化映射至網絡輸出的特征圖中,之后對候選區(qū)域進行處理完成目標的定位與分類[10]。一階段目標檢測算法則不產生候選框,而是通過回歸直接完成分類與定位任務。YOLO系列算法是其代表的算法。YOLO v1提出了該系列算法的基本概念[11]。YOLO v2[12]、 YOLO v3[13]使得網絡檢測精度有了很大的提升并降低了漏檢率。YOLO v4[14]在YOLO v3的基礎上,結合當時的優(yōu)秀研究成果進行改進,犧牲少量推理速度大幅度提升了檢測精度,實現了檢測精度與檢測速度的平衡。來文豪[15]提出了一種基于多光譜成像技術和改進YOLO v4的檢測方法,蔡金秀[16]進行了YOLO v4煤矸石檢測方法研究,克服在煤矸石檢測中存在漏檢誤檢的問題。
近幾年,基于機器學習的異物識別方法大多是使用分類神經網絡[17-19],只能識別圖像中的單個目標,未考慮到多目標識別。為了加快煤礦智能化發(fā)展,全面提升煤礦智能化技術水平[20-21],實現快速、高精度檢測煤矸石圖像的目標,本文將檢測速度較快并且可以進行多目標檢測的一階段目標檢測模型 YOLO v4引入煤與煤矸石分選領域,對目標檢測模型進行改進,完成對單幅圖像中多目標識別以及定位作用,進而完成視頻檢測,大大提升了模型的綜合檢測能力,為皮帶輸送機煤矸石分揀提供理論依據,促進了煤礦智能化的發(fā)展。
煤矸石識別系統(tǒng)由工控機、工業(yè)相機、光源等組成,如圖1所示。其中,光源選用SUMITA公司生產的LS-NTP-210,工業(yè)相機選用邁德威視公司生產的MV-GE502GC-T-CL相機,鏡頭選用邁德威視公司的MV-GE502GC-T-CL,兩者組合可以獲得最大分辨率為2592×2048的RGB圖像,且有多種分辨率可選,可以準確提取煤矸石紋理特征,在最大分辨率時幀速率可達22 f/s,保證了整套識別系統(tǒng)采集和傳輸數據的實時性。
圖1 煤矸石實驗設備
在進行數據采集時,相機通過Glge網線連接至工控機,調整合適的參數,通過相機將帶式輸送機上采集到的實時圖像信息傳輸給工控機,完成數據的實時采集。
煤矸石的種類豐富,根據礦物含量不同可分為黏土巖類、砂石巖類以及鋁質巖類,本次實驗選用泰安新汶煤礦的白色砂巖石類煤矸石作為實驗樣本?,F場采集的白色砂巖石類煤和煤矸石的部分樣本如圖2所示。
圖2 白色砂巖類煤和煤矸石樣本
1)數據采集。使用MV-GE502GC-T-CL相機拍攝制作數據集所需要的圖片,并根據每張圖片中煤和煤矸石的總數分為單目標圖像,雙目標圖像,多目標圖像,三種圖像的數量見表1。
表1 煤與煤矸石圖像采集
2)圖像預處理。對于YOLO v4目標檢測網絡,輸入的圖片尺寸為416×416或者608×608,但通過相機拍攝的圖片尺寸為2592×2048,尺寸并非正方形,若直接將制作好的數據集送入網絡,會導致圖像在送入網絡時有一定程度的失真,故采用在短邊兩側補灰條的方式將圖片尺寸調整尺寸為2592×2592的圖片,從而避免將原始圖像送入網絡后出現的形狀失真問題,添加灰條前后圖片對比如圖3所示。
圖3 煤矸石圖像處理前后對比
3)圖像標注與數據增強。使用Labelimg對圖像進行標注,生成數據集,如圖4所示。
圖4 數據集標注
YOLO v4作為YOLO v3的改良版本,運行速度大大提高,其主要包括YOLO v4使用 CSPDarkNet53作為主干網絡,繼承YOLO v3中的分類回歸層以及頭部(Head),使用Neck連接主干網絡與頭部,Neck由SPP-block和PANet構成。
煤矸石識別任務中對于煤矸石的識別準確度以及識別幀率均有一定的要求,針對YOLO v4本身的參數量相對較大,需要在較好的GPU上才能有比較好的幀率的問題,對YOLO v4進行改進,主要改進部分如下:
3.2.1 采用Focal Loss函數
My-YOLO v4目標檢測網絡將置信度和分類的二分交叉熵損失函數替換為 Focal Loss函數,可以在一定程度上緩解背景分類不平衡以及減少易分類目標所占的損失比重的問題。Focal Loss函數在交叉熵損失基礎上改進,通過減少簡單背景樣本以及簡單分類樣本所占權值讓模型專注于前景識別困難物體的檢測。Focal Loss函數如式(1)所示:
FL(pt)=-α(1-pt)γlg(pt)
(1)
式中,α為正負樣本的權值;γ為難易樣本的權值。本次實驗中α取0.25,γ取2性能最優(yōu)。
3.2.2采用K-means++聚類算法優(yōu)化初始錨定框
My-YOLO v4選用K-means++算法優(yōu)化初始聚類中心,有效避免了K-means算法需人為確定或隨機給定初始聚類中心,造成聚類效果差的問題,K-means++選擇初始點的原則是讓聚類中心相互之間的距離盡量的遠,其具體步驟如下:
Step1:在采集的數據集的所有標注的框中隨機選擇一個框的寬高作為初始的聚類中心。
Step2:對于數據集中所有的錨定框,選擇一樣的中心點,根據其寬高數據與已經獲得的聚類中心的寬高數據計算數據集中所有錨定框與聚類中心的IOU并計算兩者的距離情況,去樣本框與所有聚類中心中距離最近的距離值D(Xd=Xk+(Xk-1)×(Dr-1)),最后,選出下一個聚類中心,D越大被選為聚類中心的概率越大。
Step3:重復Step2,選出K個聚類中心。
Step4:計算每個數據中的點到選擇的k個聚類中心的距離,并根據距離遠近劃分到所對應的類中。
Step5:對劃分好的類再進行計算,計算出新的聚類中心,與初始聚類中心進行比較。
Step6:若聚類中心發(fā)生變化,重復Step4,5;若沒變化,輸出聚類結果。
3.2.3 PANet特征融合網絡中卷積CSP化
由于YOLO v4目標檢測網絡參數量較大,故而限制了其在煤矸石檢測任務中的作用,而在其中PANet則占其中大部分參數,為了適當降低參數量,同時保證特征融合效果,My-YOLO v4采用CSP結構代替PANet中的五次卷積操作。
YOLO v4中使用了SPP結構,其采用了四種不同尺度的最大池化操作增加感受野,分離出顯著的上下文特征但是這樣會損失一些細節(jié)特征信息,為解決此問題,引入空洞卷積來增大感受野,獲取更多不同尺度信息,空洞卷積根據空洞率的大小在普通卷積核中間填充0,空洞率大小與空洞卷積核大小的關系為:
Xd=Xk+(Xk-1)×(Dr-1)
(2)
式中,Xk為原卷積核大??;Xd為空洞卷積核大??;Dr為空洞率系數。
空洞卷積因在卷積核中間填充0,會導致單個尺度的空洞卷積會丟失局部信息,空洞率為2的空洞卷積核如圖5所示。
圖5 空洞率為2的空洞卷積核
為解決此問題,將SPP結構中,三路最大池化操作更改為系數為2,3,5的空洞卷積操作,用多尺度空洞卷積來獲取不同尺度的特征信息,并將修改后的結構引入至已經替換的CSP結構中,其結構如圖6所示。
圖6 加入空洞卷積融合網絡的CSP結構
3.2.4 使用跨連接邊構成BiFPN結構
由于在煤矸石檢測任務中,大部分的煤與矸石大小都處在較為中等的大小,故而My-YOLO v4通過添加了連接主干網絡提取的中間特征層與中間YOLO-Head以及的一條殘差邊,構成BiFPN結構,以提高對于中等目標的檢測能力。
YOLO v4與My-YOLO v4目標檢測網絡模型大小對比見表2。
表2 煤與煤矸石圖像采集
通過表3數據對比可以看出,改進后的參數量與模型大小有了明顯的減少,更有利于提升檢測速度。
表3 四種目標檢測算法性能比較
經過上述步驟的修改,得到修改后的網絡結構如圖7所示。
圖7 My-YOLO v4目標檢測算法
目標檢測網絡通過平均準確率mAP(mean Av-erage Precision),即各個類別AP(Average Pre-cision)的平均值來評價算法的性能,在計算AP之前首先需要計算準確率(Precision)和召回率(Recall)。
準確率的計算公式為:
召回率的計算公式為:
AP的計算公式為:
(5)
式中,TP為被模型預測為正類的正樣本;FP為被模型預測為正類的負樣本;FN為被模型預測為負類的正樣本。
本文實驗數據訓練在Windows操作系統(tǒng)下完成,其中CPU選用Intel Xeon E5-2630L v3,GPU選用NVIDIA GeForce RTX1080Ti,深度學習框架選用tensorflow2.2.0。
調整后的數據集按照8∶1∶1的比例劃分為訓練集,驗證集與測試集,同時采用遷移學習的思想,在VOC2007中訓練好的YOLO v4模型的基礎上進行訓練,在訓練過程中,首先對主干特征提取網絡CSPDarknet-53進行凍結,優(yōu)先訓練其他的非主干特征提取網絡,以達到防治訓練初期權值被破壞的情況,同時加快訓練速度,初始階段訓練中Batchsize設置為32,學習率為0.001,使用Adam作為優(yōu)化器,訓練輪數為25輪。接著對整個網絡進行訓練,第二階段訓練中Batchsize設置為16,初始學習率為0.001,若連續(xù)5輪loss不下降,則自動將學習率減半,使用Adam作為優(yōu)化器,訓練輪數為50輪,根據訓練日志繪制出模型損失函數值的變化曲線如圖8所示。
圖8 模型損失值變化曲線
由圖8可以得出,使用改進后的My-YOLO v4目標檢測算法在對煤矸石數據集訓練過程中,階段一為0—25輪,凍結主干特征提取網絡,對剩余網絡進行訓練,可以有效防止訓練初期主干網絡權值被破壞,提高訓練速度,使損失值快速降低;階段二為25—50輪,采用解凍訓練,對全部網絡進行訓練,損失值快速降低至比較平緩的階段;階段三為50—75輪,損失值緩慢降低,loss收斂至較好的值,并且在剩余輪數的訓練過程中模型性能并未得到提高。
完成模型訓練后,挑選部分新的煤和矸石的樣本放在實驗臺上,使用MV-GE502GC-T-CL相機對煤和煤矸石進行實時檢測,檢測效果如圖9所示。
圖9 My-YOLO v4檢測效果
將改進后的My-YOLO v4目標檢測模型與 YOLO v3,YOLO v4,SSD目標檢測模型進行性能比較,重新采集200張煤與煤矸石數量不等的圖片制成測試集,并進行mAP的計算,三種目標檢測模型性能見表3。
由表4可以得出,改進My-YOLO v4模型mAP值相較于YOLO v4減少了0.55%,但是其因模型參數的減少使得其檢測速度獲得了提升,在視頻檢測上有著很大的優(yōu)勢。同時相較于SSD與YOLO v3目標檢測算法,My-YOLO v4能在保持大致的檢測速度的情況下檢測準確度有著較大的提升。
1)本文基于YOLO v4目標檢測模型進行改進,將二分類交叉熵損失函數替換為 Focal損失函數,從而獲得更加準確的分類精度,使用K-means++聚類算法優(yōu)化初始錨定框,提高對中等目標的檢測能力,采用CSP結構代替PANet中的五次卷積操作以及使用跨連接邊構成BiFPN結構,最終得到改進后的My-YOLO v4目標檢測模型。選用50~300 mm大小的煤矸石進行數據集的采集與制作,更加符合實際工作環(huán)境,使用圖像處理的方式,能夠實現煤矸石的快速準確識別,此外,My-YOLO v4目標檢測網絡在驗證集上mAP達到了98.14%。
2)選用50~300 mm大小的煤矸石進行數據集的采集與制作,更加符合實際工作環(huán)境,在搭建好的煤矸石分揀平臺中進行動態(tài)實驗測試,實驗數據分析得出:My-YOLO v4目標檢測網絡mAP為98.14%,FPS為28.3Hz,相較于SSD目標檢測網絡以及YOLO v3目標檢測網絡,在保持良好FPS的情況下,精度分別提高了5.41%以及2.87%,相較于YOLO v4目標檢測網絡,在保持較好檢測精度的情況下,識別速度提高了7.7Hz。實驗結果表明,My-YOLO v4目標檢測網絡在較復雜的實際工況中檢測性能良好,具有較高的實時性和準確率,可以為煤矸石檢測分揀裝置的提供理論技術參考。