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