一种亚像素精度的直线拟合方法及系统

文档序号:32950813发布日期:2023-01-14 13:27阅读:198来源:国知局
一种亚像素精度的直线拟合方法及系统

1.本发明涉及机器视觉技术领域,具体而言,涉及一种亚像素精度的直线拟合方法及系统。


背景技术:

2.随着工业的发展对工件材料的尺寸要求越来越高,准确地检测工件的尺寸等信息对精密电子制造,精密机械制造起着重要的作用。目前国内多数对工件的直线边缘检测都只是像素级别的,而且受工件加工因素的影响,检测结果的抗干扰能力较差。像素级别的、不稳定的直线检测已经无法满足高精度工业制造领域的需求,限制了高精度工业的发展。
3.传统的直线检测技术通常是使用边缘检测算子,如sobel,prewitt,canny等,检测出图片中直线区域的边缘信息,再将边缘点用最小二乘法拟合成直线。但是经典的边缘的检测算子检测出的边缘点坐标通常都是整数的,难以精确到亚像素精度,因此会在拟合过程中带入误差,而且检测出的边缘点只有边缘的变化极值信息,没有区分边缘明暗变化的方向。而传统的最小二乘拟合直线的算法容易受到少数距离直线比较远的离群点的干扰,抗干扰能力比较差,不够稳定。


技术实现要素:

