一种基于弧支持线段的椭圆检测方法与流程

文档序号:12306707阅读:1339来源:国知局
一种基于弧支持线段的椭圆检测方法与流程

本发明属于计算机视觉,模式识别,图像处理技术领域,涉及一种高精度、高鲁棒性和快速的椭圆检测技术,具体涉及一种基于弧支持线段的椭圆检测方法。



背景技术:

首先,椭圆检测方法是计算机视觉和图像处理领域中的基石,具有非常重要的研究意义和极大的应用价值。在形状识别,物体识别和定位,边缘轮廓建模和图像分割中都有起着重要的作用。

在椭圆检测领域,比较突出的检测方法主要是基于霍夫变换(ht),和基于边界跟踪的椭圆检测方法。对于标准的ht椭圆检测方法,有三个方面的缺点导致在实际中难以进行应用。第一,ht方法需要存储五维的累加器,耗费大量的存储空间;第二ht方法在五维空间中搜索峰值,需要耗费大量的时间;第三严重依赖参数。因此随机霍夫变换(sht)针对以上前两个缺点进行改进,随机的选取5个点并映射到椭圆参数空间中,并且采用了一维的数组而非累加器。还有的方法,例如mclaughlin等,对ht的五维参数空间进行降维,采取先求椭圆中心,再求剩余参数的策略。但是ht方法及其变体,都无法在椭圆检测上表现出良好的性能。

另一个,便是基于边界跟踪的椭圆检测方法。该类方法通过提取边界图中的线段,然后依据线段连接边缘像素形成弧片段,根据边缘的连续性和凸性,将弧片段进行连接,并运用不同的技巧对弧片段进行分组,最后对分组进行拟合得到椭圆。该类方法主要问题在于一下几点,第一,弧片段的连接仅依赖于距离,容易连接错误。第二,进行分组时,需要明确的是极其难通过搜索或者优化方法将属于同一个椭圆的弧片段都分为同一组,因此最后会导致误识别。第三,该类方法未充分利用椭圆的几何性质,以及梯度信息,耗时长,鲁棒性不高。



技术实现要素:

本发明提供一种基于弧支持线段的椭圆检测方法,其具有高鲁棒性,精确,低误识,高效的性能,能够应对复杂环境干扰(光照明暗,椭圆缺失,断续,模糊,复杂背景,大量噪声等)。

为实现上述技术目的,本发明采取具体的技术方案为,一种基于弧支持线段的椭圆检测方法,包括如下步骤:

步骤一、运用线段检测方法从原始灰度图像中提取弧支持线段的集合,弧支持线段为去除直线段的曲线边缘得到的线段;

步骤二、基于弧支持线段的连续性与凸性,对属于同一曲线边缘的弧支持线段进行鲁棒性连接,实现对弧支持线段进行分组;

步骤三、采用两种方式分别从弧支持线段的分组中提取初始椭圆,方式一:对于分组内连接的弧支持线段所跨弧度角度大于tsa的分组直接进行椭圆拟合,tsa为90°,从而得到若干个初始椭圆;方式二:将步骤二得到的分组按两个一对进行任意组对,对组对进行极性分析、区域限制算法和自适应内点准则验证得出有效组对,拟合有效组对得到若干个初始椭圆;其中,极性分析是要求组对的两个分组极性一致,区域限制算法要求两个分组要在彼此的弧支持方向指向的区域内,自适应内点准则要求由两个分组内每一条弧支持线段的支持内点数量要大于自身线段长度对应的像素点的数量;支持内点指的是距离初始椭圆的边界距离小于ε的边缘点,ε为2个像素,其梯度方向与初始椭圆的法线方向差值不超过α,α为22.5°;方式一与方式二得到的初始椭圆均采用表示,(x,y)i是初始椭圆ei的对称中心,(a,b)i为初始椭圆ei的长短半轴,为初始椭圆ei的倾角;通过两种方式分别从弧支持线段的分组中产生的若干个初始椭圆,共同构成初始椭圆集合,初始椭圆集合为einit,其中ninit为两种方式产生的初始椭圆数量总数;

