基于图像不变矩和SVM的机械零件分类识别

2012-07-04 09:43匡逊君赵文倩李明富
制造业自动化 2012年15期
关键词:训练样本分类器分类

匡逊君,赵文倩,李明富

(湘潭大学 机械工程学院,湘潭 411105)

为了实现机械零件的分类识别,本文采用了不变矩与支持向量机(SVM)相结合的方法。提取了图像的HU不变矩和仿射不变矩,通过交叉验证算法进行SVM核参数和惩罚因子的参数寻优,为了提高SVM分类器的分类性能,采用有向无环图(DAG)方法设计多类分类器,实现了零件的分类。通过实验验证了本文提出的算法并对实验结果进行了分析。

HU不变矩;仿射不变矩;SVM;零件分类;有向无环图

0 引言

计算机视觉研究的目标是使计算机具有通过二维图像认知三维物体及周边环境信息的能力,包括识别三维物体的几何形状、位置、运动、姿态等。机械零件的分类识别是计算机视觉在机械领域一个很重要的应用,它是机械加工制造自动化的基础,能够大大提高机械加工生产的效率,将人从繁重的劳动中解救出来,大大降低时间和成本。为了保障图像分类识别的准确性和可靠性,我们希望其特征具有良好的不变性。因此,图像不变性特征研究成为了计算机视觉研究的重点之一。Hu[1]提出了图像的不变矩概念,这些不变矩具有旋转、平移、比例不变性,在目标分类、图像识别、形状分析和图像匹配等领域得到了广泛的应用; D.Shen等[2]提出了基于小波变换的特征提取方法—小波矩不变量,Jan Flusser[3]提出了仿射不变量,并将它们应用于图像和字符的分类识别,得到了很好的效果。本文提取了零件图像的HU不变矩和仿射不变矩的组合矩,并将它们应用于零件的分类。实际的图像分类研究应用中,训练样本较少而且特征维数很高,导致大部分机器学习分类器不能很好的解决图像分类问题。以小样本统计学习理论为基础的支持向量机SVM拥有很好的泛化能力,对于训练样本较少的情况也能够达到很好的分类效果,因而,SVM很适用于图像的分类。近年来也被广泛应用于图像分类、人脸识别、文本分类、手写体识别等领域并取得显著的分类效果。本文的机械零件的分类问题实际上是一个典型的小样本学习问题,因此本文利用SVM,结合提取的组合不变矩,来实现零件的分类识别。

1 HU 不变矩和仿射不变矩

矩特征表征了图像区域的几何特征,又称为几何矩,因其具有旋转、平移、尺度等特性的不变特征,所以又将其称为不变矩。在图像处理中,图像不变矩可作为一个重要特征来描述物体,可以据此特征来对图像进行分类识别等操作。Hu于1962年首先提出了基于直角坐标系的规则矩概念,提出了连续函数矩的定义同时给出了关于矩的基本性质,证明了有关矩的旋转、平移以及比例不变性等性质,给出了具有平移、旋转和比例不变性的七个不变矩表达式:

目标识别最关键、最困难的问题之一是如何从任意尺度和视角所获取的同一场景的图像中提取不变的特征。在现实场景下,天气、距离、摄像设备、视觉角度都会影响物体成像。当从不同的角度拍摄是,三维物体会发生变形,也就是仿射变换,这时只用HU不变矩反映目标物体的特征是不够的。仿射变换被证明是模拟图像视点变换的最佳方法[4]。Jan Flusser等提取了仿射不变矩作为特征并证明在物体图像发生平移、比例、旋转、倾斜变化下仍具有不变性:

2 基于有向无环图(DAG)的支持向量机SVM分类算法

2.1 支持向量机SVM

支持向量机法(Support Vector Machine,简称SVM)是vapnik[5]等人在1995年基于统计学习理论基础上提出的一种新的机器学习方法。与一般的分类器不同的是,SVM是基于结构风险最小化准则的分类器。通过适当地选择函数的子集以及该子集中的判别函数,依据有限样本信息,在模型的复杂性与学习能力之间寻求最佳折中,使实际风险达到最小化以及得到最好的泛化性能力。对于非线性可分的问题,SVM采用非线性映射方法,将特征空间由低维映射到高维,来实现样本的分类。在分类的过程中,只需使用适当核函数K(xi, x),就可以避免求解非线性映射函数的具体形式,同时在运算中,也巧妙的解决了高维空间计算带来的“维数灾难”问题。因此,选择满足Mercer条件下的不同的内积核函数,就可以构成不同的SVM。目前研究最多的核函数有:

