CN111754422A - 一种基于EDLines和LSM的视觉巡边方法 - Google Patents

一种基于EDLines和LSM的视觉巡边方法 Download PDF

Info

Publication number
CN111754422A
CN111754422A CN202010490103.6A CN202010490103A CN111754422A CN 111754422 A CN111754422 A CN 111754422A CN 202010490103 A CN202010490103 A CN 202010490103A CN 111754422 A CN111754422 A CN 111754422A
Authority
CN
China
Prior art keywords
pixel
line segment
straight line
line segments
edge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202010490103.6A
Other languages
English (en)
Inventor
董辉
曾乐襄
陶如梦
吴祥
罗立锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN202010490103.6A priority Critical patent/CN111754422A/zh
Publication of CN111754422A publication Critical patent/CN111754422A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/187Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种基于EDLines和LSM的视觉巡边方法,包括获取待检测对象的灰度图像;采用EDLines算法提取所述灰度图像中的直线段;基于LSM算法对所提取的直线段进行分组和合并;根据待检测对象的边缘的特征信息对合并后得到的所有直线段进行筛选,筛选出作为边缘的直线段。本发明提供的基于EDLines和LSM的视觉巡边方法,结合了EDLines算法和LSM算法,有效减少环境干扰,降低边缘检测的错误率,实时性高。

Description

