郭恒光,劉文彪,余仁波
海軍航空大學 岸防兵學院,山東 煙臺264001
形狀特征是圖像的一種重要的視覺特征,對于理解圖像起著至關重要的作用,被廣泛用于目標識別[1-4]、圖像檢索[5-7]以及圖像匹配[8-9]等領域。而形狀特征提取是形狀識別檢索的關鍵步驟,對形狀的描述越準確越詳盡,形狀識別和檢索的結果也更加準確,因此對形狀特征提取方法的研究具有重要意義。提取形狀特征的方法可以分為兩種:基于輪廓的方法和基于區(qū)域的方法。基于spike參數(shù)[10]的思想,本文提出了四種多尺度形狀特征表示方法,稱之為spike函數(shù),能夠綜合利用圖像形狀輪廓細節(jié)和整體的多尺度信息。
Spike參數(shù)是M.G.Hamblin和G.W.Stachowiak于1995年首次提出的,用于反映磨粒輪廓角度的變化情況。它的計算方法與分形維數(shù)的求法相似,所不同的是:不是以每一步對應的起始點和終點之間的直線代表對應的磨粒輪廓,而是由“spike”來表示,通過在起始點和終點之間的磨粒輪廓上尋找一點,這三個點構成一個三角形,稱為“spike”,然后計算spike值,最后根據(jù)所用步長的大小和數(shù)量得到spike值的平均值,作為spike參數(shù)(spike parameter)。Spike參數(shù)越大,輪廓的三角形越尖銳,磨粒的磨損作用越大。
根據(jù)spike參數(shù)的原理,在文獻[11]中已提出了spikeangle函數(shù),本文又提出了spike-height函數(shù),spike-area函數(shù)和spike-distance函數(shù),系統(tǒng)構成spike函數(shù)。其中spikeangle函數(shù)和spike-height函數(shù)用于表達形狀輪廓的細節(jié)特征,spike-area函數(shù)和spike-distance函數(shù)用于表達形狀輪廓的整體特征。結合spike函數(shù)和傅里葉變換,以各spike函數(shù)的歸一化傅里葉變換系數(shù)的幅值作為圖像的形狀特征。
Spike參數(shù)的計算如圖1所示,文獻[10]中spike參數(shù)的計算方法如下:以輪廓點A為起始點,按一定的步長找到輪廓點B作為終點,其中步長是指起始點和終點之間磨粒輪廓像素點的數(shù)量。在起始點A和終點B之間的磨粒輪廓上尋找一點P,三個點構成一個三角形區(qū)域,稱之為“spike”,用于表示起始點和終點之間的磨粒輪廓。為了反應三角形區(qū)域的尖銳程度和大小,定義spike值(spike value)Sv,如下式所示:
圖1 spike參數(shù)計算原理圖Fig.1 Schematic diagram of spike parameter calculation
式中,θ為三角形區(qū)域的邊PA和PB之間的夾角,h為三角形區(qū)域的頂點P到邊AB的垂直距離。
Spike參數(shù)(spike parameter)SP按下式計算:
式中,Svmax=max(cos(θ/2)h);m為在給定步長時,有效的Sv的數(shù)量;n為所使用的不同步長的數(shù)量。
Spike參數(shù)的實質(zhì)是通過起始點和終點之間三角形區(qū)域頂點處角度的平均值來反映磨粒輪廓的特征?;趕pike參數(shù)的思想,本文提出以下四種用于描述形狀特征的spike函數(shù),分別為spike-angle函數(shù)、spike-height函數(shù)、spike-area函數(shù)和spike-distance函數(shù)。其中前兩種函數(shù)用于表達形狀輪廓的細節(jié)特征,后兩種函數(shù)用于表達形狀輪廓的整體特征。
提取圖像形狀的輪廓,沿逆時針方向對形狀輪廓點進行均勻采樣,得到N個輪廓點,最終的形狀輪廓為:
以第i個輪廓點為起始點A,步長為s(步長是指起始點和終點之間輪廓像素點的數(shù)量,最大步長為M),得到終點B,則起始點A和終點B之間的輪廓點序列為:
起始點A、終點B和P點序列構成s個三角形區(qū)域,根據(jù)式(1)計算每一個三角形區(qū)域的spike值:
則第i個輪廓點,在步長為s時的spike-angle函數(shù)的定義為:
式中,θmax為Sv最大時,對應的三角形區(qū)域的邊PA和PB之間的夾角。
根據(jù)以上spike-angle函數(shù)的定義可以看出,spikeangle函數(shù)以各形狀輪廓點的Sv達到最大時,對應的角度的余弦值來反映形狀輪廓角度的變化,從而反映了形狀各輪廓點附近輪廓片段的尖銳程度及角度的變化。
但是由于spike-angle函數(shù)是以余弦值來反映角度的變化的,無法判斷輪廓點處的輪廓片段是凹的還是凸的,因此借鑒文獻[12]提出的拱高半徑復函數(shù),在spikeangel函數(shù)的基礎上定義了spike-height函數(shù)。
第i個輪廓點,在步長為s時的spike-height函數(shù)的定義為:
式中,hmax為Sv最大時,對應的三角形區(qū)域的頂點P到邊AB的垂直距離。
計算spike值時是以A為起始點,按一定步長找到終點B,然后根據(jù)spike值確定三角形區(qū)域的頂點P,而且進行輪廓采樣時是按逆時針方向進行的。為了反映磨粒輪廓的凹凸性,各輪廓點處spike-height值的正負號按如下規(guī)則進行確定:頂點P確定之后,當由起始點A沿直線段AB走向B,若頂點P在直線段AB的右側,則對應的輪廓點A的spike-height值為正;若頂點P在直線段AB的左側,則對應的輪廓點A的spikeheight值為負。
經(jīng)過以上定義,spike-height函數(shù)值反映了該輪廓點附近輪廓片段的凹凸性,當spike-height函數(shù)值為正時,則該輪廓片段為凸的;當spike-height函數(shù)值為負時,則該輪廓片段為凹的。
上述定義的spike-angle函數(shù)和spike-height函數(shù)反映了形狀輪廓的局部細節(jié)特征,缺少對形狀整體特征的描述,因此提出了兩種表達形狀輪廓整體特征的函數(shù):spike-area函數(shù)和spike-distance函數(shù)。
面積函數(shù)是一種很好的形狀描述方法,如文獻[13]、[14]和[15]等都是基于面積的形狀特征表示方法。本文在磨粒spike參數(shù)的基礎上,提出了spike-area函數(shù),如圖2所示,以起始點A、終點B、spike的頂點P和形狀質(zhì)心C所構成區(qū)域的面積來描述形狀。計算該面積時,分別計算spike的三角形區(qū)域的面積以及起始點、終點B和形狀質(zhì)心C構成的三角形區(qū)域面積,然后兩個面積相加得到提出的spike-area函數(shù)。
圖2 spike-area函數(shù)計算原理圖Fig.2 Schematic diagram of spike-area function calculation
第i個輪廓點,在步長為s時的spike-area函數(shù)的定義為:
式中,(x(P),y(P))為Sv最大時,對應的頂點P的坐標;(x(A),y(A))和(x(B),y(B))分別為起始點A和終點B的坐標;(xc,yc)為形狀質(zhì)心坐標。
文獻[13]、[14]和[16]都在描述形狀輪廓局部細節(jié)的基礎上加入中心距離函數(shù),以增加對形狀整體的描述能力。在此基礎上,本文提出了spike-distance函數(shù)用于描述形狀輪廓的整體特征。
第i個輪廓點,在步長為s時的spike-height函數(shù)的定義為:
式中,(x(P),y(P))為Sv最大時,對應的頂點P的坐標,(xc,yc)為形狀質(zhì)心坐標。
本文提出的四種spike函數(shù)是一種多尺度的形狀表示方法,分別將形狀的每一個輪廓點作為起始點,計算它在不同步長時的spike函數(shù)值,最終得到形狀所有輪廓點在不同步長時的spike函數(shù),各尺度spike函數(shù)值構成一個矩陣,稱之為spike圖,則可分別得到spike-angle圖、spike-height圖、spike-area圖和spike-distance圖。spike圖的行表示在單一步長下,形狀所有輪廓點的spike函數(shù)值,spike圖的列表示形狀的單個輪廓點在不同步長時的spike函數(shù)值。
圖3(a)、圖3(b)和圖3(c)分別為文獻[17]中,經(jīng)過圖像分割之后的典型的三種類型的磨粒,分別是嚴重滑動磨粒、疲勞剝塊和層狀磨粒。
圖3 磨粒圖像Fig.3 Wear particle image
圖4為三種類型磨粒的spike圖,計算各spike圖時,最小步長為3,最大步長為128,并且對各步長的spike函數(shù)采用該步長對應的最大spike函數(shù)值進行歸一化處理,使得各spike函數(shù)對尺度具有不變性,同時由于各spike函數(shù)具有平移和旋轉不變性,因此本文提出的spike函數(shù)能夠滿足尺度、平移和旋轉不變性。
圖4 三種類型磨粒的spike圖Fig.4 Spike image of three kinds of wear particle
對比三種類型磨粒的spike圖可以發(fā)現(xiàn),每種類型磨粒對應的各spike圖都表現(xiàn)出一定的區(qū)別,這也說明了本文提出的spike函數(shù)能夠區(qū)分不同形狀的磨粒。由于spike-angle函數(shù)和spike-height函數(shù)是用來表達形狀輪廓的細節(jié)特征,spike-angle圖和spike-height圖的各列隨著步長的變化,即形狀各輪廓點在不同步長時的spike-angle函數(shù)值和spike-height函數(shù)值的變化比較大;而spike-area函數(shù)和spike-distance函數(shù)是用來表達形狀輪廓的整體特征,在一定步長范圍內(nèi)spike-area圖和spike-distance圖的各列隨著計算時步長的變化,即形狀各輪廓點在不同步長時的spike-area函數(shù)值和spikedistance函數(shù)值變化比較小。因此根據(jù)spike函數(shù)提取形狀特征時,采用多個步長的spike-angle函數(shù)和spikeheight函數(shù),同時采用單個步長的spike-area函數(shù)和spikedistance函數(shù)。
由于spike函數(shù)的計算受起始點影響,不能直接用于形狀識別,因此對spike函數(shù)進行傅里葉變換,以歸一化的傅里葉系數(shù)的幅值作為形狀特征來消除起始點的影響。傅里葉描述子廣泛應用于形狀的輪廓描述和形狀識別,僅使用少數(shù)低價系數(shù)就能夠得到高質(zhì)量的形狀表示。
基于spike函數(shù)和傅里葉變換的形狀特征提取方法,首先對spike函數(shù)進行傅里葉變換,以步長為s時的spike-angle函數(shù)SAF(s,i),1≤i≤N為例,其傅里葉變換為:
為了消除起始點的影響,以spike函數(shù)傅里葉變換系數(shù)的幅值作為形狀特征,并用傅里葉變換的直通分量對所有系數(shù)進行歸一化,而且由于少數(shù)低階系數(shù)就能夠得到高質(zhì)量的形狀表示,因此在提取形狀特征時,只采用傅里葉變換的前m個歸一化后的系數(shù)幅值,則:
對spike-height函數(shù)、spike-area函數(shù)和spike-distance函數(shù)采用相同的方法用于形狀特征提取,則得到的形狀特征分別為:
由于計算輪廓點的各spike函數(shù)值時,是根據(jù)輪廓點附近的spike值來確定的,較大步長的spike函數(shù)值對于表征形狀特征意義不大,因此本文在根據(jù)spike函數(shù)提取形狀特征時,采用較小步長的spike函數(shù),結合對各spike函數(shù)隨步長的變化的分析,確定采用步長為3、5和9的spike-angle函數(shù)和spike-height函數(shù),以及步長為5的spike-area函數(shù)和spike-distance函數(shù)。以各spike函數(shù)的前10階歸一化傅里葉變換系數(shù)幅值作為形狀特征,即:
根據(jù)式(15)~(18),采用本文的形狀特征提取方法共可以得到80維的形狀特征F:
圖5(a)~(c)分別是圖3(a)~(c)所示的嚴重滑動磨粒、疲勞剝塊和層狀磨粒采用本文方法得到的形狀特征。通過對比可以發(fā)現(xiàn),各類型磨粒的形狀特征區(qū)別非常明顯,尤其是圖3(a)和圖3(b)所示的嚴重滑動磨粒和疲勞剝塊在輪廓形態(tài)特征上表現(xiàn)出一定的相似性,但是根據(jù)本文方法得到的兩個磨粒的形狀特征差別很大,這也說明了采用本文方法能夠得到有效的、區(qū)分能力較強的形狀特征。
圖5 磨粒形狀特征Fig.5 Wear particle shape features
為了有效評價所提出的spike函數(shù)用于形狀特征提取時的有效性,本文將所提出的算法在形狀識別領域應用廣泛的MPEG-7 CE Shape-1 Part B數(shù)據(jù)集[18]和Swedish leaf數(shù)據(jù)集[19]上進行實驗,并與其他方法進行對比。本文所有實驗均在Windows 7 64位系統(tǒng)下進行,處理器為Intel Xeon E5-1620 3.50 GHz,內(nèi)存為16 GB,所有算法均采用MATLAB R2018a編程實現(xiàn)。
在本文實驗中主要與幾種基于輪廓的多尺度形狀特征提取方法進行比較,參與比較的方法為文獻[2]、文獻[6]、文獻[20]和文獻[21]的方法。其中文獻[2]的方法是對每個形狀在6種尺度下進行特征提取,每種尺度選取歸一化形狀內(nèi)距離、形狀內(nèi)距離變化率、歸一化形狀內(nèi)距離與輪廓距離的比值,歸一化歐氏距離與形狀內(nèi)距離的比值以及歸一化歐式距離與輪廓距離的比值等5種輪廓段特征參數(shù)作為形狀特征;文獻[6]的方法是在多個尺度下根據(jù)形狀輪廓提取AP(Angular Pattern)特征和BAP(Binary Angular Pattern)特征作為形狀特征,然后采用序列后向選擇算法對特征進行降維;文獻[20]提出了一種多尺度的不變量形狀描述,在多個尺度下對形狀輪廓進行計算,提取歸一化單連通區(qū)域面積、面積變化率、歸一化單連通弧長、弧長變化率和歸一化重心距等5種不變量特征作為對形狀的描述。文獻[21]提出了一種結合輪廓點空間關系特征的多尺度形狀特征描述子,通過分析不同尺度下參考點與其他采樣點之間的位置關系,利用對應角度信息對形狀進行表示。
為了綜合評價本文所提算法與上述幾種形狀特征提取算法的性能,采用各種形狀特征提取方法進行形狀識別時,分類器采用k近鄰法,用留一法交叉驗證形狀特征提取方法的性能,以識別準確率作為評價指標。本文中進行兩組實驗,實驗1是在原始MPEG-7數(shù)據(jù)集和Swedish leaf數(shù)據(jù)集上進行的。實驗2是在添加高斯噪聲的數(shù)據(jù)集上進行的。在實驗2中,為了評價各形狀特征提取算法的抗噪聲干擾能力,在MPEG-7數(shù)據(jù)集和Swedish leaf數(shù)據(jù)集的每個形狀輪廓上添加均值為0,標準差為σ的高斯噪聲,其中σ的取值由0.1變化到1。
由表1所示實驗1的實驗結果可以看出,在MPEG-7數(shù)據(jù)集和Swedish leaf數(shù)據(jù)集上,本文方法的識別準確率最高,文獻[2]、文獻[6]和文獻[20]方法次之,文獻[21]方法的識別準確率最低。實驗1結果表明采用本文方法提取的形狀特征用于形狀識別,效果明顯好于其他三種方法,這也說明了本文所提算法的有效性。
表1 MPEG-7、Swedish leaf數(shù)據(jù)集各方法識別率對比Table 1 Reconition rate comparison of diffident method on MPEG-7 and Swedish leaf dataset
實驗2所得實驗結果如圖6所示。由圖6(a)和圖6(b)的對比可以看出,隨噪聲水平的增加,各算法識別準確率在MPEG-7數(shù)據(jù)集和Swedish leaf數(shù)據(jù)集上的變化趨勢大致相同,其中本文方法和文獻[21]的方法隨噪聲水平的增加,識別準確率的變化較小,這兩種方法的抗噪聲能力都比較強;文獻[6]方法的抗噪聲能力次之。
圖6 MPEG-7、Swedish leaf數(shù)據(jù)集各方法識別率對比Fig.6 Reconition rate comparison of diffident method on MPEG-7 and Swedish leaf dataset
由以上兩個實驗看出,在spike參數(shù)基礎上提出的基于spike函數(shù)的形狀特征提取方法的識別準確率較高,同時對于噪聲的抵抗能力也比較強。
為了比較本文中五種方法的效率,分別統(tǒng)計每種方法對于每個形狀的特征提取時間和訓練時間以及識別時間。如表2和表3所示,文獻[6]的方法對每個形狀需要先提取多達300個特征,然后進行降維,因此其特征提取時間多于1 s,而且訓練時間也明顯大于其他五種方法;同時本文方法提取的形狀特征維數(shù)為80,因此計算時間稍長于其他三種方法;本文中五種方法的識別時間均小于1 ms,能夠滿足實際使用的需要。
表2 MPEG-7數(shù)據(jù)集各方法效率對比Table 2 Calculation efficiency comparison of diffident method on MPEG-7 dataset s
表3 Swedish leaf數(shù)據(jù)集各方法效率對比Table 3 Calculation efficiency comparison of diffident method on Swedish leaf dataset s
本文在表征磨粒輪廓尖銳程度的spike參數(shù)的基礎上,提出了4種用于形狀特征提取的spike函數(shù),分別為用于表達形狀輪廓細節(jié)特征的spike-angle函數(shù)和spikeheight函數(shù),以及用于表達形狀輪廓整體特征的spikearea函數(shù)和spike-distance函數(shù)。為了消除起始點對spike函數(shù)計算的影響,以spike函數(shù)歸一化的傅里葉系數(shù)的幅值作為形狀特征。在MPEG-7數(shù)據(jù)集和Swedish leaf數(shù)據(jù)集上的形狀識別實驗和噪聲干擾實驗表明,本文提出的算法識別準確率高,抗噪聲能力強,同時由于本文方法提取的形狀特征維數(shù)較多,特征提取時間和訓練時間稍長,但是也能夠滿足實際使用的需要,因此本文方法能夠有效用于形狀識別。