基于机器视觉的物品识别分类与瑕疵检测方法与流程

文档序号:15638736发布日期:2018-10-12 21:48阅读:722来源:国知局

本发明属于机器视觉检测领域,具体涉及一种基于机器视觉的物品识别分类与瑕疵检测方法。



背景技术:

近年来,随着技术的发展,产品的自动化生产是现代生产发展的主要趋势之一,自动化生产对加速社会生产力发展,改进企业生产技术,减轻工人劳动力具有重要意义。

在高端消费和产能快速增长的需求下,企业想提高竞争力,产品的检测变得越来越重要。产品表面瑕疵可分为很多种,例如:褶皱、划痕、污点等。所以,机器视觉的瑕疵检测也是必不可少的。

传统的人工视觉检测不仅效率低下,准确率大打折扣,检测工作还单调乏味。而且,工业生产量大,工作时间长,工人们容易视觉疲劳,使得检测容易出现误检、漏检等情况。而且,人工检测的判别标准不是量化过的,产品的质量不能得到保证。所以,基于机器视觉的瑕疵检测系统应运而生。

近年来,在机器视觉领域中,有很多用于瑕疵检测的算法,但更多的是应用在具体物品(如布匹、毛毯、地砖等)的表面瑕疵检测上,缺少通用性。例如,于2017年6月20日公开的、公开号为cn106872487a的中国专利申请披露了“一种基于视觉表面的瑕疵检测方法及装置”,其检测方法虽然运用了支持向量机(svm)这一技术手段,但目的是对布匹表面的复杂纹理瑕疵进行分类,从而能检测具有不同纹理的布匹的表面瑕疵,可应用于多种布匹的表面瑕疵检测;但是该文献的检测对象依然局限于布匹的表面瑕疵检测,不能用于物品的分类识别,也无法适用于不同种类物品的瑕疵检测上,通用性不强。



技术实现要素:

为了解决现有基于机器视觉的瑕疵检测技术所存在的问题,本发明提出基于机器视觉的物品识别分类与瑕疵检测方法,对工业相机采集到的产品图像进行识别分类并进行相应的图像处理,该算法能检测不同种类物品的表面瑕疵,并且能识别该物品的种类,处理速度快,识别准确率高,在工业生产上具有较高的通用性。

本发明采用如下技术方案来实现:基于机器视觉的物品识别分类与瑕疵检测方法,包括以下步骤:

基于支持向量机的物品种类识别分类过程;所述物品种类识别分类过程包括模型训练过程以及加载模型实现分类过程;

基于机器视觉瑕疵检测算法的瑕疵检测过程;所述基于机器视觉瑕疵检测算法包括图形矫正过程以及计算图形的hu不变矩进行相似度大小比较;根据检测结果判断图片是否存在瑕疵。

优选地,所述模型训练过程如下:首先获取提前从图片数据库下载的训练图片,获取训练数据;然后配置svm分类器参数,对模型进行训练;最后保存训练好的模型。

优选地,所述下载的训练图片为正负样本数据;所述svm分类器为线性可分情况下的线性分类器,通过一个决策边界将正负样本数据分开,当正负样本数据与决策边界的距离最大时,是最好的分类选择,找到最大分类间隔。

优选地,所配置的svm分类器参数包括svm-yypr类型,通过设置惩罚因子c的大小进行优化,以对不同物体分类。

优选地,所述加载模型实现分类过程如下:通过加载模型后,提取由工业相机采集到的图片的特征,识别、获取在模型训练时写入的标签,得到识别结果。

优选地,所述图形矫正过程包括:

(1)先存储一张标准模板图片在后台中;

(2)当工业相机采集到待检测产品的图片时,基于opencv图像处理函数库对图片进行预处理,寻找图片轮廓并储存在迭代器中;

(3)根据步骤(2)得到的图片轮廓后,在循环中得到顶点坐标;

(4)进一步筛选轮廓的面积,获得一个合适大小的轮廓图形,若轮廓面积太小,则进行下次循环操作;

(5)根据筛选到的合适面积的轮廓,进一步获取顶点坐标与水平线的角度;

(6)获取轮廓的中心点,计算旋转加缩放的变换矩阵;

(7)根据步骤(6)获取到的变换矩阵,对图片进行仿射变换。

步骤(6)中,原图像的像素坐标经过三次坐标变换:首先,将坐标原点由图像的左上角变换到旋转中心;然后,以旋转中心为原点,图像旋转角度a;旋转结束后,将坐标原点变换到旋转后图像的左上角;

