本发明涉及计算机软件工程技术领域,特别涉及一种新的利用计算机视觉进行印制电路板图像偏转矫正的技术,即基于投影过滤的pcb定位装置及方法。
背景技术:
pcb(printedcircuitboard,印制电路板)图像定位是从pcb生产流水线上采集的包含pcb和背景的图片中识别出pcb的旋转角度和所在区域坐标。精确定位是pcb缺陷检测流程中重要的一步,定位的精度和速度对pcb检测效果影响很大。目前常用的pcb定位方法是根据mark标记孔或从图像中提取sift特征点,计算变换矩阵进行定位。然而,根据标记点定位方法容易受制作精度和定位算法的影响,导致配准出现较大误差。而且不是所有pcb板都有标记点,因此该方法的应用范围非常受限。基于图像特征的定位方法虽然适用范围很广,但由于提取特征的计算量非常大,因此效率很低,会大幅影响算法运行速度。
技术实现要素:
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种基于投影过滤的pcb定位装置。
本发明的另一个目的在于提出一种基于投影过滤的pcb定位方法,该方法计算量小,速度快,精度高,仅利用图像的统计信息即可进行像素级别的定位。
为达到上述目的,本发明一方面实施例提出了基于投影过滤的pcb定位装置,包括:图像采集模块,用于采集待定位pcb板的灰度图像;角度计算模块,所述角度计算模块与所述图像采集模块连接,用于估计所述待定位pcb板的倾斜角度;投影模块,所述投影模块与所述角度计算模块连接,用于将所述灰度图像按照所述倾斜角度进行修正,并统计x轴、y轴方向的投影数组;峰值提取模块,所述峰值提取模块与所述投影模块连接,用于提取所述投影数组中的投影数组峰值序列;阈值计算模块,所述阈值计算模块与所述峰值提取模块连接,用于利用相关阈值算法计算所述投影数组峰值序列,得到过滤阈值;背景过滤模块,所述背景过滤模块分别与所述图像采集模块、所述峰值提取模块和所述阈值计算模块连接,用于利用所述过滤阈值和所述峰值序列对所述灰度图像进行过滤,得到pcb板区域。
本发明实施例的基于投影过滤的pcb定位装置,利用图像中pcb与背景区域像素特征的不同,在投影数组上对pcb的坐标进行快速且高精度的定位,无需在pcb上印制标记点,也无需提取图像特征点,仅利用图像的统计信息即可进行像素级别的定位,极大的降低了计算量,为后续pcb检测步骤提供重要的前置条件。
另外,根据本发明上述实施例的基于投影过滤的pcb定位装置还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述投影模块具体用于:根据所述倾斜角度构造仿射变换矩阵;利用所述仿射变换矩阵将所述灰度图像转正,得到转正图像;获取并处理所述转正图像的x轴和y轴,得到所述投影数组。
进一步地,在本发明的一个实施例中,所述投影数组的每个极大峰点均比相邻左侧和相邻右侧值大。
进一步地,在本发明的一个实施例中,所述背景过滤模块具体用于:处理所述峰值序列得到每个峰值的斜率;将所述每个峰值的斜率与所述过滤阈值进行比较,若当前斜率大于所述过滤阈值,则保留所述当前斜率,以构建峰值斜率序列,若当前斜率小于所述过滤阈值,则删除所述当前斜率;分别求取所述峰值序列和所述峰值斜率序列最大值,得到候选边序列;提取所述候选边序列中最大坐标与最小坐标,所述最大坐标至所述最小坐标为所述pcb板区域。
进一步地,在本发明的一个实施例中,利用相关斜率计算公式,如d=((a[x]-a[x-1]) (a[x]-a[x 1]))/2,计算所述每个峰值的斜率d,其中a为投影数组,x为当前极大峰值。
为达到上述目的,本发明另一方面实施例提出了基于投影过滤的pcb定位方法,包括以下步骤:采集待定位pcb板的灰度图像;计算所述待定位pcb板的倾斜角度;将所述灰度图像按照所述倾斜角度进行修正,并统计x轴、y轴方向的投影数组;提取所述投影数组中的投影数组峰值序列;利用相关阈值算法计算所述投影数组峰值序列,得到过滤阈值;利用所述过滤阈值和所述峰值序列对所述灰度图像进行过滤,得到pcb板区域。
本发明实施例的基于投影过滤的pcb定位方法,利用图像中pcb与背景区域像素特征的不同,在投影数组上对pcb的坐标进行快速且高精度的定位,无需在pcb上印制标记点,也无需提取图像特征点,仅利用图像的统计信息即可进行像素级别的定位,极大的降低了计算量,为后续pcb检测步骤提供重要的前置条件。
另外,根据本发明上述实施例的基于投影过滤的pcb定位方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述将所述灰度图像按照所述倾斜角度进行修正,并统计x轴、y轴方向的投影数组,进一步包括:根据所述倾斜角度构造仿射变换矩阵;利用所述仿射变换矩阵将所述灰度图像转正,得到转正图像;获取并处理所述转正图像的x轴和y轴,得到所述投影数组。
进一步地,在本发明的一个实施例中,所述投影数组的每个极大峰点均比相邻左侧和相邻右侧值大。
进一步地,在本发明的一个实施例中,所述利用相关阈值算法计算所述投影数组峰值序列,得到过滤阈值,进一步包括:处理所述峰值序列得到每个峰值的斜率;将所述每个峰值的斜率与所述过滤阈值进行比较,若当前斜率大于所述过滤阈值,则保留所述当前斜率,以构建峰值斜率序列,若当前斜率小于所述过滤阈值,则删除所述当前斜率;分别求取所述峰值序列和所述峰值斜率序列最大值,得到候选边序列;提取所述候选边序列中最大坐标与最小坐标,所述最大坐标至所述最小坐标为所述pcb板区域。
进一步地,在本发明的一个实施例中,利用相关斜率计算公式,如d=((a[x]-a[x-1]) (a[x]-a[x 1]))/2,计算所述每个峰值的斜率d,其中a为投影数组,x为当前极大峰值。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的基于投影过滤的pcb定位装置结构示意图;
图2为根据本发明一个具体示例的基于投影过滤的pcb定位装置的执行示意图;
图3为根据本发明一个实施例的基于投影过滤的pcb定位方法流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的基于投影过滤的pcb定位装置及方法,首先将参照附图描述根据本发明实施例提出的基于投影过滤的pcb定位装置。
图1是本发明一个实施例的基于投影过滤的pcb定位装置结构示意图。
如图1所示,该装置10包括:图像采集模块101、角度计算模块102、投影模块103、峰值提取模块104、阈值计算模块105和背景过滤模块106。
其中,图像采集模块101用于采集待定位pcb板的灰度图像。角度计算模块102与图像采集模块101连接,用于计算待定位pcb板的倾斜角度。
也就是说,如图2所示,将图像采集模块101采集的灰度图像输入角度计算模块102中,计算并输出pcb板的倾斜角度估计值。
其中,估计值可采用基于radon变换的倾角计算方法、radon变换迭代计算方法、增强radon变换迭代计算方法以及相关倾斜角度估计的其它计算方法计算,以迅速且较为准确地计算pcb的倾角。
投影模块103与角度计算模块102连接,用于将灰度图像按照倾斜角度进行修正,并统计x轴、y轴方向的投影数组。
进一步地,在本发明的一个实施例中,投影模块103具体用于:
根据倾斜角度构造仿射变换矩阵;
利用仿射变换矩阵将灰度图像转正,得到转正图像;
获取并处理转正图像的x轴和y轴,得到投影数组。
具体而言,如图2所示,将角度计算模块102计算得到的pcb板的倾角估计值输入投影模块103中,根据倾角估计值构造仿射变换矩阵将灰度图像转正,获得转正图像,转正图像分别向x轴、y轴求均值(或者取和、方差、中值),得到并输出一维投影数组。
需要说明的是,转正过程采用最近邻差值、双线性插值、双三次插值、像素区域关系重采样、lanczos插值法以及其它的插值计算方法。
峰值提取模块104与投影模块103连接,用于提取投影数组中的峰值序列。
其中,峰值序列为投影数组中所有极大峰点组成,投影数组的每个极大峰点均比相邻左侧和相邻右侧值大。
具体而言,如图2所示,将投影模块103输出的一维投影数组输入峰值提取模块104,在一维投影数组中找到全部极大峰点,并将这些点构成峰值序列。
例如,设数组a长度为n,若位置x为极大峰值,那么a[x]>a[x-1]且a[x]>a[x 1]。也就是说,数组的每个极大峰就是该点当前值比相邻左侧值和相邻右侧值都要大的点,根据该性质遍历数组可得到一系列极大峰的坐标,即峰值序列。阈值计算模块105与峰值提取模块104连接,用于利用相关阈值算法计算所述投影数组峰值序列,得到过滤阈值t。
可以理解为,向阈值计算模块105输入峰值提取模块104得到的一维投影数组峰值序列,即输入投影数组峰值分布,利用相关阈值算法计算,得到峰值分类阈值。
背景过滤模块106分别与图像采集模块101、峰值提取模块104和阈值计算模块105连接,用于利用过滤阈值和峰值序列对灰度图像进行过滤,得到pcb板区域。
进一步地,在本发明的一个实施例中,背景过滤模块105具体用于:
处理峰值序列得到每个峰值的斜率;
将每个峰值的斜率与过滤阈值进行比较,若当前斜率大于过滤阈值,则保留当前斜率,以构建峰值斜率序列,若当前斜率小于过滤阈值,则删除当前斜率;
分别求取峰值序列和峰值斜率序列最大值,得到候选边序列;
提取候选边序列中最大坐标与最小坐标,最大坐标至最小坐标为pcb板区域。
其中,使用d=((a[x]-a[x-1]) (a[x]-a[x 1]))/2斜率公式,计算每个峰值的斜率,式中d为峰值斜率,a为投影数组,x为当前极大峰值,需要说明的是,本发明实施例中主要使用了上述斜率公式,但不仅限于该公式,也可为其他常用斜率公式,在此不做具体限定,本领域技术人员可根据实际情况进行调整。
可以理解是,要在图像中定位到pcb的位置,就需要定位到它的边缘坐标。边缘在投影数组上会形成一个明显的峰,这个峰的斜率和峰值绝对值都非常大,根据这个性质和之前得到的所有峰值的序列,就可以得到pcb区域的坐标。
因此,对于上述峰值提取模块104得到的每个峰值计算斜率d=((a[x]-a[x-1]) (a[x]-a[x 1]))/2或其它斜率计算公式,阈值计算模块105得到分类阈值t,进行比较,若d>t,则保留此极大峰,若d<t,则删除该峰,从而尽量减少噪声的干扰。同时,过滤阈值需宽松,让更多的峰召回,以免删除有用的峰。对于峰值序列和峰值斜率序列分别应用阈值分割,对分割后的两个数组对应元素求最大值,得到候选边序列,其中,元素值为1的是候选边。得到所有候选边后,取候选边的最大坐标xmin和最小坐标xmax,此范围就是pcb区域,其他部分就是背景区域。
根据本发明实施例提出的基于投影过滤的pcb定位装置,与相关技术相比,具有以下的有效效果:
1)计算量低,无需提取特征点,只利用统计信息进行计算即可。
2)速度快,计算量大幅降低,速度显著加快。
3)精度高,不受制造工艺影响,是像素精度级别的结果。
其次参照附图描述根据本发明实施例提出的基于投影过滤的pcb定位方法。
图3是本发明一个实施例的基于投影过滤的pcb定位方法流程图。
如图3所示,该基于投影过滤的pcb定位方法包括以下步骤:
在步骤s301中,采集待定位pcb板的灰度图像。
在步骤s302中,计算待定位pcb板的倾斜角度。
在步骤s303中,将灰度图像按照倾斜角度进行修正,并统计x轴、y轴方向的投影数组。
进一步地,在本发明的一个实施例中,将灰度图像按照倾斜角度进行修正,并统计x轴、y轴方向的投影数组,进一步包括:
根据倾斜角度构造仿射变换矩阵;
利用仿射变换矩阵将灰度图像转正,得到转正图像;
获取并处理转正图像的x轴和y轴,得到投影数组。
在步骤s304中,提取投影数组中的投影数组峰值序列。
其中,投影数组的每个极大峰点均比相邻左侧和相邻右侧值大。
在步骤s305中,利用相关阈值算法计算投影数组峰值序列,得到过滤阈值。
在步骤s306中,利用过滤阈值和峰值序列对灰度图像进行过滤,得到pcb板区域。
进一步地,在本发明的一个实施例中,利用相关阈值算法计算投影数组峰值序列,得到过滤阈值,进一步包括:
处理峰值序列得到每个峰值的斜率;
将每个峰值的斜率与过滤阈值进行比较,若当前斜率大于过滤阈值,则保留当前斜率,以构建峰值斜率序列,若当前斜率小于过滤阈值,则删除当前斜率;
分别求取峰值序列和峰值斜率序列最大值,得到候选边序列;
提取候选边序列中最大坐标与最小坐标,最大坐标至最小坐标为pcb板区域。
其中,利用d=((a[x]-a[x-1]) (a[x]-a[x 1]))/2斜率计算公式,计算所述每个峰值的斜率,式中d为峰值斜率,a为投影数组,x为当前极大峰值,需要说明的是,本发明实施例中主要使用了上述斜率公式,但不仅限于该公式,也可为其他常用斜率公式,在此不做具体限定,本领域技术人员可根据实际情况进行调整。
根据本发明实施例提出的基于投影过滤的pcb定位方法,利用图像中pcb与背景区域像素特征的不同,在投影数组上对pcb的坐标进行快速且高精度的定位,无需在pcb上印制标记点,也无需提取图像特征点,仅仅是利用图像的统计信息即可进行像素级别的定位,极大的降低了计算量,为后续pcb检测步骤提供重要的前置条件。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
1.一种基于投影过滤的pcb定位装置,其特征在于,包括:
图像采集模块,用于采集待定位pcb板的灰度图像;
角度计算模块,所述角度计算模块与所述图像采集模块连接,用于计算所述待定位pcb板的倾斜角度;
投影模块,所述投影模块与所述角度计算计模块连接,用于将所述灰度图像按照所述倾斜角度进行修正,并统计x轴、y轴方向的投影数组;
峰值提取模块,所述峰值提取模块与所述投影模块连接,用于提取所述投影数组中的投影数组峰值序列;
阈值计算模块,所述阈值计算模块与所述峰值提取模块连接,用于利用相关阈值算法计算所述投影数组峰值序列,得到过滤阈值;以及
背景过滤模块,所述背景过滤模块分别与所述图像采集模块、所述峰值提取模块和所述阈值计算模块连接,用于利用所述过滤阈值和所述峰值序列对所述灰度图像进行过滤,得到pcb板区域。
2.根据权利要求1所述的基于投影过滤的pcb定位装置,其特征在于,所述投影模块具体用于:
根据所述倾斜角度构造仿射变换矩阵;
利用所述仿射变换矩阵将所述灰度图像转正,得到转正图像;
获取并处理所述转正图像的x轴和y轴,得到所述投影数组。
3.根据权利要求1所述的基于投影过滤的pcb定位装置,其特征在于,所述投影数组的每个极大峰点均比相邻左侧和相邻右侧值大。
4.根据权利要求1所述的基于投影过滤的pcb定位装置,其特征在于,所述背景过滤模块具体用于:
处理所述峰值序列得到每个峰值的斜率;
将所述每个峰值的斜率与所述过滤阈值进行比较,若当前斜率大于所述过滤阈值,则保留所述当前斜率,以构建峰值斜率序列,若当前斜率小于所述过滤阈值,则删除所述当前斜率;
分别求取所述峰值序列和所述峰值斜率序列最大值,得到候选边序列;
提取所述候选边序列中最大坐标与最小坐标,所述最大坐标至所述最小坐标为所述pcb板区域。
5.根据权利要求4所述的基于投影过滤的pcb定位装置,其特征在于,利用相关斜率计算公式d=((a[x]-a[x-1]) (a[x]-a[x 1]))/2,计算所述每个峰值的斜率d,其中a为投影数组,x为当前极大峰值。
6.一种基于投影过滤的pcb定位方法,其特征在于,包括以下步骤:
采集待定位pcb板的灰度图像;
计算所述待定位pcb板的倾斜角度;
将所述灰度图像按照所述倾斜角度进行修正,并统计x轴、y轴方向的投影数组;
提取所述投影数组中的投影数组峰值序列;
利用相关阈值算法计算所述投影数组峰值序列,得到过滤阈值;
利用所述过滤阈值和所述峰值序列对所述灰度图像进行过滤,得到pcb板区域。
7.根据权利要求6所述的基于投影过滤的pcb定位方法,其特征在于,所述将所述灰度图像按照所述倾斜角度进行修正,并统计x轴、y轴方向的投影数组,进一步包括:
根据所述倾斜角度构造仿射变换矩阵;
利用所述仿射变换矩阵将所述灰度图像转正,得到转正图像;
获取并处理所述转正图像的x轴和y轴,得到所述投影数组。
8.根据权利要求6所述的基于投影过滤的pcb定位方法,其特征在于,所述投影数组的每个极大峰点均比相邻左侧和相邻右侧值大。
9.根据权利要求6所述的基于投影过滤的pcb定位方法,其特征在于,所述利用相关阈值算法计算所述投影数组峰值序列,得到过滤阈值,进一步包括:
处理所述峰值序列得到每个峰值的斜率;
将所述每个峰值的斜率与所述过滤阈值进行比较,若当前斜率大于所述过滤阈值,则保留所述当前斜率,以构建峰值斜率序列,若当前斜率小于所述过滤阈值,则删除所述当前斜率;
分别求取所述峰值序列和所述峰值斜率序列最大值,得到候选边序列;
提取所述候选边序列中最大坐标与最小坐标,所述最大坐标至所述最小坐标为所述pcb板区域。
10.根据权利要求9所述的基于投影过滤的pcb定位方法,其特征在于,利用相关斜率计算公式d=((a[x]-a[x-1]) (a[x]-a[x 1]))/2,计算所述每个峰值的斜率d,其中a为投影数组,x为当前极大峰值。
技术总结