步骤四、运用椭圆类聚合算法对初始椭圆集合进行聚类分析,产生候选椭圆;

步骤五、应用椭圆的几何性质,对候选椭圆进行验证,检测出椭圆。

作为本发明改进的技术方案,弧支持线段的提取方法如下:

步骤一、对原始灰度图像进行sobel算子得到梯度图;

步骤二、在梯度图中,剔除梯度幅度小于最大梯度幅度10%的点,并依据幅度大小进行伪排序;

步骤三依伪排序在梯度图中选择种子点进行区域增长算法,得到候选区域rl,rl中整体梯度表现的方向为式一:

式中,pj属于rl中的像素点,gradangle(pj)为pj的梯度,gradangle(rl)为rl中整体梯度表现方向;

步骤四、计算线段候选区域rl的几何中心c,依据通过c且垂直angle(l)的直线将rl划分为两个子区域rl1、rl2,再次运用式一即能估计出子区域rl1、rl2梯度方向,其中,l为候选区域的线段近似,angle(l)为l的方向;这里线段近似指的是用一个矩形将该候选区域包围,然后矩形的两个端点连接成一条线段;

步骤五、若候选区域rl是弧支持线段的候选区域,则必须满足角度差tai,tai为2.5;且gradangle(rl),角度变化的方向要一致,要同为顺时针或者同为逆时针,如果同为顺时针,定义区域rl产生的线段极性为负;如果同为逆时针,定义其极性为正;

步骤六、通过对比模型对候选区域rl进行验证,即能提取到弧支持线段。

作为本发明改进的技术方案,步骤二中对弧支持线段进行分组,具体包括,选取弧支持线段的集合中任意一条弧支持线段作为种子线段ls,根据种子线段ls的极性确定曲线边缘的凸性,进而确定种子线段ls头部的局部邻域和尾部的局部邻域,统计局部邻域弧支持线段所对应候选区域的像素点数量,且像素点数量要求大于等于局部邻域像素点总数的由此统计出具有最大统计值对应的弧支持线段,从而进行连接,连接的弧支持线段代表一个分组。

作为本发明改进的技术方案,步骤三中对单个分组或者组队进行椭圆拟合,得到初始椭圆,具体包括如下步骤:在直接最小二乘椭圆拟合算法中,假设待拟合样本点γ={p1,p2,p3,…pn},pi={xi,yi},则散布矩阵s=dtd,其中设计矩阵d为:

通过求解特征系统eigensystem=s-1c中特征值,特征值为正数时所对应的广义特征向量即为拟合的椭圆,其中c是约束矩阵

作为本发明改进的技术方案,步骤三中初始椭圆的边界是运用canny算子得到边缘图后得出的。

作为本发明改进的技术方案,步骤四中椭圆类聚合算法对初始椭圆集合进行聚类分析包括如下步骤:步骤a、令初始椭圆集合为einit,其中,(x,y)i是初始椭圆ei的对称中心,(a,b)i为初始椭圆ei的长短半轴,为初始椭圆ei的倾角,ninit为步骤三中方式一与方式二生产的初始椭圆数量总数;

步骤b、运用均值漂移算法对einit的椭圆中心进行聚类,可得到ncenter个椭圆中心的聚类中心;ncenter个椭圆对称中心的聚类中心分别为ncenter是椭圆对称中心的聚类中心的数量,表示第k个聚类中心;

步骤c、对einit按照ncenter聚类中心的距离进行划分,也就是第k(k=1~ncenter)个椭圆聚类中心对应的初始椭圆子集为point→clustercenter表示数据点point最近的类簇中心为clustercenter;

