一种基于正弦曲线扫描的工业部件视觉边缘检测方法与流程

文档序号:24488759发布日期:2021-03-30 21:13阅读:220来源:国知局
一种基于正弦曲线扫描的工业部件视觉边缘检测方法与流程

本发明涉及图像处理的技术领域,尤其是一种基于正弦曲线扫描的工业部件视觉边缘检测方法。



背景技术:

现有的边缘检测技术大多基于底面光来获取工件的轮廓,使工件和底光在相机采集的图片中有明显的明暗差别,再通过阈值分割和边缘提取(如canny边缘提取)获得工件的轮廓。在这种情况下,只要像素点的值与周围点有变化即可判定为边缘,但是也存在很多局限性,最显然的就是无法检测工件表面的边缘。如果需要同时进行表面缺陷检测和尺寸测量,以节约大量检测时间,表面光的边缘提取就是重中之重。在表面光的情况下,光照条件、工件材质和工件高低变化结构导致的复杂纹理会对边缘检测造成极大的影响。



技术实现要素:

本发明要解决的技术问题是:提供一种基于正弦曲线扫描的工业部件视觉边缘检测方法,在表面光的情况下,克服光照条件、工件材质和工件高低变化结构导致的复杂纹理的不利因素,完成对复杂工件的多项目的高精度尺寸测量。

本发明解决其技术问题所采用的技术方案是:一种基于正弦曲线扫描的工业部件视觉边缘检测方法,具体步骤如下:

第一步骤、采集灰度图像:利用工业相机采集灰度图像;

第二步骤、kirsch边缘检测:对图像进行梯度检测,使用kirsch边缘检测算子,计算8个方向的梯度并选择最大值作为结果,从而获取图像的梯度值;

第三步骤、阈值分割:获取图像的梯度值之后,对梯度图像进行阈值分割,选择特定的阈值,使边缘的两边区域分离开来;

第四步骤、正弦曲线扫描:从设定的起始点发出正弦曲线,沿正弦曲线寻找边缘;

第五步骤、筛选边缘点,得到边缘点结构:以正弦曲线上点为圆心,在圆形范围内,边缘像素数超过一定阈值后才确定为边缘。

进一步具体地限定,上述技术方案中,在第四步骤中,寻找边缘的具体步骤如下:

第1步骤、设定正弦曲线扫描参数;

第2步骤、选定正弦曲线起始点;

第3步骤、沿设定方向发出正弦曲线。

进一步具体地限定,上述技术方案中,在第五步骤中,筛选边缘点的具体步骤如下:

第1步骤、以正弦曲线上的点为圆心;

第2步骤、根据边缘效果设定半径;

第3步骤、在圆形范围内边缘白色像素大于阈值判定为边缘。

进一步具体地限定,上述技术方案中,对于包围或半包围结构的图像,使用不同参数的正弦曲线的边缘探测方法。

进一步具体地限定,上述技术方案中,对于仅有一条边的图像,使用从设定位置沿一个方向发射正弦曲线的方法。

进一步具体地限定,上述技术方案中,在所要检测的边缘处于图像中间的情况下,周围有其他部位的包围,所要检测的表面部分并不在工件边缘,使用预先寻找正弦曲线起始点,从起始点沿一个方向发射正弦曲线的方法。

本发明的有益效果是:本发明的基于正弦曲线扫描的工业部件视觉边缘检测方法,采用正弦曲线搜索、筛选的方式寻找起始点,对于带复杂纹理的工件可以进行表面光的边缘检测,边缘的准确度高,抗干扰能力强。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是工业相机采集到的原图;

图2是kirsch边缘检测算子的示意图;

图2.1是图1中a处的局部放大图;

图2.2是圆环内区域和圆环区域分离开来的示意图;

图2.3是得到边缘检测结果的示意图;

图3.1是图1中b处的局部放大图;

图3.2是从边缘到黑色区域存在过渡地带的示意图;

图3.3是使用筛选区域后的示意图;

图4.1是正弦曲线边缘探测的示意图;

图4.2是单边边缘检测的示意图;

图4.3是单边正弦曲线边缘检测的流程图;

图5是本发明的整体流程图;

图5.1是所要检测的表面部分不在工件边缘的示意图;

图5.2是像素变化曲线示意图;

图5.3是探测起始点的流程图;

图5.4是起始点检测结果图;

图5.4.1是图5.4中h处的局部放大图;

图5.5是从检测到的起始点边缘检测结果图;

图5.5.1是图5.5中i处的局部放大图;

图5.6是获取边缘点的流程图;

图5.7是筛选点的流程图;

图6是边缘检测流程图;

图7是筛选半径选择对比图;

图8.1是真实图像边缘效果图;

图8.2是外边缘检测筛选效果图;

图8.3是内边缘检测筛选效果图;

图9.1是图像干扰示意图;

图9.2是筛选区域滤过干扰示意图。

具体实施方式

为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

见图5,一种基于正弦曲线扫描的工业部件视觉边缘检测方法,具体步骤如下:

第一步骤、采集灰度图像:利用工业相机采集灰度图像。