一种基于EDLines和LSM的视觉巡边方法
技术领域
本申请属于视觉检测技术领域,具体涉及一种基于EDLines和LSM的视觉巡边方法。
背景技术
在智能制造过程中,机器视觉把客观事物的图像信息提取、处理并理解,最终用于实际检测、测量和控制。机器视觉具有高度自动化、高效率、高精度和适应较差环境等优点,将在自动化的实现过程中产生重要作用。
在通过机器视觉实现巡边功能过程中,现有技术通过Hough变换将图像空间中的直线变换到参数空间中,通过寻找参数空间中的极值点来确定图像空间中的直线参数,从而提取含有一定数量的边缘的线。但这种方法一方面不能检测到边缘的边缘响应较小的区域,另一方面可能将非连续线段组合在一起。其他现有技术诸如Canny检测边缘,通过拟合技术拟合检测到的直线段,但该方法往往不能提取出有效的边缘信息,并容易受到外界环境的干扰;又如LSD算法和Cannylines算法,具有良好的边缘检测效果,但计算时间过长,不满足实时性的要求,故需要一种抗干扰能力良好、实时性高的应用于规模化生产的寻边方法。
发明内容
本申请的目的在于提供一种基于EDLines和LSM的视觉巡边方法,可有效减少环境干扰,降低边缘检测的错误率,实时性高。
为实现上述目的,本申请所采取的技术方案为:
一种基于EDLines和LSM的视觉巡边方法,所述基于EDLines和LSM的视觉巡边方法,包括:
步骤S1、获取待检测对象的灰度图像;
步骤S2、采用EDLines算法提取所述灰度图像中的直线段;
步骤S3、基于LSM算法对所提取的直线段进行分组和合并;
步骤S3.1、获取所提取的所有直线段的长度和角度,并根据角度从大到小的顺序对所有直线段进行排序,取排序中首部的直线段作为组长线段;
步骤S3.2、遍历组长线段之后的其余直线段,选择与组长线段的角度误差小于角度阈值的直线段,并将选择出的直线段与组长线段作为一组;
步骤S3.3、在剩余的直线段中,取与组长线段的角度减小a度以后最接近的直线段作为新的组长线段,重新执行步骤S3.2,重复循环直至完成分组;
步骤S3.4、取分组后得到的所有组别,逐一判断组别中直线段的个数,舍弃直线段的个数小于b的组别;
步骤S3.5、取舍弃处理后剩余的组别,对各组别中的直线段按照长度从长到短进行排序,对于每一组别中的直线段取两两进行合并处理,合并更新各组别中的直线段;
步骤S4、根据待检测对象的边缘的特征信息对合并后得到的所有直线段进行筛选,筛选出作为边缘的直线段。
作为优选,所述步骤S2中采用EDLines算法提取所述灰度图像中的直线段,包括:
步骤S2.1、对所述灰度图像进行高斯滤波,得到平滑图像;
步骤S2.2、采用sobel算子计算平滑图像中每个像素的梯度方向和梯度值;
步骤S2.3、采用局部梯度极大值选取锚点;
步骤S2.4、连接锚点得到边缘像素链;
步骤S2.5、通过最小二乘法对边缘像素链进行拟合,得到新的像素线段;
步骤S2.6、基于亥姆霍兹原理检测像素线段,去除错误的像素线段,得到最终的直线段集合。
作为优选,所述步骤S2.2中采用sobel算子计算平滑图像中每个像素的梯度方向和大小,包括:
Gx(x,y)=[f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)]
Gy(x,y)=[f(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1)]+[f(x-1,y-1)+2*f(x,y-1)+f(x+1,y-1)]
其中f(x,y)表示图像在像素(x,y)处的灰度值,因此像素(x,y)的梯度值G表示为:
Figure BDA0002520624860000021
进一步简化梯度值G表示为:
G=Gx(x,y)+Gy(x,y)
同时,计算像素(x,y)的梯度方向a(x,y)为:
a(x,y)=actan(Gx(x,y)/Gy(x,y))
其中,Gx(x,y)表示像素的水平方向的梯度大小,Gy(x,y)表示像素的垂直方向的梯度大小。
作为优选,所述步骤S2.3中采用局部梯度极大值选取锚点,包括:
S2.3.1、以行优先顺序对计算梯度方向和梯度值的后的梯度图像进行光栅扫描,消除梯度值小于梯度阈值ρ的像素,得到边缘区域;
S2.3.2、根据预设的锚点阈值,利用非极大值抑制从边缘区域中筛选出锚点。
作为优选,所述步骤S2.4中连接锚点得到边缘像素链,包括:
步骤S2.4.1、将锚点按照梯度值的大小进行排序;
步骤S2.4.2、取第k个锚点作为边缘像素链的当前位置的像素Gk,并标记该像素为已识别,其中k=0,1,…,n,n为锚点总个数;
步骤S2.4.3、根据像素Gk的梯度方向判断像素Gk的线段方向,若像素Gk的线段方向为垂直方向,则查询像素Gk上方的三个像素,移动至三个像素中梯度值最大的像素,更新k=k+1并将移动后得到的像素作为Gk;若像素Gk的线段方向为水平方向,则查询像素Gk左方的三个像素,并移动至三个像素中梯度值最大的像素,更新k=k+1并将移动后得到的像素作为Gk
判断移动后得到的像素Gk是否处于所述边缘区域内,若是则执行步骤S2.4.4;否则执行步骤S2.4.5;
步骤S2.4.4、判断当前像素Gk的线段方向是否发送变化,若是则重新执行步骤S2.4.3;否则标记该像素为已识别,并执行步骤S2.4.3;
步骤S2.4.5、若当前像素Gk的线段方向为垂直方向,则查询像素Gk下方的三个像素,并移动至三个像素中梯度值最大的像素,更新k=k+1并将移动后得到的像素作为Gk;若当前像素Gk的线段方向为水平方向,则查询像素Gk右方的三个像素,并移动至三个像素中梯度值最大的像素,更新k=k+1并将移动后得到的像素作为Gk
判断移动后得到的像素Gk是否处于所述边缘区域内,若是则执行步骤S2.4.6;否则得到当前循环形成的边缘像素链,并执行步骤S2.4.7;
步骤S2.4.6、判断像素Gk的线段方向是否发送变化,若是则重新执行步骤S2.4.3;否则标记该像素为已识别,并重新执行步骤S2.4.5;
步骤S2.4.7、取下一个锚点作为新的边缘像素链的当前位置的像素Gk,查看像素Gk是否被标记为已识别,若被标记为已识别,则重新执行步骤S2.4.7;否则执行步骤S2.4.8;
步骤S2.4.8、判断当前位置的像素Gk是否是最后一个锚点,若是则执行步骤S2.4.9;否则执行步骤S2.4.3;
步骤S2.4.9、将遍历得到的所有边缘像素链中像素个数小于c的边缘像素链去除,得到最终的边缘像素链集合。
作为优选,所述步骤S2.5中通过最小二乘法对边缘像素链进行拟合,得到新的像素线段,包括:
步骤S2.5.1、取连接所得到的所有边缘像素链,遍历边缘像素链,使用最小二乘法对每条边缘像素链进行分割,得到若干像素线段,分割过程中以最小直线长度N为限度进行分割;
步骤S2.5.2、遍历属于同一边缘像素链的若干像素线段,两两进行合并处理,所述合并处理包括:确定两条像素线段中的长线段和短线段,计算短线段两个端点和中点到长线段的拟合直线的最小距离,计算三个距离的平均值,判断平均值是否小于距离阈值,若是则将两条像素线段合并;若不是则不合并。
作为优选,所述步骤S2.6中基于亥姆霍兹原理检测像素线段,去除错误的像素线段,得到最终的直线段集合,包括:
定义像素线段的错误警报数量NFA如下:像素线段A的长度为β,至少有m个像素点的梯度方向与像素线段A的梯度方向相同,灰度图像的大小为N×N,则像素线段A的NFA为:
Figure BDA0002520624860000041
其中,N4表示在N×N图像中,每条像素线段有两个点,每个点有N2个选择,共有N4个线段,p为像素线段方向的准确度,符合二项式分布;
若NFA(β,m)≤ε,ε为错误阈值,则表明该像素线段有效;否则该像素线段无效需要舍弃;
取去除错误后剩余的像素线段作为直线段集合。
作为优选,所述步骤S3.5中对于每一组别中的直线段取两两进行合并处理,合并更新各组别中的直线段,包括:
双重循环遍历同一组中的直线段,跳过标记为已合并的直线段,依次取两根直线段,设置较长的直线段为L1、较短的直线段为L2,计算直线段L1和直线段L2之间的最小距离l,计算直线段L2上的点到直线段L1的最小垂直距离d;
采用直线段L2的长度l2对最小距离l进行归一化,得到归一化后的
Figure BDA0002520624860000055
为:
Figure BDA0002520624860000051
采用预设的间距最大允许值τs对最小垂直距离d进行归一化,得到归一化后的
Figure BDA0002520624860000052
为:
Figure BDA0002520624860000053
计算线段可合并性参数λ如下:
Figure BDA0002520624860000054
线段可合并性参数λ与线段可合并性成反比,即λ越小,可合并性越高,若线段可合并性参数λ小于合并阈值,则将直线段L2合并到直线段L1,并标记直线段L2为已合并;否则不合并,然后继续遍历,直至完成所有直线段的合并。
本申请提供的视觉巡边方法,结合了EDLines算法和LSM算法,有效减少环境干扰,降低边缘检测的错误率,减少计算时间,提高实时性。
附图说明
图1为本申请的基于EDLines和LSM的视觉巡边方法的流程图;
图2为本申请锚点连接的一种实施例流程图;
图3为本申请锚点连接的一种应用示意图;
图4为本申请直线段合并的一种应用示意图;
图5为本申请实施例1中待切割玻璃的灰度图像;
图6为本申请的基于EDLines和LSM的视觉巡边方法基于图5检测后输出的标注玻璃边缘后的检测图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,当组件被称为与另一个组件“连接”时,它可以直接与另一个组件连接或者也可以存在居中的组件;当组件被称为与另一个组件“固定”时,它可以直接与另一个组件固定或者也可以存在居中的组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本申请。
其中一个实施例中,提供一种基于EDLines和LSM的视觉巡边方法,用于快速有效的获取待检测对象的边缘信息。
如图1所示,本实施例基于EDLines和LSM的视觉巡边方法,包括:
步骤S1、获取待检测对象的灰度图像。
这里的待检测对象指需要进行边缘确定的对象,例如玻璃、工件等。
步骤S2、采用EDLines算法提取所述灰度图像中的直线段。
EDLines算法为一种直线段检测算法,该算法具有强大且准确的检测结果,并且获取直线段的速度快。本实施例中使用的一种EDLines算法的流程如下:
步骤S2.1、对所述灰度图像进行高斯滤波,得到平滑图像。
进行高斯滤波可以抑制噪声并使图像平滑,以便于后续进行直线段的提取。需要说明的是,高斯滤波为图像处理领域的常规操作,这里不对本申请所采用的高斯滤波方法进行限定。
步骤S2.2、采用sobel算子计算平滑图像中每个像素的梯度方向和梯度值。
本实施例所采取的一种计算过程包括:
计算像素(x,y)的水平方向的梯度大小Gx(x,y)和像素(x,y)的垂直方向的梯度大小Gy(x,y):
Gx(x,y)=[f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)]
Gy(x,y)=[f(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1)]+[f(x-1,y-1)+2*f(x,y-1)+f(x+1,y-1)]
其中f(x,y)表示图像在像素(x,y)处的灰度值,因此像素(x,y)的梯度值G表示为:
Figure BDA0002520624860000061
为了简化计算过程,加快边缘检测速度,进一步简化梯度值G表示为:
G=Gx(x,y)+Gy(x,y)
同时,计算像素(x,y)的梯度方向a(x,y)为:
a(x,y)=actan(Gx(x,y)/Gy(x,y))
步骤S2.3、采用局部梯度极大值选取锚点。
锚点是作为边缘像素具有很高概率的点,在锚点的确定过程中,所采取的的方式可以是:
S2.3.1、以行优先顺序对计算梯度方向和梯度值的后的梯度图像进行光栅扫描,消除梯度值小于梯度阈值ρ的像素,得到边缘区域。
光栅扫描的间距决定了边缘像素的细节程度,间距越小,边缘锚点越多,边缘图像的细节越丰富;反之,边缘锚点越少,能得到图像的大致边缘。因此,本实施例中设定光栅扫描的间距为1。
标记梯度值大于ρ的像素可以消除可能角度误差大于角度公差的像素,所以在确定梯度阈值ρ时,当两个连续像素的最大的量化误差为2(相邻像素误差值为-1和1)和角度公差为22.5°时,确定梯度阈值ρ为:
Figure BDA0002520624860000071
S2.3.2、根据预设的锚点阈值,利用非极大值抑制从边缘区域中筛选出锚点。
在筛选锚点时,取当前像素的梯度方向为a(x,y),若Gx(x,y)≥Gy(x,y),判断线段方向偏向垂直方向,计算当前像素梯度大小与上下相邻位置的像素梯度大小的差值分别为d1和d2,若d1和d2都大于锚点阈值,则该像素是锚点;若Gx(x,y)<Gy(x,y),判断线段方向偏向水平方向,计算当前像素梯度大小与左右相邻位置的像素梯度大小的差值分别为d3和d4,若d3和d4都大于锚点阈值,则该像素是锚点。
因为高质量的锚点可以有效提高后续提取出边缘线段的准确度,因此需要设置合理的锚点阈值。本实施例根据多次试验确定锚点阈值的优选值为8,此时最有利于提取出高质量的线段边缘。
步骤S2.4、连接锚点得到边缘像素链。
连接锚点的目的是通过从某一初始锚点开始,沿着同一边缘区域跟踪到下一个锚点的路径来绘制实际边缘。在一实施例中,如图2所示,锚点连接的具体实现方式可以是如下所示:
步骤S2.4.1、将锚点按照梯度值的大小进行排序。
步骤S2.4.2、取第k个锚点作为边缘像素链的当前位置的像素Gk(像素Gk即为图2中的P),并标记该像素为已识别,其中k=0,1,…,n,n为锚点总个数。
步骤S2.4.3、根据像素Gk的梯度方向判断像素Gk的线段方向,若像素Gk的线段方向为垂直方向,则查询像素Gk上方的三个像素,移动至三个像素中梯度值最大的像素,更新k=k+1并将移动后得到的像素作为Gk;若像素Gk的线段方向为水平方向,则查询像素Gk左方的三个像素,并移动至三个像素中梯度值最大的像素,更新k=k+1并将移动后得到的像素作为Gk
然后判断移动后得到的像素Gk是否处于所述边缘区域内,若是则执行步骤S2.4.4;否则执行步骤S2.4.5。
步骤S2.4.4、判断当前像素Gk的线段方向是否发送变化,若是则重新执行步骤S2.4.3;否则标记该像素为已识别,并执行步骤S2.4.3。需要说明的是,当前像素Gk的线段方向未发生变化而重新执行步骤S2.4.3时,可以如图3所示跳过步骤S2.4.3最开始判断线段方向的逻辑。当然也可以不跳过,均不影响正常逻辑的执行。
步骤S2.4.5、若当前像素Gk的线段方向为垂直方向,则查询像素Gk下方的三个像素,并移动至三个像素中梯度值最大的像素,更新k=k+1并将移动后得到的像素作为Gk;若当前像素Gk的线段方向为水平方向,则查询像素Gk右方的三个像素,并移动至三个像素中梯度值最大的像素,更新k=k+1并将移动后得到的像素作为Gk
然后判断移动后得到的像素Gk是否处于所述边缘区域内,若是则执行步骤S2.4.6;否则得到当前循环形成的边缘像素链,并执行步骤S2.4.7。
步骤S2.4.6、判断像素Gk的线段方向是否发送变化,若是则重新执行步骤S2.4.3;否则标记该像素为已识别,并重新执行步骤S2.4.5。
步骤S2.4.7、取下一个锚点作为新的边缘像素链的当前位置的像素Gk,查看像素Gk是否被标记为已识别,若被标记为已识别,则重新执行步骤S2.4.7;否则执行步骤S2.4.8。这里的下一个锚点相对于步骤S2.4.2中的k而言,若步骤S2.4.2中的k为1,则这里的下一个锚点取的是第2个锚点。
步骤S2.4.8、判断当前位置的像素Gk是否是最后一个锚点,若是则执行步骤S2.4.9;否则执行步骤S2.4.3。
步骤S2.4.9、将遍历得到的所有边缘像素链中像素个数小于c的边缘像素链去除,得到最终的边缘像素链集合。
为了进一步理解本申请提供的锚点连接逻辑,以下结合图3进一步说明:
图3中深色圈的为锚点,浅色圈的为边缘像素,箭头表示查询方向。假设从锚点的梯度值为229的像素开始,判断线段方向为垂直,则查询上面三个像素,找到最大值,判断是否为边缘像素,若是则继续依据该点线段方向遍历;上面遍历结束后,查询下面三个像素,找到最大值,判断是否为边缘像素,若是则继续依据该点线段方向遍历,直至得到完整的边缘像素链。
步骤S2.5、通过最小二乘法对边缘像素链进行拟合,得到新的像素线段。
拟合的基本思路是按顺序检查每个边缘像素,使用最小二乘法为该像素和之后的一段像素(设定的最小直线长度)拟合直线,并不断添加新的像素,直到像素离拟合的直线距离超过一定阈值,即直线拐弯了,此时输出一个线段。
其实现的具体步骤如下:
步骤S2.5.1、取连接所得到的所有边缘像素链,遍历边缘像素链,使用最小二乘法对每条边缘像素链进行分割,得到若干像素线段,分割过程中以最小直线长度N为限度进行分割,分隔的具体过程如下:
步骤S2.5.1.1、如果当前取的边缘像素链的长度小于或等于最小直线长度N,则结束当前边缘像素链的分割;如果当前取的边缘像素链长度大于最小直线长度N,则对截取长度为N的像素链进行最小二乘法拟合。现在有N组像素(xi,yi),设置直线方程:
y=ax+b
直线参数的最佳值要求与观测值yi的偏差平方和最小,公式有:
Figure BDA0002520624860000091
根据要求,应有:
Figure BDA0002520624860000092
Figure BDA0002520624860000093
整理得到:
Figure BDA0002520624860000094
解方程组可得直线参数的最佳估计值
Figure BDA0002520624860000095
Figure BDA0002520624860000096
Figure BDA0002520624860000101
Figure BDA0002520624860000102
由于
Figure BDA0002520624860000103
Figure BDA0002520624860000104
由有误差的观测数据得到,所以计算yi的标准偏差为:
Figure BDA0002520624860000105
步骤S2.5.1.2:若标准偏差大于最大均方线拟合误差,则截取下一个像素一段长为N的像素链,若标准偏差小于最大均方线拟合误差,则遍历计算N组像素(xi,yi)到拟合直线的最小距离Di。遍历结束后,若像素到拟合直线的最小距离小于距离阈值的数量为0,则从获取的所有边缘像素链中移除这部分边缘像素链,然后执行步骤S2.5.1.1,重新开始截取下一段线段。若不为0,记录像素到拟合直线的最小距离小于距离阈值的最大序号为n(n≤N),并以长为n的像素链作为最终的分割直线段,在复制的像素链中移除这部分长为n像素链,然后执行步骤S2.5.1.1,开始分割下一条线段。
本实施例中设置距离阈值参数通过实验设置为1,最大均方线拟合误差为0.5。
步骤S2.5.2、遍历属于同一边缘像素链的若干像素线段,两两进行合并处理,所述合并处理包括:确定两条像素线段中的长线段和短线段,计算短线段两个端点和中点到长线段的拟合直线的最小距离,计算三个距离的平均值,判断平均值是否小于距离阈值,若是则将两条像素线段合并;若不是则不合并。
步骤S2.6、基于亥姆霍兹原理(Helmholtz principle)检测像素线段,去除错误的像素线段,得到最终的直线段集合。
亥姆霍兹原理指当一个结构有意义的时候,偶然产生这种结构的概率必然非常低。利用亥姆霍兹原理的主要思路是假设检测线段的背景为高斯白噪声,在这样的结构中,产生有序的线段结构的概率很低,所以可以有效认为被检测线段是有意义的。
检测的具体过程为:定义像素线段的错误警报数量(Number of False Alarms)NFA如下:像素线段A的长度为β,至少有m个像素点的梯度方向与像素线段A的梯度方向相同,图像的大小为N×N,则像素线段A的NFA为:
Figure BDA0002520624860000111
其中,N4表示在N×N图像中,每条像素线段有两个点,每个点有N2个选择,共有N4个线段,p为像素线段方向的准确度,符合二项式分布;由于两个点(或线段)P和Q具有相同的方向,即对齐,如果P的角度和Q的之间角度有π/β度,则有1/β的精度。因此对应于8个不同的角度取向和精度,则有p=0.125
若NFA(β,m)≤ε,ε为错误阈值,则表明该像素线段有效;否则该像素线段无效需要舍弃;ε优选取1。
取去除错误后剩余的像素线段作为直线段集合。
由于EDLines算法中是基于与对象边界相对应的线段像素链进行分组合并的,该方法无法全局地对直线段进行合并,因此本实施例采用LSM算法对直线段进行进一步的分组和合并,以提高最终边缘提取的准确率。需要说明的是,以上仅为本实施例提供的优选的EDLines算法,在其他实施例中,还可以采用现有技术中公开的更为简洁的EDLines算法或改进型的EDLines算法。
步骤S3、基于LSM算法对所提取的直线段进行分组和合并。
LSM算法的基本原理是第一步基于传统的空间和角度接近度度量对线段进行分组,满足条件为空间和角度足够接近;在第二步中考虑每个组中的线段对,如果满足我们的可合并性标准,则将它们合并为一个线段。重复执行这两个步骤,直到无法合并更多的线段。具体的操作过程如下:
步骤S3.1、获取所提取的所有直线段的长度和角度,并根据角度从大到小的顺序对所有直线段进行排序,取排序中首部的直线段作为组长线段。
步骤S3.2、遍历组长线段之后的其余直线段,选择与组长线段的角度误差小于角度阈值的直线段,并将选择出的直线段与组长线段作为一组。本实施例设置角度阈值优选为3。
步骤S3.3、在剩余的直线段中,取与组长线段的角度减小a度以后最接近的直线段作为新的组长线段,重新执行步骤S3.2,重复循环直至完成分组。a的值对分组得到的最终的组数有着直接的决定意义,本实施例为控制合理的组数,设置a优选为1.5。
步骤S3.4、取分组后得到的所有组别,逐一判断组别中直线段的个数,舍弃直线段的个数小于b的组别。组别中直线段个数过少时作为边缘的可能性较低,因此本实施例舍弃直线段个数小于3的组别。
步骤S3.5、取舍弃处理后剩余的组别,对各组别中的直线段按照长度从长到短进行排序,对于每一组别中的直线段取两两进行合并处理,合并更新各组别中的直线段。
线段的合并处理对后续哪些线段能够保留作为边缘的备选具有直接的决定意义,较长的线段往往来自具有连续强梯度的图像区域,因此更可靠,而且较小的线段对合并过程的影响较小,因此在本实施例中,采取的合并过程如下:
双重循环遍历同一组中的直线段,跳过标记为已合并的直线段,依次取两根直线段,设置较长的直线段为L1、较短的直线段为L2,计算直线段L1和直线段L2之间的最小距离l,计算直线段L2上的点到直线段L1的最小垂直距离d。
考虑到容忍的角度和空间差异取决于片段的长度,为了使合并阈值更具有灵活性,本实施例引入线段间的长度和距离的阈值,做策略性合并。由于最小距离如果超出较小线段距离过多,会使合并不符合感知合并,所以采用直线段L2的长度l2对最小距离l进行归一化,得到归一化后的
Figure BDA0002520624860000121
为:
Figure BDA0002520624860000125
采用预设的间距最大允许值τs对最小垂直距离d进行归一化,得到归一化后的
Figure BDA0002520624860000122
为:
Figure BDA0002520624860000123
计算线段可合并性参数λ如下:
Figure BDA0002520624860000124
线段可合并性参数λ与线段可合并性成反比,即λ越小,可合并性越高,若线段可合并性参数λ小于合并阈值,则将直线段L2合并到直线段L1,并标记直线段L2为已合并;否则不执行合并操作,然后继续遍历,并在遍历过程中跳过标记的线段,直至完成所有直线段的合并。
双重循环遍历为数据处理领域的常用手段,例如在多个数据中取一个数据依次和其他数据进行两两操作,双重循环遍历具体的原理这里就不再展开描述。
本实施例采用的合并策略能够保留可靠性高的直线段,去除作用性小、干扰强的直线段,并且合并策略灵活性高,使得最终提取的边缘准确率显著提升。
如图4所示,为本实施例直线段合并的一种应用示意图,图中两个待合并的直线段,两个空心圈表示两个直线段之间的最小距离,经过判断后两个直线段可合并性高,对两条线段进行合并,具有两个实心圈的直线段为合并后的直线段。
步骤S4、根据待检测对象的边缘的特征信息对合并后得到的所有直线段进行筛选,筛选出作为边缘的直线段。
待检测对象的边缘的特征信息可以是预先提取并设定,最后根据对象的边缘的特征信息对得到的直线度进行筛选,提高最后得到的直线段为边缘的可靠性,并且使得本申请的视觉巡边方法具有普适性。巡边确定后得到的边缘可以直接应用,例如进行辅助加工,也可以标注在原始的灰度图像上应用,例如作为训练图像或样本图像。
实施例1以如图5所示的矩形玻璃作为待检测对象对步骤S4进一步详述:由于玻璃边缘信息的背景容易受到环境干扰,不能有效提取出特征信息,所以本实施例对玻璃边缘所在的线段本身信息进行归纳,得到玻璃边缘的特征信息有:一、矩形玻璃占灰度图像大半的面积;二、找到相互垂直的两条直线。因此筛选过程如下:
步骤S4.1、取合并后得到的所有直线段,计算每条直线段的长度,并去除长度小于长度阈值的直线段。
步骤S4.2、遍历剩下的所有直线段,两两比较两条直线段的角度是否为垂直,将互为垂直的两条直线段归为一对。
步骤S4.3、计算每队直线段的长度和,取长度和最长的一对直线段作为待切割玻璃的玻璃边缘。
最终确定边缘后的图像如图6所示,由图中可以看出,本申请的视觉巡边方法受背景的环境影响小,可准确的确定待检测对象的边缘。容易理解的是,本实施例仅以距离玻璃为例进行说明,并不作为对检测对象的限定,例如检测对象还可以是多边形的工件、板材、雕刻件等等。在加工、切割、雕刻等领域具有重大的应用意义。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (8)

