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