李鵬飛, 嚴(yán) 凱, 張緩緩, 景軍鋒
(西安工程大學(xué) 電子信息學(xué)院, 陜西 西安 710048)
紗線的質(zhì)量對(duì)紡織品后加工具有重要影響,其中毛羽是紗線質(zhì)量評(píng)價(jià)的重要指標(biāo)之一。在實(shí)際生產(chǎn)過(guò)程中,毛羽過(guò)長(zhǎng)、數(shù)量過(guò)多會(huì)導(dǎo)致紡織品后期染色不均勻[1],從而形成色差;紗線毛羽過(guò)多致使在加工過(guò)程中受摩擦起球[2],從而降低紡織品的質(zhì)量:因此,對(duì)毛羽長(zhǎng)度及數(shù)量的檢測(cè)有重要意義。
目前,企業(yè)檢測(cè)紗線毛羽主要采用是目測(cè)法和光電式毛羽檢測(cè)儀法,但這2種方法誤差較大且成本較高。隨著計(jì)算機(jī)技術(shù)及圖像處理技術(shù)的迅速發(fā)展,圖像處理技術(shù)被越來(lái)越多的研究人員應(yīng)用在紗線毛羽檢測(cè)方面。國(guó)內(nèi)外有很多學(xué)者利用基于紗線條干畫(huà)基準(zhǔn)線的方法檢測(cè)紗線毛羽長(zhǎng)度[3],雖然針對(duì)紗線毛羽檢測(cè)工作取得一些成績(jī),但這種方法在統(tǒng)計(jì)彎曲毛羽長(zhǎng)度時(shí)無(wú)法計(jì)算出實(shí)際長(zhǎng)度,普適性不高。孫銀銀等[4]采用視頻顯微鏡與圖像處理技術(shù)相結(jié)合的方法,選擇條干上下邊緣作為基準(zhǔn)線,并將圖像處理法的檢測(cè)結(jié)果分別與目測(cè)法和GY172 A型光電分級(jí)統(tǒng)計(jì)法相比較,得出基于圖像處理的毛羽檢測(cè)方法能夠獲得更準(zhǔn)確和可靠的檢測(cè)結(jié)果,但此方法利用視頻顯微鏡采集紗線圖像,在工業(yè)生產(chǎn)中不適用。Fabija等[5]利用圖像處理技術(shù)對(duì)毛羽圖像進(jìn)行處理實(shí)現(xiàn)毛羽的檢測(cè),雖然在處理過(guò)程中圖像已經(jīng)過(guò)銳化,但是在分割過(guò)程中部分毛羽仍然會(huì)被分類為背景,從而造成毛羽大范圍斷開(kāi)。
針對(duì)以往研究中存在的問(wèn)題,本文提出一種基于最大熵與密度聚類算法融合的方法對(duì)紗線毛羽進(jìn)行檢測(cè)。該方法首先對(duì)輸入的圖像進(jìn)行雙邊濾波去除噪聲增強(qiáng)紗線毛羽特征,然后利用最大熵閾值法提取出紗線毛羽,并細(xì)化毛羽;最后利用密度聚類算法(DBSCAN)統(tǒng)計(jì)出毛羽根數(shù)及每根毛羽的長(zhǎng)度,并將檢測(cè)結(jié)果與目測(cè)法、基準(zhǔn)線法進(jìn)行比較。
用CCD相機(jī)采集紗線圖片時(shí),由于毛羽在空間中分布位置的不同以及毛羽彎曲等因素影響,在采集過(guò)程中會(huì)造成部分毛羽亮度較暗以及在單根毛羽上亮度值出現(xiàn)差異,且在采集過(guò)程中難免會(huì)出現(xiàn)噪聲。為不受噪聲的影響并完整地提取出毛羽,需要對(duì)毛羽圖像進(jìn)行一系列的處理,處理流程框圖如圖1所示。
圖1 毛羽檢測(cè)方法框圖
Fig.1 Block diagram of hairiness detection method
由于紗線在采集過(guò)程中纖維較細(xì)毛羽與背景紋理之間相似度較高,如果直接進(jìn)行毛羽提取,很難獲取完整的毛羽。為提取出完整的毛羽信息,本文采用雙邊濾波法對(duì)采集的紗線圖像進(jìn)行處理。在利用雙邊濾波處理紗線毛羽圖像過(guò)程中,在非毛羽及邊緣部分,由于噪聲基本都是孤立的點(diǎn),中心點(diǎn)的像素值由鄰域內(nèi)的像素值確定,如中心點(diǎn)鄰域內(nèi)像素值較小,而中心像素值較大,經(jīng)處理后中心像素值則會(huì)變小。當(dāng)雙邊濾波窗口掃描到紗線邊緣或者紗線毛羽時(shí),在窗口內(nèi)大部分值與中心點(diǎn)的像素值相似,在這種情況下中心點(diǎn)的像素值基本維持不變;因此,紗線毛羽經(jīng)過(guò)雙邊濾波后不僅去除了圖像中的噪聲,而且相對(duì)增強(qiáng)了毛羽特征。
毛羽圖像經(jīng)過(guò)預(yù)處理后,需要分割紗線條干及毛羽,而部分毛羽像素值與背景比較接近,在分割時(shí)閾值選擇的不合適會(huì)導(dǎo)致毛羽容易被分割大范圍斷開(kāi),因此需要一種能夠獲取清晰準(zhǔn)確毛羽特征的分割算法。本文采用最大熵閾值[6-7]進(jìn)行分割。該方法根據(jù)每幅紗線圖像的灰度特性,計(jì)算出合適的閾值。
針對(duì)1幅灰度圖像,其灰度級(jí)是區(qū)間[0,255]上的隨機(jī)變量,則p(i)為灰度值等于i時(shí)概率密度函數(shù),因此,根據(jù)熵的定義可以得到圖像的熵:
(1)
式中,b為常數(shù)。
輸入初始閾值T(0≤T≤255,用閾值T將圖像分為2個(gè)區(qū)域,灰度值小于閾值T的為背景區(qū)域,灰度值大于T的為目標(biāo)區(qū)域。背景區(qū)域和目標(biāo)區(qū)域的像素累計(jì)概率分別為
(2)
(3)
且
P0(T)+P1(255-T)=1
(4)
將式(2)、(3)分別代入式(1)中可計(jì)算出該閾值下背景區(qū)域(H0)和目標(biāo)區(qū)域的熵值(H1):
(5)
(6)
根據(jù)式(5)、(6)可計(jì)算出在該閾值下圖像的總熵:
H=H0+H1
(7)
利用式(1)~(7)可計(jì)算出所有分割閾值下的圖像總熵,找到最大的熵,此時(shí)最大熵對(duì)應(yīng)的分割閾值為最終的閾值,大于此閾值的為目標(biāo),小于此閾值的為背景,進(jìn)而實(shí)現(xiàn)紗線的分割。
經(jīng)過(guò)多次實(shí)驗(yàn)驗(yàn)證,最大熵閾值能夠較為完整地提取出紗線毛羽;但在一些紗線圖像中會(huì)出現(xiàn)小部分毛羽像素值與背景極其接近,因此在閾值時(shí)也會(huì)造成毛羽斷開(kāi),但都屬于小范圍斷開(kāi)。
本文研究對(duì)象是紗線的毛羽,紗線條干是冗余的,需剔除掉。去除條干的方法是利用開(kāi)運(yùn)算(卷積核大小為5×5)處理經(jīng)過(guò)最大熵閾值處理后的紗線圖,從而提取出紗線條干。再對(duì)紗線條干進(jìn)行膨脹(卷積核大小為5×5),膨脹的目的是去除紗線條干周圍無(wú)害細(xì)小毛羽對(duì)結(jié)果造成的影響,然后用閾值后的圖像減去膨脹后的紗線條干,得到紗線毛羽。
毛羽的長(zhǎng)度計(jì)算是先計(jì)算出每根毛羽在圖像中所占的像素點(diǎn)的個(gè)數(shù),根據(jù)得到的像素點(diǎn)個(gè)數(shù)以及每個(gè)像素點(diǎn)的大小從而獲得毛羽的近似長(zhǎng)度,因此,獲得毛羽長(zhǎng)度前需對(duì)毛羽進(jìn)行細(xì)化。使用的細(xì)化算法為Hilditch算法[8],經(jīng)過(guò)細(xì)化處理可提取出紗線毛羽骨架,由于提取的紗線毛羽骨架寬度為單像素,因此可用于計(jì)算毛羽長(zhǎng)度。
紗線毛羽經(jīng)細(xì)化后下一步就是計(jì)算毛羽根數(shù)及毛羽長(zhǎng)度。本文通過(guò)分析毛羽的特征,采用密度聚類算法(DBSCAN)[9-10]對(duì)細(xì)化后的毛羽進(jìn)行處理,以此獲得毛羽根數(shù)及長(zhǎng)度。利用DBSCAN聚類算法統(tǒng)計(jì)毛羽長(zhǎng)度及根數(shù)的優(yōu)勢(shì)在于不受小范圍毛羽斷開(kāi)的影響,且能夠同時(shí)統(tǒng)計(jì)出毛羽根數(shù)以及每根毛羽的長(zhǎng)度。此外使用此算法統(tǒng)計(jì)毛羽長(zhǎng)度可避免受到毛羽彎曲、殘留噪聲點(diǎn)的影響,但如果毛羽閾值后斷開(kāi)范圍過(guò)大,則該算法不適用。
DBSCAN聚類算法的具體步驟如下。
輸入:樣本集N={x1,x2,,xm};領(lǐng)域參數(shù)E為樣本xi的鄰域半徑;M為鄰域內(nèi)樣本最小點(diǎn)個(gè)數(shù)。
輸出:所劃分類個(gè)數(shù)以及每一類的大小。
1)從樣本集中選取一個(gè)未被處理的樣本xi。
2)檢查樣本xi的領(lǐng)域E,在其領(lǐng)域內(nèi)找到樣本集N(xi)。
3)如果樣本集內(nèi)樣本的個(gè)數(shù)滿足|N(xi|≥M,則創(chuàng)建一個(gè)樣本xi為核心對(duì)象的類,并將xi鄰域內(nèi)的點(diǎn)加入到該類中。如果|N(xi|≤M,則將xi標(biāo)記為噪聲。
4)檢測(cè)N(xi內(nèi)未被標(biāo)記的樣本,直到檢測(cè)到邊界點(diǎn)結(jié)束。
5)循環(huán)步驟2)、3)、4),直到檢測(cè)完樣本。
DBSCAN聚類算法完成后,得到類的個(gè)數(shù)及每個(gè)類別像素點(diǎn)的個(gè)數(shù)。類的個(gè)數(shù)為圖像中毛羽的根數(shù)。計(jì)算每根毛羽長(zhǎng)度部分與毛羽骨架跟蹤算法計(jì)算毛羽長(zhǎng)度部分相同[11],根據(jù)每類像素點(diǎn)個(gè)數(shù)(每類像素個(gè)數(shù)加5,消除條干膨脹帶來(lái)的誤差)乘以每個(gè)像素點(diǎn)對(duì)應(yīng)實(shí)際長(zhǎng)度,可計(jì)算出毛羽的長(zhǎng)度。
實(shí)驗(yàn)平臺(tái):實(shí)驗(yàn)中紗線毛羽采集系統(tǒng)所使用的攝像機(jī)是BASLER公司的acA1300-30gm面陣相機(jī);采用LED光源;導(dǎo)紗裝置以及配備Intel Core i5-4460 3.2 GHz CPU,8 GB主內(nèi)存,NVIDIA GeForce GT 705顯卡和Windows 8.1操作系統(tǒng)的電腦。要獲取效果較好的紗線圖像,在采集前需要對(duì)曝光時(shí)間、圖像分辨率等參數(shù)進(jìn)行設(shè)置。在實(shí)驗(yàn)中曝光設(shè)置時(shí)間為1/800 s,圖像分辨率為256像素×256像素。在完成相機(jī)參數(shù)調(diào)整后還需要進(jìn)行相機(jī)單位標(biāo)定。本文利用的標(biāo)定板是艾菲特光電技術(shù)有限公司的AFT-MCT-HC100的AFTvision機(jī)器視覺(jué)標(biāo)定板。經(jīng)標(biāo)定后圖中像素與實(shí)際距離對(duì)應(yīng)的關(guān)系為:1像素=0.024 mm。
參數(shù)分析:在毛羽統(tǒng)計(jì)中主要會(huì)受到2種情況的影響。首先是部分紗線毛羽在閾值時(shí)可能會(huì)被分割為背景,造成毛羽小范圍斷開(kāi),影響毛羽根數(shù)及長(zhǎng)度統(tǒng)計(jì)(如圖2(a)所示);另一種情況是2根毛羽相距比較近,在統(tǒng)計(jì)毛羽時(shí)可能會(huì)誤統(tǒng)計(jì)為1根(如圖2(b)所示)。在本文中利用了DBSCAN聚類算法來(lái)消除這種誤差,但需要設(shè)置合適的鄰域參數(shù){E,M},實(shí)驗(yàn)中先使M值保持不變,改變鄰域半徑E值。然后使E值保持不變,改變M值。以便于選擇出合適的參數(shù)值。結(jié)果如表1所示。
圖2 影響毛羽統(tǒng)計(jì)的情況
Fig.2 Affecting situation of hairy statistics. (a) Hairiness disconnection; (b) Adjacent hairiness
從表1可看出,當(dāng)領(lǐng)域參數(shù)設(shè)置過(guò)小時(shí)容易將斷開(kāi)的毛羽分為多根毛羽,如表中鄰域半徑、鄰域內(nèi)樣本最小點(diǎn)個(gè)數(shù)分別為E=0~3.0,M=4~6和E=6,M=0~3.0時(shí),將圖2(a)中斷開(kāi)的毛羽分成了多根。當(dāng)鄰域參數(shù)設(shè)置過(guò)大時(shí)容易將距離接近的毛羽統(tǒng)計(jì)為1根毛羽。根據(jù)多次實(shí)驗(yàn),本文中選擇鄰域半徑E=6,鄰域內(nèi)樣本最小點(diǎn)個(gè)數(shù)M=6。經(jīng)過(guò)多次實(shí)驗(yàn)證明,該參數(shù)能夠較精確統(tǒng)計(jì)出毛羽根數(shù)。
表1 DBSCAN聚類統(tǒng)計(jì)毛羽根數(shù)
Tab.1 DBSCAN clustering statistics number of hairs
圖序領(lǐng)域參數(shù)EM不同長(zhǎng)度(mm)毛羽根數(shù)123456<1圖2(a)0.0~3.04~630000043.1~6.04~621000036.1~8.04~621000043.1~6.01~320000053.1~6.07~92100002圖2(b)0.0~3.04~610010033.1~6.04~600001036.1~8.04~610010033.1~6.01~310010033.1~6.07~91001002
注:E為樣本鄰域半徑,M為鄰域內(nèi)樣本最小點(diǎn)個(gè)數(shù)。過(guò)小的毛羽未統(tǒng)計(jì)。
樣本選擇:實(shí)驗(yàn)在樣品中選取7段紗線,每段紗線連續(xù)采集相片100張,所對(duì)應(yīng)的每張圖片的實(shí)際長(zhǎng)度為6.144 mm×6.144 mm。100張圖片對(duì)應(yīng)的長(zhǎng)度為61.44 cm,可以近似認(rèn)為是61 cm。對(duì)樣本檢測(cè)結(jié)果如表2所示。
表2 毛羽長(zhǎng)度分類統(tǒng)計(jì)
Tab.2 Classification of hairiness length
樣本序號(hào)不同長(zhǎng)度(mm)毛羽根數(shù)1234561#123351512312#8345209423#158603010514#140502018535#143281911746#15147116427#13140251052平均值132.743.62010.94.72.1
為驗(yàn)證本文算法的優(yōu)勢(shì)以及算法計(jì)算結(jié)果的準(zhǔn)確性,選取了3個(gè)紗線毛羽圖像樣本(見(jiàn)圖3,檢測(cè)目標(biāo)為白色箭頭標(biāo)記的毛羽)作為檢測(cè)樣本,分別利用本文所提的算法(見(jiàn)圖4)及基準(zhǔn)線法(見(jiàn)圖5)進(jìn)行檢測(cè),并將這2種算法的檢測(cè)結(jié)果與目測(cè)法的檢測(cè)結(jié)果進(jìn)行比較。目測(cè)法是通過(guò)目測(cè)、投影放大和顯微放大攝影獲取紗線毛羽形態(tài),然后測(cè)量紗線毛羽長(zhǎng)度、根數(shù)等指標(biāo)[13]。比較結(jié)果如表3所示。
圖3 紗線原圖
Fig.3 Original image of yarn. (a) Sample 1; (b) Sample 2; (c) Sample 3
圖4 本文中算法提取的毛羽
Fig.4 Hairiness extracted by proposed algorithm. (a) Sample 1; (b) Sample 2; (c) Sample 3
圖5 基準(zhǔn)線法(每格0.5 mm)
Fig.5 Baseline method (0.5 mm per grid). (a) Sample 1; (b) Sample 2; (c) Sample 3
表3 本文算法與基準(zhǔn)線法和目測(cè)法比較Tab.3 Comparison of algorithm and baseline method,visual method
樣本本文算法計(jì)算的毛羽長(zhǎng)度/mm基準(zhǔn)線法目測(cè)法測(cè)量長(zhǎng)度/mm相對(duì)差/%測(cè)量長(zhǎng)度/mm相對(duì)差/%1.8241.082.41.81.33樣本11.5121.051.21.50.801.0800.5116.01.11.820.6000.520.00.714.291.9201.528.02.04.00樣本21.8481.523.21.92.741.2001.020.01.20.001.1520.5130.41.24.003.3362.066.83.41.88樣本32.5442.027.22.62.152.0881.0108.82.10.571.0560.5111.21.05.60
注:相對(duì)差=|E-B|/B×100%。其中E為采用本文算法所測(cè)結(jié)果,B為采用基準(zhǔn)線法或目測(cè)法所測(cè)結(jié)果。
從表3與圖4、5可以看出,基于基準(zhǔn)線法統(tǒng)計(jì)毛羽長(zhǎng)度的方法存在一個(gè)明顯的缺陷,對(duì)于毛羽彎曲的情況,該方法不能精確地計(jì)算出毛羽的長(zhǎng)度,而本文方法通過(guò)統(tǒng)計(jì)每根毛羽在圖像中所占的像素?cái)?shù)目獲取毛羽長(zhǎng)度,可解決毛羽彎曲時(shí)其長(zhǎng)度計(jì)算不準(zhǔn)確的問(wèn)題。從實(shí)驗(yàn)結(jié)果可以看出,與基于基準(zhǔn)線的算法相比,本文的算法相對(duì)增長(zhǎng)較大,特別針對(duì)彎曲幅度較大的毛羽,最大達(dá)到130.4%。與目測(cè)法相比,表3中除1根毛羽誤差較大外,其余普遍較小,結(jié)果與目測(cè)法接近。因此可看出本文算法能夠更精確、真實(shí)地計(jì)算出毛羽的長(zhǎng)度。特別是針對(duì)彎曲幅度較大的毛羽,有很好的適用性。
本文提出一種基于最大熵與DBSCAN相融合的毛羽檢測(cè)方法。首先利用圖像處理技術(shù),對(duì)紗線圖像進(jìn)行濾波、閾值、細(xì)化提取出毛羽,最后利用DBSCAN聚類算法計(jì)算出毛羽根數(shù)及毛羽長(zhǎng)度。對(duì)得到的結(jié)果與目測(cè)法和基準(zhǔn)線法進(jìn)行比較,結(jié)果顯示,本文算法能夠較為準(zhǔn)確地計(jì)算出毛羽的根數(shù)以及毛羽的長(zhǎng)度,誤差較小。同時(shí)也計(jì)算出了毛羽H值,并與USTER公報(bào)應(yīng)用手冊(cè)進(jìn)行比較,計(jì)算所得的毛羽指標(biāo)相對(duì)穩(wěn)定。實(shí)驗(yàn)結(jié)果證明本文算法可以有效地獲取毛羽長(zhǎng)度及根數(shù)。