趙文浩, 向 軍, 張 寧, 潘如如
(江南大學(xué) 紡織科學(xué)與工程學(xué)院, 江蘇 無(wú)錫 214122)
隨著快時(shí)尚時(shí)代的到來(lái),消費(fèi)者對(duì)紡織品的需求更加多元化,這也導(dǎo)致紡織服裝生產(chǎn)企業(yè)的產(chǎn)品也隨之變得更加多元化[1]。其中,面料在這種趨勢(shì)下表現(xiàn)得更為明顯,而面料多元化的同時(shí)為企業(yè)的倉(cāng)儲(chǔ)、管理帶來(lái)了不小的挑戰(zhàn)。如何從萬(wàn)級(jí)的面料庫(kù)快速精準(zhǔn)地挑出想要的圖案面料對(duì)企業(yè)來(lái)說(shuō)具有重要意義。目前,面料的相似圖案檢索主要采用基于內(nèi)容的圖像檢索技術(shù),并取得一定的效果。
基于內(nèi)容的圖像檢索技術(shù)主要有二大類特征:低階特征和高階特征[2]。高階特征需要通過(guò)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練提取相應(yīng)特征,然而,訓(xùn)練模型需要覆蓋面較廣的數(shù)據(jù),相對(duì)低階特征需要的時(shí)間和計(jì)算資源要求更高[3]。低階視覺(jué)特征從圖像的平面屬性來(lái)劃分,有紋理、顏色、形狀等特征,現(xiàn)有將不同的特征進(jìn)行結(jié)合互補(bǔ)來(lái)實(shí)現(xiàn)對(duì)圖像的有效內(nèi)容進(jìn)行表征,其不需要像高階特征那樣進(jìn)行人為標(biāo)注訓(xùn)練數(shù)據(jù),提取消耗時(shí)間短,針對(duì)性較強(qiáng)。近幾年國(guó)內(nèi)基于低階特征進(jìn)行面料圖像檢索的研究主要有:康鋒等[4]通過(guò)提取特定范圍的SURF(speeded up robust features)特征對(duì)織物圖案進(jìn)行檢索;向忠等[5]結(jié)合顏色和形狀特征有效地在分辨印花圖案形狀的同時(shí)兼顧顏色特征;曹霞等[6]采用灰度共生矩陣、灰度梯度共生矩陣和局部二進(jìn)制算子進(jìn)行結(jié)合的方法對(duì)蕾絲圖案有不錯(cuò)的檢索效果。以上的研究針對(duì)少量且簡(jiǎn)單的面料圖案有不錯(cuò)的效果,但不適用于企業(yè)級(jí)應(yīng)用。因?yàn)槊媪掀髽I(yè)的面料種類多種多樣,數(shù)據(jù)庫(kù)超過(guò)萬(wàn)級(jí),這對(duì)檢索算法的要求更加嚴(yán)格。劉穎等[7]通過(guò)SIFT與VLAD(vector of locally aggregated descriptors)聚合特征和全局特征結(jié)合對(duì)海量的現(xiàn)勘圖像分類有著不錯(cuò)的效果,這對(duì)于同樣海量的面料檢索有著較好的參考價(jià)值[8]。
因此,本文針對(duì)大批量、結(jié)構(gòu)復(fù)雜的面料圖案的檢索問(wèn)題,提出了基于SURF和VLAD特征編碼的面料圖案檢索算法并對(duì)其進(jìn)行研究。
本實(shí)驗(yàn)采用從企業(yè)收集的面料樣本建立數(shù)據(jù)集,共選取1 000張圖案不同的面料圖片作為原始數(shù)據(jù)圖像庫(kù),對(duì)原始圖像進(jìn)行裁切、旋轉(zhuǎn)、放縮等處理獲得10張面料圖片以擴(kuò)充圖像數(shù)據(jù)庫(kù)。原始圖像為 605像素×605 像素,分辨率為96像素/(2.54 cm),對(duì)原始圖像進(jìn)行旋轉(zhuǎn)、裁切、放縮等一系列處理后,保存的圖像尺寸為512 像素×512 像素。每張?jiān)紙D像經(jīng)過(guò)裁切并放大生成4張子圖;分別經(jīng)過(guò)旋轉(zhuǎn)30°、60°、90°、120°、150°并在原始圖像中取300 像素×300 像素的圖片,統(tǒng)一放大到512 像素×512 像素,由一張?jiān)紙D片獲得9張子圖,構(gòu)建圖片數(shù)為10 000張的數(shù)據(jù)庫(kù)。
SURF算法是由Herbert等[9]提出的一種圖像局部特征描述算子,其采用了Hessian矩陣對(duì)積分圖像中的每個(gè)像素點(diǎn)進(jìn)行處理,構(gòu)建尺度金字塔檢測(cè)局部極值點(diǎn),然后基于二維Haar小波變換定位特征點(diǎn)的主方向,并形成特征矢量,如圖1所示。