1.一种基于EDLines和LSM的视觉巡边方法,其特征在于,所述基于EDLines和LSM的视觉巡边方法,包括:
步骤S1、获取待检测对象的灰度图像;
步骤S2、采用EDLines算法提取所述灰度图像中的直线段;
步骤S3、基于LSM算法对所提取的直线段进行分组和合并;
步骤S3.1、获取所提取的所有直线段的长度和角度,并根据角度从大到小的顺序对所有直线段进行排序,取排序中首部的直线段作为组长线段;
步骤S3.2、遍历组长线段之后的其余直线段,选择与组长线段的角度误差小于角度阈值的直线段,并将选择出的直线段与组长线段作为一组;
步骤S3.3、在剩余的直线段中,取与组长线段的角度减小a度以后最接近的直线段作为新的组长线段,重新执行步骤S3.2,重复循环直至完成分组;
步骤S3.4、取分组后得到的所有组别,逐一判断组别中直线段的个数,舍弃直线段的个数小于b的组别;
步骤S3.5、取舍弃处理后剩余的组别,对各组别中的直线段按照长度从长到短进行排序,对于每一组别中的直线段取两两进行合并处理,合并更新各组别中的直线段;
步骤S4、根据待检测对象的边缘的特征信息对合并后得到的所有直线段进行筛选,筛选出作为边缘的直线段。
2.如权利要求1所述的基于EDLines和LSM的视觉巡边方法,其特征在于,所述步骤S2中采用EDLines算法提取所述灰度图像中的直线段,包括:
步骤S2.1、对所述灰度图像进行高斯滤波,得到平滑图像;
步骤S2.2、采用sobel算子计算平滑图像中每个像素的梯度方向和梯度值;
步骤S2.3、采用局部梯度极大值选取锚点;
步骤S2.4、连接锚点得到边缘像素链;
步骤S2.5、通过最小二乘法对边缘像素链进行拟合,得到新的像素线段;
步骤S2.6、基于亥姆霍兹原理检测像素线段,去除错误的像素线段,得到最终的直线段集合。
3.如权利要求2所述的基于EDLines和LSM的视觉巡边方法,其特征在于,所述步骤S2.2中采用sobel算子计算平滑图像中每个像素的梯度方向和大小,包括:
Gx(x,y)=[f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)]
Gy(x,y)=[f(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1)]+[f(x-1,y-1)+2*f(x,y-1)+f(x+1,y-1)]
其中f(x,y)表示图像在像素(x,y)处的灰度值,因此像素(x,y)的梯度值G表示为:
Figure FDA0002520624850000021
进一步简化梯度值G表示为:
G=Gx(x,y)+Gy(x,y)
同时,计算像素(x,y)的梯度方向a(x,y)为:
a(x,y)=actan(Gx(x,y)/Gy(x,y))
其中,Gx(x,y)表示像素的水平方向的梯度大小,Gy(x,y)表示像素的垂直方向的梯度大小。
4.如权利要求3所述的基于EDLines和LSM的视觉巡边方法,其特征在于,所述步骤S2.3中采用局部梯度极大值选取锚点,包括:
S2.3.1、以行优先顺序对计算梯度方向和梯度值的后的梯度图像进行光栅扫描,消除梯度值小于梯度阈值ρ的像素,得到边缘区域;
S2.3.2、根据预设的锚点阈值,利用非极大值抑制从边缘区域中筛选出锚点。
5.如权利要求4所述的基于EDLines和LSM的视觉巡边方法,其特征在于,所述步骤S2.4中连接锚点得到边缘像素链,包括:
步骤S2.4.1、将锚点按照梯度值的大小进行排序;
步骤S2.4.2、取第k个锚点作为边缘像素链的当前位置的像素Gk,并标记该像素为已识别,其中k=0,1,…,n,n为锚点总个数;
步骤S2.4.3、根据像素Gk的梯度方向判断像素Gk的线段方向,若像素Gk的线段方向为垂直方向,则查询像素Gk上方的三个像素,移动至三个像素中梯度值最大的像素,更新k=k+1并将移动后得到的像素作为Gk;若像素Gk的线段方向为水平方向,则查询像素Gk左方的三个像素,并移动至三个像素中梯度值最大的像素,更新k=k+1并将移动后得到的像素作为Gk
判断移动后得到的像素Gk是否处于所述边缘区域内,若是则执行步骤S2.4.4;否则执行步骤S2.4.5;
步骤S2.4.4、判断当前像素Gk的线段方向是否发送变化,若是则重新执行步骤S2.4.3;否则标记该像素为已识别,并执行步骤S2.4.3;
步骤S2.4.5、若当前像素Gk的线段方向为垂直方向,则查询像素Gk下方的三个像素,并移动至三个像素中梯度值最大的像素,更新k=k+1并将移动后得到的像素作为Gk;若当前像素Gk的线段方向为水平方向,则查询像素Gk右方的三个像素,并移动至三个像素中梯度值最大的像素,更新k=k+1并将移动后得到的像素作为Gk
判断移动后得到的像素Gk是否处于所述边缘区域内,若是则执行步骤S2.4.6;否则得到当前循环形成的边缘像素链,并执行步骤S2.4.7;
步骤S2.4.6、判断像素Gk的线段方向是否发送变化,若是则重新执行步骤S2.4.3;否则标记该像素为已识别,并重新执行步骤S2.4.5;
步骤S2.4.7、取下一个锚点作为新的边缘像素链的当前位置的像素Gk,查看像素Gk是否被标记为已识别,若被标记为已识别,则重新执行步骤S2.4.7;否则执行步骤S2.4.8;
步骤S2.4.8、判断当前位置的像素Gk是否是最后一个锚点,若是则执行步骤S2.4.9;否则执行步骤S2.4.3;
步骤S2.4.9、将遍历得到的所有边缘像素链中像素个数小于c的边缘像素链去除,得到最终的边缘像素链集合。
6.如权利要求5所述的基于EDLines和LSM的视觉巡边方法,其特征在于,所述步骤S2.5中通过最小二乘法对边缘像素链进行拟合,得到新的像素线段,包括:
步骤S2.5.1、取连接所得到的所有边缘像素链,遍历边缘像素链,使用最小二乘法对每条边缘像素链进行分割,得到若干像素线段,分割过程中以最小直线长度N为限度进行分割;
步骤S2.5.2、遍历属于同一边缘像素链的若干像素线段,两两进行合并处理,所述合并处理包括:确定两条像素线段中的长线段和短线段,计算短线段两个端点和中点到长线段的拟合直线的最小距离,计算三个距离的平均值,判断平均值是否小于距离阈值,若是则将两条像素线段合并;若不是则不合并。
7.如权利要求6所述的基于EDLines和LSM的视觉巡边方法,其特征在于,所述步骤S2.6中基于亥姆霍兹原理检测像素线段,去除错误的像素线段,得到最终的直线段集合,包括:
定义像素线段的错误警报数量NFA如下:像素线段A的长度为β,至少有m个像素点的梯度方向与像素线段A的梯度方向相同,灰度图像的大小为N×N,则像素线段A的NFA为:
Figure FDA0002520624850000041
其中,N4表示在N×N图像中,每条像素线段有两个点,每个点有N2个选择,共有N4个线段,p为像素线段方向的准确度,符合二项式分布;
若NFA(β,m)≤ε,ε为错误阈值,则表明该像素线段有效;否则该像素线段无效需要舍弃;
取去除错误后剩余的像素线段作为直线段集合。
8.如权利要求1所述的基于EDLines和LSM的视觉巡边方法,其特征在于,所述步骤S3.5中对于每一组别中的直线段取两两进行合并处理,合并更新各组别中的直线段,包括:
双重循环遍历同一组中的直线段,跳过标记为已合并的直线段,依次取两根直线段,设置较长的直线段为L1、较短的直线段为L2,计算直线段L1和直线段L2之间的最小距离l,计算直线段L2上的点到直线段L1的最小垂直距离d;
采用直线段L2的长度l2对最小距离l进行归一化,得到归一化后的
Figure FDA0002520624850000042
为:
Figure FDA0002520624850000043
采用预设的间距最大允许值τs对最小垂直距离d进行归一化,得到归一化后的
Figure FDA0002520624850000044
为:
Figure FDA0002520624850000045
计算线段可合并性参数λ如下:
Figure FDA0002520624850000046
线段可合并性参数λ与线段可合并性成反比,即λ越小,可合并性越高,若线段可合并性参数λ小于合并阈值,则将直线段L2合并到直线段L1,并标记直线段L2为已合并;否则不合并,然后继续遍历,直至完成所有直线段的合并。
CN202010490103.6A 2020-06-02 2020-06-02 一种基于EDLines和LSM的视觉巡边方法 Withdrawn CN111754422A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010490103.6A CN111754422A (zh) 2020-06-02 2020-06-02 一种基于EDLines和LSM的视觉巡边方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010490103.6A CN111754422A (zh) 2020-06-02 2020-06-02 一种基于EDLines和LSM的视觉巡边方法

