掌桥专利:专业的专利平台
掌桥专利
首页

工件圆拟合方法、装置、视觉检测系统及电子设备

文献发布时间:2024-04-18 19:58:30


工件圆拟合方法、装置、视觉检测系统及电子设备

技术领域

本申请属于数据处理技术领域,尤其涉及一种工件圆拟合方法、装置、视觉检测系统及电子设备。

背景技术

圆拟合是视觉应用项目中使用最频繁的技术之一,稳定的圆特征常常用于测量工件的孔径大小、轮廓圆度、圆心位置度等,以检测工件是否满足工艺设计需求,或为线圆定位提供圆心信息,或将工件实际圆形轮廓与标称圆特征进行比对,进行工件边缘凸起、凹陷或间断等缺陷检测。

在视觉检测的过程中,对于同一工件或目标可能存在多个半径不同的圆,现有的组合遍历、随机采样一致性或稳健回归的拟合方法,均未考虑多个半径不同圆同时存在时的场景,拟合效果较差,无法满足视觉检测要求。

发明内容

本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种工件圆拟合方法、装置、视觉检测系统及电子设备,适用于待处理工件中多个半径不同圆同时存在时的场景。

第一方面,本申请提供了一种工件圆拟合方法,所述方法应用于视觉检测系统,该方法包括:

通过视觉检测系统的数据采集装置获取待处理工件的数据点集,所述待处理工件包括至少两个圆;

基于所述数据点集的数据点,进行圆拟合,得到第一拟合圆;

基于所述第一拟合圆,确定所述数据点集中的内点和外点;

基于所述数据点集中的内点和拟合圆半径约束条件,进行圆拟合,得到第二拟合圆,所述拟合圆半径约束条件用于表征拟合圆半径最大值和半径最小值;

基于所述第二拟合圆,对所述数据点集中的内点和外点进行迭代更新;

基于迭代终止后的所述数据点集中的内点,进行圆拟合,得到所述待处理工件的至少两个目标拟合圆。

根据本申请的工件圆拟合方法,通过数据点集直接拟合得到初始的第一拟合圆,在第一拟合圆的基础上划分内点外点,并引入拟合圆半径约束条件,拟合出精度更高的且半径大小在确定范围的第二拟合圆,根据第二拟合圆对内点和外点进行迭代更新,寻优得到更加稳定准确的内点,最终获得结果稳定、拟合精度高的目标拟合圆,对于待处理工件存在多个半径不同圆的场景,引入不同圆对应的拟合圆半径约束条件,保证拟合精度和稳定性的同时,还可区分不同半径圆。

根据本申请的一个实施例,所述基于所述数据点集中的内点和拟合圆半径约束条件,进行圆拟合,得到第二拟合圆,包括:

通过约束因子优化所述拟合圆半径约束条件对应的圆拟合函数,得到无约束的圆拟合函数;

以拟合圆半径差值最小为目标函数,对所述无约束的圆拟合函数进行求解,得到所述拟合圆半径约束条件对应的拟合圆参数;

基于所述数据点集的内点和所述拟合圆参数,拟合得到所述第二拟合圆。

根据本申请的一个实施例,所述基于所述数据点集的内点和所述拟合圆参数,拟合得到所述第二拟合圆,包括:

基于所述数据点集的内点比例和最大迭代次数约束确定目标数目;

对所述数据点集中的内点进行所述目标数目次数的迭代更新;

基于所述拟合圆参数,对所述数据点集中更新的内点进行圆拟合,得到第三拟合圆,并计算每次迭代的所述第三拟合圆的拟合误差;

基于所述拟合误差,从所述目标数目个的所述第三拟合圆中确定出所述第二拟合圆。

根据本申请的一个实施例,所述对所述数据点集中的内点进行所述目标迭代次数的迭代更新,包括:

重新拟合所述第一拟合圆;

基于新的所述第一拟合圆,重新确定所述数据点集中的内点和外点。

根据本申请的一个实施例,所述基于所述第二拟合圆,对所述数据点集中的内点和外点进行迭代更新,包括:

基于所述数据点集中各数据点至所述第二拟合圆的距离,确定所述数据点集中各数据点的权重;

基于所述数据点集中各数据点的权重,对所述数据点集的内点和外点进行迭代更新,所述数据点集中内点对应的权重大于外点对应的权重。

根据本申请的一个实施例,所述基于所述第二拟合圆,对所述数据点集中的内点和外点进行迭代更新,包括:

