本发明涉及高精度工件技术,尤其涉及一种用于高精度工件的圆弧数据拟合方法。
背景技术:
随着计算机技术的快速发展以及其处理能力的飞速提升,使原本只限于理论的算法也应用到实际的工程中。高精度工件圆弧数据拟合在工业界及学术界十分常见,大到工件圆弧缺陷检测、拟合测量,小到实验室仿真拟合数据,以及在逆向工程中零件的提取加工。高精度工件圆弧数据拟合问题是一个存在已久,十分普通但又十分重要的问题,但该问题没有对应的好的解决算法,只是有一些经典的拟合方法。目前针对高精度工件圆弧数据拟合方法包括:基于遗传算法的曲线拟合技术(afsharna,soryanim,rahmaniat.curvefittingusingcoevolutionarygeneticalgorithms[m]//swarm,evolutionary,andmemeticcomputing.springerberlinheidelberg,2011.)、随机采样一致性算法(fischlerma,bollesrc.randomsampleconsensus:aparadigmformodelfittingwithapplicationstoimageanalysisandautomatedcartography[j].communicationsoftheacm,1981,24(6):381-395.)最小二乘法(liuz,tanjq,chenxy,etal.anapproximationmethodtocirculararcs[j].appliedmathematics&computation,2012,219(3).)等。
遗传算法是一种从整体考虑的优化算法,根据生物遗传学特征观点,通过生物特征,选择、交叉和变异,遗传算法中的高精度工件圆弧数据拟合利用生物学遗传算法来选择合适的函数,使要得到的解在竞争中得以改进、提高、完善,持续迭代优化,最终重建优良曲线;随机采样一致性算法(ransac)类似于将待拟合数据一分为二,一部分当成自己人,一部分当成外人,区分开以后,自己人留下讨论事情,外人赶出去,然后自己人(数据)进行高精度工件圆弧数据拟合。
目前工业采用最小二乘法应用最为广泛,最小二乘法基本的思路获取待拟合图像的圆弧离散数据点,利用最小二乘法将数据点拟合成圆弧,在保证拟合后圆弧不失真的前提下,目标是利用最少的圆弧段数进行拟合。
普通最小二乘是保守派:在现有数据下,如何实现最优,是从一个整体误差最小的角度去考虑,尽量谁也不得罪,一致性算法是改革派:首先假设数据具有某种特性(目的),为了达到目的,适当割舍一些现有的数据。
综合而言,虽然目前关于圆弧拟合有了一些方法,但由于图像采样受光照、设备的影响,以及工件本身的偏差等问题,现有方法在实现工业自动化高精度拟合时仍然存在不足,具体分析如下:
采用遗传学算法虽然在圆弧拟合上可以得到比较好的效果,但是实际在实际试验过程中实现难度太大,不仅计算复杂,同时对拟合中的数学模型的建立也要求很高,特别是在实际应用中,对于复杂的工件,拟合效果达不到工业精度要求,同时计算量很大,给生产带来不便;
随机采样一致性算法(randomsampleconsensus,简称ransac)能从在很多噪点背景下提取到大致圆弧轮廓信息,但是拟合圆弧的精度不能满足;
最小二乘法模型简单,理想情况下很完美,但只是针对没有噪点情况下,由于此算法对噪点敏感,抗干扰能力较差,当要求在精度很高的情况下,如果只是利用传统的最小二乘方法,同样的是拟合误差过大,达不到理想效果。
技术实现要素:
本发明的目的是针对现有技术的不足,而提供一种用于高精度工件的圆弧数据拟合方法。这种方法操作简单、圆弧数据拟合精度高、重复性好,易于推广应用。
实现本发明目的的技术方案是:
一种用于高精度工件的圆弧数据拟合方法,包括如下步骤:
(1)获取待拟合圆弧数据:获取真实高精度工件的圆弧亚像素坐标,过程包括:
1-1)对于同一件零件,采用远心镜头以垂直于高精度工件所在的平面方向对高精度工件进行多次图像采集;
1-2)采用halcon软件依次对步骤1-1)采集的图像进行圆弧边缘提取,得到高精度工件圆弧的亚像素坐标值;
(2)采用随机抽样一致性算法整体剔除噪点,过程包括:
2-1)假定高精度工件圆弧边缘模型为圆方程,并随机抽取3个样本点,对模型进行拟合;
2-2)假设高精度工件圆弧边缘容差范围为:sigma,找出距离拟合圆弧容差范围内的点,并统计点的个数;
2-3)重新随机选取3个点,重复步骤2-1)-步骤2-2)的操作,迭代1000次,直到结束迭代拟合;
2-3)每一次拟合后,拟合圆弧容差范围内都有对应的数据点数,找出数据点个数最多的情况,就是最终的拟合结果;
(3)数据点均等采样:让采样点尽可能均等分布,过程包括:
3-1)将待拟合高精度工件圆弧数据均匀的分为三等份;
3-2)由所在圆弧上取三点可得到该圆弧的圆心坐标,依次从三等份高精度工件圆弧数据中各取一个点组成一个坐标点组,计算所有各坐标点组所在圆弧的圆心坐标xi,yi,其中i=1,2,…n/3,n为自然整数;
3-3)将所有圆心坐标xi,yi求平均,得到最后的圆心坐标x,y;
3-4)依据圆弧的起点坐标、终点坐标和圆弧圆心坐标计算出圆弧的夹角,等分圆弧的角度即均等采样待拟合数据;
(4)局部噪点剔除:采用三点构角相等法即相邻三点构建的三角形角度值相近进行局部噪点剔除,过程包括:
4-1)从起始点开始,依次选择相邻三点构建三角形并计算角度值,采用待拟合标准数据点相邻三点构建的三角形角度值大致相同思想,进行噪点剔除;
4-2)通过余弦定理求取向量夹角的cosa,
然后判断夹角是否大于180度,如果大于,则向量夹角为:
angle=360°-arccos(a)*180°/pi(2),
否则夹角为:
angle=arccos(a)*180°/pi(3),
其中,pi为常量3.14159265,a,b为构成夹角的两个向量,a为a,b向量所构成的夹角;
4-3)首先找出大于180度所对应的数据点,进行标记,然后将相邻两个三角形做差,找出偏差大的角度值所包括的点进行标记,将最后的标记点进行剔除;
(5)圆弧分段求圆心:过程包括:
5-1)由所在圆弧上取三点可得到圆心坐标,从而把待拟合圆弧数据(n)从起点到终点均匀的分为三份,每份有n/3个数据点,分别表示为s1[i],s2[j],s3[k],依次从三份中各取一组坐标点(s1[i].x,s1[i].y),(s2[j].x,s2[j].y),(s3[k].x,s3[k].y),计算出所有的圆心坐标(r[i].x,r[i].y),(i,j,k=1,2,…n/3);
5-2)采用聚类即k-means算法找到步骤5-1)所得的所有圆心坐标的聚类中心点:先从步骤5-1)圆心坐标中随机选取三个样本作为簇中心,并计算所有圆心坐标与这三个“簇中心”的距离,将每一个圆心坐标划分到最近的“簇中心”所在的簇中,将新的簇计算各个簇新的“簇中心”,设定三个簇,其中一个是为了聚类正确点,另外两个聚类噪点,距离计算时采用欧氏距离公式,计算各个簇中的样本点均值,将其均值作为新的簇中心;
5-3)聚类数据点最多的簇为待选的簇,以聚类的中心为圆心,以本簇的中心点到本簇最远的点的距离为半径,此时假如为:r[1],根据步骤5-1逆运算)进而反得到待拟合的数据点(s1[1].x,s1[1].y),(s2[1].x,s2[1].y),(s3[1].x,s3[1].y);
(6)采用最小二乘法拟合数据:通过以上步骤三次剔除噪点后采用最小二乘法拟合数据,过程包括:
6-1)已知待拟合圆弧坐标点(xi,yi),其中,i=1,2,…n,n为自然整数,圆方程可以写为:
r2=(x-xc)2 (y-yc)2(4);
6-2)待拟合圆弧坐标点(xi,yi)到圆心(xc,yc)的距离为:
6-3)将点(xi,yi)到圆心(xc,yc)的距离的平方与半径的平方求差:
其中,公式(3)中a,b,c为待求变量,且:a=-2a,b=-2b,c=a2 b2-r2;
6-4)令q(a,b,c)为δi的平方和:
通过求待定变量a,b,c,使得q(a,b,c)的值最小,从而求出圆弧的圆心坐标及半径的最优解,使得该函数的误差平方和最小。
本技术方案采用均等采样数据,三点构角法来从微观上剔除噪点,从而避免最小二乘法拟合噪点数据,能够实现高精度工件的圆弧数据拟合。
本技术方案采从整体、局部,加验证三种方式去除噪点,通过整合三种去燥方法,把误差点有效的剔除,从而利用最小二乘法较好的拟合数据,保证了高精度拟合的重复性,误差满足工业要求。
这种方法操作简单、圆弧数据拟合精度高、重复性好,易于推广应用。
附图说明
图1为实施例的方法流程示意图;
图2为实施例中螺母内圆上采样60°圆弧拟合结果示意图;
图3为实施例中螺母内圆上采样60°圆弧30次实验两算法半径值变化结果示意图;
图4为实施例中螺母内圆上采样60°圆弧30次实验两算法法圆心坐标偏离均值结果示意图;
图5为实施例中螺母内圆上采样80°圆弧拟合结果示意图;
图6为实施例中螺母内圆上采样80°圆弧30次实验两算法半径值变化结果示意图;
图7为实施例中螺母内圆上采样80°圆弧30次实验两算法法圆心坐标偏离均值结果示意图。
具体实施方式
下面结合附图和实施例对本发明的内容作进一步的阐述,但不是对本发明的限定。
实施例:
参照图1,一种用于高精度工件的圆弧数据拟合方法,包括如下步骤:
(1)获取待拟合圆弧数据:获取真实高精度工件的圆弧亚像素坐标,过程包括:
1-1)对于同一件零件,采用远心镜头以垂直于高精度工件所在的平面方向对高精度工件进行多次图像采集;
1-2)采用halcon软件依次对步骤1-1)采集的图像进行圆弧边缘提取,得到高精度工件圆弧的亚像素坐标值;
(2)采用随机抽样一致性算法整体剔除噪点,过程包括:
2-1)假定高精度工件圆弧边缘模型为圆方程,并随机抽取3个样本点,对模型进行拟合;
2-2)假设高精度工件圆弧边缘容差范围为:sigma,找出距离拟合圆弧容差范围内的点,并统计点的个数;
2-3)重新随机选取3个点,重复步骤2-1)-步骤2-2)的操作,迭代1000次,直到结束迭代拟合;
2-3)每一次拟合后,拟合圆弧容差范围内都有对应的数据点数,找出数据点个数最多的情况,就是最终的拟合结果;
(3)数据点均等采样:让采样点尽可能均等分布,过程包括:
3-1)将待拟合高精度工件圆弧数据均匀的分为三等份;
3-2)由所在圆弧上取三点可得到该圆弧的圆心坐标,依次从三等份高精度工件圆弧数据中各取一个点组成一个坐标点组,计算所有各坐标点组所在圆弧的圆心坐标xi,yi,其中i=1,2,…n/3,n为自然整数;
3-3)将所有圆心坐标xi,yi求平均,得到最后的圆心坐标x,y;
3-4)依据圆弧的起点坐标、终点坐标和圆弧圆心坐标计算出圆弧的夹角,等分圆弧的角度即均等采样待拟合数据;
(4)局部噪点剔除:采用三点构角相等法即相邻三点构建的三角形角度值相近进行局部噪点剔除,过程包括:
4-1)从起始点开始,依次选择相邻三点构建三角形并计算角度值,采用待拟合标准数据点相邻三点构建的三角形角度值大致相同思想,进行噪点剔除;
4-2)通过余弦定理求取向量夹角的cosa,
然后判断夹角是否大于180度,如果大于,则向量夹角为:
angle=360°-arccos(a)*180°/pi(2),
否则夹角为:
angle=arccos(a)*180°/pi(3),
其中,pi为常量3.14159265,a,b为构成夹角的两个向量,a为a,b向量所构成的夹角;
4-3)首先找出大于180度所对应的数据点,进行标记,然后将相邻两个三角形做差,找出偏差大的角度值所包括的点进行标记,将最后的标记点进行剔除;
(5)圆弧分段求圆心:过程包括:
5-1)由所在圆弧上取三点可得到圆心坐标,从而把待拟合圆弧数据(n)从起点到终点均匀的分为三份,每份有n/3个数据点,分别表示为s1[i],s2[j],s3[k],依次从三份中各取一组坐标点(s1[i].x,s1[i].y),(s2[j].x,s2[j].y),(s3[k].x,s3[k].y),计算出所有的圆心坐标(r[i].x,r[i].y),(i,j,k=1,2,…n/3);
5-2)采用聚类即k-means算法找到步骤5-1)所得的所有圆心坐标的聚类中心点:先从步骤5-1)圆心坐标中随机选取三个样本作为簇中心,并计算所有圆心坐标与这三个“簇中心”的距离,将每一个圆心坐标划分到最近的“簇中心”所在的簇中,将新的簇计算各个簇新的“簇中心”,设定三个簇,其中一个是为了聚类正确点,另外两个聚类噪点,距离计算时采用欧氏距离公式,计算各个簇中的样本点均值,将其均值作为新的簇中心;
5-3)聚类数据点最多的簇为待选的簇,以聚类的中心为圆心,以本簇的中心点到本簇最远的点的距离为半径,此时假如为:r[1],根据步骤5-1逆运算)进而反得到待拟合的数据点(s1[1].x,s1[1].y),(s2[1].x,s2[1].y),(s3[1].x,s3[1].y);
(6)采用最小二乘法拟合数据:通过以上步骤三次剔除噪点后采用最小二乘法拟合数据,过程包括:
6-1)已知待拟合圆弧坐标点(xi,yi),其中,i=1,2,…n,n为自然整数,圆方程可以写为:
r2=(x-xc)2 (y-yc)2(4);
6-2)待拟合圆弧坐标点(xi,yi)到圆心(xc,yc)的距离为:
6-3)将点(xi,yi)到圆心(xc,yc)的距离的平方与半径的平方求差:
其中,公式(3)中a,b,c为待求变量,且:a=-2a,b=-2b,c=a2 b2-r2;
6-4)令q(a,b,c)为δi的平方和:
通过求待定变量a,b,c,使得q(a,b,c)的值最小,从而求出圆弧的圆心坐标及半径的最优解,使得该函数的误差平方和最小。
对于拟合函数来说,本例方法比起传统方法多了全局去燥点,三角法局部去噪点以及三点定圆聚类找圆心来排除噪点,使余下待拟合数据点基本正确,减少拟合异常情况出现,相比于同种圆弧采样数据拟合传统方法以及halcon中封装的算法,会出现拟合圆心半径有很大的波动,而本例方法能保证拟合圆弧几乎接近于实际情况,重复性高。
采用螺母进行仿真试验,流程如图1所示,其中,60度拟合结果见图2,30次试验与halcon对比结果如图3、图4所示;80度拟合结果见图5,30次实验与halcon对比结果如图6、图7所示。
结果表明,在同种采样数据以及在多次实验情况下,依照本例方法同halcon拟合后对比,依照本例方法的半径值波动小、更稳定,同时圆心坐标到所有实验次数下的平均圆心坐标距离的值较halcon更小,说明依照本例方法无论在半径还是圆心坐标都比halcon重复性稳定性更高,表明依照本例方法获取真实工件圆弧坐标数据,能实现高精度工件圆弧拟合。
1.一种用于高精度工件的圆弧数据拟合方法,其特征在于,包括如下步骤:
(1)获取待拟合圆弧数据:获取真实高精度工件的圆弧亚像素坐标,过程包括:
1-1)对于同一件零件,采用远心镜头以垂直于高精度工件所在的平面方向对高精度工件进行多次图像采集;
1-2)采用halcon软件依次对步骤1-1)采集的图像进行圆弧边缘提取,得到高精度工件圆弧的亚像素坐标值;
(2)采用随机抽样一致性算法整体剔除噪点:过程包括:
2-1)假定高精度工件圆弧边缘模型为圆方程,并随机抽取3个样本点,对模型进行拟合;
2-2)假设高精度工件圆弧边缘容差范围为:sigma,找出距离拟合圆弧容差范围内的点,并统计点的个数;
2-3)重新随机选取3个点,重复步骤2-1)-步骤2-2)的操作,迭代1000次,直到结束迭代拟合;
2-3)每一次拟合后,拟合圆弧容差范围内都有对应的数据点数,找出数据点个数最多的情况,就是最终的拟合结果;
(3)数据点均等采样:让采样点尽可能均等分布,过程包括:
3-1)将待拟合高精度工件圆弧数据均匀的分为三等份;
3-2)由所在圆弧上取三点可得到该圆弧的圆心坐标,依次从三等份高精度工件圆弧数据中各取一个点组成一个坐标点组,计算所有各坐标点组所在圆弧的圆心坐标xi,yi,其中i=1,2,…n/3,n为自然整数;
3-3)将所有圆心坐标xi,yi求平均,得到最后的圆心坐标x,y;
3-4)依据圆弧的起点坐标、终点坐标和圆弧圆心坐标计算出圆弧的夹角,等分圆弧的角度即均等采样待拟合数据;
(4)局部噪点剔除:采用三点构角相等法即相邻三点构建的三角形角度值相近进行局部噪点剔除,过程包括:
4-1)从起始点开始,依次选择相邻三点构建三角形并计算角度值,采用待拟合标准数据点相邻三点构建的三角形角度值大致相同思想,进行噪点剔除;
4-2)通过余弦定理求取向量夹角的cosa,
然后判断夹角是否大于180度,如果大于,则向量夹角为:
angle=360°-arccos(a)*180°/pi(2),
否则夹角为:
angle=arccos(a)*180°/pi(3),
其中,pi为常量3.14159265,a,b为构成夹角的两个向量,a为a,b向量所构成的夹角;
4-3)首先找出大于180度所对应的数据点,进行标记,然后将相邻两个三角形做差,找出偏差大的角度值所包括的点进行标记,将最后的标记点进行剔除;
(5)圆弧分段求圆心:过程包括:
5-1)由所在圆弧上取三点可得到圆心坐标,把待拟合圆弧数据(n)从起点到终点均匀的分为三份,每份有n/3个数据点,分别表示为s1[i],s2[j],s3[k],依次从三份中各取一组坐标点(s1[i].x,s1[i].y),(s2[j].x,s2[j].y),(s3[k].x,s3[k].y),计算出所有的圆心坐标(r[i].x,r[i].y),(i,j,k=1,2,…n/3);
5-2)采用聚类即k-means算法找到步骤5-1)所得的所有圆心坐标的聚类中心点:先从步骤5-1)圆心坐标中随机选取三个样本作为簇中心,并计算所有圆心坐标与这三个“簇中心”的距离,将每一个圆心坐标划分到最近的“簇中心”所在的簇中,将新的簇计算各个簇新的“簇中心”,设定三个簇,其中一个是为了聚类正确点,另外两个聚类噪点,距离计算时采用欧氏距离公式,计算各个簇中的样本点均值,将其均值作为新的簇中心;
5-3)聚类数据点最多的簇为待选的簇,以聚类的中心为圆心,以本簇的中心点到本簇最远的点的距离为半径,此时假如为:r[1],根据步骤5-1逆运算)进而反得到待拟合的数据点(s1[1].x,s1[1].y),(s2[1].x,s2[1].y),(s3[1].x,s3[1].y);
(6)采用最小二乘法拟合数据:通过以上步骤三次剔除噪点后采用最小二乘法拟合数据,过程包括:
6-1)已知待拟合圆弧坐标点(xi,yi),其中,i=1,2,…n,n为自然整数,圆方程可以写为:
r2=(x-xc)2 (y-yc)2(4);
6-2)待拟合圆弧坐标点(xi,yi)到圆心(xc,yc)的距离为:
6-3)将点(xi,yi)到圆心(xc,yc)的距离的平方与半径的平方求差:
其中,公式(3)中a,b,c为待求变量,且:a=-2a,b=-2b,c=a2 b2-r2;
6-4)令q(a,b,c)为δi的平方和:
通过求待定变量a,b,c,使得q(a,b,c)的值最小,从而求出圆弧的圆心坐标及半径的最优解,使得该函数的误差平方和最小。
技术总结