杜京義, 史志芒, 郝樂(lè), 陳瑞
(1.西安科技大學(xué) 電氣與控制工程學(xué)院,陜西 西安 710054;2.西安科技大學(xué) 安全科學(xué)與工程學(xué)院,陜西 西安 710054)
煤炭開(kāi)采中不可避免地會(huì)摻雜矸石,不僅影響煤炭充分燃燒,還會(huì)造成環(huán)境污染[1]。因此在煤礦生產(chǎn)中需進(jìn)行煤矸檢測(cè)及分選。目前較為成熟的煤矸檢測(cè)方法主要是基于射線法[2-4],如X射線、γ射線等,但該方法存在輻射危害,且設(shè)備昂貴、不易管理,難以推廣應(yīng)用。隨著計(jì)算機(jī)視覺(jué)技術(shù)的發(fā)展,基于圖像處理的煤矸檢測(cè)方法因設(shè)備簡(jiǎn)單、效率高等優(yōu)點(diǎn),得到越來(lái)越多學(xué)者的關(guān)注。該方法通過(guò)人工分析煤和矸石的灰度、紋理等空間域信息,將其直接作為特征或建立聯(lián)合特征,結(jié)合支持向量機(jī)、人工神經(jīng)網(wǎng)絡(luò)等機(jī)器學(xué)習(xí)算法進(jìn)行分類(lèi)[5-8],可有效實(shí)現(xiàn)煤矸識(shí)別,但存在特征不易提取或特征區(qū)分不明顯等問(wèn)題,檢測(cè)模型在不同煤矸分選場(chǎng)景下的泛化性能較差。
與經(jīng)典機(jī)器學(xué)習(xí)算法相比,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)可自動(dòng)提取圖像的魯棒和高級(jí)特征表示[9],被廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)任務(wù)中。文獻(xiàn)[10]分析了不同CNN模型對(duì)煤和矸石的分類(lèi)效果,結(jié)果表明SqueezeNet識(shí)別精度和速度最優(yōu)。文獻(xiàn)[11]利用VGG16結(jié)合遷移學(xué)習(xí)進(jìn)行煤矸檢測(cè),檢測(cè)精度達(dá)82.5%??紤]到實(shí)際煤矸分選場(chǎng)景中,煤和矸石出現(xiàn)在輸送帶上的位置是隨機(jī)的,因此利用抓取裝置進(jìn)行煤矸分選時(shí)不僅需要區(qū)分煤和矸石的類(lèi)別信息,還要準(zhǔn)確獲取矸石在輸送帶上的位置信息。為此,文獻(xiàn)[12]提出了一種基于深度學(xué)習(xí)模型的分層煤矸檢測(cè)框架,并在3種不同的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。文獻(xiàn)[13]針對(duì)大粒度矸石分選目標(biāo),結(jié)合區(qū)域生成網(wǎng)絡(luò)(Region Proposal Network,RPN)建立了煤矸目標(biāo)檢測(cè)模型。文獻(xiàn)[14]提出了一種由檢測(cè)器和鑒別器組成的級(jí)聯(lián)煤矸檢測(cè)網(wǎng)絡(luò),檢測(cè)精度達(dá)91.3%,但檢測(cè)速度取決于每張圖像中的煤矸樣本數(shù)量。
在實(shí)際煤矸分選場(chǎng)景中,復(fù)雜惡劣的環(huán)境導(dǎo)致基于深度學(xué)習(xí)的煤矸檢測(cè)方法精度較低,特別是針對(duì)圖像中像素點(diǎn)較少的煤矸小目標(biāo),很容易發(fā)生漏檢現(xiàn)象,且難以兼顧檢測(cè)精度和實(shí)時(shí)性,同時(shí)難以部署在存儲(chǔ)和計(jì)算資源有限的嵌入式平臺(tái)上。為了及時(shí)準(zhǔn)確地獲取煤矸類(lèi)別和位置信息,本文對(duì)基于多尺度特征圖進(jìn)行目標(biāo)檢測(cè)的SSD(Single Shot MultiBox Detector)模型[15]進(jìn)行改進(jìn),結(jié)合GhostNet輕量化特征提取網(wǎng)絡(luò)、自注意力機(jī)制、錨框優(yōu)化方法,構(gòu)建了Ghost-SSD模型,由此提出一種輕量化煤矸目標(biāo)檢測(cè)方法,并采用以輸送帶為背景采集的煤矸數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),驗(yàn)證了該方法的有效性。
SSD是一種基于多尺度特征圖的一階段目標(biāo)檢測(cè)模型。其主干特征提取網(wǎng)絡(luò)以VGG16為基礎(chǔ),并將VGG16的FC6層和FC7層轉(zhuǎn)換為卷積層,同時(shí)增加了4層擴(kuò)展層。與Faster-RCNN[16]、YOLO[17]等只提取頂層特征圖進(jìn)行檢測(cè)的模型不同,SSD模型分別采用38×38,19×19,10×10,5×5,3×3,1×1這6個(gè)尺度的特征進(jìn)行預(yù)測(cè)。在SSD模型中,隨著特征提取網(wǎng)絡(luò)層數(shù)和下采樣操作次數(shù)的增多,特征圖對(duì)應(yīng)原始圖像的感受野[18]逐漸增大,因此淺層特征圖有利于檢測(cè)小目標(biāo),深層特征圖有利于檢測(cè)大目標(biāo)。SSD模型利用不同尺度的特征圖進(jìn)行目標(biāo)檢測(cè),提高了模型泛化能力。
SSD模型借鑒Faster-RCNN模型的候選框生成思想,根據(jù)每個(gè)特征圖的尺寸對(duì)原始圖像劃分網(wǎng)格,在每個(gè)網(wǎng)格的中心點(diǎn)生成不同長(zhǎng)寬比的錨框,6個(gè)尺度的特征圖中每個(gè)網(wǎng)格點(diǎn)生成錨框的數(shù)量分別為4, 6, 6, 6, 4, 4,利用卷積操作預(yù)測(cè)每個(gè)先驗(yàn)框的位置偏移量和類(lèi)別概率,通過(guò)設(shè)置閾值篩選預(yù)測(cè)結(jié)果,并利用非極大值抑制得出最終檢測(cè)結(jié)果。SSD模型的訓(xùn)練損失包括類(lèi)別置信度損失和定位損失,前者采用多分類(lèi)交叉熵?fù)p失函數(shù),后者采用Smooth L1損失函數(shù)。
GhostNet的核心思想在于采用線性變換代替部分常規(guī)卷積進(jìn)行特征提取[19],減少了推理計(jì)算量,與以往的輕量化網(wǎng)絡(luò)相比,可更好地利用特征之間的相關(guān)性和冗余性。Ghost模塊是GhostNet的基本結(jié)構(gòu)。該模塊首先采用常規(guī)卷積對(duì)輸入特征圖進(jìn)行特征提取,生成基礎(chǔ)特征圖;然后對(duì)基礎(chǔ)特征圖的每一個(gè)通道做線性變換(深度卷積),生成Ghost特征圖;最后堆疊基礎(chǔ)特征圖和Ghost特征圖作為輸出。
GhostNet有步幅為1和步幅為2這2種瓶頸結(jié)構(gòu),如圖1所示。2種結(jié)構(gòu)中分別在不同位置加入批量歸一化(Batch Normalization,BN)層和Relu激活函數(shù)。步幅為1的結(jié)構(gòu)中,第1個(gè)Ghost模塊用于增加通道數(shù),第2個(gè)Ghost模塊用于減少通道數(shù),從而保證與輸入特征圖的尺寸一致。步幅為2的結(jié)構(gòu)則使用下采樣和步幅為2的深度卷積進(jìn)行shortcut路徑匹配。
(a)步幅為1
Ghost-SSD模型結(jié)構(gòu)如圖2所示。該模型采用GhostNet代替VGG16作為主體網(wǎng)絡(luò)層。為了保持?jǐn)U展層包含特征圖的尺寸不變,主體網(wǎng)絡(luò)層保留GhostNet的前5個(gè)特征提取塊,去掉其余特征提取塊和全連接層。Ghost模塊中每個(gè)通道基礎(chǔ)特征圖對(duì)應(yīng)的冗余特征圖數(shù)量設(shè)置為2。輸入圖像的分辨率調(diào)整至300×300后,分別經(jīng)過(guò)主體網(wǎng)絡(luò)層、擴(kuò)展層提取煤矸特征,最終選用6個(gè)尺度的特征圖預(yù)測(cè)煤矸類(lèi)別和位置信息。
圖2 Ghost-SSD模型結(jié)構(gòu)
SSD模型采用多尺度特征圖檢測(cè)目標(biāo),提高了對(duì)不同大小煤矸的檢測(cè)能力,但淺層特征圖中語(yǔ)義信息不足,同時(shí)夾雜較多的背景噪聲,影響了小目標(biāo)檢測(cè)效果。針對(duì)該問(wèn)題,在尺度為38×38,19×19的特征圖進(jìn)行檢測(cè)之前,引入2條分支重新標(biāo)定特征圖,每條分支分別以2種尺度的特征圖為輸入,經(jīng)過(guò)自注意力模塊(Self-Attention Module,SAM)增強(qiáng)有效特征,抑制背景噪聲,同時(shí)利用擴(kuò)張卷積增大淺層特征圖的感受野,從而提高淺層特征圖對(duì)煤矸目標(biāo)的特征提取能力。受ResNet[20]啟發(fā),將輸入特征圖與SAM的輸出進(jìn)行shortcut連接,保證網(wǎng)絡(luò)更容易被優(yōu)化。分支最后加入1×1卷積層,實(shí)現(xiàn)特征跨通道交互和信息整合。
SAM在機(jī)器翻譯模型Transformer[21]中得到成功應(yīng)用,可捕獲全局上下文信息的長(zhǎng)期依賴(lài)關(guān)系。本文針對(duì)38×38,19×19尺度的特征圖引入SAM(圖3),得到淺層特征圖中任意2個(gè)位置的全局依賴(lài)關(guān)系,從而抑制淺層特征圖中包含的背景噪聲,突出前景區(qū)域特征,并在SAM中引入擴(kuò)張卷積,通過(guò)設(shè)置不同的擴(kuò)張率,豐富淺層特征圖的語(yǔ)義信息。
圖3 SAM結(jié)構(gòu)
設(shè)SAM輸入特征圖為x,x∈Rh×w×c,h,w分別為輸入特征圖的高度和寬度。x分別經(jīng)過(guò)3個(gè)分支q,p,v。分支q,p均使用3×3擴(kuò)張卷積對(duì)x進(jìn)行尺度縮放,同時(shí)擴(kuò)大x的感受野,擴(kuò)張率r分別設(shè)置為1,3,得到輸出Q(x)∈Rh×w×c/t,P(x)∈Rh×w×c/t,其中t為輸出通道數(shù)相比輸入縮放的倍數(shù),本文設(shè)置為8。對(duì)Q(x),P(x)進(jìn)行維度變換,得Q(x)∈RN×c/t,P(x)∈RN×c/t,其中N=hw。對(duì)P(x)的轉(zhuǎn)置與Q(x)的乘積進(jìn)行softmax運(yùn)算,得到注意力圖θ(x)∈RN×N。分支v使用3×3擴(kuò)張卷積,擴(kuò)張率r設(shè)置為5,輸出V(x)∈Rh×w×c,將其維度變換為RN×c。將θ(x)與V(x)相乘,得到自注意力特征圖y∈RN×c,并將其維度變換為Rh×w×c。
Ghost-SSD模型訓(xùn)練前,采用K-means算法對(duì)錨框進(jìn)行聚類(lèi),根據(jù)聚類(lèi)結(jié)果重新設(shè)計(jì)錨框尺寸,以滿足特定任務(wù)需求,提高煤矸識(shí)別精度。K-means算法首先隨機(jī)給定K個(gè)中心點(diǎn),然后計(jì)算每個(gè)中心點(diǎn)到聚類(lèi)中心點(diǎn)的距離,按照最鄰近原則將待分類(lèi)樣本點(diǎn)分到各個(gè)簇,最后計(jì)算每個(gè)簇中所有點(diǎn)的坐標(biāo)平均值,并將該值作為新的聚類(lèi)中心,經(jīng)過(guò)反復(fù)迭代獲得最終聚類(lèi)結(jié)果。
傳統(tǒng)的聚類(lèi)方法一般選用歐氏距離作為度量標(biāo)準(zhǔn),但針對(duì)目標(biāo)檢測(cè)問(wèn)題,更適合使用每個(gè)錨框與聚類(lèi)中心框的交并比作為度量標(biāo)準(zhǔn)。本文使用的度量參數(shù)為
D=1-R(b,m)
(1)
式中:b為所有真實(shí)標(biāo)注框的集合;m為聚類(lèi)中心框的集合;R(b,m)為真實(shí)標(biāo)注框與聚類(lèi)中心框之間的交并比。
通過(guò)改變K進(jìn)行多次聚類(lèi)實(shí)驗(yàn),求出每次聚類(lèi)的平均交并比,結(jié)果如圖4所示??煽闯鯧<6時(shí)平均交并比增長(zhǎng)較快,K>6時(shí)趨于平緩。結(jié)合SSD模型錨框參數(shù)設(shè)置,選擇K=6對(duì)煤矸數(shù)據(jù)集進(jìn)行聚類(lèi),可視化結(jié)果如圖5所示。根據(jù)圖5對(duì)Ghost-SSD模型的錨框尺寸進(jìn)行優(yōu)化,得錨框的長(zhǎng)寬比參數(shù)為0.65, 0.90, 1.23, 1.39, 1.55, 1.80,每個(gè)尺度網(wǎng)格點(diǎn)生成錨框個(gè)數(shù)均為6。
圖4 不同K值下錨框聚類(lèi)平均交并比
圖5 K=6時(shí)錨框聚類(lèi)結(jié)果
以輸送帶為背景,共采集2 886張煤矸圖像,采用LabelImg軟件對(duì)每張圖像中的煤矸類(lèi)別和區(qū)域進(jìn)行標(biāo)注,檢測(cè)類(lèi)別包括煤和矸石2類(lèi)。隨機(jī)選取2 500張圖像作為訓(xùn)練集,386張圖像作為測(cè)試集,訓(xùn)練集和驗(yàn)證集的比例設(shè)置為9∶1。為了更好地反映模型的多目標(biāo)檢測(cè)效果,對(duì)測(cè)試集中煤和矸石樣本數(shù)進(jìn)行統(tǒng)計(jì),結(jié)果見(jiàn)表1。根據(jù)表1得平均每張煤矸圖像包含3.9個(gè)真實(shí)樣本。
表1 煤矸測(cè)試集真實(shí)樣本統(tǒng)計(jì)
實(shí)驗(yàn)在TensorFlow2.0框架下進(jìn)行,操作系統(tǒng)為Ubuntu18.04,處理器為Intel@Xeon E5-2630 v4,內(nèi)存為16 GB,顯卡為Quadro P2200,安裝CUDA10.1和cudnn7.6.5支持圖形處理器(Graphics Processing Unit,GPU)使用,編程語(yǔ)言采用python3.7。模型訓(xùn)練時(shí),超參數(shù)batch size設(shè)置為8,epoch設(shè)置為500;初始學(xué)習(xí)率設(shè)置為0.001,并采用自動(dòng)衰減策略調(diào)節(jié)學(xué)習(xí)率,當(dāng)驗(yàn)證集損失值連續(xù)10次未下降10-4或上升時(shí),學(xué)習(xí)率更新為原來(lái)的0.9倍;優(yōu)化器采用Adam。
采用平均精度(Average Precision, AP)、平均精度均值(mean Average Precision, mAP)和幀率3個(gè)指標(biāo)對(duì)目標(biāo)檢測(cè)模型進(jìn)行評(píng)估。設(shè)計(jì)消融實(shí)驗(yàn)測(cè)試本文改進(jìn)策略的效果。首先,將未經(jīng)改動(dòng)的SSD模型作為基準(zhǔn)模型,然后分別測(cè)試加入錨框優(yōu)化方法、GhostNet和SAM的檢測(cè)效果,最后將 3種改進(jìn)策略同時(shí)加入SSD模型。所有實(shí)驗(yàn)均在同一煤矸數(shù)據(jù)集上進(jìn)行,且實(shí)驗(yàn)環(huán)境和訓(xùn)練方式保持一致。實(shí)驗(yàn)結(jié)果見(jiàn)表2。
表2 消融實(shí)驗(yàn)結(jié)果
從表2可看出,基準(zhǔn)模型分別加入錨框優(yōu)化方法和SAM后,mAP均有所提升;采用GhostNet構(gòu)建輕量化模型可在mAP損失很小的情況下,大幅提升模型檢測(cè)速度;融合錨框優(yōu)化方法、GhostNet、SAM的Ghost-SSD模型的mAP為88.7%,較基準(zhǔn)模型提高3.6%,檢測(cè)速度為108 幀/s,較基準(zhǔn)模型提高75幀/s,實(shí)現(xiàn)了檢測(cè)精度和速度的提升。
SSD模型與Ghost-SSD模型針對(duì)煤矸測(cè)試集中每一類(lèi)的檢測(cè)結(jié)果見(jiàn)表3??煽闯鯣host-SSD模型較SSD模型對(duì)煤和矸石檢測(cè)的AP分別提高3.4%,3.7%,進(jìn)一步驗(yàn)證了Ghost-SSD模型可提高煤矸檢測(cè)精度。
表3 SSD,Ghost-SSD模型檢測(cè)結(jié)果對(duì)比
為了進(jìn)一步探究SAM的效果,對(duì)SSD模型與引入SAM的模型進(jìn)行對(duì)比實(shí)驗(yàn),利用Grad-cam算法[22]生成顯著圖,對(duì)目標(biāo)檢測(cè)區(qū)域進(jìn)行可視化分析,結(jié)果如圖6所示。顯著圖上可顯示與決策特征相關(guān)區(qū)域的顯著度,顏色越深則顯著度越高。從圖6可看出,SSD模型引入SAM可提高前景區(qū)域的顯著度,且可抑制背景噪聲,有利于增強(qiáng)淺層特征的表征能力。
圖6 煤矸顯著圖
SSD模型與Ghost-SSD模型的訓(xùn)練損失函數(shù)曲線如圖7所示。可看出Ghost-SSD模型的訓(xùn)練損失初始值低于SSD模型,訓(xùn)練過(guò)程中Ghost-SSD模型的訓(xùn)練損失在迭代100次后降至1以下并逐漸穩(wěn)定,且收斂值低于SSD模型。
圖7 SSD,Ghost-SSD模型訓(xùn)練損失函數(shù)曲線
為了直觀驗(yàn)證Ghost-SSD模型的有效性,從測(cè)試集中選取有代表性的圖像進(jìn)行實(shí)驗(yàn)。分別采用SSD模型和Ghost-SSD模型進(jìn)行煤矸檢測(cè),結(jié)果如圖8所示??煽闯鯯SD模型對(duì)于第1張圖像出現(xiàn)誤檢情況,對(duì)第2張、第4張圖像出現(xiàn)漏檢情況(第2張圖像中漏檢對(duì)象為表面與背景非常相似的矸石,第4張圖像中漏檢對(duì)象為小塊矸石),對(duì)第3張圖像出現(xiàn)定位誤差較大情況,而Ghost-SSD模型均能準(zhǔn)確檢測(cè)出每張圖像中的煤矸目標(biāo)。
(a)原圖
在實(shí)驗(yàn)環(huán)境和數(shù)據(jù)集均一致的條件下,分別采用SSD300,SSD512,F(xiàn)aster-RCNN,Yolov3,Ghost-SSD模型進(jìn)行煤矸檢測(cè)實(shí)驗(yàn),結(jié)果見(jiàn)表4??煽闯鯯SD512模型的mAP高于SSD300,但輸入分辨率的增大導(dǎo)致檢測(cè)速度降低;Faster-RCNN模型的mAP最高,但檢測(cè)速度在當(dāng)前實(shí)驗(yàn)環(huán)境下只有10幀/s;Yolov3模型的檢測(cè)速度較上述3種模型快,但精度較低;Ghost-SSD模型具有較高的檢測(cè)精度和速度,優(yōu)于其他模型。
表4 不同模型的煤矸檢測(cè)結(jié)果
(1)為了提高煤矸目標(biāo)檢測(cè)精度和速度,對(duì)SSD模型進(jìn)行改進(jìn),設(shè)計(jì)了Ghost-SSD模型。該模型以GhostNet網(wǎng)絡(luò)作為SSD模型主體網(wǎng)絡(luò)層,提高了煤矸目標(biāo)檢測(cè)速度;在淺層特征圖中引入SAM和擴(kuò)張卷積,增強(qiáng)了淺層特征圖對(duì)煤矸目標(biāo)的表征能力,提高了對(duì)煤矸小目標(biāo)的檢測(cè)效果;針對(duì)煤矸特定檢測(cè)目標(biāo)進(jìn)行K-means聚類(lèi)錨框優(yōu)化,提高了煤矸檢測(cè)精度。
(2)基于Ghost-SSD模型提出了輕量化煤矸目標(biāo)檢測(cè)方法,通過(guò)實(shí)驗(yàn)得出采用Ghost-SSD模型進(jìn)行煤矸檢測(cè)的精度和速度均優(yōu)于SSD,F(xiàn)aster-RCNN,Yolov3模型,且能夠有效檢測(cè)出煤矸小目標(biāo)。
(3)下一階段將重點(diǎn)研究在煤矸檢測(cè)環(huán)節(jié)之后加入目標(biāo)跟蹤技術(shù),提高煤矸識(shí)別定位穩(wěn)定性。