多项式函数:K(x, xi)=(v〈x+xi〉+1)q

径向基RBF函数:K(x, xi)=exp(-g‖ Xi-Xj‖2)

S 形函数:K(x, xi)=tanh(v+〈xi+x〉+c)

在这三种核函数中,径向基RBF函数对于高维、低维、大样本、小样本等情况都适用,并且具有较宽的收敛域,是较理想的分类依据函数[6]。因此本文将选用径向基RBF函数作为SVM的核函数来进行零件的分类。

2.2 基于有向无环图的SVM分类算法

SVM最初是针对两类问题提出的,由于本文要实现多类零件的分类,因此需要通过构造多个SVM二类分类器并将它们组合起来实现多类分类。本文将采用有相无环图方法DAG(Directed Acyclic Graph)将多个SVM二类分类器组合起来实现样本的分类,这里把这种方法称为DVGSVM,其结构图如图1所示。

图1 DAGSVM分类结构图

对于一个n类的分类问题,DAG结构共含有n(n-1)个节点,每一个节点就是一个分类器,对应n(n-1)个分类器,分布于n层结构中。对于给定的输入样本X,从根节点出发,然后计算每个节点决策函数值,如果为1,则从左边进入下一节点,如果为-1,则从右边进人到下一个节点,然后计算下一个节点的值,依此类推,在最后一层叶节点处的输出就是X的类别,只需n-1次运算就能够得出分类的结果。DAGSVM方法与一般的决策树方法相比,简单直观、分类的精度高、重复训练样本少。

3 基于不变矩和DAGSVM的机械零件分类

要利用DAGSVM实现机械零件的分类,先要训练分类器。因此,首先要采集一定数量的机械零件样本图像作为训练样本并提取其不变矩作为分类器的训练数据。对训练样本进行标号并作为对应训练样本的训练目标,进行训练。训练的结果就是要在DAGSVM特征空间中形成由支持向量描述的分类超平面,将各类别之间的特征空间划分开来。训练完成后,就得到了DAGSVM分类器。然后就可以将待分类的机械零件样本的不变矩特征输入到DAGSVM分类器,分类过程中,待分类零件样本的不变矩特征落入哪个类别训练样本所对应的特征空间的范围,就表明该样本属于该类别,从而实现了分类。

DAGSVM机械零件分类的实现过程如下:

1)采集一定数量的零件图像,将其分为训练样本和待分类样本,并分别提取其HU不变矩和仿射不变矩,作为样本的特征。

2)构造K(K-1)个分类器,每个分类器取任意2个零件类别样本进行训练,K为待分类样本的类别数。该阶段就是通过对样本的训练,获得最优分类函数:

式中K(xi, x)为核函数,本文选用的是径向基RBF函数,xi为训练样本集,x为待分类的样本,yi是样本的类别标记,n为训练样本个数,SV为支持向量。

3)采用DAGSVM方法构造零件分类的多分类器。

4)将待分类零件样本的特征向量输入3)得到的多分类器模型,输出的结果即为零件的类别。

4 机械零件分类实验

该实验选用工厂环境下拍摄的5类机械零件共90张图像进行分类识别。如图2所示,图上零件从左至右依次是:螺母、螺栓、齿轮、轴和螺柱。

图2 实验用零件图像

选取90张机械零件图像中的59张作为训练样本,进行预处理,得到二值化图像。再提取其HU不变矩和仿射不变矩作为样本特征。将交叉验证算法应用于样本特征空间,进行参数寻优,得到最优的(g,C)参数组合,然后通过训练得到分类器。最后将待分类样本输入SVM分类器进行分类,其具体流程如图3所示。

图3 基于不变矩和SVM的机械零件分类分类流程图

4.1 图像预处理与不变矩的提取

实验中对采集的图像进行灰度化,图像增强,滤波处理后,再采用自适应阈值算法进行阈值处理得到样本的二值图像,如图4所示,然后再提取每一幅图像的7个HU不变矩和3个仿射不变矩,以图2中零件为例的不变矩如表1所示。

图4 零件样本的二值化图像

4.2 核参数 g 和误差惩罚因子C 的确定

Vapnik 等[7]人的研究证明:SVM性能好坏与所选择的核函数的类别关系不大,核函数参数和误差惩罚因子才是影响SVM性能的最关键因素。本文选择RBF函数作为核函数来设计分类器。对RBF核函数,其需要是寻找最佳的核参数g和误差惩罚因子C,其中核参数g是径向基核函数的宽度参数,惩罚因子C用于控制模型复杂度和逼近误差的折中。

表1 提取的图像的不变矩

