基于图像处理的工件毛刺检测方法与流程

文档序号:16540563发布日期:2019-01-08 20:20阅读:1196来源:国知局
基于图像处理的工件毛刺检测方法与流程

本发明涉及一种检测技术,特别涉及一种基于图像处理的工件毛刺检测方法。



背景技术:

而随着机械加工技术的发展,机械加工中的毛刺问题已经成为了制约机械发展的问题。目前已经提出了很多毛刺检测方法,但检测效率和工业化程度都不尽人意,已经不能满足现代化的生产需求。因此研究一种快速、高效、自动化程度高的检测方法具有重要意义。

目前毛刺检测的方法中,既有以人工判断为主的挂丝法、放大法等,也有以传感器、光学显微镜为主的精确测量方法。但两类方法都无法实现生产线上大规模的检测。在传感器、光学显微镜为主的精确测量方法中主要有基于电容传感器的毛刺检测和基于光学坐标测量机的毛刺检测,前者采用了extrudehone公司的midas电容探针。后者使用光学坐标测量机demeet220测量毛刺的长度。这两种方法精度都可达很高级别,根据测量数据可检测毛刺的形状、高度等相关参数,适用于精度要求较高产品的测量。但测量速度较慢,尤其对大型的工件,需要消耗大量时间测量。因此工业上亟需能够在检测速度和检测精度上都能够达到较好效果的检测方法。



技术实现要素:

本发明是针对传统毛刺检测存在的问题,提出了一种基于图像处理的工件毛刺检测方法,以机器视觉技术为基础使用了基于融合的区域生长法检测变化缓慢的区域,生成了封闭的毛刺边缘。最终通过最小外接矩形获取参考线。对比轮廓的长度,轮廓与参考线的角度差、平均距离、方差等位置关系,判别边缘线是否为毛刺。因此利用机器视觉技术进而获得工件毛刺信息,是一种具有巨大潜力和发展前景的一种毛刺检测技术。

本发明的技术方案为:一种基于图像处理的工件毛刺检测方法,具体包括如下步骤:

采用led发光半导体作为光源垂直照射在工件表面,利用ccd相机作为图像探测设备对工件边缘进行连续拍摄,最后用计算机采集相机拍摄的图像,然后对采集到的图像进行滤波、分割处理后,检测图像的边缘,并且对边缘进行融合后进行区域生长法处理,当生长的灰度值达到设定标准后就不需要扩展,表示边缘形成,生成了封闭的毛刺边缘;之后再通过确定主轴来去除伪毛刺,并最后提取出毛刺边缘。

所述采集到的图像进行图像分割之后,在检测图像的边缘之前,通过顶帽变换来进行图像增强,wth为白顶帽,bth为黑顶帽,数学定义为:

bth(i,j)=f·b(i,j)-f(i,j)(3)

fen=f+fwth-fbth(4)

其中,(i,j)为像素点,符号。表示开运算,符号·表示闭运算,b为结构元,f为图像分割后的原始图像,fen为增强后的图像,fwth表示提取的亮灰度区域,fbth表示提取的暗灰度区域。

所述生成封闭的毛刺边缘具体步骤如下:

1)在顶帽变换之后对图像进行边缘检测,边缘检测采用canny算子,将高斯函数的一阶导数作为canny算子的边缘检测器,二维高斯函数为

其中,σ为高斯函数的分布参数,σ的大小可控制图像的平滑度;最优阶跃边缘检测算子是以卷积为基础的,边缘强度为而边缘方向为

根据高斯函数的可分性,将的两个滤波卷积模板分解为两个一维的行列滤波器:

其中

h1(i)=ih2(i),h1(j)=ih2(j),k为常数;

然后把这两个模板分别与f(i,j)进行卷积,得到

其中,a(i,j)表示了边缘强度,a(i,j)为垂直于边缘的方向;

2)由于canny算子不能在灰度缓慢变化的区域检测出边缘,所以canny算子提取的曲线不是闭合的,为了在灰度缓慢变化的区域形成边缘,采用等高线方法,将灰度比作地理上的海拔,以此产生封闭边缘;