基于所述数据点集中各数据点至所述第二拟合圆的距离和外点先验距离,对所述数据点集中的内点和外点进行迭代更新,所述外点先验距离用于表征所述数据点集的任一外点至所述第二拟合圆的距离大于任一内点至所述第二拟合圆的距离。

根据本申请的一个实施例,所述对所述数据点集中的内点和外点进行迭代更新,包括:

每次迭代确定所述数据点集中的M个远点,M为大于1的整数;

在当前迭代的M个远点与上一次迭代的M个远点相同的情况下,迭代终止。

根据本申请的一个实施例,所述基于所述第一拟合圆,确定所述数据点集中的内点和外点,包括:

基于所述数据点集中各数据点至所述第一拟合圆的距离和内点距离阈值,确定所述数据点集中的内点和外点。

第二方面,本申请提供了一种工件圆拟合装置,该装置包括:

获取模块,用于通过视觉检测系统的数据采集装置获取待处理工件的数据点集,所述待处理工件包括至少两个圆;

第一处理模块,用于基于所述数据点集的数据点,进行圆拟合,得到第一拟合圆;

第二处理模块,用于基于所述第一拟合圆,确定所述数据点集中的内点和外点;

第三处理模块,用于基于所述数据点集中的内点和拟合圆半径约束条件,进行圆拟合,得到第二拟合圆,所述拟合圆半径约束条件用于表征拟合圆半径最大值和半径最小值;

第四处理模块,用于基于所述第二拟合圆,对所述数据点集中的内点和外点进行迭代更新;

第五处理模块,用于基于迭代终止后的所述数据点集中的内点,进行圆拟合,得到所述待处理工件的至少两个目标拟合圆。

根据本申请的工件圆拟合装置,通过数据点集直接拟合得到初始的第一拟合圆,在第一拟合圆的基础上划分内点外点,并引入拟合圆半径约束条件,拟合出精度更高的且半径大小在确定范围的第二拟合圆,根据第二拟合圆对内点和外点进行迭代更新,寻优得到更加稳定准确的内点,最终获得结果稳定、拟合精度高的目标拟合圆,对于待处理工件存在多个半径不同圆的场景,引入不同圆对应的拟合圆半径约束条件,保证拟合精度和稳定性的同时,还可区分不同半径圆。

第三方面,本申请提供了一种视觉检测系统,包括:

数据采集装置,所述数据采集装置用于采集待处理工件的数据点集;

控制器,所述控制器与所述数据采集装置电连接,所述控制器用于执行上述第一方面的工件圆拟合方法。

根据本申请的视觉检测系统,通过数据点集直接拟合得到初始的第一拟合圆,在第一拟合圆的基础上划分内点外点,并引入拟合圆半径约束条件,拟合出精度更高的且半径大小在确定范围的第二拟合圆,根据第二拟合圆对内点和外点进行迭代更新,寻优得到更加稳定准确的内点,最终获得结果稳定、拟合精度高的目标拟合圆,对于待处理工件存在多个半径不同圆的场景,引入不同圆对应的拟合圆半径约束条件,保证拟合精度和稳定性的同时,还可区分不同半径圆。

第四方面,本申请提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的工件圆拟合方法。

本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1是本申请实施例提供的工件圆拟合方法的流程示意图;

图2是本申请实施例提供的第二拟合圆的示意图之一;

图3是本申请实施例提供的第二拟合圆的示意图之二;

图4是本申请实施例提供的工件圆拟合装置的结构示意图;

图5是本申请实施例提供的视觉检测系统的结构示意图;

图6是本申请实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。

下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的工件圆拟合方法、工件圆拟合装置、视觉检测系统、电子设备和可读存储介质进行详细地说明。

其中,工件圆拟合方法可应用于终端,具体可由,终端中的硬件或软件执行。

该终端包括但不限于具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话或平板电脑等便携式通信设备。还应当理解的是,在某些实施例中,该终端可以不是便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。

以下各个实施例中,描述了包括显示器和触摸敏感表面的终端。然而,应当理解的是,终端可以包括诸如物理键盘、鼠标和控制杆的一个或多个其它物理用户接口设备。

本申请实施例提供的工件圆拟合方法,该工件圆拟合方法的执行主体可以为电子设备或者电子设备中能够实现该工件圆拟合方法的功能模块或功能实体,本申请实施例提及的电子设备包括但不限于手机、平板电脑、电脑、相机和可穿戴设备等,下面以电子设备作为执行主体为例对本申请实施例提供的工件圆拟合方法进行说明。