步骤(7)仿射变换过程中,对图像的旋转分为两步:先根据旋转角度和旋转中心获取旋转矩阵;然后根据旋转矩阵进行仿射变换,即可实现任意角度和任意中心的旋转效果;保存放射变换后的图片,图形矫正完成。

从以上本发明的技术方案可知,通过提取目标图片的特征,获取其在训练时设置的标签,对图片进行分类,调用图形矫正算法对图片进行校正。图形矫正算法中,对图像进行灰度化、二值化,获取图像轮廓后,即可获取图形的顶点坐标,通过得到的顶点坐标可以获取顶点与水平线的角度;然后筛选轮廓,进行旋转,计算旋转加缩放的变换矩阵,根据旋转矩阵进行仿射变换,以获取矫正后的图像。与现有技术相比,本发明具有如下有益效果:

1、本发明通过采用支持向量机的方法对物品进行识别分类,并且对采集到的图片通过图形矫正等图形处理算法进而比较目标图片和模板的hu不变矩,其检测通用性高,检测准确率更高,检测速率更快。根据预先设定的标准阈值进行瑕疵检测,其检测精度更高。

2、由于检测算法采用了支持向量机的方法,对不同种类的物品进行识别分类,达到检测算法对物品种类、形状、颜色等不限制的目的。能检测的瑕疵种类不限制,例如褶皱,划痕,污点等均可以检验出来。

附图说明

图1是本发明基于机器视觉的物品识别分类与瑕疵检测方法流程图;

图2是基于支持向量机识别分类流程图;

图3是图形矫正流程图;

图4是图形矫正前的示意图;

图5是图形矫正后的示意图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例

如图1-5所示,本发明基于机器视觉的物品识别分类与瑕疵检测方法,大致可分为物品种类识别分类和瑕疵检测两个步骤。

一、物品种类识别分类过程基于支持向量机,包括模型训练过程以及加载模型实现分类过程;通过事先准备好的正负样本获取训练数据,配置svm训练器参数后进行训练,保存训练好的模型;打开训练好的模型后,对被检测图片进行特征提取,通过训练时获得的数据进行比对,提取相匹配的标签,输出此标签的种类,进而进行分类。

1、模型训练过程

首先获取提前从图片数据库下载的训练图片,所下载的训练图片做为正负样本数据,获取训练数据;然后配置svm训练器(也叫svm分类器)参数,对模型进行训练;最后保存训练好的模型。其中,svm分类器可分为:

(1)线性可分情况下的线性分类器,其核心思想就是最大的分类间隔。

(2)线性不可分情况下的线性分类器,引入软间隔的概念。

(3)线性不可分情况下的非线性分类器,是svm与核函数的结合。

其中,配置的参数有:

svm-yypr类型:supportvectorclassify做二分类的,找出分类面,解决分类问题,允许用异常值惩罚因子c进行不完全分类,通过设置惩罚因子c的大小进行优化,达到对不同物体分类的目的。

kernel_type:cvsvm::linear,没有任何向映像至高维空间,线性区分在原始特征空间中被完成,这是最快的选择。由于项目在流水线完成,识别速率也是一个必不可少的考虑因素。为了提高识别速率,本实施例采用了线性核类型,即所采用的svm分类器为线性可分情况下的线性分类器。其核心思想是:最大分类间隔;通过一个决策边界将正负样本数据分开,当正负样本数据与决策边界的距离最大时,是最好的分类选择,找到最大分类间隔。

2、加载模型实现分类过程

通过加载模型后,提取由工业相机采集到的图片的特征,识别、获取在模型训练时写入的标签,得到识别结果。

二、瑕疵检测过程,基于机器视觉的瑕疵检测算法,该算法大致可分为图形矫正过程以及计算图形的hu不变矩进行相似度大小比较,根据检测结果判断图片是否存在瑕疵。具体实施如下:

1.图形矫正过程

(1)先存储一张标准模板图片在后台中。

(2)图像预处理。当工业相机采集到待检测产品的图片时,基于opencv图像处理函数库对图片进行预处理。预处理过程包括灰度化、二值化处理,将感兴趣目标和背景分离,可简化后期的处理,提高处理的速度;寻找图片轮廓并储存在迭代器中,方便后续图形矫正的操作。

(3)根据步骤(2)得到的图片轮廓后,在循环中得到顶点坐标。

