孫春紅, 丁廣太,2, 方 坤
(1. 上海大學(xué) 計算機工程與科學(xué)學(xué)院, 上海 200444; 2. 上海大學(xué) 材料基因組工程研究院, 上海 200444)
羊絨與羊毛纖維鑒別一直是國內(nèi)外毛紡織行業(yè)的研究重點。目前,紡織行業(yè)對纖維的識別主要基于顯微鏡方法[1-2],這種方法要求檢測人員具備極強的判斷能力和辨別經(jīng)驗。受環(huán)境、飼養(yǎng)方式以及地理環(huán)境的影響,纖維變異形態(tài)逐漸增多,需要檢測人員不斷更新經(jīng)驗,重視和關(guān)注纖維結(jié)構(gòu)變化及其多樣性。人工檢驗不可避免地會受到人的主觀判斷的影響,工作強度大,鑒定效率低,無法滿足日益增長的工業(yè)需求;因此,高效、準(zhǔn)確地識別羊絨與羊毛纖維,并鑒定其品質(zhì),是紡織行業(yè)的不懈追求,與之相關(guān)的技術(shù)和數(shù)據(jù)分析算法研究具有重要的實際應(yīng)用價值。
基于圖像的稀疏字典學(xué)習(xí)[3-4]是機器學(xué)習(xí)和計算機視覺研究領(lǐng)域的熱點方法之一,其應(yīng)用在圖像分類以及識別領(lǐng)域效果較好[5]。文獻[6]提出了一種基于稀疏表示的人臉識別算法,即SRC(sparse representation based classifier),是稀疏字典學(xué)習(xí)的早期重要工作之一。該算法從數(shù)據(jù)集中提取部分數(shù)據(jù)樣本作為字典,基于字典對數(shù)據(jù)的稀疏編碼進行優(yōu)化,之后計算數(shù)據(jù)樣本與其稀疏表示的殘差,取最小殘差對應(yīng)的類別作為待分類樣本。該算法簡單易用,但使用原始圖像數(shù)據(jù)構(gòu)造字典,圖像質(zhì)量問題如圖像噪聲、計算誤差會傳導(dǎo)到字典中,且當(dāng)原始圖像較大時,算法的計算量也隨之變大。
為克服SRC方法直接將數(shù)據(jù)集中部分數(shù)據(jù)樣本作為字典這一不足,針對特定領(lǐng)域的字典學(xué)習(xí)問題,研究者們尋找各種方法構(gòu)造具有較高辨別能力的過完備字典(over-complete dictionary),以充分表達數(shù)據(jù)之間的關(guān)聯(lián)性。賀興時等[4]根據(jù)尺度不變特征變換(SIFT)對光照、表情、姿態(tài)的魯棒性和稀疏表示,分析噪聲因子的穩(wěn)健性及其優(yōu)越的分類性能, 提出基于SIFT的稀疏表示人臉識別算法。Tiep等[7]通過分離對象的特殊性和共性,構(gòu)建低秩的共享字典和特定類別字典用于圖像分類。
近年來,人們發(fā)現(xiàn)稀疏編碼除能夠表示原始數(shù)據(jù)的特性,也具有一定的類型判別性,即學(xué)習(xí)到的稀疏模型不僅是一個重構(gòu)模型,也是一種有辨識能力的判別模型。利用共享字典和多類決策函數(shù),Julien等[8]對屬于不同類別的信號進行稀疏表示,以構(gòu)建具有辨識能力的稀疏模型。Jiang等[9]提出了一種用于學(xué)習(xí)稀疏編碼判別字典的標(biāo)簽一致K均值奇異值分解(K-SVD)算法,將標(biāo)簽信息與每個字典項相關(guān)聯(lián),以在字典學(xué)習(xí)過程中增強稀疏編碼的可辨識性。
為實現(xiàn)羊絨與羊毛纖維的自動分類,本文基于稀疏字典學(xué)習(xí)方法對實際應(yīng)用中的算法問題進行研究。提取原始圖像的局部二值模型(LBP)紋理特征構(gòu)建更緊湊的字典表示,使用基于K-SVD的稀疏字典學(xué)習(xí)算法對字典和稀疏編碼同時進行優(yōu)化,在更好地表達圖像特征的同時增強類別的可辨識性。
本文提出了一種基于稀疏字典學(xué)習(xí)(SDL)的羊絨與羊毛分類和鑒別方法,通過稀疏字典學(xué)習(xí)方法獲取關(guān)聯(lián)特征——字典,并利用字典實現(xiàn)對羊絨與羊毛纖維的自動分類。為獲取更好的分類結(jié)果,突出目標(biāo),分別基于光學(xué)顯微鏡(OM)和掃描電子顯微鏡(SEM)照片進行實驗。
基于稀疏字典學(xué)習(xí)思想設(shè)計的羊絨與羊毛分類和鑒別算法,主要分為以下4步:1)對羊絨與羊毛纖維圖像進行圖像預(yù)處理;2)提取每張圖像的紋理特征,并將特征集轉(zhuǎn)化為代表整個數(shù)據(jù)集的多維特征矩陣;3)對特征矩陣進行字典學(xué)習(xí),獲取字典及其稀疏編碼,并對稀疏編碼進行優(yōu)化;4)利用字典和稀疏編碼實現(xiàn)羊絨與羊毛纖維的分類和鑒別。
本文使用的羊絨和羊毛原始圖像(鄂爾多斯羊絨集團提供)如圖1所示。
圖1 羊絨和羊毛原始圖像Fig.1 Original images of cashmere and wool. (a) Cashmere optical microscope image(×500); (b) Wool optical microscope image(×500); (c) Cashmere SEM image(×1 000); (d) Wool SEM image(×1 000)
在使用顯微鏡獲取原始羊絨與羊毛纖維圖像時,難免會存在干擾,如光照、陰影等,以及如圖1(a)、 (b)中的氣泡與可見雜質(zhì)。為降低干擾對實驗的影響,首先使用中值濾波、暗通道先驗去霧算法[10]去霧、去噪,使模糊的原始圖像更加清晰,結(jié)果如圖2(a)、(b)所示。由于在掃描電鏡圖像中纖維數(shù)量過多,為突出纖維部分,將圖像剪切成12個部分;對光學(xué)顯微鏡圖像不進行剪切處理。之后,為防止實驗結(jié)果過擬合以及豐富圖像信息,使用隨機水平翻轉(zhuǎn)、隨機豎直翻轉(zhuǎn)、圖像旋轉(zhuǎn)、隨機水平偏移、隨機豎直偏移5種方式實現(xiàn)數(shù)據(jù)增廣,每張圖像增加10個樣本。圖像數(shù)據(jù)增廣后如圖2(c)、(d)所示。
圖2 圖像預(yù)處理樣例Fig.2 Image samples after preprocessing. (a) Wool SEM image after denoising; (b) Wool optical microscope image after denoising; (c) Cashmere augmentation image 1;(d) Cashmere augmentation image 2
對顯微鏡圖像進行圖像預(yù)處理后,本文使用LBP特征實現(xiàn)羊絨與羊毛纖維紋理特征參數(shù)的提取。由于圖像的多樣性,SIFT特征等基于關(guān)鍵點的特征提取方法提取出的關(guān)鍵點數(shù)量不同,會導(dǎo)致獲取的特征向量維度不易統(tǒng)一,不便于字典學(xué)習(xí)過程的實施,因此,本文利用LBP特征獲取固定的特征維度,保證圖像信息的統(tǒng)一性。多維特征矩陣的獲取通過如下2個步驟實現(xiàn)。
1)提取圖像的LBP特征。
LBP特征提取方法步驟如下:首先對圖像中所有像素進行遍歷;對當(dāng)前像素(xc,yc)進行LBP編碼[11],如式(1)所示。
(1)
式中:gc表示當(dāng)前像素的灰度值;gi表示(xc,yc)的8鄰域里第i個元素的灰度值,i=0,1,2,…,7;s(x)是式(2)定義的符號函數(shù)。
(2)
基于LBP(xc,yc)最終形成一個8位二進制碼作為當(dāng)前像素(xc,yc)的LBP值,計算過程如圖3所示。然后對整張圖像的LBP值進行直方圖統(tǒng)計,獲取圖像的LBP特征向量
y=[a1,…,ai,…,am]T
式中:ai表示該直方圖中的第i個統(tǒng)計數(shù)據(jù);m表示該直方圖中的數(shù)據(jù)個數(shù),也就是該圖像的LBP特征向量的長度。
圖3 LBP特征提取示例圖Fig.3 Example diagram of LBP feature extraction
2)構(gòu)建圖像矩陣向量。
對每張圖像進行特征提取,獲得圖像的LBP特征向量y后,將其規(guī)范化(主要是統(tǒng)一其長度,取m=256), 形成該圖像的m×n維的特征矩陣Y,Y表示具有n張圖像的LBP特征向量矩陣,如式(3)所示。
Y=[y1,…,yk,…,yn]
(3)
式中,yk表示第k張圖像所對應(yīng)的m維LBP特征向量,k=1,2,3,…,n。
稀疏字典學(xué)習(xí)即從龐大的樣本中找出最具代表性的字典,用字典中的原子對樣本進行稀疏表示。稀疏字典學(xué)習(xí)的形式化表達式為
Y=DX
(4)
式中:D=[d1,d2,…,dK]∈Rm×K,表示通過字典學(xué)習(xí)得到的具有K個原子的字典(K為字典項數(shù))。X=[x1,x2,…,xn]∈RK×n,表示Y中的樣本稀疏編碼由n個K維列向量組成。
稀疏字典學(xué)習(xí)過程由如下3步完成:字典和稀疏編碼構(gòu)建,稀疏編碼的優(yōu)化,利用字典與稀疏編碼實現(xiàn)羊絨與羊毛顯微鏡圖像分類。
獲取圖像特征矩陣Y后,通過K均值奇異值分解(K-SVD)[5]算法獲取字典D和稀疏編碼X,即
s.t.?i, ‖xi‖0≤T0
(5)
式中:‖xi‖0表示矩陣X中的第i個列向量xi的非零分量個數(shù);T0為選定的閾值,本文將其設(shè)置為每次訓(xùn)練時字典矩陣中列向量的最大非零分量個數(shù)。
字典D和稀疏編碼矩陣X的獲取步驟如下[5]:
1)初始化字典D。提取原始訓(xùn)練數(shù)據(jù)的特征矩陣Y中K列數(shù)據(jù)作為初始字典D0,令D=D0。首次訓(xùn)練選取訓(xùn)練集中圖像數(shù)的大約1/4作為K值。
2)根據(jù)D和Y,使用正交匹配追蹤算法(OMP)取矩陣方程(4)的一個廣義解X0,初始化稀疏矩陣X,即X=X0;設(shè)置算法計算的誤差ε以及迭代次數(shù)iter。
(6)
隨后,根據(jù)Ej中與index相對應(yīng)的列構(gòu)成殘差矩陣Eindex,運用SVD算法對Eindex進行分解,如式(7) 所示。
全域旅游發(fā)展的新觀察和新思考 主持人:厲新建 全域旅游發(fā)展的若干思考 王昆欣 / 大力發(fā)展全域旅游,滿足人民對美好旅居生活的需求 李柏文 / 如何看待和發(fā)展“全域旅游” 宋 瑞 / 全域旅游戰(zhàn)略的需求側(cè)視角 厲新建 賈 然 傅林峰 01(72)
Eindex=USVT
(7)
4)字典全部更新一次后,基于式(8)計算誤差e;若誤差e<ε,則停止迭代,輸出稀疏矩陣X和字典D;否則,重復(fù)步驟3),直到達到迭代次數(shù)iter。
e=‖Y-DX‖2
(8)
5)輸出稀疏矩陣X和字典D。
1.3.2 稀疏編碼的優(yōu)化
龐大的數(shù)據(jù)集使數(shù)據(jù)維度升高,獲取的字典D與稀疏矩陣X一般無法達到稀疏表示的算法需求。為使稀疏編碼X在表達數(shù)據(jù)集時更具稀疏性,獲取字典D以及稀疏編碼X后,對稀疏編碼進行LASSO (最小絕對值收斂和選擇算子)優(yōu)化,目標(biāo)函數(shù)如式(9) 所示。式中,λ=0.01。
(9)
1.3.3 羊絨與羊毛圖像分類
利用訓(xùn)練得到的字典D和稀疏矩陣X對測試集(或待分類數(shù)據(jù)集)中的圖像進行分類。具體方法為,基于測試數(shù)據(jù)Ytest和字典矩陣、稀疏編碼矩陣由式(10)計算殘差,取最小殘差代表的類別作為測試數(shù)據(jù)的類別[6]。
(10)
式中:DI代表第I類圖像的字典矩陣;XI代表字典DI相對應(yīng)的稀疏編碼矩陣。
本文數(shù)據(jù)集主要由光學(xué)顯微鏡和掃描電子顯微鏡圖像組成。光學(xué)顯微鏡纖維圖像由鄂爾多斯羊絨集團提供;掃描電子顯微鏡圖像部分為鄂爾多斯羊絨集團提供,為獲取更多不同的纖維形態(tài),部分圖像來自GB/T 14593—2008《山羊絨、綿羊毛及其混合纖維定量分析方法 掃描電鏡法》中。
獲取圖像數(shù)據(jù)集后,通過上文所述流程進行實驗。首先,對顯微鏡圖像進行預(yù)處理。經(jīng)過圖像預(yù)處理后,光學(xué)顯微鏡數(shù)據(jù)集情況如表1所示,掃描電鏡圖像數(shù)據(jù)集情況如表2所示,并按照表1、2所示將圖像分為訓(xùn)練集和測試集。對所有圖像提取圖像LBP特征,形成多維特征矩陣作為稀疏字典學(xué)習(xí)的輸入;之后,基于稀疏字典學(xué)習(xí)和訓(xùn)練集,獲取山羊絨和綿羊毛的字典矩陣和稀疏編碼獲得分類器;最后,利用測試集驗證本文算法對山羊絨與綿羊毛的分類效果,具體步驟如圖4所示。
表1 光學(xué)顯微鏡數(shù)據(jù)集Tab.1 Optical microscope data set
表2 掃描電子顯微鏡數(shù)據(jù)集Tab.2 Scanning electron microscope data set
圖4 基于稀疏字典學(xué)習(xí)的羊絨羊毛分類方法步驟Fig.4 Steps of cashmere and wool classification based on sparse dictionary learning
設(shè)S表示測試集中全部分類正確的樣本,NUM表示測試集樣本的總數(shù),c表示測試集中某個樣本的類別(綿羊毛或山羊絨),T表示通過分類算法將樣本類別正確預(yù)測為c的樣本數(shù)量,Q表示數(shù)據(jù)集中所有預(yù)測為c的樣本數(shù)量,Z表示數(shù)據(jù)集中所有標(biāo)簽為c的樣本數(shù)量。本文將2種顯微鏡圖像測試集的山羊絨和綿羊毛的類別與分類后的類別進行準(zhǔn)確率A、召回率R、查全率P和F1-Score共4類指標(biāo)計算[12]。其中:準(zhǔn)確率為A=S/NUM;查全率為P=T/Q;召回率為R=T/Z;F1-score值為F1-score=2PR/(P+R)。本文主要基于準(zhǔn)確率判斷算法分類效果。
2.3.1 不同字典項個數(shù)K對實驗的影響
稀疏字典學(xué)習(xí)中字典中原子的數(shù)量影響著最后的分類結(jié)果,本文對不同的字典項個數(shù)K進行測試,結(jié)果如表3所示。為能夠使用更少的數(shù)據(jù)表現(xiàn)更多的特征,首先使用訓(xùn)練集的1/4數(shù)量進行測試,然后按1 000個字典項數(shù)逐次增加。在表1所示的光學(xué)顯微鏡圖像數(shù)據(jù)集下,使用本文方法后的分類結(jié)果除召回率R以外,其他分類指標(biāo)均隨著字典項數(shù)逐漸升高,召回率最高可達92%左右,準(zhǔn)確率可達87%左右,查全率可達90%左右,F(xiàn)1-score可達86%左右,準(zhǔn)確率還有待提高。
表3 SDL方法在不同字典項個數(shù)下的分類結(jié)果Tab.3 Classification results of SDL method under different number of dictionary items
2.3.2 與其他分類器對比
為評估本文所提出的方法的準(zhǔn)確性,在表2所示的掃描電子顯微鏡數(shù)據(jù)集下進行對比實驗。在相同圖像預(yù)處理的前提下,提取圖像的LBP特征,采用不同的分類器對山羊絨和綿羊毛進行分類。將采用支持向量機(SVM)分類器、基于K-SVD的SVM分類器、文獻[6]中的SRC方法,以及本文SDL方法作為分類器進行實驗,結(jié)果如表4所示。
表4 分類結(jié)果對比Tab.4 Comparison of classification results
在表4方法2中,通過K-SVD字典學(xué)習(xí)獲取字典后,將其用于訓(xùn)練支持向量機,進而實現(xiàn)分類器功能,可以看出分類結(jié)果與方法1相比有了明顯提升,準(zhǔn)確率升高了1.7%,查全率提升了5%左右,F(xiàn)1-score 提升了45%左右。
基于表2所示的掃描電子顯微鏡數(shù)據(jù)集下進行的分類實驗結(jié)果可知,本文SDL方法的準(zhǔn)確率比方法1和2高10%左右,比基于稀疏字典學(xué)習(xí)的分類算法(SRC) 高8%左右,F(xiàn)1-score也是所有方法中最高的。綜上所述,該方法的分類準(zhǔn)確率可提高5%~10%,分類準(zhǔn)確率最高可達91%,因此,說明經(jīng)過字典學(xué)習(xí)后的數(shù)據(jù)明顯能夠取得更好的分類效果,稀疏字典能夠更好地表達羊絨與羊毛纖維圖像之間的相關(guān)信息。
本文研究了一種基于稀疏字典學(xué)習(xí)的羊絨與羊毛分類方法,通過學(xué)習(xí)多形態(tài)纖維圖像之間的關(guān)聯(lián)特征,構(gòu)建字典和稀疏編碼矩陣實現(xiàn)分類。本文方法通過稀疏字典學(xué)習(xí)有效縮減了關(guān)鍵特征的數(shù)量與維度,大大減少了計算量,且與其他分類器相比,分類效果較好。面對日益多變的纖維形態(tài),如何快速準(zhǔn)確地對羊絨與羊毛纖維進行量化與等級評定仍然是未來研究的重點。