任娟娟,冯中强
(1.陕西工业职业技术学院 商贸与流通学院,陕西 咸阳 712000;2.西安工程大学 机电工程学院,陕西 西安 710048)
在工业生产过程中,物料分拣是不可缺少的环节,但人工完成的生产线已经无法满足长时间作业的要求。工业机器人能够代替人工进行分拣,但依然存在因物料识别不准确导致的机械臂抓取目标失败等问题。目前,基于机器视觉的图像处理算法逐渐成熟,国内外相关学者开始引入机器视觉技术进行物料的识别和定位,从而实现不同物料的分拣工作[1-5]。文献[6]采用了一种多目标分块处理算法,通过局部特征匹配确定工件种类,在工件的分类码垛上有着较好的效果。文献[7] 基于蚁群算法,建立评价模型, 利用蚁群算法的正反馈及强鲁棒性,提高拣货效率,缩短拣货时间。文献[8]采用机器视觉图像处理算法,通过抓取投篮一体化结构设计,使物料抵达投射区、瞄准目标区,再通过圆杆推动物料实现发射,该机器人在复杂环境下能快速完成分拣任务。文献[9]基于并联机器人设计了一种分拣控制系统,根据PID算法设计位置跟踪控制器,从而提高抓取精度,判断出物体的位置,并根据已经判断出来的物体位置实时控制调整并联机器人,完成目标物体的动态抓取。文献[10]为了使分拣的准确性和稳定性得到提升,运用形状内容分析方法对物料的分类识别进行强化,取得了一定的效果。文献[11]在NI智能相机的视觉检测平台内置高性能处理器实现独立视觉检测,完成工件识别和分拣。上述方法效果较好,但物料分拣技术和方法仍存在移动不便、操作单一、适应性不强,无法根本实现智能分选。为此,本文提出了一种基于机器视觉的物料识别与定位方法,实验验证了此方法对物料的抓取有较高的识别率和准确率,满足物料分拣的要求。
以螺栓、螺母配件生产过程的分拣环节为研究对象,设计基于机器视觉的物料自动化识别分拣系统,系统的主要构成如图1所示。系统主要由输送单元、识别定位单元、控制单元和分拣单元构成。输送单元包括传送带、物料存放台等;识别定位单元包括光源、工业相机、PC机和图像处理软件,原始图像用工业相机来采集,然后对采集到的原始图像进行处理,从而判断出物料的类别,确定物料的位置。控制单元由PC机端向控制板发出指令,机械臂接受激励做出相应动作完成指令;分拣单元由机械臂、吸盘构成,执行指令将物料分拣出来[12-15]。图像处理与分拣目标识别的流程主要由获取图像、图像预处理、边缘检测、特征提取、识别与定位[16]等构成。本文以螺栓和螺母工件为例进行特征提取和识别定位。
图 1 系统主要构成Fig.1 Main components of the system
数字图像在采集与传输等环节容易受到干扰,造成一些无关信息分布在采集到的图像中,最终影响到图像识别的结果[17]。本文的识别方法需要提取工件的边缘信息,在进行滤波处理时,首先需要保留工件图像边缘信息,非局部均值滤波器[18-19]和双边滤波器[20-21]均可以满足此要求。双边滤波器采用的是加权平均的方法,像素的强度是使用高斯分布加权平均的周边像素亮度值来表示。另外,高斯低通滤波只考虑到位置对中心像素的影响,但是相比较而言双边滤波的权重同时考虑到像素的欧式距离和像素范围内的辐射差异,如中心像素同卷积核中像素深度距离、相似程度、色度等诸多因素[22]。在计算中心像素时同时考虑这2个因素,然后用该滤波模板与原始图像进行卷积,得到滤波后的图像。采用双边滤波器滤波后的图像不仅能滤除噪声,而且能保留图像边缘,因此本文采用由区域滤波器内核和值域滤波器内核构成的双边滤波器。其中2个滤波器内核分别表示内核窗口中各个像素点离中心点距离和内核窗口内中心点像素值同各个点像素值的相似度,中心点附近的像素点具有较大权值且灰度差值较小,经双边滤波后输出像素的值可表示为
(1)
式中:ω(i,j,k,l)为加权系数;f(k,l)为图像在点(k,l)处的像素值。其计算公式为
(2)
(3)
式中:d(i,j,k,l)为定义域核;r(i,j,k,l)为域值核;f(i,j)为图像在点(i,j)处的像素值;(k,l)为中心坐标;中心点以外的坐标为(i,j);σr为域值核高斯函数标准差;σd为域核高斯函数标准差。双边滤波权重函数是将定义域核和值域核相乘后生成的,即
(4)
由以上公式可以得出,当灰度距离达到一定程度时,高斯平滑系数的作用相对较小,可起到保护边缘的作用。
图像的边缘一般指局部不连续的图像特征,即变化最明显、差异最大的部分。目前常用的边缘检测方法有Canny算子、Prewitt算子、Sobel算子等,图2为螺栓、螺母在不同检测方法下的检测效果图。
(a) Canny算子
(b) Prewitt算子
(c) Sobel算子图 2 边缘检测效果对比图Fig.2 Comparison of edge detectioneffect
从图2可以看出,Canny边缘检测效果较好,从表面效果上看,Canny算法是对Sobel、Prewitt等算子效果的进一步细化和更加准确的定位,它采用4个最优指数项的和来近似,极大地抑制了噪声引起的伪边缘,并可把参数调节到合适的值,运用此算子也能将对比度较低的图像处理得较好,增加了处理的可操控性。综合考虑,本文选用Canny算子。二值图像的函数fs(x,y)梯度可表示为
(5)
幅值和方向角的计算为
(6)
式中:M[i,j]为反映图像的边缘强度;θ[i,j]为反映边缘的方向角。边缘的方向可以用M[i,j]局部最大值的方向角来反映。然后对梯度幅值进行非极大值抑制(non-maxima suppression),从而在各自的梯度方向上提取出梯度最大的像素,即
(7)
式中:ξ[i,j]为对梯度方向的标定,按照方向角θ[i,j]的大小平均划分,并分别标定为0、1、2、3等4个范围,再使用非极大值抑制在各个方向上判定。即,如果1个像素的梯度幅值大于方向上相邻像素的梯度幅值,那么这个像素就被标定为零。然后用双阈值算法检测和连接边缘。双阈值计算公式为
τ2=2τ1
(8)
式中:τ2为决定边缘;τ1为追踪边缘断线。梯度值大于τ2的为边缘;小于τ1的为非边缘;介于τ1和τ2之间的,则需要找出它们邻近像素是否存在大于高阈值的像素。如果有,则这些像素就是边缘像素,否则,则不是[23]。
一般情况下,轮廓特征和区域特征是形状特征的2种表示方法。图像的轮廓特征表达物体的外边界,而图像的区域特征与形状区域的关系非常密切。本文采用大津法选取阈值,根据图像的灰度特征将图像分为背景和前景2部分,部分前景和背景的错分可导致类间方差变小。因此,当错分概率最小时,类间方差的分割最大,理想的阈值就是当被分割的两组间方差最大时的阈值。当提取二值图像的边缘轮廓后,再计算每个提取到的边缘轮廓面积(S)。根据物料识别分拣过程中物料实际的大小设定S1、S2、S3、S4等4个轮廓面积阈值,若S12 物料图像识别结果
为了验证文中所采用的图像识别方法的可行性和有效性,以螺栓和螺母为研究对象,模拟真实工况,将每个工件按照任意位置和角度摆放。然后按照图像处理流程,得到处理结果,如图3所示。
图 3 图像处理结果Fig.3 Image processing results
从图3可以看出,杂乱分布的螺栓和螺母物料采用本文方法能够准确识别,螺母显示标注为0,螺栓显示标注为1,且可以将物料位置准确标出,根据标记结果可进一步确定物料位置,从而实现下一步物料的分拣工作。为了验证识别算法的准确性,设定200个样本数量,其中螺栓、螺母各100个,结果表明,螺栓、螺母物料的识别率可以达到99.35%。然后使用本方法选取其他2种物料:垫片和弹簧进行实验,与文献[6](多目标分块处理算法)进行对比,结果如图4所示。
图 4 识别率对比Fig.4 Comparison of recognition rate
从图4可以看出,本文方法在对螺栓、螺母和弹簧的识别率上高于文献[6],但垫片的识别率低于文献[6],原因可能是垫片的体积较小且存在上下叠合情况,特征抓取不够准确。
以螺栓、螺母为研究对象,提出了一种基于图像处理技术的形状特征提取与识别方法。利用图像处理方法实现图像去噪、边缘提取、识别和定位等功能。为了验证本方法的有效性,结合实际工业机器人进行实验验证。结果表明,所述方法物料识别的正确率为99.35%,分拣成功率可达到99.25%,能够满足物料分类的操作要求。但此方法在对更小更薄的物料分拣时,识别率依然不高,这将是下一步的研究重点。