王澤霞, 陳 革, 陳振中
(東華大學 機械工程學院, 上海 201620)
化學纖維是一種常見的合成材料,因其強度高、密度小、彈性好等優(yōu)點被廣泛運用于各個領域,除傳統(tǒng)的紡織服裝領域外,其在國防航天、生物醫(yī)用材料[1]、能源開發(fā)[2]等領域也有所涉及。為便于存放和運輸,化學纖維通常卷繞在紙筒上形成絲餅,由于加工過程中速度過高、張力不均以及卷繞過程紙管跳動[3]等原因,生產(chǎn)出來的絲餅會產(chǎn)生各種表面缺陷,其中油污、絆絲、表面成型不良是最為常見的 3種缺陷,這些缺陷的存在不僅會影響絲餅的一等品率,且會影響后織造過程的順利進行和織物的質量,因此,對化纖絲餅進行表面缺陷檢測是一道必不可少的工序。
目前對于紡織品的缺陷檢測大多是對紗線或織造之后的平面織物進行檢測[4-6],而對卷繞之后的絲餅缺陷檢測的研究內(nèi)容還較少。各化纖工廠對絲餅的表面缺陷檢測還是依靠檢測人員在燈光照明條件下進行肉眼識別,這種人工檢測方法受人為主觀因素影響較大,易造成漏檢和誤檢,且長時間的重復工作對人的身體危害很大。近年來,基于機器視覺的檢測技術取得很大的發(fā)展,文獻[7]采用機器視覺的方法設計了提取絲餅毛羽缺陷特征的卷積核,獲取了毛羽特征,實現(xiàn)了對絲餅毛羽的檢測。然而基于機器視覺的方法需要針對特定問題提取特定的特征,且最后的檢測結果很大程度依賴于設計的特征,通用性不強。深度學習作為機器學習領域的新熱點,通過對低層特征的層層組合,自動得到更抽象的高層特征表示,將特征提取與分類識別2個過程結合起來,在圖像識別、語音識別領域都取得了突破性進展。
為此,本文提出基于改進卷積神經(jīng)網(wǎng)絡的化纖絲餅表面缺陷識別方法,首先對采集的絲餅圖片進行分塊操作,然后利用多個卷積層進行逐層特征提取,并用全局最大池化層替代傳統(tǒng)的全連接層減少網(wǎng)絡模型的參數(shù),用softmax分類器進行分類。最后,針對絲餅樣本易獲取難標注的情況,提出一種主動學習方法,先標注少量樣本訓練網(wǎng)絡,然后讓網(wǎng)絡主動挑選最具有價值的未標注樣本,讓具有豐富經(jīng)驗的絲餅缺陷鑒別工作人員進行類別判定和定標簽,并添加到訓練樣本中重新對網(wǎng)絡進行訓練,如此迭代訓練多次,實現(xiàn)對化纖絲餅表面缺陷的檢測。
基于改進卷積神經(jīng)網(wǎng)絡的化纖絲餅表面缺陷識別主要分為3個步驟:1)對采集到的絲餅圖像進行預處理,建立絲餅圖像庫;2)構建卷積神經(jīng)網(wǎng)絡模型,進行缺陷特征的提取和分類;3)利用主動學習方法挑選訓練樣本,減少網(wǎng)絡所需標注樣本數(shù)量。算法流程圖如圖1所示。

圖1 算法流程圖Fig.1 Algorithm flowchart
實驗所用絲餅圖像來自浙江省某化纖廠,采用工業(yè)CMOS相機采集,分辨率為2 048像素×1 536像素。由于絲餅缺陷相對于整個絲餅圖像來說比較小,為突出各缺陷的特征,首先對采集到的絲餅圖像進行分塊處理。多次實驗證明,尺寸為128像素×128像素的窗口可較好地表明要識別的絲餅缺陷,且避免了同一個樣本中出現(xiàn)多種缺陷的情況。圖2示出分塊后的正常以及3種缺陷類型的絲餅樣本。

