金守峰, 林強強, 馬秋瑞, 張 浩
(1. 西安工程大學 機電工程學院, 陜西 西安 710048; 2. 西安工程大學 服裝與藝術設計學院, 陜西 西安 710048)
隨著人們物質生活水平的提高,對織物表面的時尚性、舒適性等性能要求也在不斷提升。為滿足織物的外觀、手感及保暖性的要求,在織物表面進行起毛工藝處理,使織物表面具有一定厚度,且分布一致的絨毛,該絨毛的狀態影響著起毛后織物表面的性能和質量[1-2]。由于起毛工藝后織物表面絨毛的長度和形態較為復雜,現階段對起毛織物的絨毛質量檢測方法主要以有經驗的工藝人員通過視覺和觸覺的主觀判斷為準,檢測人員的主觀經驗起主導作用,無法量化絨毛質量參數,檢測絨毛織物是否合格的效率較低。
隨著計算機技術和圖像處理算法的不斷提高,織物表面質量檢測也向高效化和智能化方向發展,視覺測量技術已在織物質量檢測領域得到了廣泛應用。文獻[3-5]針對織物疵點采用改進的函數濾波器、小波變換及形態學等方法進行識別與分類,這些方法結合改進的BP神經網絡提升了織物疵點的細節特征精度,與傳統的織物疵點檢測方法相比,提高了識別效率[3-5],但是,目前缺乏標準的織物疵點訓練數據集,使得研究者應用的數據集各不相同[6-7]。文獻[8-10]中針對織物在穿著過程中摩擦導致織物表面出現的起毛或起球等缺陷,采用傅里葉變換、小波變換等方法將起毛或起球織物圖像變換至頻域處理,并建立相應的織物起毛或起球的評價指標,通過機器視覺檢測進行客觀評價。文獻[11]采用0.7~4.5倍的放大鏡頭獲取織物表面絨毛的微觀截面圖像,建立了絨毛率檢測的數學模型,實現了織物表面采樣長度為 2~10 mm 內的表面絨毛率的測量。文獻[11]與本文的研究內容相似,均是針對織物表面絨毛質量的檢測,但與本文方法相比,文獻所述方法由于采樣長度較小,不能真實反映整幅織物表面的絨毛狀態[11]。
為提高織物在起毛工藝后的絨毛質量檢測效率,客觀評價絨毛織物質量,實現自動化檢測,本文提出基于BP神經網絡織物表面絨毛質量的客觀評定方法。該方法通過光切成像原理獲取織物表面絨毛的輪廓圖像,提取織物上邊緣輪廓的特征點數據,以此為數據集訓練構建的BP神經網絡,并根據訓練時間以及準確率對隱含層的神經元個數做相應的選擇,最終以BP神經網絡的輸出值判別絨毛織物是否合格。
通過起毛工藝在織物表面形成具有一定厚度的致密絨毛,為獲取織物表面絨毛厚度與分布狀態信息,本文采用如圖1所示的光切成像原理。

圖1 光切成像原理Fig.1 Principle of light-cut imaging
相機與條形光源分別置于被測織物的兩側,條形光源為長方體形狀,長×寬×高為37 cm×4.2×2.1 cm, LED(18&22PCS)光源,功率為5 W,4 500 K 自然光。條形光源置于輥子的正下方,使光線與輥子軸向輪廓邊緣相切,采用背景光成像可避免受織物表面紋理及顏色特征的干擾,突出被測織物表面的絨毛邊緣輪廓。織物包覆在輥子表面,隨輥子勻速轉動,當旋轉至拍攝位置時,織物表面的絨毛在輥子的張力作用下其厚度及分布狀態最為明顯,此時相機獲取到的織物圖像如圖2所示。

