基于机器视觉的金属纽扣瑕疵检测方法与流程

文档序号:17188218发布日期:2019-03-22 21:38阅读:1013来源:国知局
基于机器视觉的金属纽扣瑕疵检测方法与流程

本发明涉及一种基于elm-src的纽扣瑕疵检测方法,属于计算机视觉和机器学习领域。



背景技术:

目前,金属纽扣的生产采用的是压铸技术。它的工作原理是采用模具内腔对融化的金属施加高压。模具通常是用强度更高的合金加工而成,金属造型扣件有锌合金、铁线、铁皮、铜带冲压成型,它的外边面可能铸有阿拉伯数字、英文字母、图案、花纹、动物、人像和注册商的标识等。在生产过程中,由于模具损坏、压铸材料本身有斑点等,可能会造成纽扣成品表面出现裂纹、缺口、划痕、烂边、花纹变形等瑕疵,这种瑕疵品封装打包的过程中应该被剔除掉。

近年来,图像分类在安全系统、医疗诊断、生物信息学、人机交互以及各种其他应用中产生了很高经济价值,其目的是自动为输入图像划分特定类别,引起了人们的极大关注。因为单一模型在计算复杂性和分类准确性之间具有没法兼顾的局限性,而集成多种模型的学习方式通常可以利用各种技术的优势并以更有效的方式统一这些不同的方法,在分类问题具有很高的研究价值。

就网络模型而言,人工神经网络通过随机生成的参数,在学习速度和模型泛化性能上同时表现出良好效果。其中,elm以其快速的学习速度,实时处理能力而受欢迎,并得到了研究界的广泛认可。除了elm之外,基于稀疏表示的分类器(src)也在模式识别领域应用广泛。src算法是在受到人类视觉皮层神经元响应具有稀疏性的启发下被提出的,之后在人脸识别,图像处理,计算机视觉,导航等领域得到广泛应用。对于图像分类,src通过线性回归构建查询图像的稀疏表示,不同类别的稀疏性存在差异。尽管elm和src各自具有优异的特性,但仍在实际应用中存在缺点。elm执行速度极快,无法很好地处理噪声,而src对噪声的鲁棒性很强,但是计算复杂度高。因此,elm和src在时间效率和分类准确性上互补。



技术实现要素:

本发明的目的是:采用集成多模型的分类技术对纽扣的瑕疵进行检测。

为了达到上述目的,本发明的技术方案是提供了一种基于机器视觉的金属纽扣瑕疵检测方法,其特征在于,包括以下步骤:

步骤1、利用训练数据集对elm-src模型进行训练,包括以下步骤:

步骤101、训练数据集由nk个金属纽扣图像样本组成,nk个金属纽扣图像样本中有nk1个金属纽扣图像样本对应的金属纽扣为正品,nk2个金属纽扣图像样本对应的金属纽扣有瑕疵,将有瑕疵的金属纽扣定义为负样本,其他金属纽扣则定义为正样本,负样本与正样本有不同的标签;

步骤102、对nk个金属纽扣图像样本进行预处理,提取每个金属纽扣图像样本的样本图像特征;

步骤103、将步骤102得到的样本图像特征作为列向量构造稀疏字典a,a=[a1,a2],式中:a1为正样本字典,v1,i为属于正样本类的第i列样本图像特征;a2为负样本字典,v2,j为属于负样本类的第j列样本图像特征;根据不同的分类,稀疏字典a中每个样本图像特征都有相对应的标签;

步骤104、利用稀疏字典a及标签对elm分类算法进行训练,训练时计算每个样本图像特征输入elm分类算法后的输出值,计算条件参数tdiff,tdiff=of-os,式中:of为样本图像特征得到的elm分类算法针对正样本类或负样本类的输出最大值,os为同一样本图像特征得到的elm分类算法针对同一分类的输出次大值,若条件参数tdiff不小于阈值threshold,则结束当前样本图像特征对elm分类算法的训练,否则,进入步骤105;

步骤105、用条件参数tdiff小于阈值threshold的样本图像特征对src分类算法进行训练,得到训练后的elm-src模型;

步骤2、将实时获得的实时金属纽扣图像输入训练后的elm-src模型,判断当前的金属纽扣是否有瑕疵,包括以下步骤:

步骤201、对实时金属纽扣图像进行预处理,提取该实时金属纽扣图像的实时图像特征;

