叢成 呂哲 高翔 王敏
摘 要:現(xiàn)實工業(yè)生產(chǎn)中,鋼板表面存在不同類型的缺陷,為了研究這些缺陷類型,需要對大量鋼板進行特征提取,從缺陷中提取有價值的屬性或度量。隨后對提取的特征進行選擇,選擇降低缺陷分類錯誤的特征信息。在鋼板表面缺陷檢測系統(tǒng)中,缺陷識別是關(guān)鍵步驟之一,屬于多分類問題。采用主成分分析對初始數(shù)據(jù)進行降維處理,然后采用支持向量機作為分類器,對鋼板表面缺陷進行分類,以研究鋼板的缺陷類型。同時采用基于Keras的神經(jīng)網(wǎng)絡(luò)進行對比分類,并優(yōu)化鋼板缺陷分類。
關(guān)鍵詞:特征提取;主成分分析;支持向量機;Keras;神經(jīng)網(wǎng)絡(luò);機器學(xué)習(xí)
中圖分類號:TP391 文獻標識碼:A 文章編號:2095-1302(2020)04-00-03
0 引 言
我國鋼材制造產(chǎn)業(yè)迅猛發(fā)展,但鋼板表面質(zhì)量檢測技術(shù)發(fā)展仍然緩慢,國內(nèi)只有部分鋼材生產(chǎn)商掌握了鋼板表面質(zhì)量檢測技術(shù),其余生產(chǎn)企業(yè)主要依賴于人工檢測。在現(xiàn)實工業(yè)生產(chǎn)過程中,鋼板表面可能會出現(xiàn)各種類型的缺陷,例如結(jié)疤、Z_劃痕、K_劃痕、污漬、裂紋等。受噪聲、光照、鋼板數(shù)量等因素影響,在后期圖像處理過程中對采集的缺陷圖像進行處理面臨著很大的困難?;谝延械姆诸愃惴ɡ碚摶A(chǔ)和實際工業(yè)生產(chǎn)環(huán)境,我們對缺陷檢測和識別進行了深入研究,分析如何提高鋼板表面缺陷檢測準確度和識別精度,以提高產(chǎn)品質(zhì)量、降低制造成本。鋼板表面缺陷檢測流程如圖1所示。
1 數(shù)據(jù)預(yù)處理
鋼板缺陷分類的數(shù)據(jù)源提供了1 941個數(shù)據(jù),每個數(shù)據(jù)有34種信息字段。前27個字段描述了鋼板故障相關(guān)信息因子,后7個信息字段描述了包括七種可能的缺陷類型,分別為結(jié)疤、Z_劃痕、K_劃痕、污漬、裂紋、壓痕、其他缺陷。輸入向量由27個指標組成,其中包括X最小值、X最大值、Y最小值、Y最大值、像素_區(qū)域等指標,這些指標近似描述缺陷的幾何形狀及其輪廓。所有的數(shù)據(jù)集存儲在faults.csv中,為方便分類,我們需要對數(shù)據(jù)進行預(yù)處理,先將1 941個
數(shù)據(jù)劃分為兩部分,即前1 000個數(shù)據(jù)作為訓(xùn)練集,后941個
數(shù)據(jù)作為測試集。再將原有csv文件劃分為兩個子文件input.csv和label.csv,用于表示算法的輸入、輸出。label.csv的
7列為虛擬變量,即如果板故障歸類為“Stains”,則該列中將有一個1,其他列中將有0。缺陷鋼板的部分數(shù)據(jù)信息描述見表1所列。
高維特征量作為訓(xùn)練樣本進行識別分類時,存在很多問題。維數(shù)太高使得計算過程復(fù)雜,會耗費大量時間,因此需要在計算時間和信息量間進行適度衡量,其一,希望通過降維的方式來節(jié)省計算量和時間;其二,希望降維后的特征量盡可能多得保持原來的信息。本文采用主成分分析法對特征向量降維。主成分分析法是實現(xiàn)特征降維的有效方法,本文首先對提取的特征值進行歸一化處理,再通過PCA對缺陷特征進行降維,實現(xiàn)有效特征的選擇。對上述七種缺陷提取特征,將27維特征向量降至11維。降維后鋼板表面的缺陷分類準確率較之前提升2%。
(1)訓(xùn)練集共有M個樣本,每個樣本大小為m×n,對應(yīng)的訓(xùn)練樣本矩陣如下:
(1)
對矩陣進行向量化處理,式中,ai是指將第i個圖像數(shù)據(jù)矩陣變成m×n維的列向量。
(2)計算M個樣本的平均值:
(2)
(3)計算第i個樣本與均值的差值:
ci=ai-φ,i=1, 2, ..., M? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)
(4)構(gòu)建樣本的協(xié)方差矩陣:
(4)
式中,A=[c1, c2, ..., cM]是差值矩陣。
(5)求樣本協(xié)方差矩陣的特征值和特征向量,構(gòu)造特征空間。
2 分類原理
2.1 支持向量機SVM分類原理
訓(xùn)練集如下:
T={(x1, y1), (x2, y2), ..., (xn, yn)}? ? ? ? ? ? ? ? ? ? ? ? (5)
式中:xi∈Rn,yi∈{-1,+1},i=1,2,…,N;xi為第
i個特征向量;yi為xi對應(yīng)的標簽;(xi,yi)稱為訓(xùn)練集T中的第i個樣本點。
訓(xùn)練的最終目的是在特征空間劃分出一個超平面,線性可分SVM利用間隔最大化距離求最優(yōu)分離超平面。線性可分SVM學(xué)習(xí)得到的分離超平面為:
(6)
式中:xi為第i個輸入向量,即樣本集合中的向量;w為xi對應(yīng)的權(quán)值向量;偏置量為b,即超平面相對原點的偏移。得到的分類決策函數(shù)為:
(7)
SVM通過尋找支持向量使數(shù)據(jù)集間隔最大化,從而找到最優(yōu)分割超平面。對于非線性可分樣本,需要引入核函數(shù)。核函數(shù)能夠?qū)⒌途S空間中的樣本數(shù)據(jù)映射到高維空間,使得樣本線性可分,其計算公式如下:
(8)
式中:φ表示從輸入空間到高維空間的非線性特征映射過程。加入約束條件后,尋找最優(yōu)分割超平面的過程可以看作是一個凸二次規(guī)劃問題求解的過程。通過求解該問題,得到最優(yōu)分類函數(shù),其表達式如下:
(9)
式中,ai*和b*是只由支持向量確定的參數(shù),能夠用來調(diào)控最優(yōu)分類平面。
2.2 基于Keras的神經(jīng)網(wǎng)絡(luò)分類原理
卷積神經(jīng)網(wǎng)絡(luò)屬于前饋神經(jīng)網(wǎng)絡(luò),本文是通過構(gòu)建多個卷積層、匯聚層和全連接層交叉而成的一個網(wǎng)絡(luò),基于反向傳播算法對劃分出的訓(xùn)練集進行訓(xùn)練[1]。如果僅全連接前饋神經(jīng)網(wǎng)絡(luò)訓(xùn)練樣本,則會導(dǎo)致參數(shù)太多、陷入局部最優(yōu)。加入卷積神經(jīng)網(wǎng)絡(luò)后,通過局部連接、權(quán)重共享和等變表示,對神經(jīng)網(wǎng)絡(luò)進行二次優(yōu)化。新加入的神經(jīng)網(wǎng)絡(luò)具有新特點:在超平面上平移、縮放和旋轉(zhuǎn)不變性?;贙eras的神經(jīng)網(wǎng)絡(luò)模型采用序列模型和通用模型。序列模型各層之間是依次順序的線性關(guān)系,在第k層和第k+1層之間可以加入各種元素來構(gòu)造神經(jīng)網(wǎng)絡(luò),這些元素可以通過一個列表來制定,然后作為參數(shù)傳遞給序列模型以生成相應(yīng)模型。通用模型通過函數(shù)化的應(yīng)用接口來定義模型,在定義模型時,從輸入的多維矩陣開始,之后定義各層及其要素,最后定義輸出層。輸出層的值域?qū)?yīng)鋼板缺陷的類型[2]。
3 實驗結(jié)果與分析
3.1 基于支持向量機的鋼板表面缺陷分類算法
3.1.1 鋼板缺陷的SVM分類模型的建立
鋼板缺陷的SVM分類模型的建立步驟:
(1)對所給數(shù)據(jù)集進行劃分,將其劃分成訓(xùn)練樣本集和測試樣本集;
(2)選擇適當?shù)暮撕瘮?shù),通過參數(shù)尋優(yōu)來構(gòu)造支持向量機模型,常用的核函數(shù)形式主要包括線性核函數(shù)、多項式核函數(shù)、徑向基型核函數(shù)和Sigmoid核函數(shù)。
3.1.2 鋼板缺陷的SVM分類模型實驗結(jié)果分析
在支持向量機分類問題中[3],采用Kaggle中提供的缺陷鋼板數(shù)據(jù)集,鋼板數(shù)據(jù)集共有1 941個數(shù)據(jù),共分為7類,每個數(shù)據(jù)包含27個屬性。在本題中,將所有數(shù)據(jù)分為7類,根據(jù)LibSVM和SMO解決缺陷鋼板的多分類問題。支持向量機有2個重要參數(shù),c-懲罰系數(shù)和kernel-徑向基函數(shù),默認c的參數(shù)為1.0,默認的kernel參數(shù)為Rbf。對2個參數(shù)進行調(diào)參,觀察不同核函數(shù)和懲罰系數(shù)對分類性能的影響。分類結(jié)果見表2所列。
當c=0.6,kernal=Poly時,SVM的分類誤差最小,errorrate=16.92%。對于不同核函數(shù)的分類方法而言,采用Poly核函數(shù)的錯誤率最低,且其明顯優(yōu)于其他三種核函數(shù),所以在缺陷鋼板分類問題中,采用Poly核函數(shù)c=0.6的懲罰系數(shù)時,分類效果最好[4]。
3.2 基于Keras的神經(jīng)網(wǎng)絡(luò)
3.2.1 基于Keras的神經(jīng)網(wǎng)絡(luò)鋼板表面缺陷分類算法
基于Keras的神經(jīng)網(wǎng)絡(luò)鋼板表面缺陷分類算法步驟如下:
(1)選取適當?shù)幕鶞示W(wǎng)絡(luò),然后使用faulty-steel-plates數(shù)據(jù)集對該網(wǎng)絡(luò)進行預(yù)訓(xùn)練;
(2)對所給數(shù)據(jù)集進行劃分,建立用于訓(xùn)練的專用缺陷檢測數(shù)據(jù)集;
(3)基于步驟(1),搭建整體檢測網(wǎng)絡(luò),并設(shè)置該網(wǎng)絡(luò)對應(yīng)的超參數(shù),包括卷積神經(jīng)網(wǎng)絡(luò)[5]的層數(shù)、卷積核大小、卷積滑動步長、池化方式和激活函數(shù)類型;
(4)搭建多級特征融合網(wǎng)絡(luò),并將其與整體檢測網(wǎng)絡(luò)合并,得到缺陷檢測網(wǎng)絡(luò);
(5)構(gòu)建缺陷檢測網(wǎng)絡(luò)的損失函數(shù);
(6)設(shè)置缺陷檢測網(wǎng)絡(luò)的訓(xùn)練超參數(shù),包括優(yōu)化方法、學(xué)習(xí)率、迭代次數(shù)、權(quán)重初始化策略、權(quán)重衰減參數(shù)、動量系數(shù)和數(shù)據(jù)增強方法;
(7)對訓(xùn)練集進行訓(xùn)練,使基準網(wǎng)絡(luò)、多級特征融合網(wǎng)絡(luò)和RPN共享卷積層和計算量[6];
(8)使用訓(xùn)練完成的缺陷檢測網(wǎng)絡(luò)執(zhí)行鋼板表面缺陷檢測任務(wù),得出缺陷類別。
神經(jīng)網(wǎng)絡(luò)簡化圖如圖2所示。
神經(jīng)網(wǎng)絡(luò)[7]由多個卷積層和多個全連接層組成。首先由3個卷積層把來自輸入層的數(shù)據(jù)逐步進行特征抽象,再進入2個全連接層進行特征關(guān)系和權(quán)重值計算,最后將結(jié)果輸出到輸出層。在卷積層中,使用tanh作為每層的激活函數(shù),高斯核設(shè)置為3,初始輸入維度為27。在全連接層中,使用dense類來定義完全連接的層,將層中的神經(jīng)元數(shù)量指定為第一個參數(shù),并使用tanh和Sigmoid分別作為這兩層的激活函數(shù),第一個全連接隱藏層有200個神經(jīng)元,第二個全連接隱藏層有7個神經(jīng)元,對應(yīng)缺陷鋼板的7種類別。導(dǎo)入Keras的相關(guān)模塊,基于Keras構(gòu)造上述模型,模型完整結(jié)構(gòu)見表3所列。
3.2.2 基于Keras的神經(jīng)網(wǎng)絡(luò)鋼板表面缺陷分類實驗結(jié)果分析
實驗環(huán)境為Windows 10系統(tǒng),編程語言為Python,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)框架為Keras框架,將上文提出的faulty-steel-plates數(shù)據(jù)訓(xùn)練集進行特征提取與訓(xùn)練,Batch Size=32,Epochs=100,經(jīng)過100步迭代,模型在訓(xùn)練集上所能達到的準確率穩(wěn)定在92.2%左右,模型在測試集上所能達到的最高準確度為91.5%?;贙eras的神經(jīng)網(wǎng)絡(luò)鋼板表面缺陷分類實驗結(jié)果如圖3所示。
4 結(jié) 語
本文針對缺陷鋼板分類問題提出了基于Keras的神經(jīng)網(wǎng)絡(luò)算法和支持向量機算法[8]的分類模型,首先采用主成分分析法[9]對這27維缺陷特征向量進行降維處理,將降維后的數(shù)據(jù)進行分類,分類結(jié)果對比訓(xùn)練集和測試集的準確率,表明基于Keras的神經(jīng)網(wǎng)絡(luò)算法優(yōu)于SVM方法,保證了分類模型具有較小的損失,盡可能多地提高模型訓(xùn)練的精確度。因此,Keras神經(jīng)網(wǎng)絡(luò)[10]比SVM更適合缺陷鋼板分類問題的研究,是一種具有較高使用價值的樣本分類方法。
參考文獻
[1]楊鐘瑾,史忠科.神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方法[J].計算機工程與應(yīng)用,2004(25):52-54.
[2]趙元慶,吳華.多尺度特征和神經(jīng)網(wǎng)絡(luò)相融合的手寫體數(shù)字識別[J].計算機科學(xué),2013,40(8):316-318.
[3]方向,陳思佳,賈穎.基于概率測度支持向量機的靜態(tài)手寫數(shù)字識別方法[J].微電子學(xué)與計算機,2015(4):107-110.
[4]李佳,劉振宇.SVM與BP神經(jīng)網(wǎng)絡(luò)在石煤提釩行業(yè)清潔生產(chǎn)評價中的對比研究[J].中南民族大學(xué)學(xué)報(自然科學(xué)版),2018(4):18-21.
[5]李彥冬,郝宗波,雷航.卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J].計算機應(yīng)用,2016,36(9):2508-2515.
[6]劉長征,相文波.基于改進卷積神經(jīng)網(wǎng)絡(luò)的肺炎影像判別[J].計算機測量與控制,2017,25(4):185-188.
[7]呂耀坤.基于卷積神經(jīng)網(wǎng)絡(luò)的實景交通標志識別[J].物聯(lián)網(wǎng)技術(shù),2017,7(1):29-30.
[8]郭顯娥,武偉,劉春貴.多類SVM分類算法的研究[J].山西大同大學(xué)學(xué)報(自然科學(xué)版),2010,26(3):6-8.
[9]徐寧,劉權(quán),孟坤.基于主成分分析法的空氣質(zhì)量評估及污染擴散研究[J].科學(xué)中國人,2017(z2):47.
[10]馬湧,王曉鵬,馬莎莎.基于Keras深度學(xué)習(xí)框架下BP神經(jīng)網(wǎng)絡(luò)的熱軋帶鋼力學(xué)性能預(yù)測[J].人工智能技術(shù),2019,43(2):6-10.