圖2 絨毛織物切向圖像Fig.2 Tangential image of fabric
在圖2中,主要分為背景區域、絨毛區域以及絨毛底布區域。為獲取更加清晰的織物圖像,減少拍攝背景對織物絨毛輪廓的影響,采用黑色作為背景;絨毛區域經過條形光源照射后可清晰地與背景和底布區域分隔開,便于獲取所需要的實驗特征點數據集;絨毛底布區域則是未拉起絨毛的織物部分,是絨毛的基體。
將圖像進行分割,將絨毛區域的特征提取出來,同時將背景區域和底布分開。由圖3所示的灰度直方圖分布特征可知,背景區域的灰度值集中分布在0~25之間,且像素個數遠大于絨毛區域的像素數,而絨毛區域的灰度值集中在25~110之間,因此可利用最大類間方差法對圖像進行自適應分割。提取的絨毛區域特征圖如圖4所示。

圖3 灰度直方圖Fig.3 Grayscale histogram
經過分割后的圖像背景區域和絨毛底布區域與絨毛區域完全分離,圖中白色區域為織物的絨毛部分,黑色為背景區域;且在圖像中上邊緣輪廓的起伏狀態反映了該織物的絨毛厚度以及分布情況,應用Freeman鏈碼原理對上邊緣的輪廓特征進行提取,進而得到BP神經網絡的訓練數據集。

圖4 絨毛區域Fig.4 Fabric binarization image
鏈碼技術最早用來作為線條的數據格式是由Freeman提出的,Freeman編碼是目前一直在用的一種常用線條編碼方式,鏈碼的產生和定義都是按照邊界曲線或曲線像素點用8鄰接的方式進行,各個移動的方向按照數組{i|i=0,1,2,…,7}進行編碼。各個方向都定義成與x軸正向的45°×i夾角。除8鄰接的方式外,還有4鄰接方式。
準確地提取織物邊緣的輪廓特征是獲得訓練數據的前提和關鍵,本文通過應用Freeman鏈碼編碼方式的原理對織物絨毛邊緣進行坐標點特征點的提取,其計算過程如下。
1)計算提取輪廓邊緣的大小,記為M×N,而后生成(M+2,N+2)的0矩陣,將邊緣輪廓嵌入其中,即用0將其包圍,用來保證形成8鄰域圖像;
2)尋找第一個像素為1的坐標,即為第一個搜索方向的起點,而后對其余7個方向搜索,尋找下一個像素為1的坐標,依次進行搜索,并記錄當前的坐標;
3)當其余7個方向均為0時,則停止計算,返回坐標值。通過應用上述算法,可提取織物絨毛輪廓的邊緣坐標。將獲得的絨毛織物輪廓邊緣數據對應于原二值圖像如圖5所示,以該數據作為BP神經網絡的訓練數據集。由圖可知,應用該方法提取的織物輪廓邊緣坐標基本與織物上邊緣吻合,可以反映邊緣輪廓特征。

圖5 織物絨毛輪廓邊緣坐標提取Fig.5 Coordinate extraction of fabric fluff contour edge
BP神經網絡是一種按誤差反向傳播算法進行網絡訓練的反饋型神經網絡,3層BP神經網絡模型如圖6所示。將提取的織物輪廓坐標作為BP神經網絡坐標數據集,并且對于合格的絨毛織物目標輸出為1,其余不合格的目標輸出為0,通過坐標數據集和目標輸出對BP神經網絡進行訓練,實現絨毛織物是否合格的快速檢測。
BP神經網絡一般由3層組成,即輸入層、隱含層(由1層或多層組成)和輸出層。改變隱含層數量、神經元個數以及激活函數,可以實現非線性擬合[12-14]。如圖6所示,xi為BP神經網絡的輸入,wmi為輸入層與隱含層之間的連接權重,ki為隱含層各神經元的輸出,wij為隱含層和輸出層之間的連接權重,Yi為神經網絡的輸出值。輸入層與權值wmi加權求和,然后作為輸入與隱層激活函數做運算,得到的值再與權值wij求加權和,最后與輸出層激活函數運算,得到整個BP神經網絡的輸出。