步骤d、对每一个ωk按照椭圆倾角方向进行聚类,得到个倾角的聚类中心于是ωk能被划分为个椭圆子集,第个倾角聚类中心对应的椭圆子集ωk,s为

步骤e、对ωk,s按照椭圆长短半轴进行均值漂移聚类,得到个椭圆长短半轴的聚类中心于是,初始椭圆集合einit的聚类出来的候选椭圆集合为ecandidate,其中k=1~ncenter候选椭圆集合中的椭圆个数为

作为本发明改进的技术方案,所述步骤五具体包括如下步骤,先对候选椭圆集合ecandidate进行椭圆质量评价,然后按照评价高低进行伪排序;依次地对每个候选椭圆,由于椭圆周长能用其边缘上的支持内点进行近似,因此测量其边缘支持内点的数量与椭圆近似周长像素点的比例不小于tni、边缘连通量的角度总共跨度大于或等于tac,tni为0.65,tac为165°。

有益效果

本发明的技术方案能从原始灰度图中进行弧支持线段的提取,使得弧支持线段具备丰富的几何性质,例如整体梯度方向,可能出现椭圆方向,极性性质。

本发明提出一种在像素点统计水平上的线段连接方法,以及提出有效的区域限制的组(组内包含属于同一曲线边缘的线段)配对方法、提出高效的分层椭圆聚类算法以及运用高级的椭圆验证技术。

综上,本申请的椭圆检测算法达到能够高鲁棒性,精确,低误识,高效的性能,能够应对复杂环境干扰(光照明暗,椭圆缺失,断续,模糊,复杂背景,大量噪声等)。

附图说明

图1实施例中涉及的原始灰度图像;

图2实施例中便是提取的弧支持线段图;

图3实施例中检测到的椭圆示意图。

具体实施方式

为使本发明实施例的目的和技术方案更加清楚,下面将结合本发明实施例对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

一种基于弧支持线段的椭圆检测方法,包括以下步骤:

步骤s1,运用改进的线性复杂度的线段检测方法提取弧支持线段,并基于曲线的连续性和凸性进行线段分组;

步骤s2,运用两种方式产生初始椭圆集合。第一种方式是对具有较高显著性的分组直接进行椭圆拟合(对于分组内连接的弧支持线段所跨弧度角度大于tsa的分组直接进行椭圆拟合,tsa为90°),从而得到初始椭圆(这里的椭圆拟合是指对组内的线段的端点构成的点集直接进行椭圆拟合)。第二种方式是对每两个组构成的组对,进行相应的极性分析,区域限制和自适应内点准则验证。通过三个限制条件的组对构成有效组对,拟合有效组对得到初始椭圆。三个限制条件分别为:极性分析、是要求两个分组能够配对的前提是极性一致;区域限制算法、要求两个分组要在彼此的弧支持方向指向的区域内才能可能构成椭圆;自适应内点准则、要求由两个分组内每一条弧支持线段的支持内点数量要大于自身线段长度对应的像素点的数量;其中支持内点指的是距离初始椭圆(这里是用组队拟合得出的)的边界距离小于ε的边缘点,ε为2个像素,支持内点的梯度方向与初始椭圆的法线方向差值需要满足不超过α,该值为22.5°;这里,初始椭圆的边界是运用canny算子得到边缘图后得出的;边缘图的作用一方面是为了寻找支持内点,另一方面可以通过这些支持内点进行椭圆的再次拟合和验证。

步骤s3,运用椭圆聚类算法对初始椭圆集合进行高效聚类,产生候选椭圆。

步骤s4,应用椭圆的几何性质,对候选椭圆进行验证,从而得到候选椭圆。

其中,步骤s1中的弧支持线段的提取方法如下:对原始灰度图像(如图1)进行sobel算子得到梯度图。

在梯度图中,剔除梯度幅度小于最大梯度幅度10%的点,并依据幅度大小进行伪排序,依序在梯度图中选择种子点进行区域增长算法,得到候选区域rl,