圖1 尺度空間的構(gòu)建與特征點(diǎn)的定位Fig. 1 Construction of scale space and location of feature points
構(gòu)建圖像金字塔時(shí),常常使用盒式濾波器來(lái)近似卷積,每個(gè)像素的Hessian矩陣行列式近似值可由下式計(jì)算所得。
det(H)=Dxx×Dyy-(0.9×Dxy)2
(1)

SURF特征具有旋轉(zhuǎn)不變性,其對(duì)圖像的偏移、旋轉(zhuǎn)有較好的適應(yīng)性。其特征向量的計(jì)算方式為:1)確定主方向。通過(guò)統(tǒng)計(jì)以特征點(diǎn)為圓心,6 s為半徑的水平和垂直方向的Haar小波響應(yīng),然后以60度為一個(gè)區(qū)間進(jìn)行旋轉(zhuǎn),計(jì)算各個(gè)區(qū)間的Haar小波特征總和及特征值,選取最大的區(qū)間方向作為該特征點(diǎn)的主方向;2)計(jì)算特征向量。通過(guò)確定的主方向?qū)μ卣鼽c(diǎn)進(jìn)行旋轉(zhuǎn)使其保持一致,區(qū)域大小為 20 s×20 s, 再進(jìn)一步均勻劃分為16個(gè)子區(qū)域,分別對(duì)子區(qū)域的水平和垂直方向的小波響應(yīng)求和及絕對(duì)值加和。如圖2所示,一個(gè)子區(qū)域得到一個(gè)分向量V,因此16個(gè)區(qū)域總共能得到64維的向量。

圖2 特征描述子的生成Fig. 2 Generation of feature descriptor
2.2.1 碼本的生成
VLAD的碼本是由聚類生成的,本文所采用的Mini Batch K-Means算法[10]是K-Means的一種優(yōu)化方案,其適用于數(shù)據(jù)規(guī)模較大的聚類。該方法將大規(guī)模的數(shù)據(jù)通過(guò)每次只采取小部分少量的數(shù)據(jù)進(jìn)行中心節(jié)點(diǎn)的更新,不斷迭代至中心節(jié)點(diǎn)達(dá)到穩(wěn)定或者達(dá)到設(shè)定次數(shù),才會(huì)生成碼本。該方法相較于K-Means節(jié)省了大量的計(jì)算資源和計(jì)算時(shí)間,對(duì)于海量數(shù)據(jù)有較好的效果。圖3示出碼本的訓(xùn)練流程。

圖3 碼本的生成Fig. 3 Generation of codebook
2.2.2 VLAD的生成

通過(guò)NN近鄰法將待檢面料的SURF特征si,j與碼本類比,將特征點(diǎn)與碼本的類別進(jìn)行歸類,i是類別號(hào),j是該特征點(diǎn)在這個(gè)類別的排序,進(jìn)而計(jì)算殘差值ri,j。殘差值計(jì)算如式(2)所示。
ri,j=si,j-ci
(2)
每個(gè)類別中,對(duì)待檢圖像的所有SURF描述符計(jì)算殘差,所以每個(gè)類別的VLAD特征通過(guò)式(3)計(jì)算可得。因此,每張圖像的VLAD向量就是計(jì)算k個(gè)類別,即長(zhǎng)度為k×64。VLAD的特征算法生成過(guò)程如圖4所示。
(3)