圖2 正常以及缺陷樣本Fig.2 Normal and defective samples. (a) Normal; (b) Tripping filament; (c) Bad shape; (d) Stained yarn
為進一步擴充樣本,對采集的絲餅圖像進行移位和隨機旋轉,然后再進行分塊以及標注,最后對分塊之后的各類型樣本進行水平翻轉,再次實現(xiàn)數(shù)據(jù)擴充。數(shù)據(jù)增強方法的前提是不改變圖像的原有標注,如果先分塊標注,再進行旋轉縮放操作,可能會導致原本有缺陷的樣本變成無缺陷,如原樣本為絆絲缺陷,缺陷在邊緣,放大之后缺陷部分超出原來圖像的邊界,圖像變?yōu)闊o缺陷樣本,這會導致錯標樣本,不利于提升分類器性能。
由于絲餅圖像采集過程中環(huán)境、相機等因素的影響,采集的圖片會產(chǎn)生很多噪聲,這些噪聲的存在會影響后續(xù)的分類識別過程。為盡可能地去除這些噪聲并保留絲餅缺陷圖像的細節(jié)信息,提高圖像的信噪比,對分塊后的圖像采用3像素×3像素的模板進行高斯濾波預處理。
1.2.1 卷積神經(jīng)網(wǎng)絡的構建
卷積神經(jīng)網(wǎng)絡由多個卷積加池化層組成,其逐層提取圖片的特征,由淺到深,由整體到局部,具有很強的學習能力,相比于支持向量機這樣的淺層機器學習來說,提取的特征更具表達能力,能夠分離出解釋不同類別的抽象的“變差因素”,使分類更加容易,這為解決絲餅的缺陷識別問題提供了思路。
AlexNet[8]網(wǎng)絡是一個經(jīng)典的卷積神經(jīng)網(wǎng)絡,在圖像識別分類領域取得很大進展。但網(wǎng)絡采用全連接結構,使得網(wǎng)絡參數(shù)過多,訓練速度慢,對于絲餅缺陷檢測來說存在檢測速度慢的問題;另外AlexNet的首層卷積核大小為11×11,尺寸較大。一般大尺寸的卷積核能夠提取圖像的整體特征,對于不同缺陷絲餅圖像來說,其在輪廓形狀和尺寸顏色這些整體信息上的差異較小,故這些特征對分類作用不大。
針對以上2個問題,本文模型在AlexNet基礎上做了一些改進:采用全局最大池化層替代全連接層,保留最顯著的特征,減少網(wǎng)絡計算量和內(nèi)存消耗;將第1層的11×11卷積核換成較小的3×3卷積核,提取有助分類的特征。圖3示出絲餅缺陷識別網(wǎng)絡模型圖。整個網(wǎng)絡包括4個卷積層和3個池化層,然后對最后一個卷積得到的特征圖進行全局最大池化操作,最后進行softmax分類,得到預測結果。

圖3 絲餅缺陷識別網(wǎng)絡模型Fig.3 Network model of yarn package defect recognition
1.2.2 全局最大池化
傳統(tǒng)的全連接層將最后一個卷積操作得到的所有特征圖拉伸為一個長向量,然后逐層降低向量維度,最后進行分類。但全連接層的參數(shù)太多,尤其是從特征圖拉伸而來的第1個向量與下一層的連接參數(shù),這使得網(wǎng)絡訓練速度變慢。全局池化的思路是將最后一層卷積得到的每個特征圖看成一個整體,對每個特征圖進行操作,最后得到的特征向量的維數(shù)就等于上一層特征圖的數(shù)目,這不僅增強了特征映射和類別之間的對應關系,且整個過程沒有需要優(yōu)化的參數(shù)。由于絲餅的缺陷相對整個樣本來說較小,使用全局平均池化會考慮整張圖片的信息,對所有特征值求平均,弱化了絲餅局部的缺陷特征[9],使得提取的特征不具備很好的區(qū)分性,而全局最大池化輸出的是整個特征圖中的最大值,提取了最顯著的特征,更適合絲餅的缺陷檢測。所以本文采用全局最大池化層來替代全連接層。設最后一層卷積得到的第l個特征圖上的值為xij(l),y(l)為第l個特征圖在全局最大池化操作后得到的特征值,其計算公式為
在神經(jīng)網(wǎng)絡的應用過程中,獲取大量無標注絲餅樣本很簡單,但對大量樣本進行準確的定標注卻需耗費大量人力財力,因此,如何在有限時間和成本條件下,使用盡量少的有標注絲餅樣本,并快速提升分類器的性能是一個關鍵問題。主動學習方法只需對較少的樣本定標注就能構建出比較強的模型,從而大幅度地降低標記成本,故使用主動學習方法可解決絲餅缺陷檢測中遇到的標注成本問題。
典型的主動學習流程如圖4所示。首先用少量有標注樣本訓練分類器,再用訓練好的分類器對未標注樣本進行預測,然后基于一定的準則挑選出一定的未標注樣本讓用戶標注,最后更新標注和未標注樣本庫,繼續(xù)訓練分類器。