将canny算子检测出来的边缘作为基础边缘,在基础边缘的端点的5*5的范围内,计算灰度等高线值:

其中,di为等高线灰度值,nij为模板对应的系数,i(i,j)为毛刺区域图像对应像素点的灰度值;

3)得到通过基础边缘获取的灰度等高线后,根据灰度等高线将基础边缘进行融合:一条灰度等高线,起始于一条边缘的一端,终止于另一条边缘线的一端或图像的边缘;在区域扩展时,如果遇到基础边缘,则停止区域扩展;当一个区域和其他区域相交时,这两个区域就融合成了一个区域,停止扩展;当区域扩展的灰度值达到了灰度等高线值的时候,意味着边缘已经形成了。

所述伪毛刺去除:在得到封闭的毛刺边缘后,根据寻找主轴法得到毛刺边缘的最小外接矩形,取外接矩形一条长边作为参考线,再通过分裂多边形拟合算法方法获得工件的轮廓并将拟合多边形的端点作为目标轮廓的分割点,即可得到对目标轮廓的分割曲线,再去除工件边缘伪毛刺之后得到毛刺。

所述通过分裂多边形拟合算法方法获得工件的轮廓并将拟合多边形的端点作为目标轮廓的分割点,即可得到对目标轮廓的分割曲线的具体步骤:

a1:设定阈值t,t为分割轮廓的标准;

a2:在目标轮廓上选取两个点,即区域生长后得到的闭合曲线,选择距离最远的两个点,分别设为a和b;

a3:计算曲线上所有点分别到ab线段的垂直距离,找出垂直距离最大的点,记为点c,记最大距离为h;

a4:比较h和阈值t,如果h小于t,则算法结束;若h大于t,运行下一步;

a5:c点将曲线分成了ac和bc两条曲线,分别对分成的ac和bc两条曲线上的所有点进行到ac和bc垂直距离计算,算出的最大距离与t比较,如大于t再各分成两曲线进行距离计算判断,如小于t,则结束算法。

所述工件边缘伪毛刺具体步骤:

b1:使用直线拟合算法计算参考线的角度θref,即最小外接矩形得到的参考线;

b2:计算所有轮廓线到参考线的平均距离:只计算每条轮廓和参考线的最大最小值,取平均值得到平均距离,最后对所有轮廓线的平均值再次取平均值,得到整个目标到参考线的距离l1;

b3:选取一条目标轮廓线,计算目标轮廓线的长度,若目标轮廓线上的像素数大于或等于300,则认为该轮廓线是较长的直线,属于工件棱边,为伪毛刺。若目标轮廓线上的像素数小于300个像素,则继续下一步;

b4:利用直线拟合算法估计目标轮廓线的拟合直线,并计算该直线的方向角θi;

b5:计算目标轮廓线到参考线的平均距离,计算目标轮廓线距离参考线最大最小距离之差l2,轮廓线到参考线距离的标准差σi;

b6:判断如果目标轮廓线方向角θi和θref的角度差小于3度,且l2小于5,标准差σi小于3,则认为该目标轮廓线为伪毛刺,否则进入下一步;

b7:根据得到的l1,若目标轮廓线到参考线的平均距离大于l1的1.5倍,则认为该轮廓距离工件边缘较远,属于工件表面划痕,为伪毛刺;否则,则认定该目标轮廓线为毛刺。

本发明的有益效果在于:本发明基于图像处理的工件毛刺检测方法,算法的复杂度不高;测量速度快;很大程度上提高了检测精确度,经实验论证可达90%的检测准确性;对实验环境的要求不高,测量系统相对简单。

附图说明

图1为本发明基于图像处理的工件毛刺检测方法流程图;

图2为本发明光源平行光照射方式示意图;

图3为本发明中迭代法图像分割示意图;

图4a为本发明顶帽变换前示意图;

图4b为本发明顶帽变换后示意图;

图5为本发明canny算子检测边缘结果图;

