一种基于视觉的工业零件圆检测方法技术

技术编号:33860082 阅读:16 留言:0更新日期:2022-06-18 10:49
本发明专利技术公开一种基于视觉的工业零件圆检测方法,首先通过图像预处理及Canny边缘检测对图像进行噪声处理,降低了对后续算法的干扰;然后结合游程编码的方法提取连通域,从而缩减算法的处理时间;接着快速RANSAC算法通过迭代抽样的方法优化内点集,迭代方法减少传统RANSAC算法存在的无效抽样,提高了算法的准确性的同时降低了算法运行时间;最后采用最小二乘法并通过检验得到精度较高的圆。与传统算法相比,本发明专利技术在精度上有着不错的改进效果,提高了后期零件测量、定位等功能的准度。定位等功能的准度。定位等功能的准度。

【技术实现步骤摘要】
一种基于视觉的工业零件圆检测方法


[0001]本专利技术涉及机器视觉
,具体涉及一种基于视觉的工业零件圆检测方法。

技术介绍

[0002]随着智能化,自动化制造技术的发展,工业零件的测量、定位及追踪等愈加追求高效、智能和精密准确,而在大部分的工业零部件中,圆是常见的也是重要的形状之一,如轴承、法兰盘、活塞等零件,因此在生产过程中对圆的几何尺寸,形位公差有着高精度要求。近年来,机器视觉的发展为工业零件提供了新的非接触式高精密测量技术,然而由于工业零件在加工过程中零件本身会产生油污、毛刺等负面干扰,所以传统视觉算法对圆的检测提取的精度较低,产生较大误差。

技术实现思路

[0003]本专利技术所要解决的是传统视觉算法对圆的检测提取的精度较低的问题,提供一种基于视觉的工业零件圆检测方法。
[0004]为解决上述问题,本专利技术是通过以下技术方案实现的:
[0005]一种基于视觉的工业零件圆检测方法,包括步骤如下:
[0006]步骤1、采集工业零件图像,并对工业零件图像进行预处理;
[0007]步骤2、采用Canny边缘检测算法对步骤1所得的预处理后的图像进行双阈值边缘检测,得到的二值化的边缘图像;
[0008]步骤3、利用游程编码方法从步骤2所得的二值化的边缘图像中提取连通域;
[0009]步骤4、利用快速随机抽样一致算法对于步骤3所提取的每个连通域分别进行圆拟合,并判断其是否为圆,即:
[0010]步骤4.1、遍历步骤2所提取的每个连通域,利用当前连通域的坐标初始化内点集;
[0011]步骤4.2、在内点集中随机抽取样本并通过最小二乘法计算圆心坐标及半径;
[0012]圆心坐标的横坐标a为:
[0013][0014]圆心坐标的纵坐标b为:
[0015][0016]半径R为:
[0017][0018]步骤4.3、计算代价函数,并判断代价函数是否小于等于设定的精度阈值:如果是,则认为当前连通区域为圆;否则,认为当前连通区域为非圆;
[0019]其中
[0020]式中,为所有样本的横坐标均值,为所有样本的横坐标均值,为所有样本的纵坐标均值,(x
i
,y
i
)为第i个样本的坐标;J为代价函数;(a,b)为圆心的坐标,R为圆的半径;t为误差阈值;e
i
为第i个样本到圆的距离,n为样本的个数。
[0021]上述步骤1中,预处理主要包括灰度化处理及中值滤波处理。
[0022]上述步骤3的具体过程如下:
[0023]步骤3.1、令当前扫描行数i=1;
[0024]步骤3.2、从左到右依次扫描二值化的边缘图像的第i行的所有像素点;当发现当前像素点的像素值为1时,则创建新游程,并将当前像素点插入到当前创建的新游程中,再判断下一个像素点的像素值:若下一个像素点的像素值为0,则完成新游程的创建,并转至步骤3.3,若下一个像素点的像素值为1,则将下一个像素点插入到当前创建的新游程中,并继续判断再下一个像素点的像素值,直至像素点的像素值为0或为第i行的最后一个像素点;
[0025]步骤3.3、判断第i行当前创建的新游程与第i

1行的所有游程的连通关系:如果第i行当前创建的新游程与第i

1行的2个以上的游程连通时,则认为第i行当前创建的新游程与第i

1行的游程是多连通关系,则合并与第i行当前创建的新游程连通的第i

1行游程所属的连通域,并将当前创建的新游程插入合并后的连通域中;
[0026]如果第i行当前创建的新游程与第i

1行的1个游程连通时,则认为第i行当前创建的新游程与第i

1行的游程是单连通关系,则把当前创建的新游程插入与第i行当前创建的新游程连通的第i

1行游程所属的连通域中;
[0027]如果第i行当前创建的新游程与第i