实质上,SVM参数选择的问题,就是一个优化的问题。目前存在的SVM参数寻优算法有:交叉验证法、实验试凑法、网格搜索法、遗传算法和梯度下降法等等[8]。

本文选取交叉验证算法来确定SVM核参数g和误差惩罚因子C参数。算法过程为:将训练样本数据分成K个相等子集,每次将K-1个子集作为SVM训练数据,而将另外一份数据作为测试数据。针对惩罚因子C和不同的核参数,计算剩余那一个子集的分类正确率。系统根据分类率的高低自动调整惩罚因子C的值,通过上述算法选择分类正确率最高的参数组合作为模型的最优参数,获得最佳的(g,C)参数组合。

将交叉验证算法应用于零件样本数据,在软件Libsvm 2.86上实现过程如图5所示。

图5 参数选择结果图

通过交叉验证算法计算结果,最终确定参数(2, 0.35355)为最优的(g,C)参数组合,对应图中坐标点(-1.5,1),并以此来实现零件的分类。

图6 DAGSVM零件多分类器结构图

4.3 DAG SVM零件多类分类器

要实现5类零件的分类,依据DAGSVM分类算法,如图6所示设计多分类器。图中SVM1、SVM2、SVM3、SVM4、SVM5、SVM6分别代表螺母VS螺柱、螺栓VS螺柱、螺母VS轴、齿轮VS螺柱、螺栓VS轴、螺母VS齿轮的2类分类器。在确定了RBF核函数和(g,C)参数组合后,选择每个2类分类器对应的两个类别的零件样本进行训练,便可以得到图6中所有的分类器。

4.4 实验结果

利用不变矩和图6中DAG SVM分类器对零件进行分类的结果如表2所示。

表2 实验分类结果

从上面的实验结果来看,对5类零件的分类识别达到了较为理想的效果,但也存在误判,经过进一步的分析发现,影响分类正确率的主要原因有:

1) 实验用的零件大多来自工厂现场,零件表面都有较大程度的磨损、擦伤和油污,这影响到了图像二值化时的分割效果,提取的不变矩不能精确描述图像的特征,一定程度上影响了分类正确率。

2)由于条件限制,拍摄的机械零件训练样本图像不够充足,对分类器的性能造成了一定的影响。

3)DAG SVM方法具有分类速度快、易于计算、学习效果好等优点的同时,也存在一些缺陷:当它前面的分类器出现误分时,后面的分类器无法纠正它的错误,出现错误累积。有待作出进一步的改善。

5 结束语

将SVM和不变矩应用于机械零件的分类识别中,并对分类结果进行了验证。运用交叉验证法进行核参数和惩罚因子的优化选择,该方法易于实现,有效克服了核函数参数选择对SVM分类效果造成的影响。利用有向无环图方法能快速的实现零件的分类,避免了分类重叠和不可分类现象。实验结果表明本文所研究的方法是行之有效的。

[1] Hu M K.Visual pattern recognition by moment invariants[J].IEEE Transactions on Information Theory, 1962, 8(2): 179-187.

[2] Shen D, Horace H Slp.Discriminative Wavelet Shape Descriptors for recognition of Z-D Patters[J].Pattern Recognition, 1999, 32(2): 151-165.

[3] Flusser J, Suk T.Pattern recognition by affine moment invariants[J].Pattern Recognition, 1993, 26(1): 167-174.

[4] Rahtu, M.Salo,J.Heikkila.Affine invariant pattern recognition using multiscale.Autoconvolution.IEEE Transactions on Pattern Analysis and Machine Intelligence,2005, 27(6): 908-918.

[5] V vapnik.The nature of statistical learning theory[M].NewYork: springer-verlag, 1995.

[6] 李盼池, 许少华.支持向量在模式识别中的核函数特性分析[J].计算机工程与设计, 2005, 26(2): 302-304.

[7] Vapnik V, Golowich S, Smola A.Support vector method for function approximation, regression estimation, and signal processing[C]//Mozer M, Jordan M, Petsche T.Neural Information Processing Systems 9.Cambridge, MA: MIT Press, 1997(4): 281-287.

[8] 奉国和.SVM分类核函数及参数选择比较[J].计算机工程与应用, 2011, 47(3): 123-125.

猜你喜欢
训练样本分类器分类
分类算一算
基于朴素Bayes组合的简易集成分类器①
人工智能
基于特征选择的SVM选择性集成学习方法
分类讨论求坐标
数据分析中的分类讨论
教你一招:数的分类
基于差异性测度的遥感自适应分类器选择
基于小波神经网络的网络流量预测研究
宽带光谱成像系统最优训练样本选择方法研究