图6为本发明经过区域生长法后获取的毛刺区域封闭边缘图;

图7为本发明分裂多边形拟合算法示意图;

图8为本发明多边形拟合后的目标轮廓图;

图9为本发明样本工件图;

图10为本发明在对拟合多边形进行分割和去除噪声之后的毛刺检测结果图。

具体实施方式

如图1所示本发明基于图像处理的工件毛刺检测方法流程图,采用led发光半导体作为光源垂直照射在工件表面,利用ccd相机作为图像探测设备对工件边缘进行连续拍摄,最后用计算机采集相机拍摄的图像,然后对采集到的图像进行滤波、分割处理后,检测图像的边缘,并且对边缘进行融合后进行区域生长法处理,当生长的灰度值达到设定标准后就不需要扩展,表示边缘形成,生成了封闭的毛刺边缘。之后再通过确定主轴来去除伪毛刺,并最后提取出毛刺边缘。由于被测工件表面反光,如何选择光源来更好地突出毛刺的信息,使得毛刺一目了然,光源的选择至关重要。经实验研究,本课题最终选择低角度环形光源。如图2所示光源平行光照射方式示意图。

基于图像处理的毛刺检测算法具体包括下述步骤:

步骤一:首先对图像进行预处理

1)进行空间域的低通滤波,来消除图像的噪声。然后再采用迭代法进行图像分割。

迭代法的第一步先设置灰度阈值t0,计算出选取的两个区域的灰度平均阈值ta和tb。再通过公式:

t1=(ta+tb)/2(1)

新阈值t1替代t0,顺序选取后续两个区域的灰度平均阈,再计算,重复替代,直到ti收敛,即ti+1=ti。最终得到收敛的阈值ti,则原图像中灰度值小于ti的区域为0,原图像中灰度值大于ti的区域为1,得到原图的二值图像,完成图像分割。如图3所示迭代法图像分割示意图。

2)在图像分割之后,通过顶帽变换来进行图像增强。wth为白顶帽,bth为黑顶帽,数学定义为:

bth(i,j)=f·b(i,j)-f(i,j)(3)

fen=f+fwth-fbth(4)

其中,(i,j)为像素点,符号。表示开运算,符号·表示闭运算,b为结构元,f为图像分割后的原始图像,fen为增强后的图像,fwth表示提取的亮灰度区域,fbth表示提取的暗灰度区域。如图4a、4b分别为顶帽变换前、后示意图。

步骤二:毛刺边缘形成,融合的区域生长法:

边缘作为组成图像的最基本的元素之一,是两个具有相对不同灰度值的区域的边界线。边缘存在于目标和目标、目标和背景、区域和区域之间。边缘有助于图像的分割和特征提取。边缘能够突出目标,同时边缘也提供了丰富的内在信息,如形状、方向、大小等。本次的边缘检测采用canny算子,将高斯函数的一阶导数作为canny算子的边缘检测器。

1)在顶帽变换之后对图像进行边缘检测,边缘检测采用canny算子,检测结果如图5所示。

二维高斯函数为

其中,σ为高斯函数的分布参数,σ的大小可控制图像的平滑度。最优阶跃边缘检测算子是以卷积为基础的,边缘强度为而边缘方向为

根据高斯函数的可分性,将的两个滤波卷积模板分解为两个一维的行列滤波器:

其中

h1(i)=ih2(i),h1(j)=ih2(j),k为常数。

然后把这两个模板分别与f(i,j)进行卷积,得到

其中,a(i,j)表示了边缘强度,a(i,j)为垂直于边缘的方向。

2)由于canny算子不能在灰度缓慢变化的区域检测出边缘,所以canny算子提取的曲线不是闭合的。为了在灰度缓慢变化的区域形成边缘,采用等高线方法,将灰度比作地理上的海拔,以此产生封闭边缘。将canny算子检测出来的边缘作为基础边缘,在基础边缘的端点的5*5的范围内,计算灰度等高线值:

其中,di为等高线灰度值,nij为模板对应的系数,i(i,j)为毛刺区域图像对应像素点的灰度值。