圖6 3層BP神經網絡Fig.6 Three-layer BP neural network
BP神經網絡的學習屬于有監督學習,需要1組已知目標輸出的學習樣本集。訓練時先使用隨機值作為權值,輸入學習樣本得到網絡輸出,然后根據輸出值與目標輸出計算誤差,再由誤差根據某種準則逐層修改權值,使誤差減小,如此反復,直到誤差不再下降,BP神經網絡就訓練完成。主要的訓練階段可分為工作信號的正向傳播和誤差信號的反向傳播。
應用光切成像原理,共采集織物照片435張,其中合格絨毛織物225張,不合格絨毛織物210張,部分照片如圖7所示。圖7(a)示出生產檢測合格的絨毛織物,數據集其標簽為1,即BP神經網絡期望輸出值為1;圖7(b)示出生產檢測不合格的絨毛織物,數據集其標簽為0,BP神經網絡期望輸出值為0,并應用Freeman鏈碼提取原理對預處理后的織物邊緣坐標進行提取,獲得實際數據集大小為343×840的坐標矩陣。由于像素的橫坐標是從1到840依次遞增,為方便表示,在表1中省略了橫坐標,僅表示了部分織物上邊緣縱坐標數據。

圖7 樣本數據集部分照片Fig.7 Part of sample data set. (a)Production inspection of unqualified fabrics; (b)Production inspection qualified fabric
3.2.1 激活函數
激活函數給神經網絡的神經元加入非線性因子,使得神經網絡可以任意逼近任何非線性函數,從而使神經網絡可以應用到眾多的非線性關系模型中。BP神經網絡一般使用Sigmoid函數和線性函數作為激活函數,而Sigmoid函數主要根據輸出值是否包含負值又可分為Log-Sigmoid(見式(1))和Tan-Sigmoid函數(見式(2))[15-16]。
(1)
(2)
式中:x為輸入值,其范圍為整個實數域;e為自然常數,其值約為2.718 28;f(x)為函數輸出。
Log-Sigmoid函數可以將輸入從整個實數域的范圍映射到(0,1)區間內,Tan-Sigmoid函數可以將輸入從整個實數域的范圍映射到(-1,1)區間內。并且Sigmoid函數可微,因而可以利用梯度下降法優化各權值,使權值更新以達到神經網絡的學習。
3.2.2 訓練函數
在權值更新過程中的訓練算法主要為最速下降法,又稱梯度下降法,是一種可微函數的優化算法,標準的最速下降法在實際應用過程中往往收斂速度比較慢,因此出現了動量BP算法、學習率可變的BP算法、擬牛頓法LM(levenberg-marquardt)算法[17-19]。
動量BP法是在標準的BP算法的權值更新基礎上引入動量因子α(0<α<1),使權值修正具有一定的慣性。
Δω(n)=-η(1-α)e(n)+αΔω(n-1)
(3)
式中:Δω(n)為第n次權值調整量;η為學習率;e(n) 為神經網絡誤差;Δω(n-1)為第n-1次權值調整量。因式αΔω(n-1)加入后,使本次權值的更新方向和幅度不僅與本次計算所得的梯度有關,并且還與上一次更新的梯度和幅度有關,使權值的更新具有一定的慣性,提高了抗震能力和加速收斂的能力[20]。
學習率可變的BP算法(VLBP)是通過誤差的增減來判斷的。當誤差以減小的方式趨于目標時,說明修正方向是正確的,可以增加學習率;反之則減小學習率,并且撤銷前一步修正過程,計算公式如下:
(4)
式中:η(n+1)和η(n)分別為第n+1次和n次學習率;kinc和kdec分別為增量和減量因子;e(n+1)和e(n)分別為第n+1次和第n次更新后神經網絡總誤差。
牛頓法是一種基于泰勒級數展開的快速優化算法,迭代公式如下:
ω(n+1)=ω(n)-H-1(n)g(n)
(5)
式中:ω(n+1)和ω(n)分別為第n+1次和第n次更新后神經網絡權值;g(n)為第n次更新時的梯度;H為誤差性能函數的Hessian矩陣。盡管牛頓法收斂速度快,但是需要計算誤差性能函數的二階導數,并且如果Hessian矩陣非正定,可能導致搜索方向不是函數下降方向,因此擬牛頓法應用一個不包含二階導數的近似代替Hessian矩陣的逆矩陣,完成權值的更新。
LM算法類似擬牛頓,根據式(6)修正神經網絡權值
ω(n+1)=ω(n)-[JTJ+μJ]-1JTe(n)
(6)
式中:J為包含誤差性能函數對網絡權值一階導數的雅可比矩陣;μ為調節因子。
根據以上網絡參數,在實際網絡的訓練過程中,分別使用最速下降法、動量BP算法、學習率可變的BP算法、擬牛頓法、LM算法等權值更新的算法對神經網絡進行訓練,并且在隱含層分別使用Log-Sigmoid和Tan-Sigmoid 2種非線性函數為激活函數,在輸出層分別使用Log-Sigmoid和Tan-Sigmoid 2種非線性函數以及線性函數(purelin)為激活函數對神經網絡進行訓練,結果如表1所示。traingd為批梯度下降訓練函數,traingdm為動量批梯度下降函數,traingdx為動量及自適應梯度遞減訓練函數,trainb以權值或閾值為基準采用批處理的方式進行訓練,trainscg為反向傳播算法訓練函數,trainr為隨機順序遞增更新訓練函數。