步骤202、将实时图像特征输入训练后的elm-src模型,由elm-src模型输出与当前实时图像特征相对应的分类结果,根据分类结果得到当前金属纽扣是否有瑕疵。

优选地,步骤102及步骤201中,获得所述样本图像特征及所述实时图像特征的方法相同,包括以下步骤:

对金属纽扣图像样本或实时金属纽扣图像进行灰度处理,随后采用图像拉普拉斯变换算法进行去噪,提取金属纽扣图像样本或实时金属纽扣图像的边缘纹理细节,该边缘纹理细节经过pca降维后得到金属纽扣图像样本或实时金属纽扣图像的图像特征,将图像特征转化成一维向量,最后采用max-min-scalar法把一维向量缩放到[0-1]区间,得到所述样本图像特征或所述实时图像特征。

优选地,步骤105中,对于样本图像特征vtest,所述src分类算法用稀疏表达式x0描述样本图像特征vtest和所述稀疏字典a的关系,即有:vtest=ax0,通过稀疏表达式x0判断样本图像特征vtest所对应的金属纽扣图像样本对应的分类。

优选地,步骤104中,所述elm分类算法采用5-fold交叉验证法选取正则项参数。

优选地,所述5-fold交叉验证法包括以下步骤:

先给定elm分类算法所使用的正则项的候选集合λ∈{λmin,λmax},λmin为正则项的最小值,λmax为正则项的最大值,把训练数据集划分为5份,其中4份用于elm分类算法的训练,另外一份用于验证,每一份都可以得到预测值,计算elm分类算法对每一份的预测精度的评价指标f1-score,f1-score=2*p*r/(p+r),式中:p=tp/(tp+fp),tp为预测为正且实际也为正的次数,fp为预测为正且实际为负的次数,r=tn/(tn+fn),fn为预测与负且实际为正的次数,tn为预测为负且实际也为负的次数,候选集合λ∈{λmin,λmax}中被选中的正则项λselect由下式给出:

式中,(f1-score)i为elm分类算法对5份中第i份的预测精度的评价指标。

本发明对elm和src进行级联:在第一阶段,所有查询图像都由预训练的elm网络测试。然后,采用elm输出判别标准,估计elm错误分类的高噪声样本。这里采用5-fold用于最佳正则化参数选择。在第二阶段中,针对elm过程的潜在误分类样本,利用稀疏表示来构建输入样本和字典向量的关系,从而完成二次分类,最终提高了分类准确性并降低了计算复杂度。

本发明应用于工业生产的纽扣的瑕疵检测领域,首先提出了专门针对金属纽扣采集后图像的预处理流程,包括去反光、提取边缘信息、降维等。其次在elm的二分类网络上做出了如下的改进,加上正则化项,并用5-flod交叉验证优化正则化参数。训练好elm模型后,与稀疏编码网络进行级联,实现了对高噪声纽扣的二次分类,在保证准确率的同时,降低了仅使用src网络的计算复杂度,提升了elm网络模型的鲁棒性。

附图说明

图1(a)至图1(c)为纽扣正负样本样例图,图1(a)为正样本,图1(b)为图案错误的负样本,图1(c)为表面有斑点的负样本。将采集到的图像进行裁剪后的正负样本样例图。

图2(a)及图2(b)为纽扣去反光处理对比图。得到图1(a)至图1(c)的基础上,对纽扣进行去反光处理,因为反光时造成纽扣误检测的主要原因之一,本发明采用基于图像修复的去高光算法:exemplar-based算法。在纽扣的图像中,高光区域往往是由于相机曝光和环境光照强度引起的,这些区域往往像素值很大,接近饱和状态。因此首先可以计算图像某点的rgb三通道像素值ic与某上限阈值的差,如果差值等于0,代表该点为反光点。从而可以得到高光区域,并用该算法进行去反光处理。

图3为负样本降维之后的主成分图。由于elm不像dnn或cnn有池化,dropout的降维过程,因此需要在输入之前对其进行降维,否则训练过程很容易出现过拟合现象。

图4为elm正则项参数——f1-score变化曲线图。因为正则化项会使得在纽扣的检测过程中对异常值不太敏感,具有提升网络鲁棒性的作用。

