汪 會(huì), 孫 潔, 丁笑君,2, 龍 穎, 鄒奉元,2,3
(1. 浙江理工大學(xué) 服裝學(xué)院, 浙江 杭州 310018; 2. 浙江理工大學(xué) 浙江省服裝工程技術(shù)研究中心, 浙江 杭州 310018; 3. 浙江省服裝個(gè)性化定制協(xié)同創(chuàng)新中心, 浙江 杭州 310018)
計(jì)算機(jī)圖像識(shí)別與匹配技術(shù)應(yīng)用于服飾紋樣的分類、識(shí)別與快速調(diào)用[1-2],為服飾紋樣的數(shù)字化設(shè)計(jì)提供了有效途徑。織物紋樣識(shí)別的關(guān)鍵是尋找合適、有效的特征用于識(shí)別[3]。國(guó)內(nèi)外學(xué)者提出了多種用于圖像識(shí)別的特征描述方法:曹霞等[4]在進(jìn)行蕾絲花邊層次匹配檢索時(shí),應(yīng)用快速魯棒性尺度不變特征(SURF)作為第3層次的匹配依據(jù);路凱等[5]應(yīng)用視覺詞袋模型進(jìn)行羊絨羊毛纖維的鑒別時(shí),將尺度不變特征變換(SIFT)關(guān)鍵點(diǎn)轉(zhuǎn)換為視覺單詞表示纖維特征;丁笑君等[6]用SIFT算法獲得畬族服裝樣圖關(guān)鍵點(diǎn)分布,得到不同類別畬族服裝的關(guān)鍵設(shè)計(jì)區(qū)域和排序;陳金廣等[7]討論了旋轉(zhuǎn)、尺度和噪聲變化下紋樣匹配方法發(fā)現(xiàn),SIFT與SURF算法具有較好的適應(yīng)性。
雖然,以SIFT與SURF為代表的局部描述子在織物圖像識(shí)別檢索中有較好的適用性,但在復(fù)雜圖像配準(zhǔn)過程中,有效的局部特征點(diǎn)抓取數(shù)量存在不足,且準(zhǔn)確匹配率不高,因而復(fù)雜織物圖像的特征提取與匹配問題仍存在挑戰(zhàn)[3]。與上述特征提取方法不同,基于二值特征的特征描述子具有匹配速度快,存儲(chǔ)要求內(nèi)存低等特點(diǎn),在復(fù)雜圖像特征提取與匹配問題中更具優(yōu)勢(shì)。
本文將二進(jìn)制魯棒不變可擴(kuò)展關(guān)鍵點(diǎn)(BRISK)算法和隨機(jī)抽樣一致(RANSAC)算法引入織物紋樣特征提取與匹配問題中,討論尺度、旋轉(zhuǎn)、模糊、光照、褶皺5個(gè)變化因素下織物紋樣圖像特征提取與匹配方法。從特征點(diǎn)數(shù)量、準(zhǔn)確匹配率及匹配時(shí)間3個(gè)方面,將BRISK與SIFT、SURF算法進(jìn)行比較分析,為復(fù)雜織物紋樣的自動(dòng)識(shí)別提供參考。
江崖海水紋是具有代表性的中國(guó)傳統(tǒng)紋樣之一,多為對(duì)稱式獨(dú)立紋樣,紋樣構(gòu)圖復(fù)雜,元素形態(tài)多樣[8]。本文通過數(shù)碼印花的方式獲取30 cm×20 cm 的滌綸厚緞江崖海水紋面料。為探討尺度、旋轉(zhuǎn)、模糊、光照、褶皺5個(gè)因素下紋樣匹配差異,實(shí)驗(yàn)過程中排除了外界不確定光源對(duì)其他因素的干擾,選取DiGiEye數(shù)字測(cè)色儀和VIZOO X-Tex型三維面料掃描儀采集圖像。其中DiGiEye數(shù)字測(cè)色儀的相機(jī)型號(hào)為Nikon D90,兩側(cè)有D65光源,系統(tǒng)頂部為凹凸弧面漫反射光,可使面料均勻受光。同時(shí),因DiGiEye漫反射均勻光照射時(shí)面料褶皺立體感不明顯,故選用VIZOO X-Tex型三維面料掃描儀獲取褶皺狀態(tài)下面料圖像。
江崖海水紋獲取流程如圖1所示,可得到基準(zhǔn)及尺度、旋轉(zhuǎn)、模糊、光照、褶皺5種變化的圖像。每種圖像以1∶4的比例依次縮小,可獲得3種尺度變化圖像;以30°為間隔順時(shí)針旋轉(zhuǎn),得到6種旋轉(zhuǎn)變化圖像;通過在D65光源上遮擋不同透光程度的材料,拍攝得到4種光照強(qiáng)度的圖像;通過調(diào)節(jié)相機(jī)焦距,獲得4種模糊處理的圖像;在面料下方放置不同高度形狀的支撐物得到4種褶皺效果圖像。
圖1 江崖海水紋獲取流程Fig.1 Process of obtaining jiangya sea water patterns
圖2示出3例江崖海水紋原圖。本文實(shí)驗(yàn)選擇3例經(jīng)典江崖海水紋進(jìn)行上述的圖像變換,獲得 5個(gè)變化因素下人物紋樣圖像。
圖2 3例江崖海水紋原圖Fig.2 Original image of 3 kinds of jiangya sea water patterns
實(shí)驗(yàn)平臺(tái)采用Visual Studio 2017搭建OpenCV 2.4.9 計(jì)算機(jī)視覺庫,電腦操作系統(tǒng)為Windows 10,CPU為Inter(R) HD Graphics 4600,顯存為2 GB。
本文圖像處理部分以1#為例,在保留圖像有效信息的前提下,為提高圖像處理速度,將采集圖像的分辨率統(tǒng)一為300像素,并轉(zhuǎn)化為灰度圖像,如圖3 (a) 所示。此外,由于面料圖像在紗線間隙處顏色偏暗、柱狀紗線上顏色較亮易產(chǎn)生脈沖噪聲[9],如圖3 (b)所示。采用中值濾波進(jìn)行預(yù)處理。過程為
g(x,y)=med{f(x-k,y-l),(k,l∈W)}
(1)
式中:f(x,y)、g(x,y)分別為原始圖像和處理后圖像;(x,y)為像素坐標(biāo);W為窗口大小,實(shí)驗(yàn)中采用3×3的窗口,經(jīng)中值濾波后獲得的圖像見圖3 (c)。
圖3 圖像預(yù)處理Fig.3 Image preprocessing. (a) Grayscale processing; (b) Image noise; (c) Median filtering preprocessing
本文針對(duì)服飾紋樣尺度、旋轉(zhuǎn)和褶皺等形變狀態(tài)下紋樣與原始紋樣的精確匹配問題展開討論,提出BRISK算法用于復(fù)雜紋樣的特征提取,并與常用在服飾紋樣特征提取中的SIFT、SURF算法對(duì)比,最后通過歐氏距離匹配和RANSAC算法剔除錯(cuò)誤匹配對(duì),討論3種算法對(duì)復(fù)雜織物圖像特征提取與匹配的有效性。
2.1.1 BRISK特征提取
BRISK算法提取特征過程中,首先采用 FSAT9-16 型角點(diǎn)檢測(cè)器在連續(xù)尺度空間里找到的穩(wěn)點(diǎn)極值點(diǎn)作為江崖海水紋樣的特征點(diǎn)。采用自定義的鄰域采樣模式,將采樣點(diǎn)進(jìn)行兩兩組合,獲得采樣點(diǎn)對(duì)Ω,采用歐氏距離定義短距采樣點(diǎn)對(duì)集S和長(zhǎng)距采樣點(diǎn)對(duì)集P如下:
S={(pi,pj)∈Ω|‖pi-pj‖<δmax}?Ω
(2)
P={(pi,pj)∈Ω|‖pi-pj‖>δmin}?Ω
(3)
式中,δ為尺度。
令L為長(zhǎng)距采樣點(diǎn)對(duì)集P的元素個(gè)數(shù),g(pi,pj)為點(diǎn)對(duì)(pi,pj)的局部梯度集合,角點(diǎn)的特征方向定義為
(4)
2.1.2 SIFT特征提取
SIFT特征描述算子具有尺度縮放、亮度、仿射變換保持不變的特性[5-6]。首先以圖像建立高斯金字塔;然后利用高斯插分函數(shù)檢測(cè)局部極值點(diǎn),經(jīng)過非極大值抑制去除低對(duì)比度的點(diǎn),初步確定興趣點(diǎn);然后通過Hessian矩陣去除低對(duì)比度和不穩(wěn)定的邊緣的響應(yīng)點(diǎn),增強(qiáng)匹配穩(wěn)定性;根據(jù)篩選出每個(gè)關(guān)鍵點(diǎn)鄰域內(nèi)的梯度方向,為其分配梯度方向和梯度模;最后組合成128維向量進(jìn)行圖像特征表達(dá)。
2.1.3 SURF特征提取
SURF算法確定特征點(diǎn)的過程中,先采用Hessian矩陣確定候選點(diǎn),運(yùn)用非極大抑制法和插值運(yùn)算尋找和定位關(guān)鍵點(diǎn)[4],選取關(guān)鍵點(diǎn)的主方向是采用harr小波特征,以關(guān)鍵點(diǎn)為中心的鄰域內(nèi)統(tǒng)計(jì)其鄰域像素。在關(guān)鍵點(diǎn)周圍取一個(gè)邊長(zhǎng)為2s(s為所檢測(cè)特征點(diǎn)尺度)的正方形框,將該框分為16個(gè)子區(qū)域,每個(gè)子區(qū)域統(tǒng)計(jì)25 像素的水平方向和垂直方向的4個(gè)harr小波特征,最后在每個(gè)子區(qū)域中生成特征點(diǎn)的64維特征描述子進(jìn)行圖像特征表達(dá)。
本文在特征提取后,采用歐氏距離進(jìn)行匹配計(jì)算。關(guān)鍵點(diǎn)對(duì)的特征描述符由2個(gè)n維向量a(xi1,xi2,…,xin)與b(xj1,xj2,…,xjn)表示,其歐氏距離的計(jì)算公式為
(5)
式中,n為特征點(diǎn)描述符的維數(shù)。然后計(jì)算最小歐氏距離d1和次小歐氏距離d2的比值k,當(dāng)k小于比例閾值k0時(shí),則認(rèn)為匹配成立[10]。
初步匹配后,仍存在大量的錯(cuò)誤匹配情況。尺度縮放時(shí)SIFT算法的錯(cuò)誤匹配如圖4所示。圖中右側(cè)部分為進(jìn)行尺度縮放比為1∶4的SIFT特征提取匹配時(shí)出現(xiàn)的錯(cuò)誤匹配。描述子僅描述特征點(diǎn)局部信息,故在復(fù)雜且伴有重復(fù)紋理的紋樣匹配時(shí),易出現(xiàn)匹配錯(cuò)誤。
圖4 尺度縮放時(shí)SIFT算法的錯(cuò)誤匹配Fig.4 SIFT algorithm false match in scale zooming
初步匹配后,采用RANSAC算法剔除錯(cuò)誤匹配對(duì)[11]。RANSAC算法能魯棒地估計(jì)模型參數(shù),常用于濾除圖像匹配中的錯(cuò)誤匹配。該算法通過選取內(nèi)點(diǎn)數(shù)量最多、誤差最小的變換矩陣參數(shù)作為匹配圖像之間的投影變換矩陣,從而剔除錯(cuò)誤匹配對(duì)。
特征提取與匹配算法的匹配準(zhǔn)確率越高,則算法魯棒性越強(qiáng)。準(zhǔn)確匹配率計(jì)算公式為
(6)
式中:M2為經(jīng)過歐氏距離匹配后的準(zhǔn)確匹配數(shù);M1為RANSAC過濾的準(zhǔn)確匹配數(shù)。經(jīng)RANSAC剔除錯(cuò)誤配對(duì)后的特征匹配效果提升明顯,如圖5所示。
圖5 原圖與模糊圖像匹配效果Fig.5 Matching effect of original image and fuzzy image.(a) BRISK algorithm matching; (b) BRISK/RANSAC algorithms matching
為獲取合理匹配閾值k0,綜合比較了不同閾值下的準(zhǔn)確匹配數(shù)與準(zhǔn)確匹配率。在匹配實(shí)驗(yàn)中,以4種褶皺變化為例,當(dāng)k0取0.1、0.2時(shí),無法獲得匹配點(diǎn);因此,k0依次取值為0.3、0.4、0.5、0.6、0.7、0.8、0.9。7個(gè)水平下褶皺變化的平均匹配數(shù)據(jù)如表1 所示。可見:BRISK算法提取特征點(diǎn)數(shù)多于SIFT、SURF算法;隨著閾值k0增大,3種算法所有匹配數(shù)和準(zhǔn)確匹配數(shù)都呈上升趨勢(shì);當(dāng)k0≤0.5時(shí),3種算法的準(zhǔn)確匹配率均較高,但配對(duì)數(shù)及準(zhǔn)確匹配數(shù)值較低,特別是BRISK算法中有大量特征點(diǎn)但沒有成功匹配,說明設(shè)定的比例閾值k0≤0.5時(shí),有大量的匹配點(diǎn)對(duì)被排除在外,對(duì)特征圖像特征表達(dá)存在不足;當(dāng)k0≥0.6時(shí),準(zhǔn)確匹配率隨k0的增大而減小,且隨著k0的增大,BRISK算法獲取的準(zhǔn)確匹配數(shù)增加幅度明顯大于SIFT、SURF算法。綜合考慮3種算法的合理閾值選取,最終采用閾值k0為0.6進(jìn)行匹配比較實(shí)驗(yàn)。
表1 褶皺狀態(tài)下不同比例閾值的平均匹配結(jié)果對(duì)比Tab.1 Comparison of matching results of different ratio thresholds at drape state
表2對(duì)比了3種算法綜合3例江崖海水紋在閾值k0=0.6時(shí)的平均匹配效果??芍珺RISK算法對(duì)每一類變換的準(zhǔn)確匹配率均最高,在旋轉(zhuǎn)變換匹配實(shí)驗(yàn)中,3種算法的匹配率都達(dá)到80%以上,SIFT、SURF、BRISK算法的平均準(zhǔn)確匹配率分別為82.60%、81.38%、87.10%。在光照強(qiáng)度變換時(shí),BRISK算法對(duì)光變化不敏感,準(zhǔn)確匹配率較高且穩(wěn)定。在褶皺變換匹配實(shí)驗(yàn)中,因特征點(diǎn)位置發(fā)生變化,匹配點(diǎn)對(duì)間的最小歐氏距離和次小歐氏距離的比值k變動(dòng)較大,導(dǎo)致很多特征點(diǎn)對(duì)不符合篩選條件。故雖然BRISK算法匹配率最優(yōu),但3種算法的平均準(zhǔn)確匹配率均未達(dá)到70%。
表2 3種算法準(zhǔn)確匹配率比較Tab.2 Comparison of matching accuracy of three algorithms
表3示出5種變化下不同算法對(duì)江崖海水紋樣的平均匹配時(shí)間對(duì)比結(jié)果??梢?,BRISK算法計(jì)算速度明顯優(yōu)于SURF和SIFT,BRISK的平均匹配時(shí)間為0.551 s,SIFT和SURF算法的平均匹配時(shí)間分別為1.336、1.435 s。
表3 5種變化下不同算法的匹配時(shí)間比較Tab.3 Comparison of matching time of different algorithms under five kinds of changes s
為進(jìn)一步驗(yàn)證BRISK算法在織物紋樣特征提取與匹配問題中的適用性,本文選擇了2例織物紋樣為樣本進(jìn)行比較分析,織物紋樣原圖如圖6所示。
圖6 織物紋樣Fig.6 Fabric patterns.(a)Pattern A;(b)Pattern B
采用相同的樣本采集方法獲取織物紋樣的基準(zhǔn)、尺度、旋轉(zhuǎn)、模糊、光照、褶皺圖像共44幅,進(jìn)行基準(zhǔn)與變化織物紋樣的匹配實(shí)驗(yàn),取k0=0.6,每類別的平均準(zhǔn)確匹配率實(shí)驗(yàn)結(jié)果如表4所示??梢姡築RISK算法的平均準(zhǔn)確匹配率明顯優(yōu)于SURF和SIFT算法;織物紋樣A和B在旋轉(zhuǎn)、模糊和光照變化狀態(tài)下,BRISK算法均高于80%,其中光照變化下平均準(zhǔn)確區(qū)配率高于95%;在尺度、褶皺變化狀態(tài)下,BRISK算法相較于SURF和SIFT算法優(yōu)勢(shì)明顯。在A和B這2例織物紋樣的5類變化匹配實(shí)驗(yàn)中,BRISK算法的平均準(zhǔn)確匹配率均可保持在70%以上,所有實(shí)驗(yàn)的平均準(zhǔn)確匹配率為86.3%??梢?,BRISK算法在復(fù)雜織物紋樣的特征提取與匹配中具有較好的適用性。
表4 5種變化下織物紋樣A、B的平均準(zhǔn)確匹配率Tab.4 Average correct matching rate of fabric patterns A and B under five variations %
針對(duì)復(fù)雜服飾紋樣的特征提取與匹配問題,本文提出了二進(jìn)制魯棒不變可擴(kuò)展關(guān)鍵點(diǎn)(BRISK)算法結(jié)合隨機(jī)抽樣一致(RANSAC)算法進(jìn)行服飾紋樣特征提取與匹配,通過構(gòu)建連續(xù)的尺度空間,利用FAST9-16型角點(diǎn)檢測(cè)器快速找到服飾紋樣的穩(wěn)定極值點(diǎn)作為特征點(diǎn),并依賴可配置的圓形采樣模式獲得匹配結(jié)果,最終得到二進(jìn)制BRISK描述子并進(jìn)行圖像特征表達(dá)。該方法有效解決了因織物圖像旋轉(zhuǎn)、模糊、光照、尺度、褶皺引起的匹配差異,且匹配速度更快,占用內(nèi)存越小。通過實(shí)驗(yàn)證明了該方法在圖像的準(zhǔn)確匹配數(shù)及準(zhǔn)確匹配率以及運(yùn)算時(shí)間上均優(yōu)于尺度不變特征變換(SIFT)、快速魯棒性尺度不變特征(SURF)算法。在后續(xù)研究中將進(jìn)一步將該方法運(yùn)用于復(fù)雜服飾圖案的識(shí)別與檢索中。