技术领域
[0001] 本
发明涉及一种基于视觉机器人的工件检测分拣的装置及方法,属于
机器视觉检测与分类领域。
背景技术
[0002] 工件在生产过程中,由于其生产环境,加工工艺和生产设备等影响因素会产生一些表面
缺陷,例如铸件零件在生产过程中就会造成孔洞、裂纹、气泡等表面缺陷,也可能形成工件形状误差。如果不能及时的检测加以处理,会形成加工资源浪费而造成企业的经济损失,因此要对所生产的工件进行表面缺陷检测分类,避免不合格的工件流入市场造成不必要的损失。传统的检测方式主要由人工完成检测准确率不高,车间内恶劣的环境、高速运转的自动生产线容易造成检测人员视觉疲劳,再加上工件表面如油污、反光等各种情况,使原本细小的缺陷更加容易造成误检或漏检的情况。而工件表面缺陷容易被摄像头所检测,故使用机器视觉检测系统来代替传统的人工检测工件表面缺陷具有无损、高效、低成本的特点。
[0003] 鉴于工件的表面缺陷种类比较多,大多缺陷比较细小,且在二维图像中缺陷图像
分辨率比较低,又会受油污、灰尘等干扰的状况。将传统
图像分割方法和
深度学习检测分类相结合,对工件表面缺陷进行检测分类,判断后对工件进行搬运分拣。
发明内容
[0004] 本发明需要解决的技术问题是针对上述
现有技术的不足,而提供一种基于视觉机器人的工件检测分拣的装置及方法。
[0005] 为解决上述技术问题,本发明采用的技术方案是:
[0006] 一种基于视觉机器人的工件检测分拣的装置,包括传输装置和机器人,机器人位于传输装置侧部;所述传输装置包括辊道,辊道上安装有光电
传感器和
挡板,辊道上设有
支架,该支架上设置有
光源和第一摄像机,辊道上为视觉
检测区域,第一摄像机拍摄于视觉检测区域;所述机器人包括六
自由度的
机械臂,机械臂末端为第二摄像机以及用于抓取的执行器;传输装置连接电脑,电脑对
数据处理后控制传输装置和机器人。
[0007] 一种基于视觉机器人的工件检测分拣的方法,包括以下步骤:
[0008] 步骤一:通过辊道将工件输送至视觉检测区域,当
光电传感器感测到有物体时,挡板升起使工件停止在视觉检测区域;
[0009] 步骤二:通过第一摄像机对视觉检测区域进行拍摄采集图像,对图像进行归一化预处理,进行图像增强并修正光照影响I;
[0010] 步骤三:基于Haar-like特征提取建立基于图像灰度变化的分类器,并使用AdaBoost
算法将分类器提升为强分类器,在对强分类器进行联合形成准确率更高的级联分类器,提取ROI子图像;
[0011] 步骤四:利用级联分类器对单一工件进行截取,缩小缺陷检测
位置范围后,可以利用缺陷位置的特征来找到单一工件进的表面缺陷,利用人类视觉的选择性注意机制的中央-周边差计算方法,以视觉显著度为尺度,从目标图像中检测出微小缺陷及其区域;
[0012] 步骤五:基于
水平集对缺陷图像进行一些处理,生成满足缺陷检测要求的
训练数据集;
[0013] 步骤六:引入
卷积神经网络(CNN)作为训练模型,在传统神经网络中加入卷积层以及
池化层,引入了局部视觉和权值共享的概念减少了神经网络需要训练的特征参数个数,对缺陷图像进行识别分类;
[0014] 步骤七:将检测结果对照缺陷检测标准,如果是不合格品,电脑向机器人发送信息,由执行器配合第二摄像机
跟踪目标,抓取不合格品搬运至废品箱;如果是合格品,铸件则由辊道传送至工件加工区。
[0015] 作为更进一步的优选方案,所述步骤三中,Haar-like特征计算如下:
[0016] (1)S(x,y)表示行方向
像素灰度值的累加和,初始值为S(x,-1)=0,ii(-1,y)=0;ii(x,y)表示Haar-like特征值的积分图, i(x,y)表示像素(x,y)的
灰度值;
[0017] (2)递归计算行方向像素灰度值的累加和S(x,y),然后再在每一列上计算ii(x,y);
[0018] S(x,y)=S(x,y-1)+i(x,y)
[0019] ii(x,y)=ii(x-1,y)+s(x,y)
[0020] (3)基于积分图,计算方框像素和;
[0021] (4)基于上述的Haar-like特征建立基于图像灰度变化的分类器,其定义如下:
[0022]
[0023] 其中,fj(x)是在窗口x下,提取到的若干特征值,pj是控制遍历方向的参数,θj为判断窗口是否为所要检测物体的
阈值。
[0024] 作为更进一步的优选方案,所述步骤三中,AdaBoost算法如下:
[0025] 假设训练样本图像为(x1,y1),...,(xn,yn)(yi=0或1),0表示负样本,1表示正样本。初始权重 m为负样本个数,l为正样本个数。①归一化权重
[0026] ②对于每一个特征的训练弱分类器hj使用一种特征训练。该特征的误差为εj=∑iωi|hj(xi)-yi|,j表示特征索引,i表示任意窗口;
[0027] ③选择拥有最低误差的那个分类器记为ht;
[0028] ④更新权重 (βt为权重系数,如果分类正确ei=1,否则为0);
[0029] ⑤循环
迭代,直到达到训练次数,跳出循环,
[0030] 则形成的强分类器为:
[0031]
[0032] 作为更进一步的优选方案,所述步骤六中,网络模型的训练步骤如下:
[0033] a.对输入图像进行归一化处理,统一变为64×64的二值图像;
[0034] b.对原二值图像进行第一次卷积操作,卷积核为3×3的矩阵,共使用16个随机的卷积核函数形成16个特征图像,原图为二值图像其通道数为1,可以看成从一个固有平面
抽取16个平面图,由于在边界进行卷积计算时会进行补零操作,故所有特征图像和原图像大小相同;
[0035] c.对在第一次卷积层得到的特征图像进行第二次卷积计算,形成了第二个卷积层,卷积层的主要作用是将第一卷积层得到的16个特征图像进行第二次抽取得到了32个特征图像,进一步加强CNN的准确性;
[0036] d.由于卷积层得到的特征图像太多,故在每次卷积计算后通过池化
层压缩得到的特征图像,池化层使用2×2的最大池化,相当于将图像压缩为原来的1/2,再经过两次池化层后图像的大小变为16×16的特征图;
[0037] e.经历两次池化操作后共得到32张16×16的特征图,现在将得到的三维特征图平摊为二维图,再接入全连接层计算,共有三个层
隐藏层,第一层共有1024个神经元,第二层有215个神经元,第三层有20个神经元,通过对最后输出的10个输出进行平均得到最后的结果。由于是全连接层需要对最后的结果和样本字典中的结果进行比较得到误差进行误差反向传递,CNN模型使用ReLU函数作为每个卷积层的激活函数,使用交叉熵代价函数得到误差值。
[0038] 与现有技术相比,本发明的一种基于视觉机器人的工件检测分拣的装置及方法,采用Haar-like特征建立基于灰度变化的弱分类器,使用AdaBoost算法形成一个
精度较高的强分类器,再将强分类器级联,在图像中提取出含有目标对象的感兴趣区域(ROI),得到较好的检测准确率和实时效果;通过中央-周边差计算方法在目标对象中获得缺陷图像,使用水平集方法获取缺陷ROI。引入卷积神经网络(CNN)作为训练模型,在传统神经网络中加入卷积层和池化层,引入局部视觉和权值共享的概念减少神经网络需要训练的特征参数个数,从而提高了缺陷分类的准确率。
附图说明
[0039] 图1是传输装置结构示意图;
[0040] 图2是机器人结构示意图;
具体实施方式
[0042] 下面结合附图详细说明本发明的优选技术方案。
[0043] 本发明的一种基于视觉机器人的工件检测分拣的装置及方法,主要解决在工件后处理过程中,视觉机器人在分拣搬运工件之前,对工件表面缺陷的准确检测与分类,然后判定工件是否合格,并将不合格品搬运至废品箱。
[0044] 检测分拣系统视觉实验平台主要有光源、摄像头、
图像采集卡、机器人2等组成。视觉检测区域上方装有第一摄像机15,机器人2末端的执行器24上安装有第二摄像机23。
[0045] 第一摄像机15完成对铸件拍摄并进行缺陷检测与分类;第二摄像机23完成对图像拍摄,经过
图像处理得到目标对象的
位姿信息和相关数据信息来进行识别和
定位,再通过基于视觉的伺服控制系统,实现对目标对象的正确抓取。
[0046] 下面结合附图,对本发明的技术方案做进一步具体说明。
[0047] 工件经过前道工序后,通过辊道输送进入视觉检测区域,并通过传感器和挡板使工件停止在检测区域固定位置。视觉检测区域上方和机器人
末端执行器上各安装有高清CCD摄像头。
[0048] 通过检测区域上方高清摄像头CCD1采集图片,将传统图像分割方法和深度学习检测分类相结合,对铸件表面缺陷进行检测和分类,检测分类具体方法如下。
[0049] 针对CCD1采集的图像,首先对图像进行归一化预处理,进行图像增强并修正光照影响。
[0050] 基于Haar-like特征提取建立基于图像灰度变化的分类器,并使用AdaBoost算法将分类器提升为强分类器,在对强分类器进行联合形成准确率更高的级联分类器,提取ROI子图像。
[0051] 利用级联分类器对
刹车盘零件进行截取,缩小缺陷检测位置范围后,可以利用缺陷位置的特征来找到刹车盘零件的表面缺陷;借鉴人类视觉的选择性注意机制的中央-周边差计算方法,以视觉显著度为尺度,从目标图像中检测出微小缺陷及其区域;
[0052] 人类视觉的选择性注意机制可以迅速将注意
力集中在面对复杂场景中的一些显著目标上,从而优先考虑这些目标。视觉注意机制的模型是对图像进行多通道和多尺度滤波,从原始图像中提取初始视觉特征,然后对每个特征图像进行高斯滤波和下
采样,在各特征上形成不同
尺度图像,即形成对应特征的高斯金字塔图像。然后,利用中央-周边差操作计算不同层的特征差异图,归一化各特征差异图得到其显著图,再将各特征显著图融合形成总显著图,在显著图内出现的目标就是显著目标。在此,我们借鉴其中的中央-周边差计算,以视觉显著度为尺度,从目标图像中检测出微小缺陷及其区域。
[0053] 基于水平集对缺陷图像进行一些处理,生成满足缺陷检测要求的训练数据集,对足够多的带缺陷的铸件为例,按照前述方法进行处理,基于水平集提取出的缺陷二值图像,经过旋转、
亮度变化等处理增加样本量,作为训练集和测试集。数据集中共包含3类缺陷,分别为油斑、孔洞和裂纹,每幅图像经过归一化处理大小为64×64,训练集大小为3600幅图像,每类1200幅,测试集每类100幅图,共300幅。
[0054] 具体的说,视觉机器人的工件检测分拣的方法如下:
[0055] 步骤一:通过辊道11将工件输送至视觉检测区域,当光电传感器12感测到有物体时,挡板13升起使工件停止在视觉检测区域;
[0056] 步骤二:通过第一摄像机15对视觉检测区域进行拍摄采集图像,对图像进行归一化预处理,进行图像增强并修正光照影响;
[0057] 步骤三:基于Haar-like特征提取建立基于图像灰度变化的分类器,并使用AdaBoost算法将分类器提升为强分类器,在对强分类器进行联合形成准确率更高的级联分类器,提取ROI子图像;
[0058] Haar-like特征计算如下:
[0059] (1)S(x,y)表示行方向像素灰度值的累加和,初始值为S(x,-1)=0,ii(-1,y)=0;ii(x,y)表示Haar-like特征值的积分图, i(x,y)表示像素(x,y)的
灰度值;
[0060] (2)递归计算行方向像素灰度值的累加和S(x,y),然后再在每一列上计算ii(x,y);
[0061] S(x,y)=S(x,y-1)+i(x,y)
[0062] ii(x,y)=ii(x-1,y)+s(x,y)
[0063] (3)基于积分图,计算方框像素和;
[0064] (4)基于上述的Haar-like特征建立基于图像灰度变化的分类器,其定义如下:
[0065]
[0066] 其中,fj(x)是在窗口x下,提取到的若干特征值,pj是控制遍历方向的参数,θj为判断窗口是否为所要检测物体的阈值;
[0067] AdaBoost算法如下:
[0068] 假设训练样本图像为(x1,y1),...,(xn,yn)(yi=0或1),0表示负样本,1表示正样本。初始权重 m为负样本个数,l为正样本个数。①归一化权重
[0069] ②对于每一个特征的训练弱分类器hj使用一种特征训练。该特征的误差为εj=∑iωi|hj(xi)-yi|,j表示特征索引,i表示任意窗口;
[0070] ③选择拥有最低误差的那个分类器记为ht;
[0071] ④更新权重 (βt为权重系数,如果分类正确ei=1,否则为0);
[0072] ⑤循环迭代,直到达到训练次数,跳出循环,
[0073] 则形成的强分类器为:
[0074]
[0075] 步骤四:利用级联分类器对单一工件进行截取,缩小缺陷检测位置范围后,可以利用缺陷位置的特征来找到单一工件进的表面缺陷,利用人类视觉的选择性注意机制的中央-周边差计算方法,以视觉显著度为尺度,从目标图像中检测出微小缺陷及其区域;
[0076] 步骤五:基于水平集对缺陷图像进行一些处理,生成满足缺陷检测要求的训练数据集;
[0077] 步骤六:引入卷积神经网络(CNN)作为训练模型,在传统神经网络中加入卷积层以及池化层,引入了局部视觉和权值共享的概念减少了神经网络需要训练的特征参数个数,对缺陷图像进行识别分类;
[0078] 步骤七:将检测结果对照缺陷检测标准,如果是不合格品,电脑向机器人2发送信息,由执行器24配合第二摄像机23跟踪目标,抓取不合格品搬运至废品箱;如果是合格品,铸件则由辊道11传送至工件加工区
[0079] 引入卷积神经网络(CNN)作为训练模型,在传统神经网络中加入卷积层以及池化层,引入了局部视觉和权值共享的概念减少了神经网络需要训练的特征参数个数,对缺陷图像进行识别分类。
[0080] 网络模型的训练步骤如下:
[0081] a.对输入图像进行归一化处理,统一变为64×64的二值图像;
[0082] b.对原二值图像进行第一次卷积操作,卷积核为3×3的矩阵,共使用16个随机的卷积核函数形成16个特征图像,原图为二值图像其通道数为1,可以看成从一个固有平面抽取16个平面图,由于在边界进行卷积计算时会进行补零操作,故所有特征图像和原图像大小相同;
[0083] c.对在第一次卷积层得到的特征图像进行第二次卷积计算,形成了第二个卷积层,卷积层的主要作用是将第一卷积层得到的16个特征图像进行第二次抽取得到了32个特征图像,进一步加强CNN的准确性;
[0084] d.由于卷积层得到的特征图像太多,故在每次卷积计算后通过池化层压缩得到的特征图像,池化层使用2×2的最大池化,相当于将图像压缩为原来的1/2,再经过两次池化层后图像的大小变为16×16的特征图;
[0085] e.经历两次池化操作后共得到32张16×16的特征图,现在将得到的三维特征图平摊为二维图,再接入全连接层计算,共有三个层隐藏层,第一层共有1024个神经元,第二层有215个神经元,第三层有20个神经元,通过对最后输出的10个输出进行平均得到最后的结果。由于是全连接层需要对最后的结果和样本字典中的结果进行比较得到误差进行误差反向传递,CNN模型使用ReLU函数作为每个卷积层的激活函数,使用交叉熵代价函数得到误差值。
[0086] 最后将检测结果对照缺陷检测标准,如果是不合格品,向机械手发送信息,由带有视觉机械手基于视觉伺服控制,自动引导机械手跟踪目标,抓取不合格品搬运至废品箱;如果是合格品,铸件则由辊道传送至工件加工区。
[0087] 以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何
修改、等同替换、改进等,均应包含在本发明的保护范围之内。