本申请实施例的视觉检测系统包括数据采集装置和控制器,数据采集装置和控制器连接。

工件圆拟合方法用于拟合一个圆形状以匹配从待处理工件中提取出的数据点集,使得该圆形状最能代表该待处理工件的圆的形状特征。

工件圆拟合方法应用于视觉检测系统,如图1所示,该工件圆拟合方法包括:步骤110至步骤160。

步骤110、通过视觉检测系统的数据采集装置获取待处理工件的数据点集。

其中,待处理工件包括至少两个圆,数据点集为待处理工件中待拟合的数据点组成的集合,数据点集可以表征待处理工件的圆形状特征。在实际执行中,可以提取关于待处理工件相关特征的位置坐标作为数据点集中的数据点。

例如,可以提取关于待处理工件的边缘作为数据点集中的数据点,也可以提取关于待处理工件的轮廓作为数据点集中的数据点。

可以理解的是,数据点集中的所有数据点在一个平面内,数据点集为有限集。

例如,待处理工件可以为轴承,轴承中包含三种半径不同的圆形结构(内环、外环和滚动体),通过视觉检测系统的数据采集装置获取轴承的轮廓数据点,得到对应的数据点集,该数据点集可以表征轴承包含三种半径不同的圆形结构的轮廓特征。

再例如,待处理工件可以为飞轮,飞轮中包含半径不同的同心圆结构,通过视觉检测系统的数据采集装置获取飞轮的边缘数据点,得到对应的数据点集,该数据点集可以表征飞轮中半径不同的同心圆结构的边缘特征。

步骤120、基于数据点集的数据点,进行圆拟合,得到第一拟合圆。

在该步骤中,基于数据点集的数据点,进行圆拟合,在数据点集中随机选择数据点,基于被选择的数据点拟合得到初始的圆,即第一拟合圆,同时得到第一拟合圆对应的数学表达式。

在实际执行中,需要至少选择3个数据点进行圆拟合。

需要说明的是,基于被选择的数据点确定圆为将被选择的数据点带入圆方程中进行最小二乘求解的过程,求解圆方程的系数,拟合得到第一拟合圆及其对应的数学表达式。

例如,可以通过在数据点集中随机选择3个数据点,将这3个点代入圆方程中进行最小二乘求解,确定第一拟合圆及其对应的数学表达式。

步骤130、基于第一拟合圆,确定数据点集中的内点和外点。

其中,数据点集中的内点为可以用来进行圆拟合的数据点,数据点集中的外点为不参与圆拟合的数据点,用数据集中的外点拟合得到的圆可能无法表征待处理工件的圆形状特征,进而影响后续检测步骤。

可以理解的是,数据点集中所有的内点加上数据点集中所有的外点构成数据点集中的所有点。

步骤140、基于数据点集中的内点和拟合圆半径约束条件,进行圆拟合,得到第二拟合圆。

其中,拟合圆半径约束条件用于表征拟合圆半径最大值和半径最小值,对拟合圆半径大小的范围进行约束。

在实际执行中,拟合圆半径约束条件可以基于待处理工件的圆半径预设,设置拟合圆半径约束条件,拟合圆的半径满足待处理工件的圆半径。

例如,某待处理工件中有三种半径不同的圆,三种半径分别为3cm、4cm、5cm,则可设置拟合圆半径约束条件为拟合圆的半径不大于5cm且不小于3cm,使拟合圆的半径满足待处理工件的圆半径。

在实际执行中,可以通过在圆方程中加入拟合圆半径约束来约束拟合圆半径大小的范围。

例如,拟合圆半径约束条件为拟合圆的半径不大于半径最大值r

第二拟合圆为对数据点集中的内点进行圆拟合得到的拟合圆,第二拟合圆的半径大小在拟合圆半径约束所约束的半径大小的范围之内。

在该步骤中,可以通过在内点中随机选择3个数据点,将这3个数据点代入带拟合圆半径约束条件的圆方程中进行最小二乘求解,确定第二拟合圆及其对应的数学表达式。

在该实施例中,将可能会影响拟合出待处理工件的圆形状的外点剔除,对内点进行圆拟合,可以提供精度更高的第二拟合圆。