表1 神經網絡模型分析Tab.1 Neural network model analysis
從表2中可以看出,訓練的BP神經網絡有 2組準確率達到了90%,考慮到實驗的隨機性,分別繪制出準確率在90%附近組合(共4組)的實際值和預測值,結果如圖8所示,組合1學習函數為traingd,隱含層激活函數為tansig,輸出層激活函數為tansig;組合2學習函數為traingdm,隱含層激活函數為logsig,輸出層激活函數為purelin;組合3學習函數為traincsg,隱含層激活函數為logsig,輸出層激活函數為tansig;組合4學習函數為trainr,隱含層激活函數為tansig,輸出層激活函數為logsig。從中選取最優的BP神經網絡組合。

圖8 不同組合的實際值和預測值Fig.8 Actual and predicted values for different combinations. (a)Combination 1; (b)Combination 2; (c)Combination 3; (d)Combination 4
由圖8可知,在組合1中,當采用traingd的學習函數,隱含層應用tansig激活函數,輸出層應用tansig激活函數時,神經網絡的檢測準確率為93.02%,并且預測點比較分散,與實際值最為接近。并且此時網絡訓練時間為11 s。構建的BP神經網絡模型訓練時間較短,經過訓練后的神經網絡模型檢測準確率較高,在擴大數據集后可以滿足實際的生產檢測需求。
BP神經網絡可以通過適當地增加隱含層神經元個數,從而實現任意的非線性關系映射。但隨著隱含層神經元的個數增多,網絡會變得復雜且訓練時間會變長。目前BP神經網絡隱含層神經元個數并沒有明確的理論計算公式,只是依據如下3個經驗公式獲得:
(7)
m=log2n
(8)
(9)
式(7)~(9)中:m為隱含層神經元個數;n為輸入層節點個數;l為輸出層節點個數;α一般取1~10之間的常數。根據以上經驗公式,分別計算得到隱層神經元個數為29、10、29。為得到最優的神經元個數,從5~40的范圍內以間隔為5的標準,共選取8種不同的神經元個數作相應的訓練,經過計算,當隱含層的神經元個數在10~20之間時,BP神經網絡的預測準確率全部為93.02%,訓練時間在 10 s 左右,網絡比較穩定。
本文實驗以MatLab2018a為實驗環境,應用其中的神經網絡相關函數,完成所有的BP神經網絡訓練以及BP神經網絡的測試。計算機處理器型號為:Intel(R) Core(TM) i5-4440 @3.10 GHz,安裝內存為8 G。
為驗證本文方法的精度和穩定性,對如圖9所示的4種絨毛織物在運行速度為20 m/min,采樣幅寬為700 mm的條件下進行多次測量。圖9中(a)示出頭道起毛工藝后的織物,織物表面生成的絨毛厚度不致密,且分布不均;圖9(b)~(d)為不同顏色織物的末道起毛工藝后的表面狀態,絨毛致密且分布均勻。