见图1,从工业相机中获取的图片是关于整个工件对象的整体图。

见图2.1和图3.1,需要先截取要测量部分的图,图2.1是截取图1的a处,图3.1是截取图1的b处。

第二步骤、kirsch边缘检测:对图像进行梯度检测,使用kirsch边缘检测算子(见图2),kirsch边缘检测算子的优点是计算了8个方向的梯度并选择最大值作为结果,从而获取图像的梯度值。

kirsch边缘检测可以对复杂的纹理进行全方向的检测,能使工件表面纹理都处于较高的梯度值,为以后的阈值分割提供良好的数据基础。

其它的边缘检测算子,如:sobel边缘检测算子和canny边缘检测算子。sobel边缘检测算子无法使物体表面的纹理都处于高梯度值上,影响真实边缘的区分;由于纹理的复杂性,而不是简单的二值化轮廓图像,canny边缘检测算子无法准确提取出边缘。

第三步骤、阈值分割:获取图像的梯度值之后,对梯度图像进行阈值分割,选择特定的阈值,使边缘的两边区域分离开来。

由于工件纹理的一致性,即在所要测量的部位会有相近的梯度强度而相对于所要提取的边缘两侧又有一定的强度差,可以使用一定的阈值将边缘的两边区域分离开来。

见图2.1,圆环的纹理明暗交错反应的梯度值偏大,圆环内的纹理偏暗梯度值偏小。

见图2.2,只要选择特定的阈值,就可以使圆环内区域和圆环区域分离开来。

第四步骤、正弦曲线扫描:从设定的起始点发出正弦曲线,沿正弦曲线寻找边缘。在第四步骤中,见图5.6,寻找边缘的具体步骤如下:第1步骤、设定正弦曲线扫描参数;第2步骤、选定正弦曲线起始点;第3步骤、沿设定方向发出正弦曲线。

第五步骤、筛选边缘点,得到边缘点结构:以正弦曲线上点为圆心,在圆形范围内,边缘像素数超过一定阈值后才确定为边缘。在第五步骤中,见图5.7,筛选边缘点的具体步骤如下:第1步骤、以正弦曲线上的点为圆心;第2步骤、根据边缘效果设定半径;第3步骤、在圆形范围内边缘白色像素大于阈值判定为边缘。

针对不同的图像,采用的正弦曲线边缘提取方法也有所不同:

第一种情形、对于包围或半包围结构的图像,使用不同参数的正弦曲线的边缘探测方法(见图4.1)。

见图4.1和图6,获取边缘点的具体步骤如下:

第1步骤、设定正弦曲线的参数:中的a和,其中a表示振幅,表示频率。a的选取需要使上下与边缘部分相交,则根据需要的点的个数设置频率。x的取值范围表示需要边缘检测的范围。

第2步骤、选定起始点:选取一个点作为正弦曲线的起点,可以选择图像的中轴上的点,图中的水平直线用j表示。

第3步骤、正弦曲线边缘提取:过程如下:正弦曲线在图中用k表示,在每条正弦曲线上,会有一个筛选区域在图中用l表示,区域中心从起点开始沿正弦曲线方向一步一步向外移动。

第4步骤、计算筛选区域白色像素比例,获得边缘点结果:当筛选区域白色像素比例大于阈值时,获取正弦曲线上满足条件的圆形筛选区域的圆心作为边缘提取的结果。

如果单次正弦曲线所获得的点比较少,可以在第2步骤中多次选取起始点,进行扫描。

筛选区域及筛选条件是用来去除如图2.2中圆内部的干扰以及边缘本身的瑕疵。筛选区域就是以正弦曲线上的点为中心,向周围扩展出的一个范围,该范围可以是正方形,也可以是圆形,圆形优于正方形。特别是在求弧线边缘时,圆形区域是和边缘相切在不同角度上是相同的效果,而正方形会有差别。

设定这个区域的范围和区域内白色像素的比例来筛选边缘点,这个比例即为图6中的白色像素的比例,白色点为阈值分割后梯度较大的区域,代表物体表面。当在正弦曲线某一点的区域内白色像素大于设定好的比例时,该点判定为边缘点。此时,边缘检测的结果就可以避免圆环内小块区域的影响以及圆环边缘凹凸不平的干扰,检测结果(见图2.3)。

圆形筛选区域的半径选择主要根据边缘的粗细及粗糙程度和线扫中间的干扰决定。如图7所示,在边缘比较细且完整光滑的情况下,需要选择较小的半径,且筛选阈值设置在50%,即可在正弦曲线点接触到边缘时,筛选出边缘点结果。较大的半径会导致在边缘处筛选范围内无法满足50%的要求。然而,当边缘粗糙或噪点时,往往是真实图像边缘比较模糊造成的或存在倒角(倒角指的是把工件的棱角切削加工成一定斜面)造成的,如图8.1。在这种情况下,如果我们需要找外边缘,如图8.2,筛选的阈值就需要改成30%;而如果要找内边缘,如图8.3,筛选的阈值就需要改成70%。最后,如果在正弦曲线路径上存在一些干扰,如图9.1中的情况,白色圈出了干扰部分,通过合理的阈值和半径调整,筛选区域可以滤过这些干扰区域,如图9.2。