(4)进一步筛选轮廓的面积,获得一个合适大小的轮廓图形,若轮廓面积太小,则进行下次循环操作。

(5)根据筛选到的合适面积的轮廓,进一步获取顶点坐标与水平线的角度。

(6)获取轮廓的中心点,计算旋转加缩放的变换矩阵。

原图像的像素坐标要经过三次坐标变换:首先,将坐标原点由图像的左上角变换到旋转中心;然后,以旋转中心为原点,图像旋转角度a;旋转结束后,将坐标原点变换到旋转后图像的左上角。

图像的缩放主要用于改变图像的大小,缩放后图像的宽度和高度会发生变化。要保持图像宽度和高度的比例不发生变化,就需要水平缩放系数和垂直缩放系数相等。

设水平缩放系数为sx,垂直缩放系数为sy,(,y0)为缩放前坐标,(x,y)为缩放后坐标。

向后映射关系:

x0=x/sx;

y0=y/sy;

在图像缩放的时首先需要计算缩放后图像的大小,设newwidth,newheight为缩放后的图像的宽和高,width,height为原图像的宽度和高度。有:

newwidth=sxxwidth;

newheight=syxheight;

然后遍历缩放后的图像,根据向后映射关系计算出缩放的像素在原图像中像素的位置。

根据上面公式可知,缩放后图像的宽和高用原图像宽和高和缩放因子相乘即可。

introws=static_cast<int>(src.rows*xratio+0.5);intcols=

static_cast<int>(src.cols*yratio+0.5);

图像的旋转就是让图像按照某一点旋转指定的角度。在旋转的过程一般使用旋转中心为坐标原点的笛卡尔坐标系,所以图像旋转的第一步就是坐标系的变换。设旋转中心为(x0,y0),(x’,y’)是旋转后的坐标,(x,y)是旋转后的坐标。则坐标系坐标变换如下:

x’=x-x0;

y’=-y+y0;

接下来就要对图像的坐标进行变换。

x1=rcosb-a=rcosbcosa+rsinbsina=x0cosa+y0sina;

y1=rsinb-a=rsinbcosa-rcosbsina=-x0sina+y0cosa;

可以得到下面的旋转公式:(x’,y’)旋转后的坐标,(x,y)原坐标,(x0,y0)旋转中心,a旋转的角度(顺时针)。

向后映射公式

(7)根据步骤(6)获取到的变换矩阵,对图片进行仿射变换。

仿射变换过程中,对图像的旋转具体实现分为两步:先根据旋转角度和旋转中心获取旋转矩阵;然后根据旋转矩阵进行仿射变换,即可实现任意角度和任意中心的旋转效果。保存放射变换后的图片,至此,图形矫正完成。图像矫正是为了使检测效率更高,检测准确率更高。

2.计算图形的hu不变矩进行相似度大小比较

(1)对图形矫正获取到的图片进行预处理,包括灰度化处理、二值化处理,将感兴趣目标和背景分离,可简化后期的处理,提高处理的速度;还包括边缘化处理,采用canny算法进行边缘化处理,这个步骤包含四部分:消除噪声,计算梯度幅值和方向,非极大值抑制,滞后阈值;然后寻找图片轮廓,用多个顶点表达轮廓并用freeman链码记录起点,以及从起点出发的连续位移;接着,使用递归的方式,以树形结构遍历所有的轮廓保存到一个数组中,基本原理为无限逼近cannay算子提取的边缘。

(2)基于opencv图像处理函数库,比较待检测产品图片与模板图片的hu不变矩。矩是描述图像特征的算子,几何不变矩可以快速排除与模板图片不匹配的待检测产品图片,提高搜索效率。由上述步骤(1)得到的边缘信息作为输入,将待检测产品图片与模板图片进行匹配,其匹配的准确率会更高一些。

此时,引入opencv函数库中cvmatchshape函数,其输入方法中,总共有三种匹配方法:

其中,上式中hia是物体a的hu矩,hib物体b的hu矩。

cvmatchshape函数返回值与先前设定好的标准阈值比较,显示检测结果,基于机器视觉的瑕疵检测结束。hu不变矩具有平移、伸缩、旋转不变形等特点。由hu矩组成的特征量对图片进行识别,优点就是速度快,为了提高产品的检测速率,比较hu不变矩最适合不过了。

本发明检测算法采用支持向量机的方法,通过大量的样本图片训练分类器,提取目标图片的特征,识别物品的种类,提高了算法的通用性。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

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