郭永存,王 希,何 磊,劉普壯
(1.安徽理工大學 深部煤礦采動響應與災害防控國家重點實驗室,安徽 淮南 232001;2.礦山智能技術與裝備省部共建協(xié)同創(chuàng)新中心,安徽 淮南 232001;3.安徽理工大學 礦山智能裝備與技術安徽省重點實驗室,安徽 淮南 232001;4.安徽理工大學 電氣與信息工程學院,安徽 淮南 232001)
機械化開采的普及使原煤中夾矸率不斷增高,混雜的矸石一方面會降低煤炭的燃燒效率和能源利用率,另一方面會排放大量煙塵和有毒氣體,危害人體健康,污染自然環(huán)境,這與我國倡導的綠色發(fā)展理念相違背[1],因此分選出原煤中混雜的矸石塊是發(fā)展?jié)崈裘杭夹g的前提。目前基于X射線的煤矸識別方法成本高,具有輻射危險,且識別率受煤和矸石粒度大小限制[2-3]。在獲取目標圖像時,與射線法相比,高幀率的CCD、CMOS工業(yè)相機不僅對人體無危害、成本低,而且可以獲取目標清晰的表面特征[4]?;跈C器學習的煤矸識別算法,如:改進SVM算法[4-5],需人工利用圖像處理、模式識別技術手動提取煤和矸石圖像表面紋理、灰度值等淺層特征,過程繁瑣,且提取到的若干個淺層特征無法完全反映煤和矸石區(qū)別所在,模型識別準確率低。自卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network, CNN)獲得2012年圖像分類競賽冠軍(ILSVRC12)以來,深層卷積神經(jīng)網(wǎng)絡的研究很快引起廣泛關注,并被成功應用到人臉識別[6]、文本分類[7]、農(nóng)作物檢測[8-9]等領域。在煤矸分選領域中, ALFARZAEAI等[10]基于CNN開發(fā)了CGR-CNN煤矸識別模型,并以煤和矸石熱圖像作為模型輸入樣本,借助2個試驗硬件平臺訓練了170輪次后,最終的平均測試精度為98.75%。SU等[11]依據(jù)LeNet5網(wǎng)絡設計適合于煤矸的分類模型,依托煤和矸石各10 000張的訓練樣本,在IBM Power8服務器上訓練10 000輪次,識別率有較大提升。以上研究表明:重新設計并訓練一個深度CNN模型需要眾多帶注釋的樣本,且模型訓練參數(shù)較多,試驗硬件性能需求較高。這限制了許多深度CNN被應用到小數(shù)據(jù)煤矸樣本的分類問題。
為解決以上問題,國內外學者提出基于遷移學習算法構建深度CNN識別模型,利用較少的樣本集就可訓練模型參數(shù),且遷移后的模型性能較好[12-14]。同樣,也有一些學者引進遷移學習思想構建煤矸識別模型, PU等[15]基于遷移學習技術改進VGG16網(wǎng)絡識別煤矸,最終的測試識別率達82.5%。但所用訓練樣本過少僅200張,且訓練時僅優(yōu)化了全連接層參數(shù),模型學習效果不佳,出現(xiàn)了欠擬合的情況。孫立新[16]使用960張煤和矸石圖片訓練遷移后的VGG16網(wǎng)絡,較原模型的識別率提高了3.25個百分點,但其煤和矸石圖片來源于網(wǎng)絡或者實驗室環(huán)境下拍攝,與真實生產(chǎn)環(huán)境下的煤和矸石狀態(tài)有較大差異,識別結果不可靠。徐志強等[17]采集實際生產(chǎn)環(huán)境中的煤和矸石圖片作為輸入,在基于經(jīng)典CNN網(wǎng)絡與輕量級網(wǎng)絡構建多種煤矸識別模型時,測試效果不理想,識別精度最高的模型為VGG16,其F1分數(shù)值僅為0.921。
針對現(xiàn)有技術問題,筆者通過搭建的機器視覺平臺獲取了667張多尺度形態(tài)、顏色的煤和矸石圖像,并采用圖像增強技術擴充數(shù)據(jù)集,增添樣本集的多樣性。對于小樣本煤和矸石數(shù)據(jù),設計了一種新的模型優(yōu)化方法,并構建了4種煤矸識別模型。分析每種模型取不同超參數(shù)時的訓練結果,進而確定每種網(wǎng)絡的最優(yōu)超參數(shù)。采用評估參數(shù)對比每種模型改進前后的性能,最終確定了一種可以快速精準分選煤矸石的最優(yōu)模型。
CNN基本結構形式如圖1所示,是由卷積層、池化層交替組合,外加全連接層和分類器組成的深層網(wǎng)絡。CNN的成功應用歸因于其出色的多尺度高級特征表示,而不是手工設計低級特征[10]。
交替組合的卷積、池化層構成特征提取器,用于學習煤、矸石表面顯而易見的灰度、紋理等特征,以及內部深層語義特征。
全連接層包括扁平化層和隱含層,用于把圖像識別任務轉化為分類任務。扁平化層把淺層網(wǎng)絡提取到的高維特征矩陣轉化為一維特征向量。隱含層中每層之間的神經(jīng)元互相連接,采用Dropout技術隨機置零部分神經(jīng)元權重,弱化無關信息,緩解模型過擬合問題[18]。全連接層綜合淺層網(wǎng)絡提取到的圖像信息輸入到softmax分類器,以概率的方式輸出圖像識別結果。
深度遷移學習(Deep Transfer Learning)將遷移學習算法引用到深度模型的構建過程中,其目標是將在源任務上訓練好的網(wǎng)絡模型通過簡單的參數(shù)調整,適用到目標任務[8]。深度遷移學習為基于小數(shù)據(jù)樣本構建模型提供了一種全新的方法。
構建深度遷移學習模型,即將在相似數(shù)據(jù)集上訓練好的網(wǎng)絡特征提取層,有效地轉移到目標模型中,并根據(jù)實際應用重新設計全連接層。與設計并訓練一個全新的網(wǎng)絡模型相比,參數(shù)遷移方法大大減少了參數(shù)訓練時長,且能夠在普通計算機上操作。
CNN網(wǎng)絡雖在各領域得到了較好的應用,但網(wǎng)絡參數(shù)多、計算量大是其一直存在的問題,且參數(shù)計算量主要集中在全連接層[19]。原AlexNet、VggNet、ResNet網(wǎng)絡中淺層網(wǎng)絡提取到的特征圖大小分別為6×6×256、7×7×512、7×7×2 048。在把高緯度特征矩陣扁平化為一維向量時, AlexNet和VGGNet采用和特征圖同樣大小的卷積核進行卷積操作,分別得到9 216、25 088個神經(jīng)元連接到含有4 096個神經(jīng)元的隱含層[20-21],這極大增加了全連接層的計算量。ResNet則是采用全局平均池化(Global Average Pooling, GAP)[19]思想,以每張?zhí)卣鲌D的全部像素值為對象作均值池化,得到2 048個特征點連接到隱含層,從而減少了全連接層的參數(shù)[22]。
ResNet雖然發(fā)現(xiàn)并改善了全連接層計算量大的問題,但對于煤矸石二分類問題,2 048個神經(jīng)元仍顯得有些冗余,容易導致模型過擬合。即使采用了Dropout、L2正則化等技術,但仍沒有解決以上問題。
為節(jié)省構建煤矸識別模型的訓練成本,降低模型參數(shù)量,提出一種新的模型優(yōu)化方法——遷移權重&簡化神經(jīng)元(Transfer Weight-Reduce Neurons, TW-RN)。TW-RN模型優(yōu)化方法的目標是直接遷移預訓練模型的淺層權重參數(shù),同時在CNN扁平化層中采用GAP技術降低神經(jīng)元個數(shù), TW-RN模型優(yōu)化方法的思路如圖2所示。
圖2 TW-RN模型優(yōu)化方法
假設淺層網(wǎng)絡提取到的特征圖個數(shù)為N,大小為M×M,則第n個(n=1,2,…,N)個特征圖經(jīng)GAP降維后的輸出cn為:
(1)
第1個隱含層中第l(l=1,2,…,1 024)個神經(jīng)元的輸出yl為:
(2)
式中:f為ReLU激活函數(shù);θl, n為第1個隱含層與扁平化層之間的連接權值;bl為對應的偏置項。
同理,第2個隱含層中第d個(d=1,2,…,1 024)個神經(jīng)元的輸出zd為:
(3)
式中:θd, l為第2個隱含層與第1個隱含層神經(jīng)元之間的連接權值;bd為對應的偏置項。
(4)
為驗證TW-RN模型優(yōu)化方法的有效性,基于TW-RN法,分別對AlexNet、VGG16、VGG19、ResNet50四種網(wǎng)絡進行改進,構建Im_AlexNet、Im_VGG16、Im_VGG19、Im_ResNet50煤矸石識別模型。模型改進思路如圖3所示。
圖3 模型改進思路
首先采用遷移思想,把在ImageNet數(shù)據(jù)子集上訓練好的淺層網(wǎng)絡權重遷移到煤矸識別模型中。其次,根據(jù)圖4所示方法優(yōu)化模型全連接層, Im_AlexNet在卷積、池化層后添加GAP,直接把256維6×6大小的特征矩陣轉為256×1的列向量。由此,連接到隱含層神經(jīng)元的個數(shù)由9 216降為256個;同樣, Im_VGG16、Im_VGG19網(wǎng)絡采用GAP技術,把原輸入到隱含層的25 088個神經(jīng)元降為512個,同時2個隱含層的神經(jīng)元數(shù)降為1 024個,實現(xiàn)全連接層的參數(shù)降維。因原ResNet50網(wǎng)絡已采用GAP正則化技術,所以只把隱含層神經(jīng)元個數(shù)降為1 024個。在訓練模型時,對于網(wǎng)絡全連接層參數(shù),全部重新設置更新。
圖4 模型全連接層改進方法
首先依據(jù)擴充后形態(tài)各異的煤矸訓練樣本,對每種模型的優(yōu)化器類型、學習率進行了尋優(yōu)仿真試驗,確定基于TW-RN法設計的幾種模型的最優(yōu)超參數(shù)。然后再基于劃分好的煤矸測試集,試驗對比改進前后的每種模型的效果,確定一種煤矸識別最佳模型,仿真試驗過程如圖5所示。
圖5 仿真試驗過程
參數(shù)尋優(yōu)仿真試驗時,網(wǎng)絡反向傳播中參數(shù)優(yōu)化方法分別選擇自適應動量估計方法Adam(Adaptive moment estimation)、帶動量因子的隨機梯度下降方法SGD(Stochastic Gradient Descent)。將淺層網(wǎng)絡的學習率統(tǒng)一設置為0.000 1,微調網(wǎng)絡權重;全連接層的學習率分為固定0.001不變和自適應調節(jié)(簡稱Self-A)2種情況,自適應調節(jié)方式即為每隔20個輪次,學習率自動下降為原來的10%[23]。每種模型在4組不同超參數(shù)下進行仿真試驗,4種模型共進行16組試驗。
模型中其他部分超參數(shù)統(tǒng)一設置:輸入圖片大小為224×224×3,圖片3個通道的特征標準化均值為[0.485,0.456,0.406]、方差為[0.229,0.224,0.225],全連接層中神經(jīng)元隨機置零概率為0.5,自適應學習率初始值為0.01, SGD優(yōu)化器中的動量因子為0.9,總訓練輪數(shù)epoch為100,參數(shù)更新迭代次數(shù)interation為3 200,每次迭代的訓練圖片數(shù)batch_size為64。并采用交叉熵損失函數(shù)計算每張圖片的訓練損失值以及每輪次的測試損失值。
為增強分類模型的魯棒性和泛化能力,在實驗室搭建試驗樣本采集裝置如圖6所示。模仿實際生產(chǎn)環(huán)境中原煤表面附著有煤灰、輸送帶表面顏色為灰色時的工作狀態(tài),采集運送狀態(tài)下的樣本圖像。
圖6 試驗樣本采集裝置
輸送機的速度設為0.3 m/s;2根條形LED白光燈作為輔助光源,通過調節(jié)光源控制器將攝像區(qū)域光強穩(wěn)定在(2 400±20)Lux;彩色CMOS工業(yè)面陣相機幀率為35 fps、分辨率為2 448×2 048。工況機與工業(yè)相機之間使用USB3.0接口通信,顯示采集畫面并保存圖像。
煤和矸石部分樣本圖像如圖7所示,包含3種不同質地的煤塊和2種不同顏色的矸石,具體表現(xiàn)為表面光亮常具裂縫的黑色亮煤、表面半亮呈極薄層狀的黑色鏡煤、表面暗淡粗糙的灰黑色暗煤,以及黑矸、灰矸,煤和矸石的粒徑均分布在40~120 mm。試驗共采集煤圖片322張,矸石圖片345張。
圖7 煤和矸石部分樣本圖像
仿真試驗環(huán)境為:Windows10系統(tǒng), AMD Ryzen7 4800H處理器、16 GB內存, NVIDIA RTX2060型號顯卡、6 GB獨顯。基于Pytorch框架搭建煤矸識別深度網(wǎng)絡,通過CUDA(Compute Unified Device Architecture)加速訓練過程。
煤和矸石數(shù)據(jù)集預處理過程如圖8所示。深度學習訓練模型參數(shù)時,訓練樣本越多,學習模型的泛化能力越高,誤差率越低[24]。由于試驗材料、時間成本問題,試驗采集的煤和矸石的圖像數(shù)量有限,故需擴充樣本圖像,增添輸入樣本的多樣性。
圖8 煤和矸石數(shù)據(jù)集預處理過程
數(shù)據(jù)集擴充方法如圖9所示,可描述為:首先分別將煤和矸圖片繞x、y軸翻轉以及向右旋轉180°,然后,選取部分樣本圖像添加高斯噪聲和椒鹽噪聲,用于模仿實際生產(chǎn)環(huán)境中的運動模糊圖像??紤]到煤和矸石的光澤差異是分類的重要參照,因此不對圖片進行亮度和對比度處理。
圖9 數(shù)據(jù)集擴充方法
對原數(shù)據(jù)集進行擴充后共獲得煤和矸石圖像2 905張,其中矸石圖像1 519張,煤圖像1 386張。為避免樣本不平衡問題的干擾[25],同時剔除冗余樣本圖像,選取了煤、矸石圖像各1 280張。然后按照80%、20%的劃分方法,分別把煤和矸石數(shù)據(jù)集劃分為訓練集、測試集,并且2個數(shù)據(jù)集之間無交叉。
F1分數(shù)(F1Score)是用來衡量二分類模型精確度的一種指標,可以看作是模型查準率(P)和召回率(R)的一種加權平均,值域在[0,1],值越大代表模型識別精度越高。
在圖像預處理過程中煤標簽設置為0,矸石的標簽為1。作以下定義,見表1。
表1 實際值與預測值關系
F1分數(shù)計算公式如下
F1=2PR/(P+R)
(5)
其中,準確率P為
P=TP/(TP+FP)
(6)
召回率R為
R=TP/(TP+FN)
(7)
對于改進后的Im_AlexNet等4種煤矸識別模型,分別對其設置表2中4組不同超參數(shù)。經(jīng)訓練后,每種模型得到4組不同的訓練結果, 如圖10所示。圖10a—圖10d分別為Im_AlexNet、Im_VGG16、Im_VGG19、Im_ResNet50的訓練結果。
表2 網(wǎng)絡超參數(shù)設置
由圖10知, Im_AlexNet模型的優(yōu)化器類型設為SGD時,比設為Adam的準確率要高且更快趨于平穩(wěn);并且在學習率設置為自適應時,參數(shù)曲線收斂速度進一步提高。Im_VGG16模型在選擇Adam優(yōu)化類型時,其損失值能夠快速收斂在一定范圍內,同時準確率快速達到100%并趨于平穩(wěn);而且學習率選擇自適應調節(jié)類型,曲線收斂更快。Im_VGG19和Im_VGG16模型有類似的性能曲線:選擇Adam優(yōu)化器搭配自適應學習率的參數(shù)更新方式,能夠使模型訓練曲線最佳。由于ResNet50本身的結構較復雜,改進后的Im_ResNet50分類模型在訓練集上的表現(xiàn)相對不佳。對比4組超參數(shù)下的訓練結果可知,采用SGD優(yōu)化器搭配自適應學習率的訓練方法相對較好,參數(shù)曲線最終在較小范圍內收斂。
圖10 優(yōu)化模型的訓練結果
綜上所述,基于TW-RN優(yōu)化方法構建的4種模型,都有適應于自身網(wǎng)絡結構特點的最佳參數(shù)更新方法和學習率設置方式,各模型的最優(yōu)超參數(shù)設置見表3。
表3 優(yōu)化模型的最優(yōu)超參數(shù)
為驗證基于TW-RN法構建模型的有效性,并確定煤矸最優(yōu)識別模型。在試驗樣本集、試驗環(huán)境以及超參數(shù)設置相同的情況下,對比各模型改進前后的性能,各模型的測試準確率如圖11所示。
圖11 4種最優(yōu)網(wǎng)絡模型的測試精度
為更好地對比模型改進前后的性能,采用測試準確率、F1分數(shù)、模型內存大小、訓練時間4個評估參數(shù),對改進前后的每種模型進行定量分析,分析結果見表4。
表4 模型評估結果
Im_ResNet50相比原模型,在測試準確率未降低的基礎上,減少了占用內存,節(jié)省了訓練時間。由此可見,對于煤矸二分類任務,降低復雜網(wǎng)絡中的神經(jīng)元個數(shù),并不會影響煤和矸石的有效特征提取。改進后的Im_AlexNet、Im_VGG16、Im_VGG19三種模型均增加了GAP技術,提高了模型對煤和矸石圖片特征空間位移的泛化能力,進而提升了識別精度,降低了模型占用內存。
Im_VGG16和Im_VGG19兩種模型由于其本身的深層串聯(lián)式結構特點,導致訓練時間較長。雖在訓練集上性能表現(xiàn)較好,但總參數(shù)計算量依然較大,在測試集上出現(xiàn)了過擬合的情況。ResNet50模型由于自身結構較復雜,即使降低了神經(jīng)元個數(shù), Im_ResNet50的參數(shù)計算量仍很大,導致測試準確率曲線難以快速收斂。
改進后的4個模型中,基于TW-RN優(yōu)化方法構建的Im_AlexNet煤矸識別模型較原模型在各方面的提升最大。模型訓練100輪次的時長僅需10 min 4 s,占用內存僅28 115 kB,單張圖片的識別時間為2.360 ms,識別率達97.461%。
綜上所述, Im_AlexNet煤矸識別模型可精準識別出多種形態(tài)、粒徑的煤矸石,且模型泛化能力高,魯棒性強。
1)TW-RN模型優(yōu)化方法中的權值遷移能夠節(jié)省模型訓練時間, GAP則能夠大大降低神經(jīng)元個數(shù)和計算量,同時保護煤和矸石特征的空間信息。TW-RN法不但能夠成功解決煤矸小樣本數(shù)據(jù)集難以構建深度模型的問題,而且也能夠緩解模型中全連接參數(shù)多、計算量大的問題,提升模型識別率。
2)對于煤、矸石二分類任務,基于TW-RN法優(yōu)化的Im_AlexNet網(wǎng)絡模型識別率最高,達97.461%,較改進之前提高了2.149個百分點;占用內存僅為27.456 MB,較原模型減少了87%;訓練100個輪次的時間為604 s,識別單張圖片的時間為2.360 ms,提升了0.788 ms。
3)8層的Im_AlexNet模型就可以快速精準識別出煤矸石。結構復雜度較高的模型反而因特征提取能力太強,導致提取到的煤、矸石的相似信息過多,出現(xiàn)過識別的情況。