雷偉強,王浩盛
(山西大同大學 煤炭工程學院,山西 大同 037003)
我國是煤炭生產大國,同時煤炭也是我國能源供應的主力軍,占據十分重要的地位。在“雙碳”背景下,提升煤炭的清潔高效利用和煤炭品質是重中之重[1]。而煤矸石分選有助于提高原煤品質,提升煤炭的利用率。煤矸石分揀也一直是煤炭生產過程中的一大難題。目前常用的煤矸檢測方法有天然射線識別方法、紅外熱成像識別方法[2]、超聲波識別方法等。但由于此類方法均有很大的局限性,不易推廣使用。隨著計算機硬件的提升和目標檢測技術的發展,基于圖像處理的煤矸石檢測方法,憑借其結構簡單、檢測性能好、速度快的特點脫穎而出。雷世威等人[3]在YOLOv3網絡結構中添加2個1×1和3×3的卷積層,提升CNN的特征提取能力并在邊界框回歸過程中增加了尺度修正,加大對小框損失的計算,有不錯的識別率,但識別時間增加了1.9 ms;來文豪[4]等人利用多光譜成像技術研究各波段煤矸石的識別率,選出較好的三個波段生成偽RGB圖像結合改進的YOLOv4模型對煤矸進行檢測,雖取得了不錯的檢測效果,但檢測速度較慢;沈科[5]等人引入自校正卷積對煤矸圖像進行特征提取,并簡化了Neck網絡只專注于對小目標的檢測,雖然精度和速度都有提升,但仍存在漏檢問題。
在煤矸分選的實際應用中,由于現場環境比較嘈雜,圖像會產生很多噪點導致基于圖像處理的煤矸檢測算法精度較低,在檢測過程中,對小塊的煤矸也容易出現漏檢的情況。要同時兼顧檢測精度和實時性也有難度。為了提升煤矸檢測的實時性能,本文對YOLOv5s網絡模型進行改進,引入Ghost模塊、自注意力機制、Anchor尺度優化設置,構建了GCA-YOLOv5s模型,提出了一種基于深度學習的輕量化煤矸檢測算法,在自制的煤矸數據集上進行訓練,并對該算法的有效性進行驗證。
YOLOv5s是一種端到端的一階段目標檢測模型,由輸入端、Backbone、Neck、Prediction四部分組成。在輸入端對輸入的煤矸圖像進行Mosaic數據增強和自適應Anchor的計算;在Backbone部分先經過二維卷積操作對煤矸圖像進行提取特征,然后再經過卷積、BN層和SiLu激活函數后進入C3,C3將輸入變成兩個分支,其中一個分支只進行一次卷積操作,另一個分支經過CBS和數量不等的殘差塊后兩個分支再進行聯結。其中殘差單元可以增加上下層之間的反向傳播梯度,避免因網絡加深而造成梯度消失,也可以因此提取到更加細粒度的特征,C3也應用在Neck網絡,在Neck網絡中,經過FPN層自頂向下傳達強語義特征和PAN自底向上傳達強定位特征,二者搭配使用對檢測進行特征聚合。最后在Prediction部分,通過FocalLoss分類損失函數對圖像進行分類進行置信度計算,再利用IOU閾值和非極大值抑制(NMS)篩選候選框,最后得到最終的預測結果。YOLOv5s模型利用不同網絡深度對輸入圖像感受野不同的特點,使用三種不同尺度特征進行預測,其中80×80的特征圖是用來檢測小目標的,40×40用來檢測中等目標,而20×20是用來檢測大目標的。
1.2GhostNet
GhostNet的核心思想在于采用線性變換替代部分普通卷積層用以生成更多的特征圖[6]。對于模型總的參數量和計算復雜度都有減少,Ghost模塊先通過普通的卷積,將輸入通道數減少,再通過一個深度卷積和恒等變換,生成Ghost特征圖。其中普通的卷積可以是1×1卷積也可以使用3×3或5×5卷積,本文使用1×1卷積進行提取特征;本文使用的深度卷積也可換成分組卷積,深度卷積的作用是生成相似特征圖,使用成本更低的方式,保留冗余的信息。最后將生成的Ghost特征圖和普通的特征圖進行堆疊,輸出結果。
GhostNet有兩種瓶頸結構,一種步長為1,另一種步長為2,如圖1所示。分別在兩種瓶頸結構的不同位置添加BN(批歸一化)層和SiLu激活函數。步長為1的瓶頸結構中用第一個Ghost module增加通道數,用第二個Ghost module減少通道數,以此保證輸入的特征圖大小不變。步長為2的瓶頸結構除了在輸入之后和輸出之前使用Ghost module以保證特征圖尺度不變而且使用步長為2的深度卷積進行逐像素卷積操作,然后再進行信息融合,比普通卷積所需要的參數更少。

圖1 GhostNet瓶頸結構
GCA-YOLOv5s模型具體結構如圖2所示。輸入為640×640分辨率的RGB圖像,經過backbone部分對煤矸特征進行提取,然后在Neck中對特征先進行上采樣再進行下采樣,對特征圖中的語義信息和定位信息進行特征增強,最后在YOLOv5s的檢測部分進行分類和回歸,完成檢測任務[7]。該模型除第0層的二維卷積外,將整個模型中的其余普通卷積操作全部替換為GhostConv操作,利用一種分階段的卷積模塊,在進行卷積操作后得到的特征圖基礎上做線性變化,從而獲得更多的特征圖。以此可以大大減少網絡的冗余特征,提升模型的檢測速度。并且對backbone中第8層中的C3模塊添加一個卷積塊注意力(CBAM),通過對特征圖進行通道注意力操作和空間注意力操作[8],加強模型對有意義特征的關注度,用以提升圖像分類和檢測的精度。

