王鑫城,范 紅,劉錫澤,胡晨熙,林 威,禹素萍
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海201620)
隨著人工智能的不斷發(fā)展,對圖像進(jìn)行特征提取并通過特征匹配完成對目標(biāo)的對比及識別,成為了計算機(jī)視覺領(lǐng)域中最主要的手段之一,并在大量領(lǐng)域有著廣泛的應(yīng)用,如人臉識別、車牌檢測、無人駕駛和醫(yī)學(xué)診斷等。 對于商品貨架圖片而言,特征點(diǎn)的提取數(shù)量與匹配的精度會對商家后續(xù)的運(yùn)作有較大的影響。 在圖像匹配算法研究中,最為常見的莫過于尺度不變特征變換算法(Scale-Invariant Feature Transform,SIFT),經(jīng)典SIFT 算法由LOWE D G在1999 年提出[1],并于2004 年完善[2]。 該算法穩(wěn)定性高,對旋轉(zhuǎn)、尺度縮放和亮度變換保持不變性。傳統(tǒng)SIFT 算法的描述子是具有128 維的特征向量,在特征點(diǎn)的特征向量生成以及最后進(jìn)行匹配的過程中需要大量的運(yùn)行時間。 因此,降低特征向量的維數(shù)是學(xué)者們的一個重要研究方向,如SPCA、PCA[3]算法。 另一個研究方向是采用特殊結(jié)構(gòu)[4],基于二分查找的思想,對得到的特征描述子進(jìn)行劃分,同時結(jié)合KNN 算法,加快特征向量的匹配搜索速度,常用的結(jié)構(gòu)有KD-Tree[5]等。 2006 年BAY H 提出SUFR(Speeded Up Robust Features)[6]算法,提升了特征提取速度,但在對尺度和旋轉(zhuǎn)的適應(yīng)性方面不及SIFT 算法。秦緒佳[7]提出在特征匹配中引入灰度域和空間域的自相關(guān)性,提高匹配準(zhǔn)確性,但增加了算法復(fù)雜度,耗時大。 RUBLEE E 等[8]結(jié)合了BRIEF算法和FAST 算法,提出了ORB 算法來解決旋轉(zhuǎn)不變性問題,但其特征符的區(qū)分性弱,匹配效果一般。
本文基于特征融合,在獲取SIFT 特征描述子后用K-means 聚類算法建立視覺單詞詞頻直方圖,并融合灰度共生矩陣特征[9]完成圖像匹配,從而提升商品圖像匹配的準(zhǔn)確率。
尺度不變特征轉(zhuǎn)換(SIFT)算法由LOWE D G 提出并完善,在圖像匹配領(lǐng)域廣泛應(yīng)用,對于旋轉(zhuǎn)、尺度縮放等圖像具有較好穩(wěn)健性。SIFT 算法可分為兩部分:一是SIFT 特征提取,通過構(gòu)建DOG 尺度空間,生成特征描述子;二是特征描述子的匹配。
式中,G(x,y,σ)為尺度可變高斯函數(shù),I(x,y)為原始圖像。 為保證檢測到的特征點(diǎn)的穩(wěn)定性,一般采用不同高斯差分核與圖像卷積生成高斯差分空間。
對檢測到的特征點(diǎn),計算找出與該極值點(diǎn)的坐標(biāo)σ 相距最近的高斯圖像的位置;然后在高斯金字塔中對應(yīng)的高斯圖像上,統(tǒng)計以高斯核1.5 倍為半徑的圓內(nèi)的所有像素的梯度方向,如圖1 所示。
圖1 極值點(diǎn)主方向
SIFT 描述子在每個極值點(diǎn)的附近選取子區(qū)域網(wǎng)格,SIFT 的提出者建議選取的區(qū)域網(wǎng)格大小為4×4,然后在每個子區(qū)域上計算八個方向的圖像梯度,如圖2 所示。 于是一個極值點(diǎn)就獲得了4×4×8=128個梯度直方圖,將它們進(jìn)行合并就形成了一個128維的特征向量。
圖2 描述子的梯度方向
灰度共生矩陣方法(Gray Level Co-occurrence Matrix,GLCM)通過計算共生矩陣得到圖像信息的特征值,描述圖像的某些紋理特征,在一定程度上彌補(bǔ)提取SIFT 特征的詞袋模型缺乏空間信息的不足。
對于每幅圖像, 分別計算θ 取值為0°、30°、60°、90°、120°和150°的六個方向上,步距為1 的灰度共生矩陣的角二階矩、對比度、逆方差、熵4 個特征值,構(gòu)成一組24 維的特征向量。
角二階矩(ASM)是對圖像紋理的灰度變化穩(wěn)定程度的度量,反映了圖像灰度分布均勻程度和紋理粗細(xì)程度,能量值大表明當(dāng)前圖像紋理呈現(xiàn)出規(guī)則的變化。
對比度(contrast)反映了每個像素值及其鄰域像素值的亮度的對比情況,對比度的數(shù)值越大,表明當(dāng)前圖像越清晰,紋理溝壑越深。
逆方差(Inverse Different Moment)反映圖像紋理的同質(zhì)性,度量圖像紋理局部變化的多少。 其值大則說明圖像紋理的不同區(qū)域間缺少變化,局部非常均勻。
熵(entropy)反映了圖像紋理中的非均勻程度,當(dāng)共生矩陣中所有值均相等或者像素值表現(xiàn)出最大的隨機(jī)性時,熵最大。
SIFT 特征的描述子是128 維的向量,一幅普通的圖像能提取出數(shù)百個SIFT 興趣點(diǎn)。 共生矩陣提取出的特征值是一個24 維的向量,直接與SIFT 特征融合會使共生矩陣對結(jié)果的貢獻(xiàn)度較低,最終效果不明顯。 因此本文采用矢量空間模型對文本類文件分類,通過聚類算法建立視覺單詞詞頻直方圖,將SIFT 特征轉(zhuǎn)換為一個K維向量,再使用這個結(jié)果與共生矩陣進(jìn)行特征融合。
聚類是一種無監(jiān)督的學(xué)習(xí)方法,將數(shù)據(jù)集中按照數(shù)據(jù)之間的相似程度劃分,具體算法流程圖如圖3所示。
圖3 K-means 算法流程圖
以上步驟建立了矢量空間模型,生成了視覺詞匯表,需要賦予每個單詞一定的權(quán)重,以代表該單詞在圖像特征中的重要性。 令某一圖片的視覺單詞w在該圖像中出現(xiàn)的次數(shù)為fw,該圖像所包含的所有視覺單詞數(shù)為nw,BOW 模型中所有圖片數(shù)為d,包含視覺單詞w的圖片數(shù)為dw,單詞的重要性與其在圖像庫中出現(xiàn)的次數(shù)成反比,與在圖像中出現(xiàn)的次數(shù)成正比。
計算圖像提取的每一個SIFT 特征描述子與生成的視覺單詞表中的所有單詞歐式距離并進(jìn)行比較,若特征描述子離某個單詞最近,則該單詞的對應(yīng)詞頻加1。 由此通過圖像特征構(gòu)建K維的視覺單詞直方圖,為下一步的特征融合做準(zhǔn)備。
SIFT 特征具有尺度不變性,可在圖像中檢測出關(guān)鍵點(diǎn),是一種局部特征描述子,它的可擴(kuò)展性強(qiáng),能夠與其他形式的特征向量進(jìn)行聯(lián)合。 灰度共生矩陣反映的是圖像灰度的空間相關(guān)特性,能對SIFT 特征進(jìn)行一個較好的補(bǔ)充。
由于特征向量的各個特征分量的取值范圍以及物理含義不同,在進(jìn)行圖像匹配之前還需要對其內(nèi)部進(jìn)行歸一化。 設(shè)該圖像的灰度共生矩陣特征與K維的視覺單詞直方圖用式(10)、(11)表示。
這樣就可以保證歸一化后的所有特征值都落在[0,1]這個區(qū)間上。 由于不同算法對圖像特征描述的側(cè)重點(diǎn)不同,因此對匹配結(jié)果的貢獻(xiàn)度不同,如果不對其賦予相應(yīng)的權(quán)重則會對匹配的效果產(chǎn)生影響,可能無法達(dá)到最優(yōu)。因此在融合特征之前,需要對不同特征賦予不同的權(quán)重。
其中ω1+ω2=1。
采用經(jīng)典調(diào)試法修改權(quán)重的配置,調(diào)整SIFT 和GLCM 的權(quán)重比以獲取實(shí)驗(yàn)結(jié)果,通過對比找到最優(yōu)權(quán)重比。
通過提取的SIFT 特征構(gòu)建視覺詞匯來建立矢量空間模型,需要使用K-means 方法對它們進(jìn)行訓(xùn)練,獲取K個視覺單詞。 在融合前還需要對不同來源的特征值進(jìn)行歸一化處理并賦權(quán)重值。 在基于內(nèi)容的圖像匹配過程中,通常是通過特征的相似性度量來實(shí)現(xiàn)圖像之間的特征比對,這里采用LOWE D G提出的歐式距離,它計算簡單、速度快,因此被廣泛用于相似性度量。 特征融合過程如圖4 所示。
K值的選取會對最終的匹配效果有影響,同時K值選取越小,訓(xùn)練的速度也會更快,這里分別選取K=120 和K=240 分別訓(xùn)練了兩次,生成的特征向量與共生矩陣的24 維向量融合,分別形成了144 維和264 維的特征向量,作為不同K值下的效果對比。
圖4 融合多特征實(shí)驗(yàn)流程圖
本次實(shí)驗(yàn)PC 系統(tǒng)為Windows 系統(tǒng),CPU 型號為R3500,2.10 GHz。 該 算 法 基 于PyCharm 平 臺 和OpenCV 庫實(shí)現(xiàn),采用的是UKBench 圖像庫。 UKBench圖像庫有15 類商品貨架圖,每類貨架圖分別從四個角度拍攝,每幅圖由640×480 或480×640 像素組成。
在實(shí)驗(yàn)中,K值的選取會影響訓(xùn)練速度以及匹配精度,K值過大會讓訓(xùn)練的時間延長并使共生矩陣特征在融合特征中的占比降低,作用弱化。 提取SIFT 特征之后分別取K=120 和K=240 并使用K-means 聚類生成不同的視覺詞匯表,進(jìn)而與共生矩陣計算出的特征值在歸一化之后融合。
實(shí)驗(yàn)選取100 幅圖像,其中40 幅圖像為無關(guān)圖像,另外60 幅圖像為商品貨架圖像。 每四幅為一組,對其中的每幅圖像進(jìn)行匹配,理論上共可以匹配180 幅相關(guān)圖片。 經(jīng)過實(shí)際實(shí)驗(yàn),存在一些無法匹配的圖像和錯誤匹配的圖像。
圖5 為蔬菜圖像匹配結(jié)果,其中圖5(a)為匹配用圖,圖5(b)、圖5(c)和圖5(d)為與圖5(a)特征向量歐式距離最小的三張圖片。 可以看出圖5(b)與圖5(c)均正確匹配,但圖5(d)為水果圖片,與圖5(a)發(fā)生了誤匹配。 這是由于特征向量主要提取的是圖像的灰度信息,物體的顏色信息被忽略,后續(xù)可融合HSV 顏色特征(色調(diào)、飽和度、亮度)提升圖像匹配準(zhǔn)確率。 圖6 為餅干圖像匹配結(jié)果,圖6(a)為匹配用圖,可以看到圖6(b)、圖6(c)和圖6(d)的匹配結(jié)果完全正確,這是由于餅干盒包裝形狀規(guī)則、顏色統(tǒng)一,在圖像匹配的過程中可以獲得令人滿意的結(jié)果。圖7 為面包圖像匹配結(jié)果,其中圖7(b)、圖7(c)均與圖7(a)正確匹配。圖7(d)為蛋糕圖片,與圖7(a)分辨率不同卻發(fā)生誤匹配, 這是由于兩者外觀較為接近且融合的特征向量仍然保持了一定的旋轉(zhuǎn)不變性。 事實(shí)上不同商品的商標(biāo)設(shè)計各不相同,后續(xù)可以改進(jìn)算法,加強(qiáng)對圖像細(xì)節(jié)的匹配來改善匹配結(jié)果。
圖5 蔬菜圖像匹配
圖6 餅干圖像匹配
由實(shí)驗(yàn)結(jié)果可知,當(dāng)采用共生矩陣提取的特征值檢測時,匹配的速度最快,但成功率也是最低的。采用SIFT 算法時,匹配成功率提升,消耗的時間略有上升。 采用PCA-SIFT 算法時,匹配耗時略有下降且準(zhǔn)確度有所提升。 采用融合SIFT 特征和共生矩陣特征的方法,在K=120 時使用0.7 的SIFT 權(quán)重和0.3 的共生矩陣權(quán)重匹配成功率最高,耗時較PCA-SIFT 算法略有提升,但增加的時間在可接受范圍之內(nèi)。 通過采用硬件運(yùn)行該算法可以降低匹配所需耗時,綜合考慮,選擇融合SIFT 特征和共生矩陣特征的方法來完成圖像匹配。
圖7 面包圖像匹配
表1 不同K 值融合特征后的結(jié)果比較
表2 本文算法與其他經(jīng)典算法匹配結(jié)果比較
本文提出了一種融合SIFT 特征和共生矩陣特征的方法來分析商品貨架貨品是否短缺。 通過貨架實(shí)時圖片與貨架滿載時照片是否匹配分析商品是否短缺或需要加貨,從而提升顧客的購物體驗(yàn)。 此方法提升了圖像匹配的準(zhǔn)確率, 運(yùn)算時間略有增加。 后續(xù)研究的重點(diǎn)是進(jìn)一步優(yōu)化融合算法,并采用硬件映射執(zhí)行匹配算法, 提升商品識圖的準(zhǔn)確度,減少處理時間。