Publications (1)

Publication Number Publication Date
CN111754422A true CN111754422A (zh) 2020-10-09

Family

ID=72674403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010490103.6A Withdrawn CN111754422A (zh) 2020-06-02 2020-06-02 一种基于EDLines和LSM的视觉巡边方法

Country Status (1)

Country Link
CN (1) CN111754422A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112580447A (zh) * 2020-12-04 2021-03-30 国网福建省电力有限公司泉州供电公司 一种基于边缘二阶统计与融合的电力线检测方法
CN112598652A (zh) * 2020-12-25 2021-04-02 凌云光技术股份有限公司 一种基于梯度变换的液晶屏边缘断线检测方法
CN113221926A (zh) * 2021-06-23 2021-08-06 华南师范大学 一种基于角点优化的线段提取方法
CN113238560A (zh) * 2021-05-24 2021-08-10 珠海市一微半导体有限公司 基于线段信息的机器人旋转地图方法
CN114708439A (zh) * 2022-03-22 2022-07-05 重庆大学 基于PROSAC与筛选合并的改进EDLines直线提取方法
CN116485904A (zh) * 2023-03-26 2023-07-25 重庆大学 基于图像梯度阈值计算的改进移动机器人EDLines线段检测方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112580447A (zh) * 2020-12-04 2021-03-30 国网福建省电力有限公司泉州供电公司 一种基于边缘二阶统计与融合的电力线检测方法
CN112580447B (zh) * 2020-12-04 2023-08-04 国网福建省电力有限公司泉州供电公司 一种基于边缘二阶统计与融合的电力线检测方法
CN112598652A (zh) * 2020-12-25 2021-04-02 凌云光技术股份有限公司 一种基于梯度变换的液晶屏边缘断线检测方法
CN112598652B (zh) * 2020-12-25 2024-01-30 凌云光技术股份有限公司 一种基于梯度变换的液晶屏边缘断线检测方法
CN113238560A (zh) * 2021-05-24 2021-08-10 珠海市一微半导体有限公司 基于线段信息的机器人旋转地图方法
CN113221926A (zh) * 2021-06-23 2021-08-06 华南师范大学 一种基于角点优化的线段提取方法
CN114708439A (zh) * 2022-03-22 2022-07-05 重庆大学 基于PROSAC与筛选合并的改进EDLines直线提取方法
CN114708439B (zh) * 2022-03-22 2024-05-24 重庆大学 基于PROSAC与筛选合并的改进EDLines直线提取方法
CN116485904A (zh) * 2023-03-26 2023-07-25 重庆大学 基于图像梯度阈值计算的改进移动机器人EDLines线段检测方法