rl中整体梯度表现的方向为

其中pj属于rl中的像素点,gradangle(pj)为pj的梯度;

计算线段候选区域rl的几何中心c,依据通过c且垂直angle(l)的直线将rl划分为两个子区域rl1,rl2;其中,l为候选区域的线段近似,angle(l)为l的方向;这里线段近似指的是用一个矩形将该候选区域包围,然后矩形的两个端点连接成一条线段;

再次运用公式(1)即可估计出子区域rl1,rl2梯度方向;若候选区域rl是弧支持线段的候选区域,则必须满足一定的角度差tai,该角度为2.5°。然后通过对比模型(现有技术,参考文献lsd:afastlinesegmentdetectorwithafalsedetectioncontrol)对候选区域rl进行验证,即可提取到弧支持线段,如图2所示,便是提取的弧支持线段的示意图。

注意,由于具有旋转方向特性,本发明定义当其旋转方向为顺时针时,对应提取的弧支持线段极性为负;为逆时针时,极性为正。

其中,所述步骤s1中的线段分组算法为:首先选取弧支持线段集合中任意一条线段作为种子线段ls,根据种子线段ls的极性确定曲线边缘的凸性,进而确定头部和尾部的局部邻域,本实施例中该局部领域为5x5像素区域,统计局部邻域它弧支持线段的对应的候选区域的像素点数量,且数量要求大于等于局部领域所对应像素点总数的由此统计出具有最大统计值对应的线段,从而进行连接得到分组。

其中,所述步骤s2中的直接椭圆拟合方法的叠加原理如下:在直接最小二乘椭圆拟合算法中,假设待拟合样本点γ={p1,p2,p3,…pn},pi={xi,yi},则散布矩阵s=dtd,其中设计矩阵d为

于是通过求解特征系统eigensystem=s-1c中特征值为正数对应的广义特征向量即为拟合的椭圆,其中c是约束矩阵

假设线段li两个端点对应的设计矩阵是d(li),散布矩阵是s(li),如果一个分组中有n条线段,则由这2n个端点构成的设计矩阵df,散布矩阵sf分别为

因此,本发明只需要计算一次所有弧支持线段的散布矩阵即可高效进行椭圆拟合计算。

其中,所述步骤s3中的初始椭圆集合的聚类算法如下:整个聚类算法分三步进行。令初始椭圆集合为einit,其中第一,先运用均值漂移对einit的椭圆中心进行聚类,可得到ncenter个椭圆中心的聚类中心为ninit为两种方式产生的初始椭圆数量总数。于是可以对einit按照ncenter聚类中心按照距离进行划分,也就是第k(k=1~ncenter)个椭圆聚类中心对应的初始椭圆子集为point→clustercenter表示数据点point最近的类簇中心为clustercenter(类簇中心)。第二,接下来,对每一个ωk按照椭圆倾角方向进行聚类,可得到个倾角的聚类中心于是ωk可以划分为个椭圆子集,第个倾角聚类中心对应的椭圆子集ωk,s为第三,对ωk,s按照椭圆长短半轴进行均值漂移聚类,可以得到个椭圆长短半轴的聚类中心于是,初始椭圆集合einit的聚类出来的候选椭圆集合为ecandidate,其中k=1~ncenter候选椭圆集合中的椭圆个数为

其中,步骤s4中,先对所述的候选椭圆集合ecandidate进行椭圆质量评价,然后按照评价高低进行伪排序。依次地对每个候选椭圆,测量其边缘支持内点的数量与椭圆近似周长像素点的比例并要不小于tni,该值为0.6,以及边缘连通量的角度总共跨度,且应大于或等于tac,该值为165°。通过验证的候选椭圆,将会进行再次拟合,从而提高椭圆的精度。如图3所示,便是检测到的椭圆示意图。

以上仅为本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些均属于本发明的保护范围。

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