鄭 爽,梁云浩,武俊峰,喬 壯,劉付剛
(黑龍江科技大學(xué),黑龍江 哈爾濱 150022)
煤矸石作為煤炭生產(chǎn)過程中產(chǎn)生的副產(chǎn)物,在煤炭形成過程中與煤一同產(chǎn)生,但含碳量較低,混合在原煤中燃燒會降低原煤的燃燒效率,加劇大氣污染。一直以來,分選煤矸石是煤炭生產(chǎn)加工過程中的重要環(huán)節(jié),傳統(tǒng)的人工選矸方式存在工人勞動強度大、不易管理、生產(chǎn)環(huán)境差、易發(fā)生安全事故等問題。隨著科學(xué)技術(shù)的發(fā)展,挖掘和利用煤矸石的內(nèi)在屬性,利用數(shù)字信號處理的方式進(jìn)行煤矸石分揀已成為眾多學(xué)者的研究熱點。其中,來文豪等[1]提出了一種基于多光譜成像技術(shù)和目標(biāo)檢測的煤矸石智能分離方法,該方法不僅能夠識別出煤和煤矸石,還能獲取兩者的相對位置和相對大小,對煤矸石的識別和分離具有重要的指導(dǎo)意義;曹珍貫等[2]提出一種基于熱成像技術(shù)和深度學(xué)習(xí)算法的煤矸石圖像識別方法,利用熱成像技術(shù)進(jìn)行煤矸石圖像采集,采用卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建煤矸石圖像識別模型,并與兩個可見光煤矸石圖像進(jìn)行對比實驗研究,實驗結(jié)果表明利用熱成像技術(shù)能顯著提升煤和矸石圖像的差異性,具有良好的識別效果;陳雪梅等[3]根據(jù)煤和煤矸石表面粗糙度的不同,利用差分二維法來計算表面紋理不同的煤與煤矸石圖像的粗糙度,達(dá)到識別煤矸石的效果。以上的煤矸石分選方法大都是基于人工設(shè)計的灰度、密度、紋理等特征數(shù)據(jù),存在提取特征過程復(fù)雜、識別精度低等問題。隨著計算機科學(xué)和人工智能技術(shù)的進(jìn)步,利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)自動提取特征的圖像分類技術(shù)[4-7],該技術(shù)已用于人臉識別、醫(yī)療圖像處理、遙感圖像分類、垃圾分類等領(lǐng)域,有望解決傳統(tǒng)煤矸石分揀技術(shù)中的弊端。本文基于深度學(xué)習(xí)技術(shù)對煤與煤矸石分類方法進(jìn)行研究,改進(jìn)了AlexNet分類網(wǎng)絡(luò),并通過風(fēng)格遷移數(shù)據(jù)增強的方法對煤與煤矸石數(shù)據(jù)集進(jìn)行處理,提高煤與煤矸石分類的準(zhǔn)確率。
AlexNet網(wǎng)絡(luò)是一種經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò),由ALEX最先提出[8]。AlexNet網(wǎng)絡(luò)由5個卷積層、6個池化層和3個全連接層組成,第三個全連接層的輸出連接到一個1 000路的Softmax層,進(jìn)行1 000個類別的預(yù)測輸出。 為了提高模型的準(zhǔn)確率,AlexNet網(wǎng)絡(luò)給出了局部歸一化LRN層進(jìn)行神經(jīng)激活的放大或抑制[9],使用LRN層和Dropout來減小網(wǎng)絡(luò)的過擬合[10-11],針對不同訓(xùn)練任務(wù)LRN層的位置會存在很大的差異,因此在圖像分類任務(wù)中使用LRN層反而增加了網(wǎng)絡(luò)調(diào)優(yōu)的困難,使圖像分類任務(wù)變得更加繁瑣。
由于BN層具有提高網(wǎng)絡(luò)泛化性能的特點,可以代替LRN層和Dropout的作用。隨著卷積神經(jīng)網(wǎng)絡(luò)越來越深入,在數(shù)據(jù)訓(xùn)練過程中非線性激活的數(shù)據(jù)分布會變得越來越發(fā)散,導(dǎo)致在進(jìn)行梯度更新時產(chǎn)生梯度消失,這時訓(xùn)練就會收斂的很慢甚至停止。BN層的主要作用就是解決訓(xùn)練過程中梯度數(shù)據(jù)分布變化可能引起的梯度消失問題[12-13],進(jìn)而提高網(wǎng)絡(luò)的訓(xùn)練速度。
BN層使用批量歸一標(biāo)準(zhǔn)化的方法來平均神經(jīng)網(wǎng)絡(luò)每一層神經(jīng)元的輸入值,使其重新分布到均值為0,方差為1的正態(tài)分布,使越來越失真的分布返回到更標(biāo)準(zhǔn)的分布,使這些訓(xùn)練的數(shù)據(jù)重新回落到非線性激活函數(shù)的有效區(qū)域進(jìn)行梯度更新,從而避免了梯度消失的問題。當(dāng)進(jìn)行反向傳播時,經(jīng)過該層的梯度乘以對應(yīng)層的參數(shù),即當(dāng)前向傳播,表達(dá)式見式(1)。
(1)
反向傳播時表達(dá)式見式(2)。
(2)
考慮從l層傳到k層的情況,可以得出式(3)。
(3)
式中,ωi的累乘就是問題所在,當(dāng)ωi小于1時就會發(fā)生梯度彌散,當(dāng)ωi大于1時就會產(chǎn)生梯度爆炸問題。BN層的作用減小了ωi影響,因此BN層可以消除梯度消失和爆炸問題。
AlexNet網(wǎng)絡(luò)在前幾個卷積層中使用較大的卷積核進(jìn)行特征提取,從網(wǎng)絡(luò)訓(xùn)練參數(shù)的角度分析,使用較大的卷積核會增加網(wǎng)絡(luò)的參數(shù)量,減緩訓(xùn)練的速度。而使用數(shù)量多且較小的卷積核更容易增大感受野,同時減少了網(wǎng)絡(luò)模型的參數(shù),加快網(wǎng)絡(luò)的訓(xùn)練速度,本文選用3×3的卷積核代替原網(wǎng)絡(luò)前幾層中較大的卷積核,利用BN層代替LRN層和Dropout,并將改進(jìn)后的網(wǎng)絡(luò)命名為AlexNet-SN,主要測算依據(jù)式(4)~式(7)。
2×3×3×C2/5×5×C2=72%
(4)
(28-5)/1+1=24
(5)
(28-3)/1+1=26
(6)
(26-3)/1+1=24
(7)
假設(shè)計算滿足式(4),即兩層大小為3×3的卷積核的參數(shù)量,相較于大小為5×5的卷積核參數(shù)量減少了28%;從感受野角度分析[14-15],設(shè)特征圖的大小為28×28,卷積步長為1,使用一層5×5的卷積核,由式(5)可得,其輸出特征圖的感受野為24×24。
當(dāng)使用兩層3×3的卷積核,第一層由式(6)可得,輸出特征圖的大小為26×26,繼續(xù)經(jīng)過第二層3×3的卷積核,由式(7)可得,輸出特征圖的大小為24×24,即感受野大小為24×24。
由上述結(jié)果可知,兩層大小為3的卷積核與一層大小為5的卷積核所帶來的感受野是一樣的。因此,使用數(shù)量多且較小的卷積核更容易增大感受野,同時減少了網(wǎng)絡(luò)模型的參數(shù),加快了網(wǎng)絡(luò)的訓(xùn)練速度。 本文改進(jìn)后的AlexNet-SN網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 AlexNet-SN網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Structure diagram of AlexNet-SN
為了提高數(shù)據(jù)多樣性,避免樣本不均衡,進(jìn)一步提高分類的準(zhǔn)確率,本文利用風(fēng)格遷移的方法對數(shù)據(jù)集進(jìn)行擴(kuò)充,通過數(shù)據(jù)增強手段增加數(shù)據(jù)數(shù)量,降低樣本不均衡比例。
風(fēng)格遷移網(wǎng)絡(luò)是指在不改變圖像的高層語義內(nèi)容特征的基礎(chǔ)上,快速將圖像A的風(fēng)格藝術(shù)應(yīng)用到圖像B上,生成一幅具有圖像A風(fēng)格和圖像B內(nèi)容的圖像C。這樣就可以得到具有相同內(nèi)容但風(fēng)格不同的圖像,對于理解圖像和圖片表示的研究具有很重要的意義。圖2為圖像快速風(fēng)格遷移網(wǎng)絡(luò)。由圖2可知,快速風(fēng)格遷移網(wǎng)絡(luò)由兩部分組成:圖像轉(zhuǎn)換網(wǎng)絡(luò)fw和損失網(wǎng)絡(luò)Φ。圖像轉(zhuǎn)換網(wǎng)絡(luò)的主體是深度殘差網(wǎng)絡(luò)[12],通過迭代訓(xùn)練去更新權(quán)重參數(shù)W;損失網(wǎng)絡(luò)采用VGG-19網(wǎng)絡(luò)[16],對于損失網(wǎng)絡(luò)分別定義特征(內(nèi)容)損失lfeat和風(fēng)格損失lstyle來衡量內(nèi)容和風(fēng)格上的差距。
圖2 圖像快速風(fēng)格遷移網(wǎng)絡(luò)Fig.2 Image fast style migration network
本文采用的圖像轉(zhuǎn)換網(wǎng)絡(luò)由4個用于卷積特征計算的卷積層、5個增加網(wǎng)絡(luò)深度的殘差層和2個用于細(xì)節(jié)還原的反卷積層組合而成[17]。卷積層和反卷積層分別采用短步長進(jìn)行下采樣和上采樣。除了輸出層外每個卷積層和反卷積層之外,是Relu激活層。 經(jīng)過兩次非線性變換后,輸入數(shù)據(jù)及其初始值通過殘差層相加,然后將相加后的值再輸入到Relu激活層[18]。圖像轉(zhuǎn)換網(wǎng)絡(luò)的整體結(jié)構(gòu)如圖3所示。
圖3 圖像轉(zhuǎn)換網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.3 Structure diagram of image conversion network
(8)
本文利用內(nèi)容損失函數(shù)和風(fēng)格損失函數(shù)兩個感知損失函數(shù)來衡量兩張圖片之間內(nèi)容和風(fēng)格的差別。每一張輸入的圖像x都有一個內(nèi)容目標(biāo)yc和一個風(fēng)格目標(biāo)ys,圖像風(fēng)格遷移就是把風(fēng)格ys結(jié)合到內(nèi)容x=yc上。這里損失網(wǎng)絡(luò)雖然也是卷積神經(jīng)網(wǎng)絡(luò),但是參數(shù)不做更新,只用來做內(nèi)容損失和風(fēng)格損失的計算。為了確保這個損失網(wǎng)絡(luò)在內(nèi)容和風(fēng)格上具備優(yōu)良的提取能力,本文采用了VGG-19網(wǎng)絡(luò)模型,網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 VGG-19網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 VGG-19 network structure
1) 內(nèi)容損失函數(shù)。本文定義的內(nèi)容損失函數(shù)見式(8)。
式中:φj(y)為網(wǎng)絡(luò)φ的第j層;y為輸入;Cj×Hj×Wj為特征圖譜的形狀。該函數(shù)懲罰了生成圖像與目標(biāo)圖像的內(nèi)容偏差,要求生成圖像在內(nèi)容細(xì)節(jié)上與輸入的目標(biāo)圖像極其相似。該損失函數(shù)的值越小,表示處理前后的圖在內(nèi)容上越相似,反之越大。
2) 風(fēng)格損失函數(shù)。內(nèi)容損失懲罰了生成圖像與目標(biāo)圖像的內(nèi)容偏差,所以也希望風(fēng)格損失去懲罰風(fēng)格上的偏離,如顏色、紋理、共同模式等方面。為達(dá)到此效果,本文提出了風(fēng)格重建的損失函數(shù),見式(9)。
(9)
式中:φj(x)為網(wǎng)絡(luò)φ的第j層;x為輸入;Cj×Hj×Wj為特征圖譜的形狀。
本文從不同繪畫風(fēng)格的圖像中選取6種風(fēng)格圖像(抽象、漫畫、印象、星空、素描、海浪),然后利用這6種不同的風(fēng)格圖像訓(xùn)練得到6個快速風(fēng)格遷移模型,6種風(fēng)格圖像如圖5所示。
圖5 不同風(fēng)格圖像Fig.5 Different style images
利用6個風(fēng)格遷移模型在目標(biāo)圖像上進(jìn)行風(fēng)格遷移,得到的遷移效果圖如圖6所示。
圖6 圖像風(fēng)格遷移效果Fig.6 Image style transfer effect
本文利用經(jīng)典的Grad-CAM算法[20-21]對給定圖像進(jìn)行熱力激活,并通過熱力激活強度,得到給定圖像相對其所在類別的置信度,這個置信度通過給定圖像被激活的熱力面積來表示,熱力激活的表示分布在0~1之間,得到的結(jié)果越靠近1,表示給定圖像對其所在類別的置信度越高,反之越低。通過Grad-CAM算法,對6種快速風(fēng)格遷移模型遷移后的數(shù)據(jù)進(jìn)行熱力激活,得到不同風(fēng)格熱力激活統(tǒng)計表,見表1。
表1 不同風(fēng)格熱力激活統(tǒng)計表Table 1 Statistics of thermal activation of different styles
由表1可知,煤與煤矸石數(shù)據(jù)利用星空風(fēng)格和海浪風(fēng)格進(jìn)行風(fēng)格遷移后,熱力激活值最高,數(shù)值分別為0.93和0.94。因此,得出星空和海浪快速風(fēng)格遷移模型,最適合對煤與煤矸石二分類數(shù)據(jù)進(jìn)行數(shù)據(jù)增強。
本文首先將AlexNet網(wǎng)絡(luò)與改進(jìn)后的AlexNet網(wǎng)絡(luò)進(jìn)行實驗驗證分析。將采集的1 600張大顆粒煤與煤矸石圖像數(shù)據(jù)集,按照煤與煤矸石各800張,大小在100~150 mm之間,分別輸入到原始AlexNet網(wǎng)絡(luò)和改進(jìn)的AlexNet-SN網(wǎng)絡(luò)進(jìn)行二分類訓(xùn)練,其中訓(xùn)練集的數(shù)據(jù)700張,驗證集的數(shù)據(jù)100張。 訓(xùn)練參數(shù)的設(shè)置具體為:batch_size設(shè)置為32,訓(xùn)練輪數(shù)為100個epoch,steps_per_epoch為100,學(xué)習(xí)率為0.000 1,使用RMSprop優(yōu)化器,binary_crossentropy為損失函數(shù)。最終驗證集中的正確率(acc)變化如圖7所示,損失值(loss)變化如圖8所示。
圖7 煤與煤矸石驗證集正確率Fig.7 Accuracy rate of coal and coal gangue verification set
圖8 煤與煤矸石驗證集損失值Fig.8 Coal and coal gangue verification set loss value
由圖7和圖8可知,改進(jìn)的網(wǎng)絡(luò)相較于原網(wǎng)絡(luò)在準(zhǔn)確率上有一定提升,同時,改進(jìn)后的AlexNet-SN網(wǎng)絡(luò)的訓(xùn)練損失值相較原網(wǎng)絡(luò)更低,因此改進(jìn)后的網(wǎng)絡(luò)性能相較原網(wǎng)絡(luò)有一定的提升。
為了體現(xiàn)風(fēng)格遷移數(shù)據(jù)增強的優(yōu)勢,對煤與煤矸石分類數(shù)據(jù)集中的訓(xùn)練集圖像隨機利用旋轉(zhuǎn)、裁剪、加噪等數(shù)據(jù)增強方式,進(jìn)行一倍數(shù)量的增強擴(kuò)充得到一個新的數(shù)據(jù)集;利用快速風(fēng)格遷移模型,對數(shù)據(jù)集中的訓(xùn)練集數(shù)據(jù)也進(jìn)行一倍數(shù)量的增強擴(kuò)充,得到一個擴(kuò)充后的數(shù)據(jù)集,將擴(kuò)充后的數(shù)據(jù)集在AlexNet-SN網(wǎng)絡(luò)模型中進(jìn)行試驗。
利用AlexNet-SN網(wǎng)絡(luò),分別對數(shù)據(jù)增強后的煤與煤矸石二分類數(shù)據(jù)集進(jìn)行訓(xùn)練,訓(xùn)練過程中,使用RMSprop優(yōu)化器,binary_crossentropy損失函數(shù),batch_size設(shè)置為32,訓(xùn)練100個epoch,steps_per_epoch為100,學(xué)習(xí)率設(shè)置為0.000 1。兩個數(shù)據(jù)集經(jīng)該分類網(wǎng)絡(luò)訓(xùn)練后,驗證集上的正確率(acc)變化如圖9所示,損失值(loss)變化如圖10所示。
圖9 煤與煤矸石驗證集正確率Fig.9 Accuracy rate of coal and coal gangue verification set
圖10 煤與煤矸石驗證集損失值Fig.10 Coal and coal gangue verification set loss value
由圖9和圖10可知,快速風(fēng)格遷移增強的數(shù)據(jù)集,相較于傳統(tǒng)方法增強的數(shù)據(jù)集,從訓(xùn)練開始的階段到訓(xùn)練結(jié)束的階段,在分類訓(xùn)練的準(zhǔn)確率和損失值上都有明顯的改善。本文對訓(xùn)練結(jié)束后得到的數(shù)據(jù)進(jìn)行記錄,見表2。由表2可知,相比于傳統(tǒng)增強方法,利用快速風(fēng)格遷移增強的方法,在準(zhǔn)確率上提高了約1.8%,在損失值上降低了約2.0%。
表2 AlexNet-SN訓(xùn)練結(jié)果表Table 2 Results of AlexNet-SN training
1) 對AlexNet網(wǎng)絡(luò)進(jìn)行了改進(jìn),選用3×3的卷積核代替原網(wǎng)絡(luò)前幾層中較大的卷積核,利用BN層代替LRN層和Dropout,減少了網(wǎng)絡(luò)模型的參數(shù),加快了網(wǎng)絡(luò)的訓(xùn)練速度,并在煤與煤矸石分類準(zhǔn)確率方面有了一定的提升。
2) 提出了一種風(fēng)格遷移的數(shù)據(jù)增強方式,并將該數(shù)據(jù)增強方法與改進(jìn)的AlexNet-SN分類網(wǎng)絡(luò)相結(jié)合,與傳統(tǒng)的旋轉(zhuǎn)、裁剪、加噪等數(shù)據(jù)增強相比,該方法的準(zhǔn)確率提高了1.8%,損失率下降了約2.0%,該方法為煤與煤矸石的智能分選提供了新思路。