在该实施例中,在圆拟合过程中加入拟合圆半径约束条件,将拟合圆的半径大小限制在一定范围内,避免拟合圆半径与待处理工件的圆半径不符,同时避免确定拟合圆半径为固定值时不适用多个半径圆同时存在的情况。

步骤150、基于第二拟合圆,对数据点集中的内点和外点进行迭代更新。

需要说明的是,第二拟合圆是最终拟合圆的候选圆基础,在第二拟合圆的基础上,对数据集的内点外点进行寻优迭代,以使数据集中内点外点更加稳定准确。

其中,对数据点集中的内点和外点进行迭代更新,表示当前为内点的数据点,进行迭代后,可能为内点,也可能更新为外点;当前为外点的数据点,进行迭代后,可能为外点,也可能更新为内点。

在该步骤中,在迭代更新的过程中可以不断地在数据点集中寻找更加准确的内点,经过迭代更新的内点准确性更高。

需要说明的是,在每次迭代中,都会产生一个更新的第二拟合圆,下一次迭代时,基于更新的第二拟合圆对数据点集中的内点和外点进行更新。

步骤160、基于迭代终止后的数据点集中的内点,进行圆拟合,得到目标拟合圆。

其中,目标拟合圆为基于步骤150中确定的内点进行圆拟合得到的拟合圆,即目标拟合圆为工件圆拟合方法最终确定的拟合圆,是最能代表待处理工件的圆形状特征的拟合圆。

在该步骤中,可以通过在迭代终止后的数据点集中的内点中随机选择3个数据点,将这3个数据点代入圆方程中进行最小二乘求解,确定目标拟合圆及其对应的数学表达式。

在该实施例中,基于两次拟合和拟合圆半径约束条件得到的拟合精度较高且可区分不同半径的第二拟合圆,对数据点集中的内点和外点进行迭代更新,所确定的内点和外点更加准确且稳定,利用迭代终止后得到的内点拟合得到精度高、稳定且半径符合实际需求的目标拟合圆。

例如,待处理工件可以为轴承,轴承中有四圆形状,半径分别为3cm、3cm、4cm、5cm,设置拟合圆半径约束条件为拟合圆的半径不大于5cm且不小于3cm,利用工件圆拟合方法进行圆拟合,得到四个目标拟合圆,四个目标拟合圆半径分别为3cm、3cm、4cm、5cm。

再例如,待处理工件可以为飞轮,飞轮中有两个圆形状,半径分别为5cm、8cm,设置拟合圆半径约束条件为拟合圆的半径不大于8cm且不小于5cm,利用工件圆拟合方法进行圆拟合,得到两个目标拟合圆,两个目标拟合圆半径分别为5cm、8cm。

根据本申请实施例提供的工件圆拟合方法,通过数据点集直接拟合得到初始的第一拟合圆,在第一拟合圆的基础上划分内点外点,并引入拟合圆半径约束条件,拟合出精度更高的且半径大小在确定范围的第二拟合圆,根据第二拟合圆对内点和外点进行迭代更新,寻优得到更加稳定准确的内点,最终获得结果稳定、拟合精度高的目标拟合圆,对于待处理工件存在多个半径不同圆的场景,引入不同圆对应的拟合圆半径约束条件,保证拟合精度和稳定性的同时,还可区分不同半径圆。

在一些实施例中,基于数据点集中的内点和拟合圆半径约束条件,进行圆拟合,得到第二拟合圆,包括:

通过约束因子优化拟合圆半径约束条件对应的圆拟合函数,得到无约束的圆拟合函数;

以拟合圆半径差值最小为目标函数,对无约束的圆拟合函数进行求解,得到拟合圆半径约束条件对应的拟合圆参数;

基于数据点集的内点和拟合圆参数,拟合得到第二拟合圆。

其中,约束因子是可以将有约束的圆拟合函数转化为无约束的圆拟合函数的参数因子,约束因子可以为预设的未知值,在对无约束的圆拟合函数进行求解的过程中,除求解出拟合圆参数,还可以求解出约束因子。

可以理解的是,约束因子将有约束的圆拟合函数转化为无约束的圆拟合函数,只是转换了有约束的圆拟合函数的形式,并没有改变有约束的圆拟合函数的有约束的本质。

拟合圆半径约束条件对应的圆拟合函数为圆拟合函数中的半径限制在拟合圆半径约束条件规定的范围之内,无约束的圆拟合函数为圆拟合函数中的半径没有约束条件限制。

