一种抗干扰且同时实现亚像素级精度的圆检测算法
文献发布时间:2023-06-19 11:57:35
技术领域
本发明涉及计算机视觉技术领域,尤其是涉及一种抗干扰且同时实现亚像素级精度的圆检测算法。
背景技术
在机器视觉检测中,经常需要检测圆形产品的尺寸,包括直径和圆心定位等。但是由于生产环境,加工工艺等影响,圆形轮廓上会有很多干扰,比如油污、切削毛刺残留,此时用传统轮廓直接拟合圆检测的话,会出现比较大的检测误差。
发明内容
为解决现有技术和实际情况中存在的上述问题,本发明提供了一种抗干扰且同时实现亚像素级精度的圆检测算法。
为实现上述目的,本发明采用以下内容:
一种抗干扰且同时实现亚像素级精度的圆检测算法,该圆检测算法的具体过程为:
(1)提取被检测产品的圆形轮廓线,并对该圆形轮廓线分别采用水平线和垂直线扫描;
(2)水平线与圆形轮廓线会出现左右两个交点,左交点记为
(3)水平扫描线的中点集合记为
(4)将集合A和集合B分别进行计算,对应得到两条最佳的直线L
(5)统计该圆形轮廓线上所有点到圆心O的距离并记为D
(6)制定一个有效半径r,将D
(7)采用最小二乘法将E中的有效点拟合成圆,并得到亚像素级精度的圆心和半径。
优选的是,所述步骤(4)中L
平面中,任何一条直线的极坐标方程为ρ=xcosθ+ysinθ,θ∈[0,π],将直角坐标系的点坐标P(x,y)映射为极坐标C(ρ,θ),且对C增加一个计数器;当集合A/集合B中所有点映射完成后,计数器所统计出现次数最多的C(ρ,θ)点所表示的直线即为最佳直线L
优选的是,所述步骤(5)中圆形轮廓线的半径R的确定还需要:
预先估算圆形轮廓线的半径最大值r
优选的是,所述半径最大值r
优选的是,所述步骤(6)中制定有效半径r的方法为:给定一个可调的范围容许值σ,有效半径r的取值范围为r∈[R-σ,R+σ]。
为了能更好地提高圆检测的精度,本发明提出来一种抗干扰且同时实现亚像素级精度的圆检测算法,该算法从获取被测产品的圆心、寻找排除轮廓线上干扰的方法、确认亚像素级精度的方法三方面进行分析,实现了快速且更为精准的圆检测。本发明算法的优势为:在被测产品上存在的干扰较多时,本发明的圆检测精度要优于传统轮廓直接拟合圆检测算法。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
图1是本发明采用水平线扫描圆形轮廓线的示意图;
图2是本发明采用垂直线扫描圆形轮廓线的示意图;
图3是被测产品上不存在干扰时的圆形尺寸检测结果图;
图4是采用传统轮廓直接拟合圆检测方法的检测结果图;
图5是采用本发明所提供圆检测算法的一种实施效果图;
图6是采用本发明所提供圆检测算法的另外一种实施效果图;
具体实施方式
为了更清楚地说明本发明,下面结合优选实施例对本发明做进一步的说明。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
一种抗干扰且同时实现亚像素级精度的圆检测算法,该圆检测算法的具体过程为:
(1)提取被检测产品的圆形轮廓线,并对该圆形轮廓线分别采用水平线和垂直线扫描。在搜索圆形轮廓线的过程中,可制定一个搜索范围圆环,圆环即是圆形轮廓线的提取范围,超出这个圆环的其它轮廓将不作为接下来步骤的计算内容。
(2)水平线与圆形轮廓线会出现左右两个交点,如图1所示,左交点记为
(3)水平扫描线的中点集合记为
(4)将集合A和集合B分别进行计算,对应得到两条最佳的直线L
具体的,L
平面中,任何一条直线的极坐标方程为ρ=xcosθ+ysinθ,θ∈[0,π],将直角坐标系的点坐标P(x,y)映射为极坐标C(ρ,θ),且对C增加一个计数器;当集合A/集合B中所有点映射完成后,计数器所统计出现次数最多的C(ρ,θ)点所表示的直线即为最佳直线L
(5)统计该圆形轮廓线上所有点到圆心O的距离并记为D
值得注意的是,圆形轮廓线的半径R的确定还需要:
预先估算圆形轮廓线的半径最大值r
其中,半径最大值r
(6)制定一个有效半径r,将D
给定一个可调的范围容许值σ,有效半径r的取值范围为r∈[R-σ,R+σ],有效半径r可用来排除被测产品上非圆形的干扰。
(7)采用最小二乘法将E中的有效点拟合成圆,并得到亚像素级精度的圆心和半径。在圆形轮廓线上的干扰点都被排除之后,剩下的就是有效的圆周轮廓点,将这些有效圆周轮廓点拟合成圆后,即得到较为精准的圆参数。
实施例
如图3所示,这是被检测产品上不存在干扰时的圆形尺寸结果,将其测试的参数数据作为一个参照数据G0。
如图4所示,被测产品上存在少量干扰,并且其是采用传统轮廓直接拟合圆检测的方法进行检测的,其测试参数数据作为比对数据G1,通过对比G1和G0可看出,被测产品的实际测量圆参数与理论圆参数存在误差。
如图5所示,被测产品上同样存在少量干扰,但其是采用本发明所提供圆检测算法进行测量的,其测试参数数据作为比对数据G2。
如图6所示,被测产品上存在较多的干扰,其同样采用本发明所提供圆检测算法进行测量,其测试参数数据作为比对数据G3。
表1:四组测试参数数据的比较
结论:通过表1中的比较可发现,采用本发明所提供的圆检测算法,最终圆参数测量数据的精度是明显要优于传统轮廓直接拟合圆检测算法的,误差值能达到较低程度。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
- 一种抗干扰且同时实现亚像素级精度的圆检测算法
- 一种基于亚像素级角点检测的条码识别算法