圖4 VLAD特征算法的生成Fig. 4 Generation of VLAD
對(duì)于面料圖像來(lái)說(shuō),其圖案復(fù)雜多變,結(jié)構(gòu)差異大,且重復(fù)性結(jié)構(gòu)較多,導(dǎo)致在特征提取時(shí)其特征點(diǎn)數(shù)量較多,且大都為重復(fù),不利于檢索迅速響應(yīng)。因此本文采用主成分分析法(PCA)對(duì)VLAD進(jìn)行降維,VLAD的特征矩陣為V(V1,V2, …,Vk) 。通過(guò)優(yōu)化得到式(4)目標(biāo)函數(shù)。
YP=WTV
(4)
式中:V表示提取訓(xùn)練正樣本VLAD特征向量;YP表示降維后的VLAD特征向量;W為協(xié)方差矩陣。
相似性度量一般直接通過(guò)計(jì)算待檢圖像特征與數(shù)據(jù)庫(kù)中圖像特征之間的距離實(shí)現(xiàn),由于數(shù)據(jù)庫(kù)的圖片數(shù)量龐大,特征維度高,在檢索過(guò)程中計(jì)算會(huì)耗費(fèi)大量計(jì)算資源,檢索效率低下。為解決這個(gè)問(wèn)題,通常采用最近鄰的快速計(jì)算,常用的3種算法是暴力計(jì)算、KD-tree、Ball-tree。對(duì)于D維度中的N個(gè)樣本來(lái)說(shuō),暴力計(jì)算的復(fù)雜度為O[DN2],隨著樣本數(shù)N的增加,暴力計(jì)算的復(fù)雜度迅速增大,使用其用來(lái)構(gòu)建索引和查詢都不切合實(shí)際;KD-tree結(jié)構(gòu)為二叉樹結(jié)構(gòu),其查詢時(shí)間的變化是很難精確描述的,對(duì)于低維度(D<20)的近鄰搜索非常快,其成本大約是O[Dlog2(N)],但當(dāng)D增大到很大時(shí),其成本的增加接近O[DN],且由于樹結(jié)構(gòu)引起的開銷導(dǎo)致查詢的效率比暴力計(jì)算還要低;不同于KD-tree的沿笛卡爾坐標(biāo)軸分割數(shù)據(jù),Ball-tree是在一系列嵌套的超球體上分割數(shù)據(jù),雖然在構(gòu)建數(shù)據(jù)花費(fèi)上超過(guò)KD-tree,但在高維數(shù)據(jù)上的表現(xiàn)很高效[12],其查詢時(shí)間大約以O(shè)[Dlog2(N)]增長(zhǎng)。對(duì)于稀疏的數(shù)據(jù),Ball-tree和KD-tree的查詢效果幾乎一樣。本文中樣本數(shù)為10 000,經(jīng)過(guò)VLAD編碼并降維后的數(shù)據(jù)維度為512,且數(shù)據(jù)稀疏,所以綜合考慮,選用Ball-tree更為合適。圖5示出了Ball-tree結(jié)構(gòu),每個(gè)節(jié)點(diǎn)代表1個(gè)球。

