吉祥 戴曙光
摘 要:在玻璃缺陷識別系統(tǒng)中,利用BP神經(jīng)網(wǎng)絡(luò)基本原理結(jié)合特征參數(shù)設(shè)計BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。為了更準確地識別玻璃表面缺陷,在傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)算法基礎(chǔ)上,提出加入動量因子、引入陡度因子以及調(diào)節(jié)學(xué)習(xí)效率的方法,并進行對比試驗。仿真結(jié)果表明,3種方法均可提高缺陷識別率,但只有引入陡度因子的方法可使最優(yōu)誤差與期望誤差最為接近,能夠更好地改善網(wǎng)絡(luò)收斂性。
關(guān)鍵詞:缺陷識別;BP神經(jīng)網(wǎng)絡(luò);動量因子;陡度因子;自適應(yīng)學(xué)習(xí)效率
DOI:10. 11907/rjdk. 182269
中圖分類號:TP319文獻標識碼:A文章編號:1672-7800(2019)004-0137-04
0 引言
隨著制造業(yè)的快速發(fā)展,人們對玻璃質(zhì)量的要求也越來越高,但在其生產(chǎn)中仍經(jīng)常會出現(xiàn)缺陷。缺陷首先會影響玻璃外觀,其次會影響玻璃內(nèi)在性能,使玻璃在使用中存在損壞的可能[1]。目前,玻璃缺陷檢測方法主要分為人工抽檢、激光檢測與機器視覺檢測。由于機器視覺檢測具有分辨識別能力強、精度高、環(huán)境適應(yīng)性強且可以連續(xù)工作等優(yōu)點,因此得到了廣泛應(yīng)用。德國INNOMESS公司基于莫爾條紋干涉原理設(shè)計了一款玻璃缺陷在線檢測系統(tǒng),不僅能夠有效檢測玻璃缺陷并將其分類,還能根據(jù)莫爾條紋檢測出玻璃的光學(xué)畸變[2]。但從國外引進設(shè)備存在造價昂貴、不易進行現(xiàn)場調(diào)試等缺點,因此徐州工程學(xué)院的陳通等[3]提出采用超聲探傷法對玻璃進行檢測,從而有效改善了國內(nèi)檢測技術(shù)的不足,打破了國外的技術(shù)壟斷。但目前國內(nèi)大部分研究者采用的方法都未能有效解決檢測識別率低等問題,且試驗過程中依然存在環(huán)境干擾。為進一步提高檢測精度,本文對BP神經(jīng)網(wǎng)絡(luò)在玻璃缺陷識別中的應(yīng)用進行研究,并針對其誤差較大的問題,提出加入動量因子、引入陡度因子以及自適應(yīng)學(xué)習(xí)效率的方法。最后通過對均方誤差曲線的對比分析,可看出只有引入陡度因子的方法能使最優(yōu)誤差與期望誤差最為接近,且誤差曲線下降平穩(wěn),未出現(xiàn)較大抖動。通過對樣本的仿真分析,最終確定算法精度可達88%。
1 BP神經(jīng)網(wǎng)絡(luò)概述
神經(jīng)網(wǎng)絡(luò)的特點在于其通過模擬人腦神經(jīng)網(wǎng)絡(luò),在前向訓(xùn)練過程中建立起學(xué)習(xí)記憶,再將輸出誤差反饋到輸入中,不斷調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)連接方式,使得輸出滿足要求。
1.1 BP神經(jīng)網(wǎng)絡(luò)基本原理
BP神經(jīng)網(wǎng)絡(luò)中用人工神經(jīng)元模擬人腦中的神經(jīng)細胞[4],人工神經(jīng)元的多個輸入模擬神經(jīng)細胞樹突,用來接受信息;輸出端模擬神經(jīng)細胞軸突,用于將輸出信息通過神經(jīng)末梢傳遞給其它神經(jīng)元[5];連接方式模擬神經(jīng)細胞之間的神經(jīng)末梢。其中每個神經(jīng)元都有自己的閾值,只有當輸入數(shù)據(jù)累積計算超過閾值時,才會將累積結(jié)果的影響傳遞給下一個神經(jīng)元[6],如圖1所示。
1.2 BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程
如圖2所示,典型BP神經(jīng)網(wǎng)絡(luò)分為輸入層、隱含層與輸出層。其中輸入層負責(zé)接收外部數(shù)據(jù),輸出層輸出數(shù)據(jù)結(jié)果,而隱含層通過反饋誤差不斷調(diào)節(jié)連接權(quán)值,使最終輸出結(jié)果滿足要求[7]。對隱含層層數(shù)的選擇并無規(guī)律可循,多數(shù)情況下層數(shù)為1,若層數(shù)過多,雖然可以降低網(wǎng)絡(luò)誤差,但也會帶來網(wǎng)絡(luò)復(fù)雜化以及訓(xùn)練時間較長等問題[8]。
在圖2中,i為輸入層節(jié)點,k為輸出層節(jié)點,j為隱含層節(jié)點,權(quán)值[wij]用于調(diào)節(jié)各層之間連接。BP神經(jīng)網(wǎng)絡(luò)識別主要分為前向傳播和反向傳播。前向傳播是指將輸入數(shù)據(jù)傳播到系統(tǒng)中,然后通過輸入層與隱含層之間權(quán)值計算輸入隱含層的加權(quán)和,通過激活函數(shù)進行輸出,并傳輸?shù)捷敵鰧覽9];反向傳播是指誤差信號的反向傳播,可調(diào)整連接權(quán)值[wij]。
由式(17)可知反向傳播訓(xùn)練規(guī)則,將輸出誤差反饋到輸入節(jié)點,根據(jù)訓(xùn)練規(guī)則不斷調(diào)整權(quán)值,從而使均方誤差最小,且實際輸出與預(yù)期結(jié)果最為接近。
2 BP神經(jīng)網(wǎng)絡(luò)設(shè)計
雖然目前針對BP神經(jīng)網(wǎng)絡(luò)已進行了較多理論研究,但對其設(shè)計過程尚未形成一套知識體系,只能依靠前人經(jīng)驗及使用者實際需要設(shè)計網(wǎng)絡(luò)結(jié)構(gòu),從而求得更精確的解。
2.1 初始參數(shù)設(shè)定
(1)輸入數(shù)據(jù)初始化。神經(jīng)網(wǎng)絡(luò)設(shè)計第一步是將輸入數(shù)據(jù)進行標準化處理,使輸入數(shù)據(jù)存在一定可比性,適合進行綜合對比評價。主要包括以下幾種方式:最大-最小標準化、Z-score標準法、函數(shù)轉(zhuǎn)化[10]。Z-score標準化適用于輸入數(shù)據(jù)最值未知,或其取值超過規(guī)定范圍的情況,主要是基于輸入數(shù)據(jù)平均值與標準差進行的數(shù)據(jù)歸一化[11]。
(2)BP網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)建。BP神經(jīng)網(wǎng)絡(luò)構(gòu)建首先需要確定網(wǎng)絡(luò)層數(shù)[12],以及神經(jīng)網(wǎng)絡(luò)輸入層與隱含層節(jié)點數(shù)。輸入層節(jié)點數(shù)是玻璃缺陷圖像經(jīng)特征提取后的特征值個數(shù),如特征分別是氣泡、粘錫、結(jié)石、劃痕,輸入層節(jié)點數(shù)目則為4;隱含層隨著層數(shù)增多,結(jié)構(gòu)變得更加復(fù)雜,用于隱含層計算消耗的時間也不斷增多[13]。隱含層節(jié)點數(shù)對網(wǎng)絡(luò)訓(xùn)練性能會產(chǎn)生一定影響,對于不同應(yīng)用場景,其節(jié)點數(shù)選取也不同。當節(jié)點數(shù)過少時,不能完全體現(xiàn)樣本數(shù)據(jù)規(guī)律[14],因此有經(jīng)驗公式為:
(3)網(wǎng)絡(luò)連接初始權(quán)值。神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)訓(xùn)練時,若初始權(quán)值過大,會使神經(jīng)元接收的網(wǎng)絡(luò)加權(quán)和較大,落入S型激活函數(shù)飽和區(qū),S型函數(shù)導(dǎo)數(shù)在該點取值很小,導(dǎo)致訓(xùn)練速度下降很慢。為了使經(jīng)初始加權(quán)計算后的神經(jīng)元接收的網(wǎng)絡(luò)加權(quán)和接近0,故一般初始連接權(quán)值[wji]和[wkj]取(-1,1)中的隨機數(shù)[15]
(4)期望誤差。期望誤差作為評判神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)是否結(jié)束的標志,用[E]表示,由網(wǎng)絡(luò)收斂速度及學(xué)習(xí)精度確定,其數(shù)學(xué)表達式如式(20)所示。
(5)學(xué)習(xí)效率。由式(17)可知,學(xué)習(xí)效率[η]對每一次反向傳播中的步長作出相應(yīng)調(diào)整,學(xué)習(xí)效率決定每一次反向傳播迭代中的權(quán)值變化量,原步長數(shù)學(xué)表達式為:
直接使用原步長[l]對權(quán)值進行反向調(diào)整,會使目標函數(shù)下降較快,從而對最優(yōu)權(quán)值搜索不仔細,故使用學(xué)習(xí)效率[η]對原步長l進行調(diào)節(jié)。學(xué)習(xí)效率[η]的確定采用以下公式:
2.2 BP神經(jīng)網(wǎng)絡(luò)算法改進
(1)引入動量因子。標準BP算法在反向傳播過程中,權(quán)值調(diào)整沒有考慮到t時刻之前誤差函數(shù)梯度的調(diào)整方向,所以在訓(xùn)練過程中會出現(xiàn)振蕩[16]。為了提高訓(xùn)練速度,在權(quán)值調(diào)整時引入動量因子。動量因子與t時刻之前權(quán)值調(diào)整向量的乘積稱為動量項,權(quán)值調(diào)整表達式為:
(2)引入陡度因子。當誤差函數(shù)處于誤差曲面平坦區(qū)時,即使權(quán)值調(diào)整變化較大,其誤差函數(shù)下降依舊緩慢,因為此時誤差函數(shù)梯度對權(quán)值變化不敏感;當誤差函數(shù)處于坡度較大區(qū)域時,對權(quán)值變化則較為敏感,即使權(quán)值變化很小,也能使誤差迅速下降[17]。因此,提出引入陡度因子的改進方法,當誤差函數(shù)進入平坦區(qū)時,通過式(24)所示的函數(shù)形式壓縮節(jié)點輸入,使誤差函數(shù)退出誤差曲面平坦區(qū),其表達式為:
(3)調(diào)節(jié)學(xué)習(xí)效率。BP算法學(xué)習(xí)結(jié)束的標志是實際誤差達到期望值,算法收斂速度的標志是能否用較少的迭代次數(shù)使實際誤差滿足期望誤差要求。學(xué)習(xí)效率調(diào)整只與網(wǎng)絡(luò)總誤差有關(guān),選擇合適的學(xué)習(xí)效率能夠減少不必要的迭代次數(shù),提高算法速度[19]。在誤差變化平緩的區(qū)域,若[η]較小,將使網(wǎng)絡(luò)訓(xùn)練次數(shù)增加,且收斂慢,很難脫離平坦區(qū)域,而在誤差變化劇烈、曲面坡度較大的區(qū)域,若[η]較大,則會使權(quán)值調(diào)整過量,導(dǎo)致權(quán)值來回調(diào)整,訓(xùn)練出現(xiàn)振蕩。為提高網(wǎng)絡(luò)收斂性、加快學(xué)習(xí)速度,提出基于誤差均值方差的學(xué)習(xí)效率自適應(yīng)調(diào)節(jié)方法,該方法表達式為:
3 玻璃缺陷類型識別及結(jié)果分析
在BP神經(jīng)網(wǎng)絡(luò)分類器初始參數(shù)設(shè)定之后,確定系統(tǒng)識別缺陷的種類分別是劃痕、氣泡、結(jié)石、粘錫,4種類別各取30幅圖像,共選取120幅缺陷玻璃圖像作為BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練的原始圖像,并在訓(xùn)練中分別通過加入動量因子、自適應(yīng)調(diào)節(jié)學(xué)習(xí)效率、引入陡度因子3種改進措施提高識別率。算法均方誤差曲線如圖3所示。
在圖3中,橫坐標表示迭代次數(shù),縱坐標表示均方誤差,上方實線表示均方誤差性能,中間虛線表示在訓(xùn)練過程中的最優(yōu)均方誤差,最下方點畫線表示期望均方誤差。
由圖3(a)-圖3(d)比較可知,當?shù)螖?shù)在500次時,只有引入陡度因子的方法可使最優(yōu)誤差與期望誤差最為接近,且誤差曲線下降平穩(wěn),未出現(xiàn)較大抖動,從而進一步驗證了神經(jīng)網(wǎng)絡(luò)分類的準確性。應(yīng)用函數(shù)sim對樣本進行仿真分析,采用競爭輸出的方式,即神經(jīng)網(wǎng)絡(luò)節(jié)點互相競爭,用4個輸出節(jié)點中的最大值確定勝利者,確定勝者為1,其余為0。若輸出結(jié)果與相應(yīng)目標輸出相同,則判斷為目標缺陷。部分輸出數(shù)據(jù)如表1所示。
將表1所有數(shù)據(jù)結(jié)果進行分類統(tǒng)計,統(tǒng)計結(jié)果如表2所示。經(jīng)分析可知,玻璃缺陷的識別率為88%,分類基本準確,但某些測試樣本判斷錯誤。導(dǎo)致該現(xiàn)象的原因可能是缺陷形狀不確定,以及前期圖像預(yù)處理與特征提取造成了特征信息損失,從而引起誤判,降低了識別率,因此需要對圖像處理算法作進一步改進。
4 結(jié)語
本文在經(jīng)典BP神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上引入自適應(yīng)調(diào)節(jié)學(xué)習(xí)效率、陡度因子、動量因子3種改進算法,并進行對比實驗。由誤差性能曲線分析得出,引入陡度因子的方法可使均方誤差與期望均方誤差最為接近,網(wǎng)絡(luò)收斂性最快且識別率最高。通過樣本玻璃的實驗分析,結(jié)果表明,系統(tǒng)缺陷識別率可達88%。然而該實驗是在實驗室而非生產(chǎn)環(huán)境中進行的,下一步需要轉(zhuǎn)移工作環(huán)境。另外,當前系統(tǒng)識別率只有88%,雖然能夠基本準確識別出缺陷種類,但識別種類較少,還需對分類算法進行不斷優(yōu)化。
參考文獻:
[1] 王飛. 基于機器視覺的玻璃質(zhì)量在線檢測系統(tǒng)研究[D]. 洛陽:河南科技大學(xué),2010.
[2] 劉懷廣,陳幼平. 浮法玻璃缺陷在線識別技術(shù)的研究[J]. 小型微型計算機系統(tǒng),2011,6(4):738-742.
[3] 陳通,石端虎,王輝,等. 基于虛擬儀器的玻璃微裂紋監(jiān)控系統(tǒng)的應(yīng)用研究[J]. 電子設(shè)計工程,2013,21(24):184-186.
[4] WEI G,MA S. Implicit and explicit camera calibration:theory and experiments[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1994, 16(5): 469-480.
[5] STRATHY N W,SAID F,SUEN C Y. A Sequential method of extracting contour chains from an image[J]. IEEE Pattern Recognition,1994,2:580-582.
[6] EAM K T,DINESH P M. A transputer-based automated visual inspection system for electronic devices and PCBs[J]. Optics and Lasers in Engineering,1995,12(8):161-180.
[7] FRANCESCO ADAMO,F(xiàn)ILIPPO ATTIVISSIMO,ATTILIO DI NISIO,et al. An online defects inspection system for satin glass based on machine vision[C].International Instrumentation and Measurement Technology Conference,2009.
[8] 王建雙. 基于小波神經(jīng)網(wǎng)絡(luò)控制器設(shè)計與研究[D]. 哈爾濱:哈爾濱理工大學(xué),2009.
[9] PENG X,CHEN Y,YU W,et al. An online defects inspection method for float glass fabrication based on machine vision[J]. The International Journal of Advanced Manufacturing Technology,2008,39:1180-1189.
[10] 喻賓揚,王召巴. 玻璃缺陷檢測新方法的研究[J]. 傳感器與微系統(tǒng),2008(8):60-62.
[11] 王麗亞. 圖像的特征提取和分類[D]. 西安:西安電子科技大學(xué),2006.
[12] 李玉鑒. 前饋神經(jīng)網(wǎng)絡(luò)中隱層神經(jīng)元數(shù)目的一種直接估計方法[J]. 計算機學(xué)報,1999,22(11):1204-1208.
[13] 董長虹. MATLAB神經(jīng)網(wǎng)絡(luò)與應(yīng)用[M]. 北京:國防工業(yè)出版社,2005.
[14] 馮超. 基于DSP的圖像識別算法研究[D]. 天津:天津大學(xué),2007.
[15] 史春朝. BP神經(jīng)網(wǎng)絡(luò)算法的改進及其在PID控制中的應(yīng)用研究[D]. 天津:天津大學(xué),2006.
[16] 王智文,劉美玲,黃秋鳳. 基于改進BP神經(jīng)網(wǎng)絡(luò)車型識別的研究[J]. 廣西工學(xué)院學(xué)報,2008,19(3):23-26.
[17] 吳仕勇. 基于數(shù)值計算方法的BP神經(jīng)網(wǎng)絡(luò)及遺傳算法的優(yōu)化研究[D]. 廣州:華南師范大學(xué),2006.
[18] 徐月美,張虹,姜薇. 改進BP算法的研究及應(yīng)用[J]. 微計算機信息,2009,25(8):170-173.
[19] LIU YISHU,YANG LIHUA,SUN QIAN. Contour-based moment invariants and their application to the recognition of object shapes[J]. Journal of Image and Graphics,2004,9(3):308-313.
[20] 袁紅春,熊范綸,淮曉永. 一種估計前饋神經(jīng)網(wǎng)絡(luò)中隱層神經(jīng)元數(shù)目的新方法[J]. 小型微型計算機系統(tǒng),2003,24(4):657-660.
(責(zé)任編輯:黃 ?。?/p>