圖4 典型主動學習流程Fig.4 Typical active learning processes
主動學習的關鍵是制定一個標準來準確衡量未標注樣本的價值。傳統(tǒng)的主動挑選準則有基于信息熵和Joshi提出的基于BvSB(best vs second-bast)準則2種[10],這2種方法都是基于樣本信息度的采樣策略。高信息含量的樣本集合中可能出現(xiàn)樣本具有較高相似度的問題[11],導致樣本的多樣性減少,從而不能快速地提升分類器性能。針對這一問題,本文綜合考慮挑選的絲餅樣本的多樣性和信息度,提出一種新的主動挑選樣本準則。
記樣本的類別集合為Y={1,2,…,m},未標注樣本集為U={x1,x2,…,xu}。
首先,計算每個未定標注樣本的信息度,由于基于信息熵的方法受不重要類別的影響較大,故選用BvSB準則來衡量絲餅樣本信息度。其計算公式為
式中:p(y1|xi)和p(y2|xi)分別表示當前模型預測的絲餅樣本xi隸屬于不同類別概率值的最高和次高結果。
接著,計算該樣本相對于樣本集的多樣性,記為D(xi),D(xi)的值越大,多樣性越高,其計算公式為
式中:u為未標注樣本的數(shù)量;d(xi,xj)為2個樣本xi和xj之間的對稱散度距離,其計算公式為
式中:pyi為當前模型將無標注樣本xi判定為類別y的概率值;pyj為當前模型將無標注樣本xj判定為類別y的概率值;m為樣本的類別數(shù)。
最后,對D(xi)的值進行歸一化處理,使其和BvSB準則計算的值處于同一量綱,且b(xi)的值越小,D(xi)的值越大,挑選的樣本信息量越大,多樣性越高,因此,為了每次選擇一批信息度很高,且存在較大差異的樣本來提升分類器性能,定義如下的綜合性選擇指標:
式中:ε為很小的正值,防止分母為0;norm(·)為歸一化操作。
計算每個未標注樣本的I值并進行排序,選取I值最大的K個樣本讓用戶進行類別判定并標注,然后添加到訓練樣本中,對原有的已標注訓練樣本和未標注訓練樣本進行更新,用更新后的樣本來訓練分類器。迭代進行上述過程,直至分類器達到預期的準確識別率或未標注樣本全部標注完成。
本文實驗在內(nèi)存為8 GB,處理器為Intel(R) Core(TM)i7-3770CPU(3.40 GHz)的計算機上完成,采用TensorFlow深度學習開源框架進行網(wǎng)絡模型的構建和調試,使用Python語言進行編程。采集的絲餅圖像均采用JPEG格式,最終的樣本尺寸均為128像素×128像素。
為驗證本文提出的改進的卷積神經(jīng)網(wǎng)絡算法在絲餅缺陷上的識別效果,改變模型參數(shù)進行多次實驗,共選取了12 465幅絲餅圖片作為訓練樣本。其中正常的絲餅樣本數(shù)為3 121,絆絲類型的樣本數(shù)為3 106,成型不良和油污的樣本數(shù)分別為3 164和 3 074。選取512幅絲餅圖片作為測試樣本集,4種類型各為128張。最終網(wǎng)絡的批樣本數(shù)量為32,迭代次數(shù)為1 400,優(yōu)化器選擇Adam,學習率設置為0.001。模型訓練的熵值損失變化曲線和準確率曲線分別如圖5、6所示。可以看出,隨著迭代次數(shù)的增加,模型在訓練樣本集上的損失值逐漸減小,識別準確率逐漸增加,且在迭代初期的變化率都比較大,最終都趨于一個較好的穩(wěn)定值。

圖5 模型訓練損失曲線Fig.5 Model training loss curve