1行的所有游程均不连通时,则创建新的连通域,并将第i行当前创建的新游程插入其中;
[0028]步骤3.4、判断当前扫描行数i是否等于二值化的边缘图像的总行数,如果是,则输出连通域;否则,令当前扫描行数i加1,并返回步骤3.2。
[0029]对于2个游程RE[1]和游程RE[2],如果游程RE[2]的起始位置与游程RE[1]的结束位置的差值小于等于1,且游程RE[1]的起始位置与RE[1]的结束位置的差值小于等于1时,则认为游程RE[1]和游程RE[2]是连通的。
[0030]基于视觉的工业零件圆检测方法相比与传统的霍夫变换在精确度和稳定性更高,采用游程码的数据结构提取连通分量,只需要扫描一次图像就可以得到连通量,相比与传统的形态学提取连通分量,大大缩减了时间;相对与传统的RANSAC,本文算法通过迭代抽样不断优化内点集,从而减少了抽样次数,缩减了抽样时间,增强了算法的性能。
附图说明
[0031]图1为基于游程的连通域提取的流程图。
[0032]图2为快速RANSAC算法圆拟合的流程图。
具体实施方式
[0033]为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实例,对本专利技术进一步详细说明。
[0034]为降低负面影响,提取精度较高的圆轮廓,提高测量的精度,本专利技术提出一种基于视觉的工业零件圆检测方法,其具体包括步骤如下:
[0035]步骤1、采集工业零件图像,并对工业零件图像进行预处理。在本实施例中,预处理主要包括灰度化处理及中值滤波处理。
[0036]步骤2、采用Canny边缘检测算法对预处理后的图像进行双阈值边缘检测,得到的二值化的边缘图。
[0037]步骤3、利用游程编码方法从步骤2所得的二值化的边缘图像中提取连通域。如图1所示,该步骤的具体过程如下:
[0038]1).初始化行数i及所有储存容器。
[0039]令i=1。采用前向链表forward_list1存储每次扫描到的游程。采用前向链表forward_list2储存属于同一连通域的游程指针。采用vector容器储存连通域。
[0040]2).从左到右依次扫描二值化的边缘图像的第i行的所有像素点;当发现当前像素点的像素值为1时,则创建新游程,并将当前像素点插入到当前创建的新游程中,再判断下一个像素点的像素值:若下一个像素点的像素值为0,则完成新游程的创建,并转至步骤3.3,若下一个像素点的像素值为1,则将下一个像素点插入到当前创建的新游程中,并继续判断再下一个像素点的像素值,直至像素点的像素值为0或为第i行的最后一个像素点。
[0041]游程采用结构体表示,具体为Struct runs{int start_col;intend_col;vectorPoint;int label};其中int表示整型,vector表示数组容器,start_col为游程的起始位置,end_co本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于视觉的工业零件圆检测方法,其特征是,包括步骤如下:步骤1、采集工业零件图像,并对工业零件图像进行预处理;步骤2、采用Canny边缘检测算法对步骤1所得的预处理后的图像进行双阈值边缘检测,得到的二值化的边缘图像;步骤3、利用游程编码方法从步骤2所得的二值化的边缘图像中提取连通域;步骤4、步骤4、利用快速随机抽样一致算法对于步骤3所提取的每个连通域分别进行圆拟合,并判断其是否为圆,即:步骤4.1、遍历步骤2所提取的每个连通域,利用当前连通域的坐标初始化内点集;步骤4.2、在内点集中随机抽取样本并通过最小二乘法计算圆心坐标及半径;圆心坐标的横坐标a为:圆心坐标的纵坐标b为:半径R为:步骤4.3、计算代价函数,并判断代价函数是否小于等于设定的精度阈值:如果是,则认为当前连通区域为圆;否则,认为当前连通区域为非圆;其中式中,为所有样本的横坐标均值,为所有样本的横坐标均值,为所有样本的纵坐标均值,(x
i
,y
i
)为第i个样本的坐标;J为代价函数;(a,b)为圆心的坐标,R为圆的半径;t为误差阈值;e
i
为第i个样本到圆的距离,n为样本的个数。2.根据权利要求1所述的一种基于视觉的工业零件圆检测方法,其特征是,步骤1中,预处理主要包括灰度化处理及中值滤波处理。3.根据权利要求1所述的一种基于视觉的工业零件圆检测方法,其特征是,步骤3的具体过程如下:步骤3.1、令当前扫描行数i=1;
步骤3.2、从左到右依次扫描二值化的边缘图像的第i行的所有像素点;当发现当前像素点的像素值为1时,则创建新游程,并将当前像素点插入到当前创建的新游程中,再判断下一个像素点的像素值:若下一个像素...

【专利技术属性】
技术研发人员:蒋占四郑泽瀚胡燕林丁泽良彭岗举朴延梁日强滕制程豪黄贤国武栓虎
申请(专利权)人:珠海华星智造科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1