王澤霞, 陳 革, 陳振中
(東華大學(xué) 機(jī)械工程學(xué)院, 上海 201620)
化學(xué)纖維是一種常見的合成材料,因其強(qiáng)度高、密度小、彈性好等優(yōu)點(diǎn)被廣泛運(yùn)用于各個領(lǐng)域,除傳統(tǒng)的紡織服裝領(lǐng)域外,其在國防航天、生物醫(yī)用材料[1]、能源開發(fā)[2]等領(lǐng)域也有所涉及。為便于存放和運(yùn)輸,化學(xué)纖維通常卷繞在紙筒上形成絲餅,由于加工過程中速度過高、張力不均以及卷繞過程紙管跳動[3]等原因,生產(chǎn)出來的絲餅會產(chǎn)生各種表面缺陷,其中油污、絆絲、表面成型不良是最為常見的 3種缺陷,這些缺陷的存在不僅會影響絲餅的一等品率,且會影響后織造過程的順利進(jìn)行和織物的質(zhì)量,因此,對化纖絲餅進(jìn)行表面缺陷檢測是一道必不可少的工序。
目前對于紡織品的缺陷檢測大多是對紗線或織造之后的平面織物進(jìn)行檢測[4-6],而對卷繞之后的絲餅缺陷檢測的研究內(nèi)容還較少。各化纖工廠對絲餅的表面缺陷檢測還是依靠檢測人員在燈光照明條件下進(jìn)行肉眼識別,這種人工檢測方法受人為主觀因素影響較大,易造成漏檢和誤檢,且長時間的重復(fù)工作對人的身體危害很大。近年來,基于機(jī)器視覺的檢測技術(shù)取得很大的發(fā)展,文獻(xiàn)[7]采用機(jī)器視覺的方法設(shè)計(jì)了提取絲餅毛羽缺陷特征的卷積核,獲取了毛羽特征,實(shí)現(xiàn)了對絲餅毛羽的檢測。然而基于機(jī)器視覺的方法需要針對特定問題提取特定的特征,且最后的檢測結(jié)果很大程度依賴于設(shè)計(jì)的特征,通用性不強(qiáng)。深度學(xué)習(xí)作為機(jī)器學(xué)習(xí)領(lǐng)域的新熱點(diǎn),通過對低層特征的層層組合,自動得到更抽象的高層特征表示,將特征提取與分類識別2個過程結(jié)合起來,在圖像識別、語音識別領(lǐng)域都取得了突破性進(jìn)展。
為此,本文提出基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的化纖絲餅表面缺陷識別方法,首先對采集的絲餅圖片進(jìn)行分塊操作,然后利用多個卷積層進(jìn)行逐層特征提取,并用全局最大池化層替代傳統(tǒng)的全連接層減少網(wǎng)絡(luò)模型的參數(shù),用softmax分類器進(jìn)行分類。最后,針對絲餅樣本易獲取難標(biāo)注的情況,提出一種主動學(xué)習(xí)方法,先標(biāo)注少量樣本訓(xùn)練網(wǎng)絡(luò),然后讓網(wǎng)絡(luò)主動挑選最具有價值的未標(biāo)注樣本,讓具有豐富經(jīng)驗(yàn)的絲餅缺陷鑒別工作人員進(jìn)行類別判定和定標(biāo)簽,并添加到訓(xùn)練樣本中重新對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,如此迭代訓(xùn)練多次,實(shí)現(xiàn)對化纖絲餅表面缺陷的檢測。
基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的化纖絲餅表面缺陷識別主要分為3個步驟:1)對采集到的絲餅圖像進(jìn)行預(yù)處理,建立絲餅圖像庫;2)構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)模型,進(jìn)行缺陷特征的提取和分類;3)利用主動學(xué)習(xí)方法挑選訓(xùn)練樣本,減少網(wǎng)絡(luò)所需標(biāo)注樣本數(shù)量。算法流程圖如圖1所示。
圖1 算法流程圖Fig.1 Algorithm flowchart
實(shí)驗(yàn)所用絲餅圖像來自浙江省某化纖廠,采用工業(yè)CMOS相機(jī)采集,分辨率為2 048像素×1 536像素。由于絲餅缺陷相對于整個絲餅圖像來說比較小,為突出各缺陷的特征,首先對采集到的絲餅圖像進(jìn)行分塊處理。多次實(shí)驗(yàn)證明,尺寸為128像素×128像素的窗口可較好地表明要識別的絲餅缺陷,且避免了同一個樣本中出現(xiàn)多種缺陷的情況。圖2示出分塊后的正常以及3種缺陷類型的絲餅樣本。
圖2 正常以及缺陷樣本Fig.2 Normal and defective samples. (a) Normal; (b) Tripping filament; (c) Bad shape; (d) Stained yarn
為進(jìn)一步擴(kuò)充樣本,對采集的絲餅圖像進(jìn)行移位和隨機(jī)旋轉(zhuǎn),然后再進(jìn)行分塊以及標(biāo)注,最后對分塊之后的各類型樣本進(jìn)行水平翻轉(zhuǎn),再次實(shí)現(xiàn)數(shù)據(jù)擴(kuò)充。數(shù)據(jù)增強(qiáng)方法的前提是不改變圖像的原有標(biāo)注,如果先分塊標(biāo)注,再進(jìn)行旋轉(zhuǎn)縮放操作,可能會導(dǎo)致原本有缺陷的樣本變成無缺陷,如原樣本為絆絲缺陷,缺陷在邊緣,放大之后缺陷部分超出原來圖像的邊界,圖像變?yōu)闊o缺陷樣本,這會導(dǎo)致錯標(biāo)樣本,不利于提升分類器性能。
由于絲餅圖像采集過程中環(huán)境、相機(jī)等因素的影響,采集的圖片會產(chǎn)生很多噪聲,這些噪聲的存在會影響后續(xù)的分類識別過程。為盡可能地去除這些噪聲并保留絲餅缺陷圖像的細(xì)節(jié)信息,提高圖像的信噪比,對分塊后的圖像采用3像素×3像素的模板進(jìn)行高斯濾波預(yù)處理。
1.2.1 卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)建
卷積神經(jīng)網(wǎng)絡(luò)由多個卷積加池化層組成,其逐層提取圖片的特征,由淺到深,由整體到局部,具有很強(qiáng)的學(xué)習(xí)能力,相比于支持向量機(jī)這樣的淺層機(jī)器學(xué)習(xí)來說,提取的特征更具表達(dá)能力,能夠分離出解釋不同類別的抽象的“變差因素”,使分類更加容易,這為解決絲餅的缺陷識別問題提供了思路。
AlexNet[8]網(wǎng)絡(luò)是一個經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò),在圖像識別分類領(lǐng)域取得很大進(jìn)展。但網(wǎng)絡(luò)采用全連接結(jié)構(gòu),使得網(wǎng)絡(luò)參數(shù)過多,訓(xùn)練速度慢,對于絲餅缺陷檢測來說存在檢測速度慢的問題;另外AlexNet的首層卷積核大小為11×11,尺寸較大。一般大尺寸的卷積核能夠提取圖像的整體特征,對于不同缺陷絲餅圖像來說,其在輪廓形狀和尺寸顏色這些整體信息上的差異較小,故這些特征對分類作用不大。
針對以上2個問題,本文模型在AlexNet基礎(chǔ)上做了一些改進(jìn):采用全局最大池化層替代全連接層,保留最顯著的特征,減少網(wǎng)絡(luò)計(jì)算量和內(nèi)存消耗;將第1層的11×11卷積核換成較小的3×3卷積核,提取有助分類的特征。圖3示出絲餅缺陷識別網(wǎng)絡(luò)模型圖。整個網(wǎng)絡(luò)包括4個卷積層和3個池化層,然后對最后一個卷積得到的特征圖進(jìn)行全局最大池化操作,最后進(jìn)行softmax分類,得到預(yù)測結(jié)果。
圖3 絲餅缺陷識別網(wǎng)絡(luò)模型Fig.3 Network model of yarn package defect recognition
1.2.2 全局最大池化
傳統(tǒng)的全連接層將最后一個卷積操作得到的所有特征圖拉伸為一個長向量,然后逐層降低向量維度,最后進(jìn)行分類。但全連接層的參數(shù)太多,尤其是從特征圖拉伸而來的第1個向量與下一層的連接參數(shù),這使得網(wǎng)絡(luò)訓(xùn)練速度變慢。全局池化的思路是將最后一層卷積得到的每個特征圖看成一個整體,對每個特征圖進(jìn)行操作,最后得到的特征向量的維數(shù)就等于上一層特征圖的數(shù)目,這不僅增強(qiáng)了特征映射和類別之間的對應(yīng)關(guān)系,且整個過程沒有需要優(yōu)化的參數(shù)。由于絲餅的缺陷相對整個樣本來說較小,使用全局平均池化會考慮整張圖片的信息,對所有特征值求平均,弱化了絲餅局部的缺陷特征[9],使得提取的特征不具備很好的區(qū)分性,而全局最大池化輸出的是整個特征圖中的最大值,提取了最顯著的特征,更適合絲餅的缺陷檢測。所以本文采用全局最大池化層來替代全連接層。設(shè)最后一層卷積得到的第l個特征圖上的值為xij(l),y(l)為第l個特征圖在全局最大池化操作后得到的特征值,其計(jì)算公式為
在神經(jīng)網(wǎng)絡(luò)的應(yīng)用過程中,獲取大量無標(biāo)注絲餅樣本很簡單,但對大量樣本進(jìn)行準(zhǔn)確的定標(biāo)注卻需耗費(fèi)大量人力財(cái)力,因此,如何在有限時間和成本條件下,使用盡量少的有標(biāo)注絲餅樣本,并快速提升分類器的性能是一個關(guān)鍵問題。主動學(xué)習(xí)方法只需對較少的樣本定標(biāo)注就能構(gòu)建出比較強(qiáng)的模型,從而大幅度地降低標(biāo)記成本,故使用主動學(xué)習(xí)方法可解決絲餅缺陷檢測中遇到的標(biāo)注成本問題。
典型的主動學(xué)習(xí)流程如圖4所示。首先用少量有標(biāo)注樣本訓(xùn)練分類器,再用訓(xùn)練好的分類器對未標(biāo)注樣本進(jìn)行預(yù)測,然后基于一定的準(zhǔn)則挑選出一定的未標(biāo)注樣本讓用戶標(biāo)注,最后更新標(biāo)注和未標(biāo)注樣本庫,繼續(xù)訓(xùn)練分類器。
圖4 典型主動學(xué)習(xí)流程Fig.4 Typical active learning processes
主動學(xué)習(xí)的關(guān)鍵是制定一個標(biāo)準(zhǔn)來準(zhǔn)確衡量未標(biāo)注樣本的價值。傳統(tǒng)的主動挑選準(zhǔn)則有基于信息熵和Joshi提出的基于BvSB(best vs second-bast)準(zhǔn)則2種[10],這2種方法都是基于樣本信息度的采樣策略。高信息含量的樣本集合中可能出現(xiàn)樣本具有較高相似度的問題[11],導(dǎo)致樣本的多樣性減少,從而不能快速地提升分類器性能。針對這一問題,本文綜合考慮挑選的絲餅樣本的多樣性和信息度,提出一種新的主動挑選樣本準(zhǔn)則。
記樣本的類別集合為Y={1,2,…,m},未標(biāo)注樣本集為U={x1,x2,…,xu}。
首先,計(jì)算每個未定標(biāo)注樣本的信息度,由于基于信息熵的方法受不重要類別的影響較大,故選用BvSB準(zhǔn)則來衡量絲餅樣本信息度。其計(jì)算公式為
式中:p(y1|xi)和p(y2|xi)分別表示當(dāng)前模型預(yù)測的絲餅樣本xi隸屬于不同類別概率值的最高和次高結(jié)果。
接著,計(jì)算該樣本相對于樣本集的多樣性,記為D(xi),D(xi)的值越大,多樣性越高,其計(jì)算公式為
式中:u為未標(biāo)注樣本的數(shù)量;d(xi,xj)為2個樣本xi和xj之間的對稱散度距離,其計(jì)算公式為
式中:pyi為當(dāng)前模型將無標(biāo)注樣本xi判定為類別y的概率值;pyj為當(dāng)前模型將無標(biāo)注樣本xj判定為類別y的概率值;m為樣本的類別數(shù)。
最后,對D(xi)的值進(jìn)行歸一化處理,使其和BvSB準(zhǔn)則計(jì)算的值處于同一量綱,且b(xi)的值越小,D(xi)的值越大,挑選的樣本信息量越大,多樣性越高,因此,為了每次選擇一批信息度很高,且存在較大差異的樣本來提升分類器性能,定義如下的綜合性選擇指標(biāo):
式中:ε為很小的正值,防止分母為0;norm(·)為歸一化操作。
計(jì)算每個未標(biāo)注樣本的I值并進(jìn)行排序,選取I值最大的K個樣本讓用戶進(jìn)行類別判定并標(biāo)注,然后添加到訓(xùn)練樣本中,對原有的已標(biāo)注訓(xùn)練樣本和未標(biāo)注訓(xùn)練樣本進(jìn)行更新,用更新后的樣本來訓(xùn)練分類器。迭代進(jìn)行上述過程,直至分類器達(dá)到預(yù)期的準(zhǔn)確識別率或未標(biāo)注樣本全部標(biāo)注完成。
本文實(shí)驗(yàn)在內(nèi)存為8 GB,處理器為Intel(R) Core(TM)i7-3770CPU(3.40 GHz)的計(jì)算機(jī)上完成,采用TensorFlow深度學(xué)習(xí)開源框架進(jìn)行網(wǎng)絡(luò)模型的構(gòu)建和調(diào)試,使用Python語言進(jìn)行編程。采集的絲餅圖像均采用JPEG格式,最終的樣本尺寸均為128像素×128像素。
為驗(yàn)證本文提出的改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)算法在絲餅缺陷上的識別效果,改變模型參數(shù)進(jìn)行多次實(shí)驗(yàn),共選取了12 465幅絲餅圖片作為訓(xùn)練樣本。其中正常的絲餅樣本數(shù)為3 121,絆絲類型的樣本數(shù)為3 106,成型不良和油污的樣本數(shù)分別為3 164和 3 074。選取512幅絲餅圖片作為測試樣本集,4種類型各為128張。最終網(wǎng)絡(luò)的批樣本數(shù)量為32,迭代次數(shù)為1 400,優(yōu)化器選擇Adam,學(xué)習(xí)率設(shè)置為0.001。模型訓(xùn)練的熵值損失變化曲線和準(zhǔn)確率曲線分別如圖5、6所示。可以看出,隨著迭代次數(shù)的增加,模型在訓(xùn)練樣本集上的損失值逐漸減小,識別準(zhǔn)確率逐漸增加,且在迭代初期的變化率都比較大,最終都趨于一個較好的穩(wěn)定值。
圖5 模型訓(xùn)練損失曲線Fig.5 Model training loss curve
圖6 模型訓(xùn)練準(zhǔn)確率曲線Fig.6 Model training accuracy curve
表1示出模型在測試集各類型樣本上的識別準(zhǔn)確率,即模型預(yù)測的樣本種類和樣本真實(shí)種類相同的樣本數(shù)與每類樣本總數(shù)的比值??梢钥闯觯黝愋偷淖R別準(zhǔn)確率均在95.3%以上。在絆絲缺陷中,由于有些絆絲比較細(xì),很難與絲餅背景紋理區(qū)分,導(dǎo)致準(zhǔn)確率相對較低;成型不良缺陷中,有些成型不良區(qū)域較小,易造成誤判;最終模型在整個測試集上的準(zhǔn)確率為97.1%,識別效果比較理想。
表1 模型測試識別準(zhǔn)確率Tab.1 Test recognition accuracy of model
對最后一層卷積得到的特征圖分別進(jìn)行全局最大池化、全局平均池化和全連接的操作,從參數(shù)所占內(nèi)存、識別準(zhǔn)確率和單張圖片的檢測時間3個方面進(jìn)行對比,結(jié)果如表2所示。可知,本文所采用的全局最大池化操作在參數(shù)內(nèi)存、識別準(zhǔn)確率和樣本檢測時間方面都占較大優(yōu)勢,其中采用全局最大池化所得的識別準(zhǔn)確率較全局平均池化有很明顯的提升,這說明全局最大池化更能提取到不同缺陷絲餅圖像中的區(qū)分性特征,更有利于絲餅的缺陷分類;和全連接相比,采用全局最大池化使得模型的參數(shù)量大大減少,加快了網(wǎng)絡(luò)訓(xùn)練速度,同時池化操作也增加了絲餅樣本對旋轉(zhuǎn)、縮放等空間變化的魯棒性。
表2 不同連接方式的識別結(jié)果對比Tab.2 Comparison of recognition results for different connection ways
初始的少量標(biāo)注樣本后,采用本文中改進(jìn)的聚類方法[12]來進(jìn)行選取,該方法相對于隨機(jī)挑選,可選取有代表性的樣本,使初始的分類器具有較好性能,從而有效加快主動學(xué)習(xí)的后續(xù)進(jìn)程,最終選取初始樣本數(shù)為1 600。主動學(xué)習(xí)每次從未標(biāo)注樣本中挑選的最具價值樣本數(shù)K設(shè)置為100,迭代進(jìn)行 30次。圖7示出本文提出的主動挑選準(zhǔn)則與隨機(jī)選擇、基于信息熵以及基于BvSB準(zhǔn)則在每次更新訓(xùn)練樣本后的模型識別準(zhǔn)確率。
圖7 不同挑選準(zhǔn)則的識別準(zhǔn)確率Fig.7 Recognition accuracy of different selection criteria
由圖7可知,3種主動學(xué)習(xí)方法都明顯優(yōu)于隨機(jī)選擇。在前幾次迭代中,各選擇方法訓(xùn)練的分類器性能差別不大,因?yàn)榍捌谠黾拥臉?biāo)注樣本數(shù)相對于原有的標(biāo)注樣本數(shù)量,所占比重太小。隨著迭代次數(shù)的增多,分類器對絲餅缺陷的識別率得到有效提升,本文所提出的基于信息度和多樣性準(zhǔn)則的主動挑選方法的優(yōu)勢逐漸顯現(xiàn)。在獲得同等識別準(zhǔn)確率的情況下,本文方法所需的迭代次數(shù)少于其他 3種方法,有效減少了所需標(biāo)注樣本數(shù)量,節(jié)約了標(biāo)注成本。
本文將基于卷積神經(jīng)網(wǎng)絡(luò)的算法應(yīng)用到絲餅的缺陷識別中。首先對采集的絲餅圖像進(jìn)行分塊處理,凸顯了缺陷特征,同時使得訓(xùn)練樣本得到擴(kuò)充,在一定程度上可預(yù)防過擬合。采用全局最大池化層代替?zhèn)鹘y(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的全連接層,有效地減少了網(wǎng)絡(luò)參數(shù),增強(qiáng)了圖像對空間變換的魯棒性。最后采用softmax分類器進(jìn)行分類識別。針對標(biāo)注大量樣本耗時耗力的問題,綜合考慮未標(biāo)注樣本的信息度和多樣性,提出新的主動學(xué)習(xí)方法來挑選對分類器最有利的絲餅樣本。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的網(wǎng)絡(luò)模型檢測速度較快,對絲餅缺陷的識別準(zhǔn)確率較高,達(dá)到97.1%。主動學(xué)習(xí)方法在達(dá)到同等準(zhǔn)確率的情況下,有效減少了網(wǎng)絡(luò)所需的標(biāo)注樣本數(shù)量,大大降低了標(biāo)注所需的人力、財(cái)力,具有一定的通用性。但本文方法沒有考慮多個標(biāo)注問題,有些絲餅樣本可能同時存在2種缺陷,如同時存在絆絲和成型不良缺陷,而現(xiàn)在的算法只能將一個樣本歸為一類,在之后的工作中,會進(jìn)一步研究這種需做多個標(biāo)注問題。