圖6 模型訓練準確率曲線Fig.6 Model training accuracy curve
表1示出模型在測試集各類型樣本上的識別準確率,即模型預測的樣本種類和樣本真實種類相同的樣本數(shù)與每類樣本總數(shù)的比值。可以看出,各類型的識別準確率均在95.3%以上。在絆絲缺陷中,由于有些絆絲比較細,很難與絲餅背景紋理區(qū)分,導致準確率相對較低;成型不良缺陷中,有些成型不良區(qū)域較小,易造成誤判;最終模型在整個測試集上的準確率為97.1%,識別效果比較理想。

表1 模型測試識別準確率Tab.1 Test recognition accuracy of model
對最后一層卷積得到的特征圖分別進行全局最大池化、全局平均池化和全連接的操作,從參數(shù)所占內(nèi)存、識別準確率和單張圖片的檢測時間3個方面進行對比,結果如表2所示。可知,本文所采用的全局最大池化操作在參數(shù)內(nèi)存、識別準確率和樣本檢測時間方面都占較大優(yōu)勢,其中采用全局最大池化所得的識別準確率較全局平均池化有很明顯的提升,這說明全局最大池化更能提取到不同缺陷絲餅圖像中的區(qū)分性特征,更有利于絲餅的缺陷分類;和全連接相比,采用全局最大池化使得模型的參數(shù)量大大減少,加快了網(wǎng)絡訓練速度,同時池化操作也增加了絲餅樣本對旋轉、縮放等空間變化的魯棒性。

表2 不同連接方式的識別結果對比Tab.2 Comparison of recognition results for different connection ways
初始的少量標注樣本后,采用本文中改進的聚類方法[12]來進行選取,該方法相對于隨機挑選,可選取有代表性的樣本,使初始的分類器具有較好性能,從而有效加快主動學習的后續(xù)進程,最終選取初始樣本數(shù)為1 600。主動學習每次從未標注樣本中挑選的最具價值樣本數(shù)K設置為100,迭代進行 30次。圖7示出本文提出的主動挑選準則與隨機選擇、基于信息熵以及基于BvSB準則在每次更新訓練樣本后的模型識別準確率。

圖7 不同挑選準則的識別準確率Fig.7 Recognition accuracy of different selection criteria
由圖7可知,3種主動學習方法都明顯優(yōu)于隨機選擇。在前幾次迭代中,各選擇方法訓練的分類器性能差別不大,因為前期增加的標注樣本數(shù)相對于原有的標注樣本數(shù)量,所占比重太小。隨著迭代次數(shù)的增多,分類器對絲餅缺陷的識別率得到有效提升,本文所提出的基于信息度和多樣性準則的主動挑選方法的優(yōu)勢逐漸顯現(xiàn)。在獲得同等識別準確率的情況下,本文方法所需的迭代次數(shù)少于其他 3種方法,有效減少了所需標注樣本數(shù)量,節(jié)約了標注成本。
本文將基于卷積神經(jīng)網(wǎng)絡的算法應用到絲餅的缺陷識別中。首先對采集的絲餅圖像進行分塊處理,凸顯了缺陷特征,同時使得訓練樣本得到擴充,在一定程度上可預防過擬合。采用全局最大池化層代替?zhèn)鹘y(tǒng)卷積神經(jīng)網(wǎng)絡的全連接層,有效地減少了網(wǎng)絡參數(shù),增強了圖像對空間變換的魯棒性。最后采用softmax分類器進行分類識別。針對標注大量樣本耗時耗力的問題,綜合考慮未標注樣本的信息度和多樣性,提出新的主動學習方法來挑選對分類器最有利的絲餅樣本。實驗結果表明,改進的網(wǎng)絡模型檢測速度較快,對絲餅缺陷的識別準確率較高,達到97.1%。主動學習方法在達到同等準確率的情況下,有效減少了網(wǎng)絡所需的標注樣本數(shù)量,大大降低了標注所需的人力、財力,具有一定的通用性。但本文方法沒有考慮多個標注問題,有些絲餅樣本可能同時存在2種缺陷,如同時存在絆絲和成型不良缺陷,而現(xiàn)在的算法只能將一個樣本歸為一類,在之后的工作中,會進一步研究這種需做多個標注問題。