4.为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种亚像素精度的直线拟合方法及系统,基于极性和属性选择更为合适的候选点,并进行高精度的直线检测。
5.本发明的实施例是这样实现的:
6.第一方面,本发明实施例提供一种亚像素精度的直线拟合方法,包括以下步骤:
7.在图像中,设置搜索区域roi,在roi沿若干条搜索线方向计算沿搜索线方向的搜索点灰度的差分值,差分值满足阈值点为候选点;
8.在搜索线上,对候选点,取其近邻的三个点拟合最高的位置作为候选点的亚像素坐;
9.依照顺序将具备亚像素坐标的候选点区分为低灰度到高灰度值变化,极性为黑到白,或者低灰度到高灰度值变化,极性为白到黑,并记录候选点的属性,以得到多个属性的候选点集;
10.对上述候选点集分别进行直线拟合。
11.为了解决现有技术中的问题,本方法通过在图像中,设置搜索区域roi,在roi沿若干条搜索线方向计算沿搜索线方向的搜索点灰度的差分值,差分值满足阈值点为候选点;基于不同搜索线确定搜索点的灰度值,并选取多个近邻点求取差值,进而选择更为合理的候选点的亚像素坐标,基于上述选择的候选点进行直线拟合。本发明基于极性和属性选择更为合适的候选点,并进行高精度的直线检测。
12.基于第一方面,在本发明的一些实施例中,上述在roi沿若干条搜索线方向计算沿
搜索线方向的搜索点灰度的差分值的方法包括以下步骤:
13.首先指定搜索方向的极性,灰度暗到亮变化,或者灰度亮到暗变化,然后针对每个搜索点计算其搜索线垂直方向的若干相邻点的灰度值,并取对应的多个相邻点的灰度值的平均值为搜索点的灰度值。
14.基于第一方面,在本发明的一些实施例中,该亚像素精度的直线拟合方法还包括以下步骤:
15.如果搜索线上的搜索点或搜索点上垂直相邻的若干点的像素坐标为整数坐标,则直接取该点的灰度值;反之,则采用近邻法计算取得搜索点的亚像素拟合灰度值。
16.基于第一方面,在本发明的一些实施例中,上述采用近邻法计算取得搜索点的亚像素拟合灰度值的方法包括以下步骤:
17.计算倾斜搜索线上某一拟合点的坐标到四个相邻整数坐标点的垂直距离和水平距离;
18.根据距离的值计算不同灰度值所占的权重,得到该拟合点灰度值的双线性插值结果:f’=w*(h*f
11
)+(1-h)*f
01
)+(1-w)*(h*f
10
+(1-h)*f
00
),式中,w、h分别为拟合点距离其左上角相邻整数像素点的距离,f
00
、f
01
、f
10
和f
11
分别为拟合点距离最近的四个整数像素点的灰度值。
19.基于第一方面,在本发明的一些实施例中,上述对上述候选点集分别进行直线拟合的方法包括以下步骤:
20.采用最小二乘法拟合,得到拟合线;
21.计算候选点集中每个点到拟合线的距离,将距离超过预设的阈值的点标记为异常点;
22.统计异常点的个数,如果异常点的个数超过预置的数量阈值,则表示拟合的直线不可靠,此时,采用ransac算法进行直线拟合。
23.基于第一方面,在本发明的一些实施例中,上述多个属性的候选点集包括第一个满足阈值的点集、差分值最大的点集以及最后一个满足阈值的点集。
24.第二方面,本发明实施例提供一种亚像素精度的直线拟合系统,包括差分计算模块、亚像素坐标模块、候选点集记录模块以及直线拟合模块,其中:
25.差分计算模块,用于在图像中,设置搜索区域roi,在roi沿若干条搜索线方向计算沿搜索线方向的搜索点灰度的差分值,差分值满足阈值点为候选点;
26.亚像素坐标模块,用于在搜索线上,对候选点,取其近邻的三个点拟合最高的位置作为候选点的亚像素坐;
27.候选点集记录模块,用于依照顺序将具备亚像素坐标的候选点区分为低灰度到高灰度值变化,极性为黑到白,或者低灰度到高灰度值变化,极性为白到黑,并记录候选点的属性,以得到多个属性的候选点集;
28.直线拟合模块,用于对上述候选点集分别进行直线拟合。
29.为了解决现有技术中的问题,本系统通过差分计算模块、亚像素坐标模块、候选点集记录模块以及直线拟合模块的配合,通过在图像中,设置搜索区域roi,在roi沿若干条搜索线方向计算沿搜索线方向的搜索点灰度的差分值,差分值满足阈值点为候选点;基于不同搜索线确定搜索点的灰度值,并选取多个近邻点求取差值,进而选择更为合理的候选点
的亚像素坐标,基于上述选择的候选点进行直线拟合。本发明基于极性和属性选择更为合适的候选点,并进行高精度的直线检测。
30.第三方面,本技术实施例提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器。当一个或多个程序被处理器执行时,实现如上述第一方面中任一项的方法。
31.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项的方法。
32.本发明实施例至少具有如下优点或有益效果:
33.本发明实施例提供一种亚像素精度的直线拟合方法及系统,通过在图像中,设置搜索区域roi,在roi沿若干条搜索线方向计算沿搜索线方向的搜索点灰度的差分值,差分值满足阈值点为候选点;基于不同搜索线确定搜索点的灰度值,并选取多个近邻点求取差值,进而选择更为合理的候选点的亚像素坐标,基于上述选择的候选点进行直线拟合。本发明基于极性和属性选择更为合适的候选点,并进行高精度的直线检测。
附图说明
34.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
35.图1为本发明实施例一种亚像素精度的直线拟合方法的流程图;
36.图2为本发明实施例中像素点为整数和非整数坐标的搜索线示意图;
37.图3为本发明实施例中沿搜索线垂直方向的邻域示意图;
38.图4为本发明实施例中搜索点的亚像素拟合灰度值示意图;
39.图5为本发明实施例具备亚像素坐标的候选点排序示意图;
40.图6为本发明实施例候选点拟合最佳坐标示意图;
41.图7为本发明实施例不同属性的候选点直线拟合结果示意图;
42.图8为本发明实施例提供的一种电子设备的结构框图。
43.附图标记说明:101、存储器;102、处理器;103、通信接口。
具体实施方式
44.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
45.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
47.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
48.在本发明实施例的描述中,“多个”代表至少2个。
49.实施例:
50.如图1-图7所示,第一方面,本发明实施例提供一种亚像素精度的直线拟合方法,包括以下步骤:
51.s1、在图像中,设置搜索区域roi,在roi沿若干条搜索线方向计算沿搜索线方向的搜索点灰度的差分值,差分值满足阈值点为候选点;
52.进一步地,包括:首先指定搜索方向的极性,灰度暗到亮变化,或者灰度亮到暗变化,然后针对每个搜索点计算其搜索线垂直方向的若干相邻点的灰度值,并取对应的多个相邻点的灰度值的平均值为搜索点的灰度值。
53.进一步地,还包括:如果搜索线上的搜索点或搜索点上垂直相邻的若干点的像素坐标为整数坐标,则直接取该点的灰度值;反之,则采用近邻法计算取得搜索点的亚像素拟合灰度值。
54.进一步地,上述采用近邻法计算取得搜索点的亚像素拟合灰度值的方法包括以下步骤:
55.计算倾斜搜索线上某一拟合点的坐标到四个相邻整数坐标点的垂直距离和水平距离;根据距离的值计算不同灰度值所占的权重,得到该拟合点灰度值的双线性插值结果:
56.f’=w*(h*f
11
)+(1-h)*f
01
)+(1-w)*(h*f
10
+(1-h)*f
00
),式中,w、h分别为拟合点距离其左上角相邻整数像素点的距离,f
00
、f
01
、f
10
和f
11
分别为拟合点距离最近的四个整数像素点的灰度值。
57.在本发明的一些实施例中,在图像矩阵中,每个方格表示一个像素,其位置坐标用白色的圆圈表示,其灰度值用填充方格的颜色标识,纯白色表示灰度值为255,纯黑色表示灰度值为0。
58.在搜索线上,逐一将与搜索点相邻点(左边和右边,如果没有,左边或者右边,用自身代替)的灰度值进行相减,d(i,j)=[f(i+1,j)-f(i-1,j)]/2,其中:f(i+1,j)是图像中点(i+1,j)处的灰度值,f(i-1,j)是图像中点(i-1,j)处的灰度值,d(i,j)表示(i,j)处灰度的差分值,该值大于阈值的才认为该点为候选边缘点。如图2-图4所示,沿搜素线计算差分,红色的点表表示搜索点,倾斜的线上,红色点相距也是一个像素的距离,红色点灰度值由近邻的四个像素的灰度值拟合而成。上一步中,为了平抑干扰,对每一个搜索点,沿与搜索线垂直方向取若干相邻点作为邻域,求邻域的的均值作为该点的灰度值,并作为差分计算的依据。
[0059]
如图5所示,如果搜索线上的搜索点或者其相邻点的像素坐标为整数坐标,则直接取该点的灰度值;反之,则采用近邻法计算取得搜索点的亚像素拟合灰度值。沿水平方向搜
索线,获得六个点的差分结果,4,5点差分最大(极性是黑到白),5,6点的变化也大,是极性是白到黑,另外,可知,满足阈值的有2,3,4,6,2是第一个满足阈值的点,6是最后一个满足阈值的点,4是最佳点。
[0060]
s2、在搜索线上,如图6所示,对满足阈值要求的候选点,取近邻的三个点拟合最高的位置作为候选点的亚像素坐标;
[0061]
s3、依照顺序将具备亚像素坐标的候选点区分为低灰度到高灰度值变化,极性为黑到白,或者低灰度到高灰度值变化,极性为白到黑,并记录候选点的属性,以得到多个属性的候选点集;上述多个属性的候选点集包括第一个满足阈值的点集、差分值最大的点集以及最后一个满足阈值的点集。
[0062]
在本发明的一些实施例中,依照顺序将具备亚像素坐标的候选点区分为低灰度到高灰度值变化,极性为黑到白,或者低灰度到高灰度值变化,极性为白到黑,同时记录候选点中差分值第一个满足阈值的点为一个点集,最大差分点为一个点集,以及最后一个满足阈值的点为一个点集,将这些候选点分别归类为相应的点集,每个类型的点集中,每条搜索线上有且只有一个点,或者某条搜索线上没有满足要求的点。
[0063]
s4、对上述具备亚像素坐标候选点集分别进行直线拟合。
[0064]
进一步地,包括:采用最小二乘法拟合,得到拟合线;计算候选点集中每个点到拟合线的距离,将距离超过预设的阈值的点标记为异常点;统计异常点的个数,如果异常点的个数超过预置的数量阈值,则表示拟合的直线不可靠,此时,采用ransac算法进行直线拟合。
[0065]
在本发明的一些实施例中,如图7所示,对上述候选点集按照不同的要求进行筛选,然后进行直线拟合,例如拟合最佳直线时,选择最大差分点集;拟合第一直线时,选择第一点集。
[0066]
为了解决现有技术中的问题,本方法通过在图像中,设置搜索区域roi,在roi沿若干条搜索线方向计算沿搜索线方向的搜索点灰度的差分值,差分值满足阈值点为候选点;基于不同搜索线确定搜索点的灰度值,并选取多个近邻点求取差值,进而选择更为合理的候选点的亚像素坐标,基于上述选择的候选点进行直线拟合。本发明基于极性和属性选择更为合适的候选点,并进行高精度的直线检测。
[0067]
基于第一方面,在本发明的一些实施例中,该亚像素精度的直线拟合方法还包括以下步骤:
[0068]
在图像矩阵中,每个方格表示一个像素,其位置坐标用白色的圆圈表示,其灰度值用填充方格的颜色标识,纯白色表示灰度值为255,纯黑色表示灰度值为0;
[0069]
d(i,j)=[f(i+1,j)-f(i-1,j)]/2,其中:f(i+1,j)是图像中点(i+1,j)处的灰度值,f(i-1,j)是图像中点(i-1,j)。
[0070]
基于第一方面,在本发明的一些实施例中,上述采用近邻法计算取得搜索点的亚像素拟合灰度值的方法包括以下步骤:
[0071]
计算倾斜搜索线上某一拟合点的坐标到四个相邻整数坐标点的垂直距离和水平距离;
[0072]
根据距离的值计算不同灰度值所占的权重,得到该拟合点灰度值的双线性插值结果:f’=w*(h*f
11
)+(1-h)*f
01
)+(1-w)*(h*f
10
+(1-h)*f
00
),式中,w、h分别为拟合点距离其左
processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0087]
在本技术所提供的实施例中,应该理解到,所揭露的方法及系统和方法,也可以通过其它的方式实现。以上所描述的方法及系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的方法及系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0088]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0089]
第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器102执行时实现如上述第一方面中任一项的方法。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0090]
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0091]
对于本领域技术人员而言,显然本技术不限于上述示范性实施例的细节,而且在不背离本技术的精神或基本特征的情况下,能够以其它的具体形式实现本技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1