圖2 GCA-YOLOv5s模型結構
2.2CBAM
CBAM是一種輕量級卷積塊注意力,受SENet的啟發產生,將通道注意力模塊和空間注意力模塊進行結合,使得特征更加明顯[9]。CBAM結構圖如圖3所示,其中通道注意力模塊是對輸入的特征圖先分別進行最大池化和平均池化,將一個c×h×w的特征圖轉化成c×1×1大小,再將兩種池化后的結果輸入到同一個多層感知機中,對通道進行壓縮再擴張,得到兩個結果,然后將結果1和結果2進行相加并經過sigmoid激活,得到通道注意力處理后的特征圖,再乘以原始的輸入,使得通道維度不變。而空間注意力模塊,則是將通道注意力的結果進行最大池化和平均池化,將2個c×h×w的特征圖轉化成2個h×w×1的張量,然后將其進行Concat通道數翻倍,再進行卷積操作將通道變為1并且保證維度不變,經過sigmoid激活得到空間注意力處理后的特征圖,乘以原始的輸入,使得通道維度不變。通道注意力模塊關注的是圖中最重要的信息。而空間注意力模塊關注的是檢測目標的位置信息。

圖3 CBAM結構圖
在訓練開始之前,根據自制煤矸數據集中煤矸的大小和分布特點,通過K-means聚類方法對Anchor進行聚類分析,選取滿足檢測任務需求的Anchor尺度,提高煤矸檢測的準確性。由于YOLOv5s的檢測部分選用3種不同尺度來檢測不同大小的目標,每一種大小的煤矸均預設3個不同寬高的Anchor,故K的值取9.對煤矸數據集進行聚類分析,可視化后的結果如圖4所示,其中9組Anchor的寬高分別是:(118,73)、(119,106)、(142,92)、(167,99)、(136,129)、(158,118)、(183,140)、(219,121)、(272,214),聚類中心用紅色小三角表示。

圖4 邊界框和anchor的分布特點
以一張干凈的石板為背景,共采集500張煤和矸石的圖像,采用LabelImg標注工具對500張煤矸圖像中煤和矸石的位置進行分類并標注,檢測類別分為煤和矸石兩類。從采集到的500張圖像中隨機選出350張圖像作為訓練集,150張圖像作為測試集。煤矸數據集樣本中每張圖像的煤矸個數均在8個以上,其中煤占多數,矸石占少數,這也比較符合實際生產中的煤矸分布規律。
該實驗搭建在Pytorch1.10.0框架下,操作系統為Windows11,處理器為Inter Core i5-11400H,2.70 GHz的主頻,內存為16 GB,顯卡為NVIDIA GeForce GTX 3050,4G顯存,安裝CUDA11.4使用Python編程語言。模型訓練時,超參數batch size取2;epoch取150;學習率初始值取0.01完成一次循環改為0.2;動量取0.93;權重衰減取0.000 5.
采用煤矸平均精度的均值(mAP)、每秒的幀數、參數量以及浮點數運算4個指標對煤矸檢測模型的有效性進行驗證。首先,將YOLOv5s模型和GCA-YOLOv5s模型分別在煤矸數據集上訓練150次,兩種模型的訓練損失變化曲線如圖5所示。

圖5 損失值變化曲線
由圖5可知,訓練在開始階段的損失不太穩定,隨著不斷的迭代,損失值也在逐漸減小,并逐漸趨于平穩;當訓練迭代到115次時,損失值在0.002上下變化,從圖中可以看出,GCA-YOLOv5s在訓練模型階段損失的收斂性能要優于YOLOv5s.
為了進一步測試GCA-YOLOv5s煤矸檢測模型的有效性,設置相同的迭代次數和批處理大小并使用同一種數據集在YOLOv5s模型和GCA-YOLOv5s模型上進行訓練和檢測,并對比兩種模型的檢測結果,結果如圖6所示。煤矸原圖在圖6(a)中展示;圖6(b)中展示YOLOv5s模型的煤矸檢測結果;GCA-YOLOv5s檢測效果圖存放在圖6(c)中。從圖6(b)、圖6(c)中可以看出,這兩種模型對煤的檢測效果均優于對矸石的檢測效果。檢測效果圖中矸石的置信度略低于煤的置信度。GCA-YOLOv5s模型對煤檢測時最好的檢測結果可以達到98%的置信度,矸石的置信度可達97%,和YOLOv5s模型檢測效果不相上下。

圖6 檢測結果對比
由表1可知,GCA-YOLOv5s煤矸石檢測模型參數量比YOLOv5s減少了30.4×105,浮點數計算量減少了7.4×109次,幀數每秒提升了10.19幀,但在煤矸石檢測的準確率上僅比YOLOv5s目標檢測算法降低了0.3%.

表1 不同模型的煤矸檢測結果
1) 為了提升煤矸石檢測的準確度和速度,對YOLOv5s模型進行改進,設計了GCA-YOLOv5s檢測模型。利用Ghost模塊對網絡模型進行壓縮,減少模型的計算量,提升檢測速度;對Anchor尺度進行優化,提升模型的檢測精度。
2) 基于GCA-YOLOv5s模型提出一種輕量化煤矸檢測方法,實驗結果表明GCA-YOLOv5s模型的參數量和計算量相比YOLOv5s模型分別減少了30.4×105和7.4×109,并且在檢測煤矸任務中檢測速度每秒可提升10.19幀。
3) 考慮到本文使用設備的簡陋,將該算法搭建在更好的設備中,速度還會有提升。