3)得到通过基础边缘获取的灰度等高线后,需要根据灰度等高线将基础边缘进行融合。一条灰度等高线,应该起始于一条边缘的一端,终止于另一条边缘线的一端或图像的边缘。在区域扩展时,如果遇到了基础边缘,则应该停止区域扩展。当一个区域和其他区域相交时,这两个区域就融合成了一个区域,应该停止扩展。当区域扩展的灰度值达到了灰度等高线值的时候,意味着边缘已经形成了,不在需要进行扩展了,如图6。

区域生长法的步骤如下:

1)遍历canny算子检测的边缘的端点,获得每个端点对应的灰度等高线的值di减去一定的经验值,作为该端点的局部最小值mi。

2)对某一条边缘,根据端点坐标遍历所有的基础边缘,把与该基础边缘相邻的灰度小于mi的区域作为区域扩展的种子区域。

3)对该边缘的各个种子区域按照灰度值从mi到di增加进行扩展。

4)每次扩展后,应检查所有区域是否符合扩展停止的条件。如果符合条件,则停止区域扩展。若灰度值增加到了灰度等高值di,则标记为融合的边缘。

5)重复1~5的步骤,直到所有的基础边缘和端点都扩展完毕。

步骤三:伪毛刺去除

在得到封闭的毛刺边缘后,根据寻找主轴法得到毛刺边缘的最小外接矩形,取外接矩形一条长边作为参考线,再通过分裂多边形拟合算法方法获得工件的轮廓并将拟合多边形的端点作为目标轮廓的分割点,即可得到对目标轮廓的分割曲线。再去除工件边缘伪毛刺之后得到毛刺。

1.轮廓分割具体步骤:

1)设定阈值t,t为分割轮廓的标准。

2)在目标轮廓上选取两个点,即区域生长后得到的闭合曲线。一般选择距离最远的两个点,分别设为a和b。

3)计算曲线上所有点分别到ab线段的垂直距离,找出垂直距离最大的点,记为点c。记最大距离为h。

4)比较h和阈值t,如果h小于t,则算法结束。若h大于t,运行下一步。

5)c点将曲线分成了ac和bc两条曲线。分别对分成的ac和bc两条曲线上的所有点进行到ac和bc垂直距离计算,算出的最大距离与t比较,如大于t再各分成两曲线进行距离计算判断,如小于t,则结束算法。

如图7所示分裂多边形拟合算法示意图及图8为多边形拟合后的目标轮廓图。

2.伪毛刺去除具体步骤:

1)使用直线拟合算法计算参考线的角度θref,即最小外接矩形得到的参考线。

2)计算所有轮廓线到参考线的平均距离。由于分割后的轮廓线较多,全部计算影响运算时间,因此只计算每条轮廓和参考线的最大最小距离值,取平均值。最后对所有轮廓线的平均值再次取平均值,得到整个目标到参考线的距离l1。

3)选取一条目标轮廓线,计算目标轮廓线的长度,若目标轮廓线上的像素数大于或等于300,则认为该轮廓线是较长的直线,属于工件棱边,为伪毛刺。若目标轮廓线上的像素数小于300个像素,则继续下一步。

4)利用直线拟合算法估计目标轮廓线的拟合直线,并计算该直线的方向角θi。

5)计算目标轮廓线到参考线的平均距离distance,计算目标轮廓线距离参考线最大最小距离之差l2,轮廓线到参考线距离的标准差σi。

6)判断如果目标轮廓线方向角θi和θref的角度差小于3度,且l2小于5,标准差σi小于3,则认为该目标轮廓线为伪毛刺,否则进入下一步。

7)根据得到的l1,若目标轮廓线到参考线的平均距离distance大于l1的1.5倍,则认为该轮廓距离工件边缘较远,属于工件表面划痕,为伪毛刺。否则,则认定该目标轮廓线为毛刺。如图9、10分别为样本工件图和在对拟合多边形进行分割和去除噪声之后的毛刺检测结果图。

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