图5为elmtdiff变化曲线——不带正则项与带正则项图。其中这里的样本数是一折,即20%,对于本发明的二分类问题,有且只有这两个输出值,tdiff的值越大,说明分类的界限越清晰,误分类的概率越小。当tdiff小于某一阈值,认为该样本大概率误分类,需要送到src分类单元重新分类,可以看出,带正则化的elm网络输出的tdiff更大。

图6为elm分类f1-score与elm-src分类f1-score对比图。可以看出经过级联网络的输出准确率比仅仅使用elm网络的准确率高。

图7为专利实施流程图。

具体实施方式

下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

本发明针对纽扣制造行业的工业缺陷导致的瑕疵问题,通过elm算法和src级联的智能学习算法,自动分类瑕疵样本和正常样本。

本发明采用的技术方案的主要分两个步骤:

步骤1、利用训练数据集对elm-src模型进行训练,包括以下步骤:

步骤101、训练数据集由nk个金属纽扣图像样本组成,nk个金属纽扣图像样本中有nk1个金属纽扣图像样本对应的金属纽扣为正品,nk2个金属纽扣图像样本对应的金属纽扣有瑕疵,将有瑕疵的金属纽扣定义为负样本,其他金属纽扣则定义为正样本,负样本与正样本有不同的标签。

在本实施例中,利用工业相机采集金属纽扣图像样本,设定固定采样周期,一共采集到3200张图像,其中正样本有2000张,负样本有1200张,图像的格式为rgb,图像大小为256×256;采集完成的图像放在数据库里,供后续使用。本实施例在3200张图像选取800张组成训练数据集,即nk=800。

步骤102、对nk个金属纽扣图像样本进行预处理,提取每个金属纽扣图像样本的样本图像特征。

图像预处理包括图像灰度化,图像的拉普拉斯变换,提取纽扣图案的边缘细节,经过旋转、翻折等数据增强,pca降维,归一化等。原始的金属纽扣图像样本为rgb图像,rgb图像经过灰度处理转化成单通道图像。然后对图像增强处理,得到像素矩阵,大小为256×256,矩阵转成(1,256×256)维的向量,样本数量为800,得到特征矩阵为(800,256×256),得到数据集合d={x1,x2,...,xm},其中m为样本数,m=800,xm为第m个纽扣图像的数据。然后exemplar-based算法由外向内填充,不断缩小反光区域。它首先根据最外围不同点对应区域包含的信息确定反光点的填充顺序,信息量大小用如下公式表示:

式中,info(p)表示像素点p的信息量;m、e表示当前纽扣图像样本的反光区域及非反光区域;c(q)表示区域m与非反光区域e的交集区像素值的和;s(m)表示区域m与的面积值;表示像素点p处的梯度;np表示像素点p处的单位法向量;α是正则化因子。上式表示希望像素点p的领域尽可能包含更多的信息或者像素点p处于强边缘延伸区域,算法需要优先填充该点对应区域的反光部分。

把info(p)优先级最高的点记作它对应的局部近邻区域为mp,那么需要首先填充mp的反光区域,填充方法如下:

式中,表示以优先级最高的像素点p为中心的矩形领域;mq∈e表示它是已知非反光区域内的矩形块;d(mq,mp)表示区域块mq与区域块mp对应点像素值之差的平方和。选择距离最小的矩形块mq的像素值来填充反光部分,每次填充都会使得反光区域缩减,不断迭代上述过程,直到所有反光区域全部被填充为止。最后利用pca算法降维到d'=200,d'表示pca降维之后输入网络模型的维数。

