一种基于SVM的珍珠多分类方法
技术领域
本发明涉及基于机器视觉的检测和分级系统,具体是指一种珍珠分类的方法。
背景技术
2005年以来,中国的珍珠产量已经达到1500吨,其中淡水珍珠1270吨,产量占据全球95%以上的市场份额,淡水珍珠的产量占全球淡水珍珠的99%,中国珍珠把昔日“世界第一产珠大国”日本远远抛在后面,中国珍珠正“一统天下”。浙江省是中国淡水珍珠最主要的产地和销售集散地,全省约有12000个淡水珍珠养殖户,养殖、加工的从业人员近20万,珍珠的产量占全国淡水珍珠产量的1/3,淡水珍珠养殖主要分布在金华、杭州、绍兴、衢州等地区,以绍兴诸暨市为养殖中心。
目前我国的珍珠企业多依赖人工方式对珍珠进行粗略分选。由于珍珠体积小、数量多,分级工作负荷大、效率低。随着养殖珍珠国家分级标准的出台,对珍珠进行准确而快速的分级成为了珍珠生产企业的迫切要求。然而已有文献中的珍珠分级方法大多数都脱离企业的真实需求,不能很好地代替或者部分代替企业的人工分拣。
中国发明申请号201210411980.5公开了一种基于单目多视角机器视觉的珍珠大小形状在线自动分级装置,包括用于对珍珠进行自动检测和分类的流水线,用于拍摄被检珍珠图像的单目多视角机器视觉装置,用于对被检珍珠图像进行图像处理、检测、识别、分类以及协调控制流水线上各动作机构的协调动作的微处理器,流水线包括上料动作机构、送检动作机构、下料动作机构、分级动作机构和分级执行机构。该发明在珍珠形状大小识别模块中根据国家标准中将珍珠的外形分为正圆、圆、近圆、椭圆、扁平和异形6种类型,但是在形状判断过程中需要借助10个珍珠样本获得其形状特征参数作为形状判断依据,具有较大的误差。并且经过调研发现,该外形分类对珍珠生产厂家的分级过程没有很好的辅助帮助作用。
因此,一种基于SVM的珍珠多分类方法迫切需要解决以下几个问题:1)如何获得更加有价值的珍珠特征;2)如何更好地利用已有已知外观特征的珍珠帮助进行珍珠分类3)如何利用珍珠的特征进行对珍珠生产厂家有意义的分类。
发明内容
为了克服已有的基于机器视觉的珍珠分级系统与珍珠生产企业的实际需求不兼容、正确率较低、不能很好地代替或部分代替人工分拣的不足,在调研珍珠生产企业实际需求和人工分拣流程的基础上,本发明提供一种正确率较高、代替或部分代替人工分拣的基于SVM的珍珠多分类方法,基于多种特征提取的SVM分类方法,根据珍珠生产企业的实际人工分拣流程进行珍珠分级。
本发明实现上述发明目的所采用的技术方案为:
一种基于SVM的珍珠多分类方法,包括以下步骤:
1)将珍珠图像存储于原始图像数据库,构建样本库,珍珠图像包括左、主、右、后、俯视图;
2)利用特征识别器,识别所述原始图像数据库中珍珠图像的形状特征;
3)利用特征识别器,识别所述原始图像数据库中珍珠图像的局部纹理特征;
4)利用特征识别器,识别所述原始图像数据库中珍珠图像的全局纹理特征;
5)利用珍珠样本图像训练多个二分类SVM模型构造SVM多分类器,利用所构造的SVM多分类器根据所述特征识别器获得的待分类珍珠特征进行等级分类。
进一步,所述步骤1)中,采集厂家提供的8种类别的珍珠图像数据作为SVM的训练集和测试集,包括8点差米形、8点二档冲头、8点高档米珠、8点中档米珠、8点短螺纹、8点高档颗头螺纹、8点高档面光和10点四面光。当然,根据不同厂家需求,可以提供其他形式的珍珠图像数据。
再进一步,所述步骤2),形状特征识别包括以下步骤:
2.1)图像预处理,对采集的所述珍珠图像进行灰度化;
2.2)对灰度化后的图像进行二值化,并进行形态学开操作、闭操作来去除图像噪点;
2.3)利用八领域搜索算法获得珍珠的轮廓坐标和长短径,并转化到极坐标系下;
2.4)求取极坐标系下珍珠轮廓的半径序列,将其归一化为半径为1的标准圆,并求取其离散傅立叶变换;
2.5)利用离散傅立叶变换得到的系数和珍珠的长短径来代表珍珠形状的主要信息;
2.6)在得到珍珠左、主、右、后、俯视图的形状信息后,按照离散傅立叶变换得到的第一个系数从小到大将形状特征排序并组合,所得到的即是该珍珠的形状特征;
更进一步,所述步骤3)中,局部纹理特征识别包括以下步骤:
3.1)图像预处理,对采集的所述珍珠图像进行灰度化;
3.2)对灰度化后的图像采取中值滤波去除其噪点并平滑图像;
3.3)选择图像下半部分的一行灰度值;
3.4)对这一行灰度值进行预处理,然后找出其中所有的极大值、极小值;
3.5)重复3.3和3.4的步骤3次,并计算这3次结果中相邻的极大值和极小值之间的差值,统计这些差值在不同数值区间所出现的次数,用来代表珍珠局部纹理的主要信息;
3.6)在得到珍珠左、主、右、后、俯视图的局部纹理信息后,将各个视图下差值在不同数值区间所出现的次数进行对应相加,统计出5幅视图的上述差值在不同数值区间所出现的次数,所得到统计数据即是该珍珠的局部纹理特征。
所述步骤3.4)中,对这一行灰度值进行预处理是将这行灰度值中出现的多个连续且数值相同的灰度值用1个灰度值代替,该灰度值为这些连续且数值相同的灰度值的均值。
所述步骤4)中,全局纹理特征识别包括以下步骤:
4.1)图像预处理,对采集的所述珍珠图像进行灰度化;
4.2)提取图像的灰度共生矩阵P,
其中L为图像灰度级;θ为角度,取0°方向,则灰度共生矩阵P是计算两个灰度值在图像中水平相邻的次数,P(i,j)代表P在第i行,第j列的值,为图像中灰度值i、灰度值j水平相邻的次数;
4.3)获取图像的4个纹理特征参数:对比度Contrast、自相关Correlation、能量Energy和同质性Homogeneity,即为图像的全局纹理信息,其中:
a.对比度Contrast,即Con的计算式:
CON=∑i,j|i-j|2P(i,j)
其中,P(i,j)是灰度共生矩阵P在第i行,第j列上的值;
b.自相关Correlation,即COR的计算式:
其中ui、uj、σi、σj分别是行和列上的灰度共生矩阵元素统计的期望和方差值;
c.能量Energy,即ENE的计算式为:
ENE=∑i,jP(i,j)2
d.同质性Homogeneity,即HOM的计算式为:
4.4)在得到珍珠左、主、右、后、俯视图的全局纹理信息后,将5幅视图的4个纹理特征参数取均值,得到的4个值为该珍珠的全局纹理特征。
所述步骤5)包括以下步骤:
5.1)训练SVM模型1、2、3;
5.2)将待分类珍珠的形状特征、局部纹理特征、全局纹理特征组合成珍珠用于分类的特征,作为SVM分类的输入;
5.3)训练好的SVM模型1用于将珍珠分为两类,分别为
第1类:8点差米型、8点二档冲头、8点高档米珠、8点中档米珠;
第2类:8点短螺纹、8点高档颗头螺纹、8点高档面光、10点四面光;
训练好的SVM模型2用于将经过模型1分类后的8点差米型、8点二档冲头、8点高档米珠、8点中档米珠分为两类,分别为
第3类:8点差米型、8点高档米珠、8点中档米珠;
第4类:8点二档冲头;
训练好的SVM模型3用于将经过模型1分类后的8点短螺纹、8点高档颗头螺纹、8点高档面光、10点四面光分为两类,分别为
第5类:8点短螺纹、8点高档面光;
第6类:8点高档颗头螺纹10点四面光。
本发明的有益效果为:基于多种特征提取的SVM分类方法,根据珍珠生产企业的实际人工分拣流程进行珍珠分级;正确率较高、代替或部分代替人工分拣。
附图说明
图1为整个分级系统的流程示意图。
图2为具体珍珠分类的流程示意图。
图3为将珍珠轮廓图映射到极坐标系中的示意图。
图4为提取珍珠灰度图一行灰度值的极值示意图,其中,(a)为灰度图;(b)表示预处理;(c)表示截取;(d)表示取极值。
图5为灰度共生矩阵计算实例示意图。
具体实施方式
下面结合说明书附图对本发明的具体实施方式作进一步详细的描述。
参照图1~图5,一种基于SVM的珍珠多分类方法,包括以下步骤:
1)将珍珠图像存储于原始图像数据库,构建样本库,珍珠图像包括左、主、右、后、俯视图;
2)利用特征识别器,识别所述原始图像数据库中珍珠图像的形状特征;
3)利用特征识别器,识别所述原始图像数据库中珍珠图像的局部纹理特征;
4)利用特征识别器,识别所述原始图像数据库中珍珠图像的全局纹理特征;
5)利用珍珠样本图像训练多个二分类SVM模型构造SVM多分类器,利用所构造的SVM多分类器根据所述特征识别器获得的待分类珍珠特征进行等级分类。
针对已有的基于机器视觉的珍珠分级系统与珍珠生产企业的实际需求不兼容、不能很好地代替或部分代替人工分拣的问题,在调研珍珠生产企业实际需求和人工分拣流程的基础上,本发明提供一种基于多种特征提取的SVM分类方法,根据珍珠生产企业的实际人工分拣流程进行珍珠分级,其总体思路如图1和图2所示,即先提取8种种类的样本珍珠的左、主、右、后、俯视图构成样本库,提取样本库珍珠的形状特征、局部纹理特征和全局纹理特征,采用SVM进行样本训练、得到样本珍珠的分类模型1、2、3,并保存模型;采集待识别珍珠的左、主、右、后、俯视图,提取待识别珍珠的形状特征、局部纹理特征和全局纹理特征,将3个特征组合在一起,作为SVM模型1的输入,如图2所示,先判断其是第1类或第2类,若是第1类,将特征作为模型2继续分类,判断其是第3类或第4类;若是第2类,将特征作为模型3继续分类,判断其是第5类或第6类;
这种基于多种特征提取的SVM分类方法,具体的实现步骤如下:
1)将珍珠图像存储于原始图像数据库,构建样本库,珍珠图像包括左、主、右、后、俯视图;
2)提取样本库中珍珠的形状特征;
先对图像进行预处理,对采集的珍珠图像进行灰度化;
对灰度化后的珍珠图像进行二值化,并进行形态学开操作、闭操作来去除图像噪点;
利用八领域搜索算法获得珍珠的轮廓坐标和长短径,计算并得到目标轮廓的形心,以便后续的极坐标变换;
傅立叶变换与傅立叶反变换对为我们提供了一种描述函数及其各次谐波方法,利用这一特性,可以对珍珠的边缘轮廓进行傅立叶变换,用傅立叶级数的系数来对珍珠的形状进行描述;本发明中首先将珍珠轮廓图映射到极坐标系中,如图3,并求半径序列r(k),{k=1,2,…,360},由于珍珠的大小不一,使得傅立叶变换得到F(h)不具有可比性;因此,接着需要将其归一化半径为1的标准圆,归一化公式如公式(1)所示,
rq(k)=r(k)/rmax (1)
式中,rq(k)为归一化的半径,r(k)为半径序列,rmax为最大的半径;
归一化后的半径,珍珠无论其大小都可以进行比较,然后用公式(2)对归一化后的半径rq(k)做离散傅立叶变换,
式中,rq(k)为归一化的半径,F(h)为归一化的半径rq(k)的傅立叶变换;
由于F(h)是对称的,因此只要计算其前n/2个值即可;另一方面,实验发现珍珠的轮廓信息大都集中在前3个F(h),舍弃后续的F(h)对珍珠轮廓线信息损失很小;
进一步地,本发明提出将珍珠轮廓的长短径与傅立叶变换后得到的前3个F(h)组合,经过实验发现,这有助于提升分类的精度;
由于珍珠有左、主、右、后、俯视图,每幅视图都提取得到一组形状特征,为了消除或部分消除珍珠图像采集时摆放位置随机性带来的误差,并不丢失所有视图所包含的形状信息,本发明将珍珠所有视图的形状特征按照其F(0)的数值从小到大将5个形状特征排序并组合在一起,组合得到的形状特征即为该珍珠的形状特征;
3)提取样本库中珍珠的局部纹理特征;
对样本库中灰度化后的珍珠图像采取中值滤波去除其噪点并平滑图像;
由于采集的珍珠图像的纹理信息大部分处于图像下半部分,本发明提出选取珍珠像素矩阵下半部分的多行灰度值,从中提取纹理特征;
对这各行灰度值进行预处理,预处理包括截取各行灰度值的中间部分,以避免珍珠边缘灰度值突变带来的不良影响,并将多个连续并数值相同的灰度值用1个灰度值代替,该灰度值为这些连续且数值相同的灰度值的均值,若一行灰度值为[245,198,198,245],则替换成[245,198,245],从而保证该行灰度值存在严格的极值点,最后找出各行灰度值中所有的极大值、极小值,如图4所示;
统计相邻的极大值和极小值之间的差值,并统计这些差值在不同数值区间所出现的次数,用来代表珍珠局部纹理的主要信息;本发明中统计了灰度值的差值在[0,10),[10,20),[20,30),[30,+∞)这4个区间的数量,并用其代表珍珠的局部纹理信息;
在得到珍珠左、主、右、后、俯视图的局部纹理信息后,将各个视图下差值在不同数值区间所出现的次数进行对应相加,统计出5幅视图的上述差值在不同数值区间所出现的次数,所得到统计数据即是该珍珠的局部纹理特征;
4)提取样本库中珍珠的全局纹理特征;
根据公式(3)提取样本珍珠图像的灰度共生矩阵,灰度共生矩阵的公式定义为:
其中L为图像灰度级;θ为角度,取0°方向,则灰度共生矩阵P是计算两个灰度值在图像中水平相邻的次数,P(i,j)代表P在第i行,第j列的值,为图像中灰度值i、灰度值j水平相邻的次数。图5是个例子,假设图像I的灰度范围为1-8,图像大小为4x5,θ为0°,计算得到的灰度共生矩阵P;
获取样本图像4个纹理特征参数:对比度(Contrast)、自相关(Correlation)、能量(Energy)、同质性(Homogeneity);
它们的计算方法如下:
a.对比度(Contrast)
对比度不仅可以反映图像的清晰程度,也可以反映纹理沟纹的深浅度;若图像的对比度值较大,则图像越清晰,对应的纹理沟纹越浅;反之若图像的对比度较小,则图像越模糊,对应的纹理沟纹越深;
CON=∑i,j|i-j|2P(i,j)
b.自相关(Correlation)
自相关系数用于反映灰度共生矩阵行或列方向上元素之间的相似度,即图像中局部纹理的相关性可以直接通过自相关系数的大小来反映;若自相关系数较大,则矩阵元素值均勾相等;若自相关系数较小,则表明矩阵元素值间差异较大。
其中ui、uj、σi、σj分别是行和列上的矩阵元素统计的期望和方差值;
c.能量(Energy)
能量为灰度共生矩阵中所有元素值的平方和,能量值反映样本珍珠图像的纹理粗细度;能量值较小的图像多数区域由细纹理组成,而能量值较大的图像大多由粗纹理组成。
ENE=∑i,jP(i,j)2
d.同质性(Homogeneity)
同质性度量图像纹理局部变化的多少,其值大则说明图像纹理的不同区域间缺少变化,局部非常均匀;
使用上述提到的4个基本特征:对比度(Contrast)、自相关(Correlation)、能量(Energy)、同质性(Homogeneity),就可以提取灰度共生矩阵的特征向量,用来描述珍珠图像的全局纹理特征;
在得到珍珠左、主、右、后、俯视图的全局纹理信息后,本发明将5幅视图的4个纹理特征参数取平均值,作为珍珠的全局纹理特征;
5)利用珍珠样本图像训练多个二分类SVM模型构造SVM多分类器,利用所构造的SVM多分类器根据所述特征识别器获得的待分类珍珠特征进行等级分类;
在得到样本珍珠的形状特征、局部纹理特征、全局纹理特征后,将其组合得到能够代表珍珠特征的特征向量用以训练SVM模型;
用种类为8点差米形、8点二档冲头、8点高档米珠、8点中档米珠和8点短螺纹、8点高档颗头螺纹、8点高档面光、10点四面光的珍珠训练模型1;
用种类为8点差米形、8点高档米珠、8点中档米珠和8点二档冲头的珍珠训练模型2;
用种类为8点短螺纹、8点高档面光和8点高档颗头螺纹、10点四面光的珍珠训练模型3;
当需要对待测珍珠进行分级时,首先采集其图像,然后按照所述步骤提取其形状特征、局部纹理特征、全局纹理特征组合成珍珠的特征向量,作为模型1的输入,SVM模型会输出其属于第1类的概率P1和属于第2类的概率P2,如图1、图2,若P1大于P2,则珍珠为第1类;反之,若P1小于P2;同理,珍珠由SVM模型2、3进行分类时同样遵循该规则。