用于形状特征提取的spike函数
2021-09-26郭恒光刘文彪余仁波
郭恒光,刘文彪,余仁波
海军航空大学 岸防兵学院,山东 烟台264001
形状特征是图像的一种重要的视觉特征,对于理解图像起着至关重要的作用,被广泛用于目标识别[1-4]、图像检索[5-7]以及图像匹配[8-9]等领域。而形状特征提取是形状识别检索的关键步骤,对形状的描述越准确越详尽,形状识别和检索的结果也更加准确,因此对形状特征提取方法的研究具有重要意义。提取形状特征的方法可以分为两种:基于轮廓的方法和基于区域的方法。基于spike参数[10]的思想,本文提出了四种多尺度形状特征表示方法,称之为spike函数,能够综合利用图像形状轮廓细节和整体的多尺度信息。
Spike参数是M.G.Hamblin和G.W.Stachowiak于1995年首次提出的,用于反映磨粒轮廓角度的变化情况。它的计算方法与分形维数的求法相似,所不同的是:不是以每一步对应的起始点和终点之间的直线代表对应的磨粒轮廓,而是由“spike”来表示,通过在起始点和终点之间的磨粒轮廓上寻找一点,这三个点构成一个三角形,称为“spike”,然后计算spike值,最后根据所用步长的大小和数量得到spike值的平均值,作为spike参数(spike parameter)。Spike参数越大,轮廓的三角形越尖锐,磨粒的磨损作用越大。
根据spike参数的原理,在文献[11]中已提出了spikeangle函数,本文又提出了spike-height函数,spike-area函数和spike-distance函数,系统构成spike函数。其中spikeangle函数和spike-height函数用于表达形状轮廓的细节特征,spike-area函数和spike-distance函数用于表达形状轮廓的整体特征。结合spike函数和傅里叶变换,以各spike函数的归一化傅里叶变换系数的幅值作为图像的形状特征。
1 spike参数
Spike参数的计算如图1所示,文献[10]中spike参数的计算方法如下:以轮廓点A为起始点,按一定的步长找到轮廓点B作为终点,其中步长是指起始点和终点之间磨粒轮廓像素点的数量。在起始点A和终点B之间的磨粒轮廓上寻找一点P,三个点构成一个三角形区域,称之为“spike”,用于表示起始点和终点之间的磨粒轮廓。为了反应三角形区域的尖锐程度和大小,定义spike值(spike value)Sv,如下式所示:
图1 spike参数计算原理图Fig.1 Schematic diagram of spike parameter calculation
式中,θ为三角形区域的边PA和PB之间的夹角,h为三角形区域的顶点P到边AB的垂直距离。
Spike参数(spike parameter)SP按下式计算:
式中,Svmax=max(cos(θ/2)h);m为在给定步长时,有效的Sv的数量;n为所使用的不同步长的数量。
2 spike函数
Spike参数的实质是通过起始点和终点之间三角形区域顶点处角度的平均值来反映磨粒轮廓的特征。基于spike参数的思想,本文提出以下四种用于描述形状特征的spike函数,分别为spike-angle函数、spike-height函数、spike-area函数和spike-distance函数。其中前两种函数用于表达形状轮廓的细节特征,后两种函数用于表达形状轮廓的整体特征。
2.1 spike-angle函数
提取图像形状的轮廓,沿逆时针方向对形状轮廓点进行均匀采样,得到N个轮廓点,最终的形状轮廓为:
以第i个轮廓点为起始点A,步长为s(步长是指起始点和终点之间轮廓像素点的数量,最大步长为M),得到终点B,则起始点A和终点B之间的轮廓点序列为:
起始点A、终点B和P点序列构成s个三角形区域,根据式(1)计算每一个三角形区域的spike值:
则第i个轮廓点,在步长为s时的spike-angle函数的定义为:
式中,θmax为Sv最大时,对应的三角形区域的边PA和PB之间的夹角。
根据以上spike-angle函数的定义可以看出,spikeangle函数以各形状轮廓点的Sv达到最大时,对应的角度的余弦值来反映形状轮廓角度的变化,从而反映了形状各轮廓点附近轮廓片段的尖锐程度及角度的变化。
2.2 spike-height函数
但是由于spike-angle函数是以余弦值来反映角度的变化的,无法判断轮廓点处的轮廓片段是凹的还是凸的,因此借鉴文献[12]提出的拱高半径复函数,在spikeangel函数的基础上定义了spike-height函数。
第i个轮廓点,在步长为s时的spike-height函数的定义为:
式中,hmax为Sv最大时,对应的三角形区域的顶点P到边AB的垂直距离。
计算spike值时是以A为起始点,按一定步长找到终点B,然后根据spike值确定三角形区域的顶点P,而且进行轮廓采样时是按逆时针方向进行的。为了反映磨粒轮廓的凹凸性,各轮廓点处spike-height值的正负号按如下规则进行确定:顶点P确定之后,当由起始点A沿直线段AB走向B,若顶点P在直线段AB的右侧,则对应的轮廓点A的spike-height值为正;若顶点P在直线段AB的左侧,则对应的轮廓点A的spikeheight值为负。
经过以上定义,spike-height函数值反映了该轮廓点附近轮廓片段的凹凸性,当spike-height函数值为正时,则该轮廓片段为凸的;当spike-height函数值为负时,则该轮廓片段为凹的。
上述定义的spike-angle函数和spike-height函数反映了形状轮廓的局部细节特征,缺少对形状整体特征的描述,因此提出了两种表达形状轮廓整体特征的函数:spike-area函数和spike-distance函数。
2.3 spike-area函数
面积函数是一种很好的形状描述方法,如文献[13]、[14]和[15]等都是基于面积的形状特征表示方法。本文在磨粒spike参数的基础上,提出了spike-area函数,如图2所示,以起始点A、终点B、spike的顶点P和形状质心C所构成区域的面积来描述形状。计算该面积时,分别计算spike的三角形区域的面积以及起始点、终点B和形状质心C构成的三角形区域面积,然后两个面积相加得到提出的spike-area函数。
图2 spike-area函数计算原理图Fig.2 Schematic diagram of spike-area function calculation
第i个轮廓点,在步长为s时的spike-area函数的定义为:
式中,(x(P),y(P))为Sv最大时,对应的顶点P的坐标;(x(A),y(A))和(x(B),y(B))分别为起始点A和终点B的坐标;(xc,yc)为形状质心坐标。
2.4 spike-distance函数
文献[13]、[14]和[16]都在描述形状轮廓局部细节的基础上加入中心距离函数,以增加对形状整体的描述能力。在此基础上,本文提出了spike-distance函数用于描述形状轮廓的整体特征。
第i个轮廓点,在步长为s时的spike-height函数的定义为:
式中,(x(P),y(P))为Sv最大时,对应的顶点P的坐标,(xc,yc)为形状质心坐标。
2.5 spike图
本文提出的四种spike函数是一种多尺度的形状表示方法,分别将形状的每一个轮廓点作为起始点,计算它在不同步长时的spike函数值,最终得到形状所有轮廓点在不同步长时的spike函数,各尺度spike函数值构成一个矩阵,称之为spike图,则可分别得到spike-angle图、spike-height图、spike-area图和spike-distance图。spike图的行表示在单一步长下,形状所有轮廓点的spike函数值,spike图的列表示形状的单个轮廓点在不同步长时的spike函数值。
图3(a)、图3(b)和图3(c)分别为文献[17]中,经过图像分割之后的典型的三种类型的磨粒,分别是严重滑动磨粒、疲劳剥块和层状磨粒。
图3 磨粒图像Fig.3 Wear particle image
图4为三种类型磨粒的spike图,计算各spike图时,最小步长为3,最大步长为128,并且对各步长的spike函数采用该步长对应的最大spike函数值进行归一化处理,使得各spike函数对尺度具有不变性,同时由于各spike函数具有平移和旋转不变性,因此本文提出的spike函数能够满足尺度、平移和旋转不变性。
图4 三种类型磨粒的spike图Fig.4 Spike image of three kinds of wear particle
对比三种类型磨粒的spike图可以发现,每种类型磨粒对应的各spike图都表现出一定的区别,这也说明了本文提出的spike函数能够区分不同形状的磨粒。由于spike-angle函数和spike-height函数是用来表达形状轮廓的细节特征,spike-angle图和spike-height图的各列随着步长的变化,即形状各轮廓点在不同步长时的spike-angle函数值和spike-height函数值的变化比较大;而spike-area函数和spike-distance函数是用来表达形状轮廓的整体特征,在一定步长范围内spike-area图和spike-distance图的各列随着计算时步长的变化,即形状各轮廓点在不同步长时的spike-area函数值和spikedistance函数值变化比较小。因此根据spike函数提取形状特征时,采用多个步长的spike-angle函数和spikeheight函数,同时采用单个步长的spike-area函数和spikedistance函数。
3 基于spike函数和傅里叶变换的形状特征提取
由于spike函数的计算受起始点影响,不能直接用于形状识别,因此对spike函数进行傅里叶变换,以归一化的傅里叶系数的幅值作为形状特征来消除起始点的影响。傅里叶描述子广泛应用于形状的轮廓描述和形状识别,仅使用少数低价系数就能够得到高质量的形状表示。
基于spike函数和傅里叶变换的形状特征提取方法,首先对spike函数进行傅里叶变换,以步长为s时的spike-angle函数SAF(s,i),1≤i≤N为例,其傅里叶变换为:
为了消除起始点的影响,以spike函数傅里叶变换系数的幅值作为形状特征,并用傅里叶变换的直通分量对所有系数进行归一化,而且由于少数低阶系数就能够得到高质量的形状表示,因此在提取形状特征时,只采用傅里叶变换的前m个归一化后的系数幅值,则:
对spike-height函数、spike-area函数和spike-distance函数采用相同的方法用于形状特征提取,则得到的形状特征分别为:
由于计算轮廓点的各spike函数值时,是根据轮廓点附近的spike值来确定的,较大步长的spike函数值对于表征形状特征意义不大,因此本文在根据spike函数提取形状特征时,采用较小步长的spike函数,结合对各spike函数随步长的变化的分析,确定采用步长为3、5和9的spike-angle函数和spike-height函数,以及步长为5的spike-area函数和spike-distance函数。以各spike函数的前10阶归一化傅里叶变换系数幅值作为形状特征,即:
根据式(15)~(18),采用本文的形状特征提取方法共可以得到80维的形状特征F:
图5(a)~(c)分别是图3(a)~(c)所示的严重滑动磨粒、疲劳剥块和层状磨粒采用本文方法得到的形状特征。通过对比可以发现,各类型磨粒的形状特征区别非常明显,尤其是图3(a)和图3(b)所示的严重滑动磨粒和疲劳剥块在轮廓形态特征上表现出一定的相似性,但是根据本文方法得到的两个磨粒的形状特征差别很大,这也说明了采用本文方法能够得到有效的、区分能力较强的形状特征。
图5 磨粒形状特征Fig.5 Wear particle shape features
4 实验结果与分析
4.1 实验设计
为了有效评价所提出的spike函数用于形状特征提取时的有效性,本文将所提出的算法在形状识别领域应用广泛的MPEG-7 CE Shape-1 Part B数据集[18]和Swedish leaf数据集[19]上进行实验,并与其他方法进行对比。本文所有实验均在Windows 7 64位系统下进行,处理器为Intel Xeon E5-1620 3.50 GHz,内存为16 GB,所有算法均采用MATLAB R2018a编程实现。
在本文实验中主要与几种基于轮廓的多尺度形状特征提取方法进行比较,参与比较的方法为文献[2]、文献[6]、文献[20]和文献[21]的方法。其中文献[2]的方法是对每个形状在6种尺度下进行特征提取,每种尺度选取归一化形状内距离、形状内距离变化率、归一化形状内距离与轮廓距离的比值,归一化欧氏距离与形状内距离的比值以及归一化欧式距离与轮廓距离的比值等5种轮廓段特征参数作为形状特征;文献[6]的方法是在多个尺度下根据形状轮廓提取AP(Angular Pattern)特征和BAP(Binary Angular Pattern)特征作为形状特征,然后采用序列后向选择算法对特征进行降维;文献[20]提出了一种多尺度的不变量形状描述,在多个尺度下对形状轮廓进行计算,提取归一化单连通区域面积、面积变化率、归一化单连通弧长、弧长变化率和归一化重心距等5种不变量特征作为对形状的描述。文献[21]提出了一种结合轮廓点空间关系特征的多尺度形状特征描述子,通过分析不同尺度下参考点与其他采样点之间的位置关系,利用对应角度信息对形状进行表示。
4.2 实验过程
为了综合评价本文所提算法与上述几种形状特征提取算法的性能,采用各种形状特征提取方法进行形状识别时,分类器采用k近邻法,用留一法交叉验证形状特征提取方法的性能,以识别准确率作为评价指标。本文中进行两组实验,实验1是在原始MPEG-7数据集和Swedish leaf数据集上进行的。实验2是在添加高斯噪声的数据集上进行的。在实验2中,为了评价各形状特征提取算法的抗噪声干扰能力,在MPEG-7数据集和Swedish leaf数据集的每个形状轮廓上添加均值为0,标准差为σ的高斯噪声,其中σ的取值由0.1变化到1。
4.3 实验结果与分析
由表1所示实验1的实验结果可以看出,在MPEG-7数据集和Swedish leaf数据集上,本文方法的识别准确率最高,文献[2]、文献[6]和文献[20]方法次之,文献[21]方法的识别准确率最低。实验1结果表明采用本文方法提取的形状特征用于形状识别,效果明显好于其他三种方法,这也说明了本文所提算法的有效性。
表1 MPEG-7、Swedish leaf数据集各方法识别率对比Table 1 Reconition rate comparison of diffident method on MPEG-7 and Swedish leaf dataset
实验2所得实验结果如图6所示。由图6(a)和图6(b)的对比可以看出,随噪声水平的增加,各算法识别准确率在MPEG-7数据集和Swedish leaf数据集上的变化趋势大致相同,其中本文方法和文献[21]的方法随噪声水平的增加,识别准确率的变化较小,这两种方法的抗噪声能力都比较强;文献[6]方法的抗噪声能力次之。
图6 MPEG-7、Swedish leaf数据集各方法识别率对比Fig.6 Reconition rate comparison of diffident method on MPEG-7 and Swedish leaf dataset
由以上两个实验看出,在spike参数基础上提出的基于spike函数的形状特征提取方法的识别准确率较高,同时对于噪声的抵抗能力也比较强。
为了比较本文中五种方法的效率,分别统计每种方法对于每个形状的特征提取时间和训练时间以及识别时间。如表2和表3所示,文献[6]的方法对每个形状需要先提取多达300个特征,然后进行降维,因此其特征提取时间多于1 s,而且训练时间也明显大于其他五种方法;同时本文方法提取的形状特征维数为80,因此计算时间稍长于其他三种方法;本文中五种方法的识别时间均小于1 ms,能够满足实际使用的需要。
表2 MPEG-7数据集各方法效率对比Table 2 Calculation efficiency comparison of diffident method on MPEG-7 dataset s
表3 Swedish leaf数据集各方法效率对比Table 3 Calculation efficiency comparison of diffident method on Swedish leaf dataset s
5 结束语
本文在表征磨粒轮廓尖锐程度的spike参数的基础上,提出了4种用于形状特征提取的spike函数,分别为用于表达形状轮廓细节特征的spike-angle函数和spikeheight函数,以及用于表达形状轮廓整体特征的spikearea函数和spike-distance函数。为了消除起始点对spike函数计算的影响,以spike函数归一化的傅里叶系数的幅值作为形状特征。在MPEG-7数据集和Swedish leaf数据集上的形状识别实验和噪声干扰实验表明,本文提出的算法识别准确率高,抗噪声能力强,同时由于本文方法提取的形状特征维数较多,特征提取时间和训练时间稍长,但是也能够满足实际使用的需要,因此本文方法能够有效用于形状识别。