另外,由于光线和工件边缘一般是存在过渡部分的(见图3.1)。从边缘到黑色区域存在的过渡地带(见图3.2的c区域),该过渡地带呈锯齿状,但是使用了筛选区域后可从图3.3的结果中看出,边缘点的选择没有太大的波动,基本选择了正确的边缘,没有被锯齿影响。

因此,通过合理的设置筛选区域的半径和筛选比例,可以满足多种不同情况的边缘检测。

第二种情形、对于仅有一条边的图像,使用从设定位置沿一个方向发射正弦曲线的方法(见图4.2和图4.3),从而获取直线上的边缘点集。

获取边缘点的具体步骤如下:

第1步骤、设定正弦曲线的参数:中的a,,其中a表示振幅,表示频率,表示相位。a的选取需要使上下与边缘部分相交,则根据需要的点的个数设置频率。x的取值范围表示需要边缘检测的范围。

第2步骤、选取起始点和方向:在边缘向外处选择一条起始直线,如图4.2中的水平线用m表示。选取从左往右作为曲线方向。

第3步骤、正弦曲线边缘提取:正弦曲线用n表示,方向从左往右扫描,在图像坐标系(左上角点为原点)中为x轴正方向,筛选区域跟随正弦曲线移动。

第4步骤、计算筛选区域白色像素比例,获得边缘点结果:筛选区域用o表示,圆心沿着正弦曲线移动,计算筛选区域白色像素比例,满足筛选条件的圆心点记为该正弦曲线上的边缘点。

最后,范围内所有位置都完成了正弦曲线扫描后,可以得到对应范围上的边缘点集。基本步骤与上一种情形相似,只是换成了单边的取点。

第三种情形、在有些复杂情况下,所要检测的边缘部分并不在工件边缘,没有从图片边缘开始扫描的可能性(见图5.1、图5.4和图5.5),在所要检测的边缘处于图像中间的情况下,周围有其他部位的包围,所要检测的表面部分并不在工件边缘,使用预先寻找正弦曲线起始点,从起始点沿一个方向发射正弦曲线的方法。如果需要检测图5.1中d区域内的边缘。

获取边缘点的具体步骤如下,流程如图5.3所示:

第1步骤、设定正弦曲线的参数:中的a,,其中a表示振幅,表示频率,表示相位。a的选取需要使上下与边缘部分相交,则根据需要的点的个数设置频率。x的取值范围表示需要边缘检测的范围,在此为图5.1中的d区域;

第2步骤、选定起始点:寻找正弦曲线起始点的方法是:首先,选择边缘区间,如图5.1中d区域长度的范围,用2*2区域均值从上至下,步长为一个像素,按列取出图5.1中所需检测边缘部分范围的像素值(对与边缘垂直方向上取2*2像素均值)。使用2*2区域均值是用于平滑像素,减少纹理中个别突变像素的影响,最终获得每一列像素值的变化情况(见图5.2,图中纵坐标表示像素值,横坐标表示从上到下的坐标)。从图5.2中可以看出,像素值的波动在需要检测的边缘上有非常明显的变化。这种情况下,使用像素值的大小来获取黑色部分的位置作为边缘提取的起始点。但是在有些情况下,黑色部分可能会出现高亮度的白色异常(见图5.1中的f区域),为了避免这类情况的发生,采取周围多点求平均的方法,如5个点求平均值后阈值筛选。5个点的作用是在局部范围(2*2区域)内去除个别异常点的影响。由于起始点必定是在黑色的背景部分,所以准确定位起始点的方法是找到像素值从高到低和从低到高转折处的中点作为起始点,具体地像素值从高到低(白到黑)和从低到高(黑到白)两个转折处的中间也就是图5.2的e处,即图5.4中h区域的黑色缝隙处(见图5.4.1),起始点通过白色点画出。

第3步骤、正弦曲线边缘提取:从起始点从左往右扫描,寻找图5.1中的d区域边缘。图中位置太小,不便画出示意图,但方法与第二种情形相同,仅改变了起始点。

第4步骤、获得边缘点结果:与第二种情形相同,筛选区域为白色的圆形,圆心沿着正弦曲线移动,直到满足筛选条件的圆心点记为该正弦曲线上的边缘点,结果如图5.5中i区域中白色边缘点所示(见图5.5.1)。

在边缘质量正常的情况下,边缘点会过滤掉大部分纹理上的起伏,整体波动在3像素以内,多点拟合后会更加接近真实值。另外,该方法避免了使用膨胀腐蚀等形态学操作来避免精确性的缺失。

需要说明的是:正弦曲线起始终止点及运动方向的改变(如从正弦曲线方向从上到下)、筛选区域形状的改变(如筛选区域变为半圆)以及筛选条件的改变(如筛选条件变为圆的边上的点为白色的数量而不是范围内的点)都算为同种方法。

以上所述的,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1