在实际执行中,可以将约束因子代入双曲正切函数中,实现将有约束的圆拟合函数转化为无约束的圆拟合函数。

例如,圆拟合函数的半径约束为r∈[r

在该实施例中,拟合圆半径差值为拟合圆的半径与拟合圆半径约束条件约束的半径之间的差值,拟合圆半径差值越小拟合圆的半径越符合拟合圆半径约束条件对半径的约束。

以拟合圆半径差值最小为目标函数,对无约束的圆拟合函数进行求解,即得到最符合拟合圆半径约束条件的拟合圆半径,也即得到拟合圆半径约束条件对应的拟合圆参数。

在实际执行中,可以通过梯度下降法、高斯牛顿法、蚁群算法等对目标函数求解。

例如,圆拟合函数的半径r转换成无约束形式为

根据偏导数即可构建出雅克比矩阵J:

其中,D=-(r

此时可构建线性方程组:

J·Δp=-d

利用最小二乘法对当前参数增量Δp=(p

a=a+p

b=b+p

c=c+p

在该实施例中,可以基于数据点集中的内点拟合圆,并重复更新拟合圆参数,直至两次迭代的均方根(Root Mean Square,RMS)误差十分接近时收敛或达到最大迭代次数时退出,得到在设定的半径范围内的第二拟合圆,最大迭代次数可以为100。

在该实施例中,利用约束因子将有约束的圆拟合函数转化为无约束的圆拟合函数可以简化圆拟合函数,使得在对圆拟合函数进行优化时不用考虑约束条件,从而降低圆拟合优化过程的复杂度。

在一些实施例中,基于数据点集的内点和拟合圆参数,拟合得到第二拟合圆,包括:

基于数据点集的内点比例和最大迭代次数约束确定目标数目;

对数据点集中的内点进行目标数目次数的迭代更新;

基于拟合圆参数,对数据点集中更新的内点进行圆拟合,得到第三拟合圆,并计算每次迭代的第三拟合圆的拟合误差;

基于拟合误差,从目标数目个的第三拟合圆中确定出第二拟合圆。

其中,目标数目为预设的值,用于确定在得到第二拟合圆前需要对数据点集中的内点进行迭代更新的次数。

内点比例为数据点集中的内点占所有数据点的比例,最大迭代次数约束用于对迭代次数进行约束,防止迭代次数过大。

例如,置信度为p,内点占数据点集中所有数据点的比例为w,拟合模型需从数据点集中选择的最小数目为n,从数据点集中选择的不重复组合数目为k(即曲线拟合需要的理论最大迭代次数),则有以下公式成立:

1-p=(1-w

两边取对数则有:

对于圆拟合来说,共有3个参数,需要最少3个点进行拟合,即:

置信度p取经验值0.99,内点比例w可以通过设置的初始外点数目m和数据点集中数据点总数N计算:w=1-m/N。考虑当外点比例(m/N)接近于1、置信度也接近于1时,k值可能会非常大导致拟合时间过长,故引入最大迭代次数约束L(一般取1000或2000),最终最大迭代次数(目标数目)为:Nmax=min(k,L)。

第三拟合圆是对每次迭代中更新的内点进行圆拟合得到的拟合圆,每次迭代中都会得到一个第三拟合圆。

在该实施例中,拟合误差用来衡量拟合出的圆的拟合精度,即与待处理工件的圆形状的相似程度,拟合误差越小表示拟合的圆与待处理工件的圆形状相似程度越大,拟合误差越大表示拟合的圆与待处理工件的圆形状相似程度越小。

在该实施例中,拟合误差可以为RMS误差。

在实际执行中,可以基于内点到拟合圆的平均距离确定该拟合圆的拟合误差,平均距离越大拟合误差越大,平均距离越小拟合误差越小。

例如,第一次迭代确定第三拟合圆a,各内点到第三拟合圆a的平均距离为4cm,可以确定第三拟合圆a的拟合误差为1,第二次迭代确定第三拟合圆b,各内点到第三拟合圆b的平均距离为5cm,可以确定第三拟合圆b的拟合误差为2,第三拟合圆a的拟合误差1小于第三拟合圆b的拟合误差2,第三拟合圆a比第三拟合圆b与待处理工件的圆形状相似程度大。

在该实施例中,将拟合误差最小的第三拟合圆确定为第二拟合圆。

例如,目标数目设置为3,对数据点集中的内点进行3次迭代更新,第一次迭代更新确定的第三拟合圆a的拟合误差为a1,第二次迭代更新确定的第三拟合圆b的拟合误差为a2,第三次迭代更新确定的第三拟合圆c的拟合误差为a3,第三拟合圆a的拟合误差最小,则将第三拟合圆a确定为第二拟合圆。

在该实施例中,选择精度最高的第三拟合圆确定为第二拟合圆,可以提高第二拟合圆的精度,为更进一步的迭代优化提供精度更高的候选圆。

在一些实施例中,对数据点集中的内点进行目标迭代次数的迭代更新,包括:

重新拟合第一拟合圆;

基于新的第一拟合圆,重新确定数据点集中的内点和外点。

在该实施例中,重新拟合第一拟合圆,并基于新的第一拟合圆,重新确定数据点集中的内点和外点,可以避免只执行一次拟合的偶然性带来的影响,减少随机选择数据点确定圆的过程带来的误差。

在一些实施例中,基于第二拟合圆,对数据点集中的内点和外点进行迭代更新,包括:

基于数据点集中各数据点至第二拟合圆的距离,确定数据点集中各数据点的权重;

基于数据点集中各数据点的权重,对数据点集的内点和外点进行迭代更新,数据点集中内点对应的权重大于外点对应的权重。

其中,为数据点集中各数据点确定对应的权重,可以更精细化地表示各数据点间的差异,以便对这些数据点进行更加准确的内点外点划分。

在该实施例中,某一数据点的权重可以为该数据点至第二拟合圆的距离的倒数。

例如,数据点到第二拟合圆的距离为3cm,该数据点的权重可以为1/3,数据点到第二拟合圆的距离为5cm,该数据点的权重可以为1/5。

在实际执行中,数据点的权重大于某一阈值时,该数据点被确定为内点,数据点的权重小于该阈值时,该数据点被确定为外点。

例如,可以设置阈值为5,数据点a的权重为4,则a可以确定为外点,数据点b的权重为6,则b可以确定为内点。

可以理解的是,在迭代过程中,由于内点的更新,第二拟合圆随之更新,数据点集中各数据点到第二拟合圆的距离也会更新,相应地,各数据点的权重基于各数据点到第二拟合圆的距离更新。

在该实施例中,当前被确定为内点的数据点在进行迭代后权重可能减小,减小到小于设定的阈值从而被更新为外点,当前被确定为外点的数据点在进行迭代后权重可能增大,增大到大于设定的阈值从而被更新为内点。

例如,设定的阈值为5,在本次迭代中数据点a的权重为6,被确定为内点,b点的权重为4,被确定为外点,在下次迭代中a点的权重可以为4,被确定为外点,b点的权重可以为6,被确定为内点。

在一些实施例中,基于第二拟合圆,对数据点集中的内点和外点进行迭代更新,包括:

基于数据点集中各数据点至第二拟合圆的距离和外点先验距离,对数据点集中的内点和外点进行迭代更新。

其中,外点先验距离用于表征数据点集的任一外点至第二拟合圆的距离大于任一内点至第二拟合圆的距离。

在该实施例中,基于外点先验距离,将距离第二拟合圆较远的数据点确定为外点,可以避免距离第二拟合圆较远的数据点参与第二拟合圆的拟合过程,影响拟合结果。

可以理解的是,通过引入外点先验距离这一先验知识,可以有效提高数据集中内点外点迭代更新的速度,圆拟合速度更高。

在一些实施例中,对数据点集中的内点和外点进行迭代更新,包括:

每次迭代确定数据点集中的M个远点,M为大于1的整数;

在当前迭代的M个远点与上一次迭代的M个远点相同的情况下,迭代终止。

其中,数据点集中的M个远点为对数据点集中的数据点按离第二拟合圆的距离由远到近排列,取前M个点,M为预设的值。

在该实施例中,数据点集中的M个远点确定为外点,数据点集中剔除M个远点后剩余的点确定为内点。

在该实施例中,在当前迭代的M个远点与上一次迭代的M个远点相同时,认为得到了最能代表待处理工件的圆形状特征的圆。

需要说明的是,迭代终止的判断基于“最优拟合结果所剔除的外点一定是到该圆最远的数据点”确定。

下面采用反证法对“最优拟合结果所剔除的外点一定是到该圆最远的数据点”进行证明。

假设全局最优拟合圆不是稳定拟合结果,则剔除的外点与到距离最远的数据点不一致,那么,在圆剔除的外点中一定存在比某个最远数据点到圆距离近的点。如图2所示,图中的圆为全局最优拟合圆,P1、P2为到圆距离最远的数据点,P2、P3为剔除的外点,数据点P3比数据点P1距离圆近。如图3所示,若将数据点P1作为外点,数据点P3作为内点,显然,新的圆的RMS误差将变小。若剔除此时的外点重新拟合得到圆,图3中圆的RMS误差将比图2中圆的RMS误差小。那么,我们能得到一个比图1中全局最优拟合圆的RMS误差更小的圆,即图2中的圆。则“图1中圆的RMS误差不是最小”,这与图一中的圆是全局最优矛盾。故原结论成立。

在一些实施例中,基于第一拟合圆,确定数据点集中的内点和外点,包括:

基于数据点集中各数据点至第一拟合圆的距离和内点距离阈值,确定数据点集中的内点和外点。

其中,内点距离阈值为预设的距离临界值,若某数据点到圆的第一拟合距离小于内点距离阈值,则该数据点确定为内点,若某数据点到第一拟合圆的距离大于内点距离阈值,则该数据点确定为外点。

例如,内点距离阈值为5cm,点a到第一拟合圆的距离为4cm,点b到第一拟合圆的距离为6cm,则a为内点,b为外点。

下面介绍一个工件圆拟合方法的具体实施例。

步骤一、迭代次数Iter初始化为0,设置初始外点数目为m,根据置信度和最大迭代次数约束计算得到最终最大迭代次数Nmax。

步骤二、从待处理工件的数据点集(总数为N)中随机选择5个点,进行圆拟合(即带入圆方程中进行最小二乘求解)得到初始圆(第一拟合圆)Circle_Iter。

步骤三、计算所有拟合数据点到初始圆Circle_Iter的距离,根据内点距离阈值得到内点,对内点进行圆拟合获取当前圆(第三拟合圆)Circle_cur,并计算RMS误差。

步骤四、基于拟合圆半径约束条件,对当前圆Circle_cur进行半径约束优化。

步骤五、迭代次数Iter=Iter+1。

步骤六、重复上述步骤二至步骤五,直到迭代次数Iter达到最终最大迭代次数Nmax,并将当前圆拟合中RMS误差最小的结果作为最终候选圆结果(第二拟合圆)。

需要说明的是,为了解决随机使得拟合结果可能变化的问题,在上述随机过程中,需使用固定的随机种子。

步骤七、结合快速迭代寻优思想,对候选圆拟合结果中的外点进行迭代修正,使得候选圆拟合结果变得稳定且RMS误差进一步降低。

在实际执行中,可以基于Ransac获取候选圆,主要基于Ransac框架,从拟合点中随机选择5个点拟合得到初始圆,接着计算所有拟合点到初始圆的距离,根据距离是否超过阈值确认哪些是局外点和内点,然后使用内点拟合圆,并计算RMS误差,最后在最大迭代次数内重复上述过程,得到RMS误差最小的圆拟合结果作为候选圆。

稳定圆拟合,利用Robust方法中加权迭代思想,根据每次点到圆的距离计算权重,排除权重低的点进行圆结果更新,多次重复上述过程直到结果稳定不变。

本申请实施例提供的工件圆拟合方法,执行主体可以为工件圆拟合装置。本申请实施例中以工件圆拟合装置执行工件圆拟合方法为例,说明本申请实施例提供的工件圆拟合装置。

本申请实施例还提供一种工件圆拟合装置。

如图4所示,该工件圆拟合装置包括:

获取模块410,通过视觉检测系统的数据采集装置获取待处理工件的数据点集,待处理工件包括至少两个圆;

第一处理模块420,基于数据点集的数据点,进行圆拟合,得到第一拟合圆;

第二处理模块430,基于第一拟合圆,确定数据点集中的内点和外点;

第三处理模块440,基于数据点集中的内点和拟合圆半径约束条件,进行圆拟合,得到第二拟合圆,拟合圆半径约束条件用于表征拟合圆半径最大值和半径最小值;

第四处理模块450,基于第二拟合圆,对数据点集中的内点和外点进行迭代更新;

第五处理模块460,基于迭代终止后的数据点集中的内点,进行圆拟合,得到待处理工件的至少两个目标拟合圆。

根据本申请实施例提供的工件圆拟合装置,通过数据点集直接拟合得到初始的第一拟合圆,在第一拟合圆的基础上划分内点外点,并引入拟合圆半径约束条件,拟合出精度更高的且半径大小在确定范围的第二拟合圆,根据第二拟合圆对内点和外点进行迭代更新,寻优得到更加稳定准确的内点,最终获得结果稳定、拟合精度高的目标拟合圆,对于待处理工件存在多个半径不同圆的场景,引入不同圆对应的拟合圆半径约束条件,保证拟合精度和稳定性的同时,还可区分不同半径圆。

在一些实施例中,第三处理模块440,用于通过约束因子优化拟合圆半径约束条件对应的圆拟合函数,得到无约束的圆拟合函数;

以拟合圆半径差值最小为目标函数,对无约束的圆拟合函数进行求解,得到拟合圆半径约束条件对应的拟合圆参数;

基于数据点集的内点和拟合圆参数,拟合得到第二拟合圆。

在一些实施例中,第三处理模块440,用于基于数据点集的内点比例和最大迭代次数约束确定目标数目;

对数据点集中的内点进行目标数目次数的迭代更新;

基于拟合圆参数,对数据点集中更新的内点进行圆拟合,得到第三拟合圆,并计算每次迭代的第三拟合圆的拟合误差;

基于拟合误差,从目标数目个的第三拟合圆中确定出第二拟合圆。

在一些实施例中,第三处理模块440,用于重新拟合第一拟合圆;

基于新的第一拟合圆,重新确定数据点集中的内点和外点。

在一些实施例中,第四处理模块450,用于基于数据点集中各数据点至第二拟合圆的距离,确定数据点集中各数据点的权重;

基于数据点集中各数据点的权重,对数据点集的内点和外点进行迭代更新,数据点集中内点对应的权重大于外点对应的权重。

在一些实施例中,第四处理模块450,用于基于数据点集中各数据点至第二拟合圆的距离和外点先验距离,对数据点集中的内点和外点进行迭代更新,外点先验距离用于表征数据点集的任一外点至第二拟合圆的距离大于任一内点至第二拟合圆的距离。

在一些实施例中,第四处理模块450,用于每次迭代确定数据点集中的M个远点,M为大于1的整数;

在当前迭代的M个远点与上一次迭代的M个远点相同的情况下,迭代终止。

在一些实施例中,第二处理模块430,用于基于数据点集中各数据点至第一拟合圆的距离和内点距离阈值,确定数据点集中的内点和外点。

本申请实施例中的工件圆拟合装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。

本申请实施例中的工件圆拟合装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为IOS操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。

本申请实施例提供的工件圆拟合装置能够实现图1至图3的方法实施例实现的各个过程,为避免重复,这里不再赘述。

本申请还提供一种视觉检测系统。

如图5所示,该视觉检测系统包括:

数据采集装置510,数据采集装置用于采集待处理工件的数据点集;

控制器520,控制器与数据采集装置电连接,控制器用于执行上述的工件圆拟合方法。

根据本申请实施例提供的视觉检测系统,通过数据点集直接拟合得到初始的第一拟合圆,在第一拟合圆的基础上划分内点外点,并引入拟合圆半径约束条件,拟合出精度更高的且半径大小在确定范围的第二拟合圆,根据第二拟合圆对内点和外点进行迭代更新,寻优得到更加稳定准确的内点,最终获得结果稳定、拟合精度高的目标拟合圆,对于待处理工件存在多个半径不同圆的场景,引入不同圆对应的拟合圆半径约束条件,保证拟合精度和稳定性的同时,还可区分不同半径圆。

在一些实施例中,如图6所示,本申请实施例还提供一种电子设备600,包括处理器601、存储器602及存储在存储器602上并可在处理器601上运行的计算机程序,该程序被处理器601执行时实现上述工件圆拟合方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。

本申请实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述工件圆拟合方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。

本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述工件圆拟合方法。

其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。

相关技术
  • 一种轴类工件表面圆度检测工具及轴类工件圆度检测方法
  • 一种基于双目视觉的工件喷涂方法、喷涂装置及喷涂系统
  • 工件气孔检测装置及工件气孔检测方法
  • 圆检测及拟合方法、装置、电子设备和存储介质
  • 一种基于视觉处理的激光切割工件的圆度检测方法及系统
技术分类

06120116501644