圖5 數(shù)據(jù)集的球樹結(jié)構(gòu)Fig. 5 Spherical tree structure of data set
使用Ball-tree查詢時(shí),用來(lái)搜索目標(biāo)點(diǎn)P的K個(gè)最近鄰。假設(shè)DS是目標(biāo)節(jié)點(diǎn)與最近鄰點(diǎn)的最小距離,DS=maxx∈pin∣x-t∣,t和當(dāng)前節(jié)點(diǎn)的距離可通過(guò)式(2)~(4)定義,其中pin表示發(fā)現(xiàn)的最近鄰點(diǎn)。若DS DN=max{DN.parent,|t-center(N)|-radius(N)} (5) 本實(shí)驗(yàn)通過(guò)SURF算法提取面料的圖案特征,將圖案特征進(jìn)行聚類構(gòu)建視覺(jué)碼本,將面料庫(kù)里圖像的SURF描述子找到與碼本中最近的聚類中心計(jì)算殘差,最終得到VLAD特征;由于得到的VLAD特征維數(shù)比較高,采用PCA[13]進(jìn)行降維,降維后的VLAD通過(guò)Ball-tree算法構(gòu)建索引。當(dāng)輸入待檢索圖像時(shí),首先對(duì)其提取SURF特征,然后根據(jù)碼本生成VLAD并降維,將降維后的VLAD特征在構(gòu)建好的Ball-tree中查詢,按相似度的大小進(jìn)行排序并返回結(jié)果,實(shí)現(xiàn)對(duì)圖案類面料的檢索。整個(gè)檢索流程如圖6所示。 圖6 圖案類面料檢索算法流程Fig. 6 Flow chart of pattern fabric retrieval algorithm 本文利用查準(zhǔn)率(P)、召回率(R)以及每張照片的檢索精度(PAP)和平均檢索精度(PmAP)作為實(shí)驗(yàn)性能評(píng)價(jià)指標(biāo)。計(jì)算公式如下所示。 (6) (7) (8) (9) 式中:S為檢索結(jié)果中與待檢索圖像相似的圖像數(shù)量;U為檢索結(jié)果中與待檢索圖像不相似圖像的數(shù)量;V為未檢索到的與待檢索圖像相似的圖像數(shù)量;P(K)為截止點(diǎn)K處的精確率;r(K)為指示函數(shù)。當(dāng)圖像在K處是待檢索圖像的相似圖像,則r(K)等于1,否則等于0。K和n分別表示截止點(diǎn)和檢索的圖像數(shù)目;NR表示相似圖像的數(shù)量;Q表示檢索次數(shù)即檢索的圖片總量。 為驗(yàn)證本文算法對(duì)圖案類面料檢索的有效性和可行性,實(shí)驗(yàn)在Pycharm 2021.3軟件運(yùn)行實(shí)現(xiàn)。計(jì)算機(jī)硬件配置為Intel Core i5-7300HQ處理器,CPU主頻2.50 GHz,16 GB內(nèi)存,操作系統(tǒng)為Windows10,從面料數(shù)據(jù)集中隨機(jī)挑選5 000張圖片作為待檢索圖像,在包含10 000張圖像的數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),對(duì)本文算法進(jìn)行論證。 4.1.1 評(píng)估不同視覺(jué)詞典規(guī)模的影響 當(dāng)Mini Batch K-means算法采用不同的視覺(jué)詞典規(guī)模(K),選取前10張返回圖片計(jì)算查準(zhǔn)率,查準(zhǔn)率和時(shí)間的變化如表1所示。 從表1可以看出,在一定范圍內(nèi),隨著字典規(guī)模K的增加,面料的查準(zhǔn)率有所提升,然而,當(dāng)K增長(zhǎng)到1 024時(shí),查準(zhǔn)率增幅較小,檢索所耗時(shí)間翻倍增長(zhǎng)。這是因?yàn)楫?dāng)視覺(jué)詞典規(guī)模較小時(shí),視覺(jué)單詞較少,生成的VLAD編碼不能很好的描述圖像的特征,而當(dāng)視覺(jué)詞典規(guī)模較大時(shí),在聚類生成詞典時(shí)會(huì)出現(xiàn)分類過(guò)度,產(chǎn)生一些噪聲單詞,導(dǎo)致生成的VLAD編碼的分辨能力有所降低,減弱了查準(zhǔn)率的提升。由于隨著視覺(jué)詞典規(guī)模的增大,訓(xùn)練視覺(jué)詞典的復(fù)雜度和時(shí)間成本大大提升,所以綜合考慮,本文后續(xù)的實(shí)驗(yàn)中取K=512。 表1 不同視覺(jué)詞典規(guī)模下的查準(zhǔn)率和時(shí)間對(duì)比Tab. 1 Comparison of retrieval precision and time under different visual dictionary sizes 4.1.2 評(píng)估不同維度下VLAD特征的影響 對(duì)于面料圖像來(lái)說(shuō),其圖案復(fù)雜多變,結(jié)構(gòu)差異大,且重復(fù)性結(jié)構(gòu)較多,這導(dǎo)致了在特征提取時(shí)其特征點(diǎn)數(shù)量較多,且多為重復(fù),不利于檢索迅速響應(yīng)。因此,采用主成分分析(PCA)對(duì)VLAD特征進(jìn)行降維生成P-VLAD,選取前10張返回圖片計(jì)算查準(zhǔn)率,保留后的特征維度數(shù)(D)對(duì)查準(zhǔn)率和時(shí)間的變化如表2所示。 從表2可以看出,隨著維度的降低,面料的查準(zhǔn)率不斷降低,當(dāng)維度降到64時(shí),面料的查準(zhǔn)率下降幅度大大提升,檢索時(shí)間下降幅度緩慢。這是因?yàn)楫?dāng)VLAD維度減少較少時(shí),可有效去除冗余信息,但當(dāng)維度下降較多會(huì)導(dǎo)致VLAD的有效信息部分丟失,不利于有效地表達(dá)圖像特征,維度的適度下降可有效地降低計(jì)算成本,節(jié)省檢索時(shí)間。綜合考慮算法的有效性和時(shí)間復(fù)雜度,在本文后續(xù)的實(shí)驗(yàn)中取D=512。4種典型紡織面料圖案檢索效果如圖7所示。前3張檢索結(jié)果理想,第4張的檢索結(jié)果最后一張出現(xiàn)了誤檢。誤檢原因是圖像之間的相似度較高,而本文為了提高檢索的效率,降低了視覺(jué)詞典的規(guī)模和VLAD的維數(shù),忽略了圖像的部分細(xì)節(jié)。 表2 維度對(duì)查準(zhǔn)率和時(shí)間的影響Tab. 2 Influence of dimension on retrieval precision and time 注:數(shù)字1~10代表檢索結(jié)果返回順序。圖7 檢索效果展示Fig. 7 Display of retrieval effect 顏色矩(CM)和灰度共生矩陣(GLCM)是圖像檢索中常用的顏色和紋理提取方法,ORB,HOG通常用來(lái)提取圖像的形狀、紋理特征。為驗(yàn)證本文算法對(duì)圖案類紡織面料的優(yōu)越性,對(duì)比“ORB+VLAD”、“HOG+VLAD”、“顏色矩”、文獻(xiàn)[14]中的“CM+GLCM”和文獻(xiàn)[15]中的“分塊顏色直方圖+GLCM”方法進(jìn)行檢索驗(yàn)證。其中,“ORB+VLAD”、“HOG + VLAD”的參數(shù)與本文保持一致,特征組合類算法的特征權(quán)值均為0.5,相似性度量方法采用歐氏距離。表3示出對(duì)上述算法的平均檢索精度和單張圖片檢索時(shí)間的對(duì)比。可以看出,本文的算法模型對(duì)該數(shù)據(jù)集有著較好的檢索效果,其平均檢索精度高達(dá)83.5%,明顯優(yōu)于其它算法。在檢索時(shí)間上面,由于CM只計(jì)算了顏色矩所以速度明顯快于其它算法,而文獻(xiàn)[15]方法計(jì)算了分塊顏色直方圖,導(dǎo)致檢索時(shí)間增加,其余幾種算法的檢索時(shí)間差異不大,檢索效率大致相同。本文主要關(guān)注檢索精度,綜合來(lái)看本文的算法是有效的。 表3 不同算法的平均檢索精度和檢索時(shí)間對(duì)比Tab. 3 Comparison of mean average precision and retrieval time of different algorithms 在紡織企業(yè)的實(shí)際生產(chǎn)中,面料的花紋大小以及采集面料的角度和尺寸具有一定的隨機(jī)性,這就要求使用的算法具有一定的尺寸不變性和旋轉(zhuǎn)不變性。為驗(yàn)證本文提出算法的尺寸不變性和旋轉(zhuǎn)不變性,選用文獻(xiàn)[14]和文獻(xiàn)[15]的算法作為對(duì)照組。如圖8所示,文獻(xiàn)[14]算法的檢索效果較差,從檢索結(jié)果來(lái)看,只有第1張,第3張,第6張是與待檢面料相關(guān)的,這3張圖片均相較于待檢圖像而言只是旋轉(zhuǎn)了30°的范圍,而其余經(jīng)過(guò)尺寸放縮的圖片未檢出一張,說(shuō)明文獻(xiàn)[14]算法不適用于圖片尺寸放縮變換、旋轉(zhuǎn)角度大的情況,不具有旋轉(zhuǎn)不變性和尺寸不變性。文獻(xiàn)[15]算法是分塊顏色直方圖和灰度共生矩陣的結(jié)合,由圖8的檢索結(jié)果來(lái)看略好于文獻(xiàn)[14]的算法,檢索結(jié)果中前五張和第九張待檢圖像相關(guān),與文獻(xiàn)[14]相比,分塊顏色直方圖相較于傳統(tǒng)的顏色直方圖在關(guān)注全局顏色特征的同時(shí)聯(lián)系了顏色之間的空間局部特征,具有一定的尺寸不變性,所以前5張檢出了經(jīng)過(guò)旋轉(zhuǎn)處理的圖片,但由于灰度共生矩陣不具有旋轉(zhuǎn)不變性和尺寸不變性,所以經(jīng)過(guò)放縮變換的圖片只在檢出一張。由圖8可知,本文算法檢出的10張圖片均與待檢圖片相關(guān),本文提出的算法對(duì)于圖片的旋轉(zhuǎn)、放縮均有較好的檢索效果,證明了本文所提算法具有良好的尺寸不變性和旋轉(zhuǎn)不變性。 注:a—待檢圖像;b—本文算法檢索結(jié)果;c—文獻(xiàn)[14]算法檢索結(jié)果;d—文獻(xiàn)[15]算法檢索結(jié)果。數(shù)字1~10為檢索結(jié)果返回順序。圖8 不同算法的檢索效果Fig. 8 Retrieval effect of different algorithm 圖9示出不同檢索算法的查準(zhǔn)率-召回率(P-R)曲線。可以看出,本文的算法在所建數(shù)據(jù)集上表現(xiàn)最好,“HOG+VLAD”略好于“ORB+VLAD”,這表明了SURF相較于ORB和HOG能夠更好地描述圖案類面料的特征,文獻(xiàn)[14]和CM在所建數(shù)據(jù)集上表現(xiàn)較差,這表明CM、文獻(xiàn)[14]和文獻(xiàn)[15]方法不適用于復(fù)雜結(jié)構(gòu)的面料圖案檢索。 圖9 不同算法的P-R曲線圖Fig. 9 P-R curves of different algorithms 本文針對(duì)數(shù)據(jù)量大、圖案多元化的面料圖案檢索問(wèn)題,提出了一種基于SURF和VLAD特征編碼的紡織面料檢索算法,討論了在視覺(jué)詞典規(guī)模(K)和主成分分析法(PCA)保留維度數(shù)(D)對(duì)檢索效果的影響。實(shí)驗(yàn)結(jié)果表明,在視覺(jué)詞典規(guī)模為512,保留維度數(shù)為512時(shí),該算法對(duì)面料圖案檢索的平均檢索精度達(dá)到了83.5%,平均檢索時(shí)間為 0.488 s, 且具有良好的尺寸不變性和旋轉(zhuǎn)不變性,這對(duì)紡織企業(yè)的實(shí)際運(yùn)用有著一定的現(xiàn)實(shí)意義。3 檢索算法流程與評(píng)價(jià)標(biāo)準(zhǔn)
3.1 檢索算法流程

3.2 評(píng)價(jià)標(biāo)準(zhǔn)
4 結(jié)果與分析
4.1 參數(shù)優(yōu)選



4.2 不同算法比較



5 結(jié) 論