圖9 起毛工藝后的織物Fig.9 Fabric after raising process. (a) First raising a#; (b) Final raising b#; (c) Final raising c#; (d) Final raising d#
由于BP神經網絡輸入的是織物的上邊緣坐標,不需要織物的顏色和種類信息,在理論上適用于所有顏色的織物,由于實驗條件有限,只采用了以上織物進行實驗。織物類型a#為黑色經頭道起毛工序生產的織物,b#、c#、d#為不同顏色的經末道起毛工序生產的織物;分別提取以上4種織物輪廓邊緣特征,應用網絡實際預測值和人工檢測結果作對比,檢測結果如表2所示。
由于構建的BP神經網絡輸入的訓練數據是絨毛織的上邊緣輪廓坐標,并沒有輸入顏色相關的信息,因此構建的BP神經網絡對于顏色信息并不敏感。由表2可知,構建的BP神經網絡對于不同顏

表2 檢測結果對比Tab.2 Comparison of test results
色的絨毛織物都可完成檢測,并且檢測結果與人工評判保持一致。
經過訓練后的BP神經網絡得到2組權值,即為wmi和wij,經過加權求和,然后與激活函數運算后得到計算結果,即計算過程如式(10)所示:
F(x)=tansig(wij×tansig(wmi×x+b1)+b2)
(10)
經過訓練后的BP神經網絡權值如表3所示。其中wmi和wij分別為20×841和1×20大小的矩陣,b1和b2分別為20×1和1×1大小的矩陣。

表3 BP神經網絡權值驗證結果Tab.3 BP neural network weight verification results
由于構建的BP神經網絡的輸出值接近于0和1之間,因此設置0.5為閾值,即輸出大于等于0.5的值全部設置為1,小于0.5的值則為0,計算結果與期望輸出值對比如圖10所示。

圖10 計算權值驗證Fig.10 Calculated weight verification
由圖10可知,經過訓練后的BP神經網絡在輸入所采集的絨毛織物輪廓的上邊緣坐標數據后,經過BP神經網絡的預測,對于生產合格的絨毛織物BP神經網絡預測輸出值為1,而對于生產不合格的絨毛織物BP神經網絡預測輸出值為0。應用權值與實際的輸入坐標做矩陣運算,得到的預測結果也符合實際值,并且計算結果比較理想,因此,在實際計算過程中,可以應用網絡訓練后的權值采用式(10)與輸入做相應的運算,得到檢測結果,滿足檢測的時效性。
為提高絨毛織物檢測的自動化水平,并客觀地評定絨毛織物的表面狀態,提出一種基于BP神經網絡的織物表面絨毛質量的檢測方法,可以實現非接觸式高效快速檢測。
1)應用光切成像原理和自適應圖像分割,對采集的織物圖像做相應的預處理,得到二值圖像。
2)提出Freeman鏈碼原理提取織物上邊緣特征點坐標,作為數據集訓練BP神經網絡,訓練的神經檢測準確率可達93.02%,且與人工評判標準保持一致。
3)對神經網絡的權值進行驗證,提出應用權值直接檢測的方法,對于合格的絨毛織物,BP神經網絡預測值為1,反之則為0。并給出實際BP神經網絡計算公式,與應用BP神經網絡計算的結果相比,該方法簡單可行,因此可以應用于實際生產檢測。
FZXB