pca算法对所有样本进行中心化:计算样本的协方差矩阵xxt,x表示样本数据矩阵,对协方差矩阵做特征值分解,取最大的d'个特征值所对应的特征向量w1,w2,...,wd',得到输出投影矩阵w*=(w1,w2,...,wd'),之后对每一维的特征归一化,归一化采用max-min缩放法:

pca算法可以解决多重共线性问题和高维空间稀疏性问题。把归一化后的特征数据与样本标签组合成新的数据集合:

步骤103、将步骤102得到的样本图像特征作为列向量构造稀疏字典a,a=[a1,a2],式中:a1为正样本字典,v1,i为属于正样本类的第i列样本图像特征;a2为负样本字典,v2,j为属于负样本类的第j列样本图像特征;根据不同的分类,稀疏字典a中每个样本图像特征都有相对应的标签。

步骤104、利用稀疏字典a及标签对elm分类算法进行训练,训练时计算每个样本图像特征输入elm分类算法后的输出值,计算条件参数tdiff,tdiff=of-os,式中:of为样本图像特征得到的elm分类算法针对正样本类或负样本类的输出最大值,os为同一样本图像特征得到的elm分类算法针对同一分类的输出次大值,若条件参数tdiff不小于阈值threshold,则结束当前样本图像特征对elm分类算法的训练,否则,进入步骤105。

对于步骤102得到的数据(这个参数在前面的任何步骤都没有出现过,在这里是第一次是出现,所以请确认给出的参数是否正确,或对前面的参数进行修改),elm算法的表达式如下:

式中,l表示隐层神经元的个数,βi为输出权重,gi(xj)表示隐藏层激活函数,wi为输入权重,bi表示偏置,oj表示模型的输出,输入权重及偏置的值随机初始化且固定,输出权重βi需要模型求解得到。elm算法需要求解如下的凸规划问题:

式中,h是隐层输出矩阵,t表示预期的输出结果,f表示范数的大小,这里我们使用2范数,β是输出权重矩阵。上述最小化问题其实是一个最小二乘问题,引入正则项λ转化为:

最后β的值由下式给出:

式中,i表示正则化项的单位矩阵。

对于新样本xnew,带入到原表达式,可以得到om,其中m为类别数,最终预测的输出值label(y):

elm分类算法采用5-fold交叉验证法选取正则项参数,5-fold交叉验证法包括以下步骤:

先给定elm分类算法所使用的正则项的候选集合λ∈{λmin,λmax},λmin为正则项的最小值,λmax为正则项的最大值,把训练数据集划分为5份,其中4份用于elm分类算法的训练,另外一份用于验证,每一份都可以得到预测值,计算elm分类算法对每一份的预测精度的评价指标f1-score,f1-score=2*p*r/(p+r),式中:p=tp/(tp+fp),tp为预测为正且实际也为正的次数,fp为预测为正且实际为负的次数,r=tn/(tn+fn),fn为预测与负且实际为正的次数,tn为预测为负且实际也为负的次数,候选集合λ∈{λmin,λmax}中被选中的正则项λselect由下式给出:

式中,(f1-score)i为elm分类算法对5份中第i份的预测精度的评价指标。

步骤105、用条件参数tdiff小于阈值threshold的样本图像特征对src分类算法进行训练,得到训练后的elm-src模型。

在elm分类算法的基础上,样本对于每个类可以得到输出oi,elm分类算法认为oi越大,则样本属于第i类的概率越大,但是实际上由于图像存在的噪声使得elm分类算法难以准确分类,我们可以定义错误分类率tdiff:

tdiff=of-os,式中:of为样本图像特征得到的elm分类算法针对正样本类或负样本类的输出最大值,os为同一样本图像特征得到的elm分类算法针对同一分类的输出次大值。tdiff的值越大,说明分类的界限越清晰,误分类的概率越小。当tdiff小于某一阈值threshold,认为该样本大概率误分类,需要送到src分类单元重新分类。

给定测试样本xtest,其对应的特征列向量为y,那么src算法可以用稀疏表达式描述y和稀疏字典a的关系:

y=ax0

x0表示稀疏系数向量,为稀疏系数向量中的元素;求解稀疏系数向量x0可以转化为如下的规划问题:

s.t.|ax-y|<ε

式中,表示稀疏表示系数,x表示一组系数,ε表示规划约束中的阈值。

也就是最小化x的l1范数。这样我们就可以通过求出的解(也就是稀疏系数),来判断y到底属于哪一类。实际中求出的解不可能会和理想的那样稀疏,所以在计算得到后,引入残差r,其计算公式如下:

式中,ri(y)为第i个类y的残差,ai是第i个类的字典向量,是第i个类的系数向量,最后分类结果是minri(y)所对应的类;

实验表明,本发明中使用的改进elm网络应用于纽扣瑕疵检测有非常好的效果、准确率高、实时性好。

步骤2、将实时获得的实时金属纽扣图像输入训练后的elm-src模型,判断当前的金属纽扣是否有瑕疵,包括以下步骤:

步骤201、对实时金属纽扣图像进行预处理,提取该实时金属纽扣图像的实时图像特征。

步骤202、将实时图像特征输入训练后的elm-src模型,由elm-src模型输出与当前实时图像特征相对应的分类结果,根据分类结果得到当前金属纽扣是否有瑕疵。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1