Similar Documents

Publication Publication Date Title
CN111754422A (zh) 一种基于EDLines和LSM的视觉巡边方法
CN107798330B (zh) 一种焊缝图像特征信息提取方法
CN107679520B (zh) 一种适用于复杂条件下的车道线视觉检测方法
CN106056020B (zh) 一种基于机器视觉系统的条码检测识别方法及系统
CN109583365B (zh) 基于成像模型约束非均匀b样条曲线拟合车道线检测方法
KR20070026542A (ko) 선도형화 처리 장치
CN108009522B (zh) 一种道路检测方法、装置及终端
CN115131348B (zh) 一种纺织品表面缺陷的检测方法及系统
CN110084830B (zh) 一种视频运动目标检测与跟踪方法
CN109190625A (zh) 一种大角度透视变形的集装箱箱号识别方法
CN111354026A (zh) 一种基于surf特征的改进列车图像精确配准方法和系统
CN113689429A (zh) 一种基于计算机视觉的木板缺陷检测方法
CN108256518B (zh) 文字区域检测方法及装置
CN114187267B (zh) 基于机器视觉的冲压件缺陷检测方法
CN104112123A (zh) 一种用于子弹表观缺陷检测的aoi系统的缺陷特征提取与识别方法
CN117400066B (zh) 一种数控机床刀具磨损识别方法及系统
CN117058137B (zh) 一种夹胶玻璃生产质量视觉检测方法
JP2004145501A (ja) 道路白線認識装置
JP2003067755A (ja) 道路白線認識装置
CN111178210B (zh) 一种十字标记的图像识别及对准方法
CN109919942B (zh) 基于高精度降噪理论的桥梁裂缝智能化检测方法
CN112069924A (zh) 车道线检测方法、装置及计算机可读存储介质
JP2006155126A (ja) 車両番号認識装置
CN111738094B (zh) 一种遥感影像道路自动提取方法及装置
CN110060270B (zh) 一种适用于低成像质量多边形管状物体的边缘检测方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20201009

WW01 Invention patent application withdrawn after publication