一种基于图像梯度信息的多椭圆检测和评估算法、装置、终端及可读存储介质的制作方法

文档序号:21188450发布日期:2020-06-20 18:18阅读:230来源:国知局
一种基于图像梯度信息的多椭圆检测和评估算法、装置、终端及可读存储介质的制作方法

【技术领域】

本申请涉及计算机视觉及图像处理技术领域,尤其涉及一种基于图像梯度信息的多椭圆检测和评估算法、装置、终端及可读存储介质。



背景技术:

在图像中检测出其包含的多个椭圆,并评估出检测到的各个椭圆的参数在自动化生产中具有一定的应用。许多工业产品中包含了圆形的组件,圆在经过相机的透视投影变换后在图像中成像为近似的椭圆。检测和评估出图像中的椭圆,可以帮助统计图像中产品的数量,也可以与产品cad模型中的对应椭圆特征进行几何匹配,来确定产品是否存在质量问题。

霍夫变换是在图像中检测基本几何元素(如直线和圆)的传统算法。霍夫变换通过几何元素的参数表达式,将图像中提取到的特征点(通常是几何元素的边缘点)逐一映射到经过离散化的参数空间中(这样的映射往往是一对多的),并在参数空间中进行累计。具有较多特征点支持的几何元素会在参数空间中对应的位置上形成峰值。霍夫变换就是将在图像空间中检测几何元素的问题转化为相对容易的在参数空间中检测局部最大值的问题。霍夫变化具有很高的鲁棒性,在特征点中存在着大量非相关点的情况下,仍然可以获得不错的效果。

霍夫变换在直线和圆的检测中有广泛的应用。然而,传统的霍夫变换并不适合椭圆的检测。与直线方程的两个参数和圆方程的三个参数不同,一般的椭圆方程具有五个参数,即椭圆的参数空间是五维的。这意味着,在保证结果准确度的前提下,构造椭圆的参数空间需要占用大量的内存。而且,椭圆上的特征点从图像空间到参数空间的映射也需要大量的计算资源。因此,我们需要更有效的算法进行椭圆检测和评估。



技术实现要素:

本申请的目的在于提供一种基于图像梯度信息的多椭圆检测和评估算法、装置、终端及可读存储介质,通过图像的梯度信息和随机采样一致性的算法,从图像中对多个椭圆进行快速检测和精确评估,克服了传统霍夫变换在对复杂几何元素进行检测和评估时所存在的内存需求大、计算时间长、评估结果不准确等问题。

本申请是通过以下技术方案实现的:

一种基于图像梯度信息的多椭圆检测和评估算法,包括步骤:

s1、用边缘检测算法从待测试图像中提取特征点,得到特征点集,所述特征点包括位置坐标和梯度向量;

s2、从特征点集中随机抽取三个点,代入椭圆评估算法中评估椭圆的代数系数;

s3、根据评估得到的代数系数,判断被评估的椭圆是否有效,如果有效则进行下一步骤,否则返回步骤s2;

s4、根据当前的椭圆的代数系数表达式,在特征点集内搜索所有内点,得到内点集;

s5、根据所有搜索到的内点,代入椭圆评估算法,重新评估椭圆的代数系数;

s6、重复步骤s3-s5,直到内点的数目不再增加;

s7、根据评估的椭圆的代数系数和内点集,判断被评估的椭圆是否有效,如果有效,则视为成功检测到一个椭圆,进行下一步骤,否则返回步骤s2;

s8、记录步骤s6中最终评估得到的椭圆代数系数,并从特征点集中去除相应的内点,返回步骤s2,直到图像中所有的椭圆都被检测和评估出来。

如上所述的基于图像梯度信息的多椭圆检测和评估算法,:

步骤s3中,当满足以下两个条件时判断被评估的椭圆为有效:条件一是在椭圆的矩阵形式的代数系数表达式中,det(a)>0,且bta-1b-2f>0。条件二是得出的椭圆的几何参数表达式中的长半轴长度、短半轴长度、长半轴与x坐标轴的夹角值这几个几何参数均在预设范围内。

如上所述的基于图像梯度信息的多椭圆检测和评估算法,所述椭圆的几何参数表达式为:

其中,a为长半轴长度,b为短半轴长度,θ为长半轴与x坐标轴的夹角,(cx,cy)为椭圆的中心坐标,(x,y)为椭圆上点的坐标,φ为定义域在[0,2不)上的自由变量。

如上所述的基于图像梯度信息的多椭圆检测和评估算法,所述椭圆的几何参数表达式中的几何参数由以下步骤得到:

(1)用椭圆的圆锥曲线方程定义椭圆二元二次方程形式的代数系数表达式为:

ax2+bxy+cy2+dx+ey+f=0,

式中,a、b、c、d、e、f是方程系数,限定a>0;

(2)将椭圆二元二次方程形式的代数系数表达式表示为椭圆矩阵形式的代数系数表达式:

式中,,

(3)进行从椭圆的代数系数表达式到几何参数表达式之间的转换:

对椭圆的所述椭圆的代数系数的矩阵方程进行特征分解,得到

a=sλst

式中,并且λ1≤λ2,λ1和λ2为两个大于0的实数特征值,基于特征分解结果,得到下式以得出椭圆几何参数的值:

θ=arctan(s21/s11)

[cx,cy]t=-a-1b

如上所述的基于图像梯度信息的多椭圆检测和评估算法,所述椭圆评估算法包括以下步骤:

(1)构建如下目标函数并求解使其最小化:

其中,β为用于平衡位置信息和梯度信息的值,n为给定的坐标点数量,(xi,yi)为第i个点的坐标,(gx,i,gy,i)为第i个点的梯度,k1,k2,...,kn为引入的n个新的未知数,

(2)将椭圆的代数系数和新引入的未知数联合起来,组成待计算的向量p,则p=[abcdefk1k2…kn]t,则所述目标函数表达为

其中,q是(3n)×(n+6)的矩阵,表示为

求解使所述目标函数最小化时限定||p||=1,通过奇异值分解,有q=u∑vt,p的解即为矩阵v中对应最小奇异值的列向量,即得所述a、b、c、d、e、f的值。

如上所述的基于图像梯度信息的多椭圆检测和评估算法,步骤s7中,当满足以下三个条件时判断椭圆为有效:(1)内点的个数达到预设范围;(2)内点在椭圆上的分布均匀;(3)内点在椭圆上的分布完整。

如上所述的基于图像梯度信息的多椭圆检测和评估算法,所述边缘检测算法为canny算法。

本申请还相应提供一种基于图像梯度信息的多椭圆检测和评估装置、一种基于图像梯度信息的多椭圆检测和评估终端,及一种计算机可读存储介质。

与现有技术相比,本申请有如下优点:

本发明通过图像的梯度信息和随机采样一致性的算法,从图像中对多个椭圆进行快速检测和精确评估,克服了传统霍夫变换在对复杂几何元素进行检测和评估时所存在的内存需求大、计算时间长、评估结果不准确等问题。

【附图说明】

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

图1为本申请实施例中的待测试图像。

图2为图1经过步骤1处理后的特征点展现示意。

图3为图1经过所述基于图像梯度信息的多椭圆检测和评估算法后的结果示意。

图4为图2的a部放大图。

图5为本申请实施例的系统框图。

【具体实施方式】

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

本申请实施例提出一种基于图像梯度信息的多椭圆检测和评估算法,包括以下步骤:

s1、用边缘检测算法从待测试图像中提取特征点,得到特征点集,所述特征点包括位置坐标和梯度向量;所述边缘检测算法具体可采用canny算法,将sobel算子作用在以特征点为中心的局部区域,获取特征点对应的梯度向量。需要注意的是,若目标图像中包含多个椭圆,特征点也分布在多个椭圆上。同时,特征点中还往往包含了许多与椭圆无关的外点。

s2、从特征点集中随机抽取三个点,代入椭圆评估算法中评估椭圆的代数系数;如果我们不采用特征点的梯度信息而只采用其位置信息的话,则需要五个采样点进行评估。而五个采样点都来自同一椭圆的概率要远远低于三个采样点的概率,从而大幅增加采样尝试的次数。所以,利用特征点的梯度信息可以提高算法的效率。

s3、根据评估得到的代数系数,判断被评估的椭圆是否有效,如果有效则进行下一步骤,否则返回步骤s2。

其中当满足以下两个条件时判断被评估的椭圆为有效:条件一是在椭圆的矩阵形式的代数系数表达式中,det(a)>0,且bta-1b-2f>0。条件二是得出的椭圆的几何参数表达式中的长半轴长度、短半轴长度、长半轴与x坐标轴的夹角值这几个几何参数均在预设范围内。需要说明的是,当判断条件一和条件二之中的其中一个条件不满足时,即可判断被评估的椭圆不是有效的椭圆从而执行返回步骤s2这一动作,本实施例优先判断条件一,当条件一不被满足时即代表被评估的椭圆不是有效的椭圆(即代表不是椭圆),因此当条件一不被满足时无需进行条件二的检测就可执行返回步骤2。

其中,所述椭圆的几何参数表达式为:

其中,a为长半轴长度,b为短半轴长度,θ为长半轴与x坐标轴的夹角,(cx,cy)为椭圆的中心坐标,(x,y)为椭圆上点的坐标,φ为定义域在[0,2不)上的自由变量。

进一步地,所述椭圆的几何参数表达式中的几何参数由以下步骤得到:

(1)一般的圆锥曲线可以表达为二元二次方程

ax2+bxy+cy2+dx+ey+f=0,

式中,a、b、c、d、e、f是方程系数,因为椭圆是一种特殊的圆锥曲线,通过设置限定条件,可用上述圆锥曲线方程定义为椭圆二元二次方程形式的代数系数表达式,此处所述限定条件指判断被评估的椭圆为有效的条件一(即det(a)>0且bta-1b-2f>0)。因为该方程的所有系数同时乘以一个相同的非零标量表示的还是同一个曲线,所以六个系数中只有五个是独立的。同时,不失一般性的,我们可以限定a>0。

(2)将椭圆二元二次方程形式的代数系数表达式表示为椭圆矩阵形式的代数系数表达式:

式中,t为转置符号;

(3)进行从椭圆的代数系数表达式到几何参数表达式之间的转换:

从上述(1)、(2)步骤中可知,a是对称而且正定的,故对椭圆的所述椭圆的代数系数的矩阵方程进行特征分解,得到

a=sλst

式中,令对角矩阵则λ1和λ2为两个大于0的实数特征值(让λ1≤λ2)。同时,令特征向量矩阵s11、s12、s21、s22分别为矩阵s中对应位置的标量元素。

基于特征分解结果,得到下式以得出椭圆几何参数的值:

θ=arctan(s21/s11)

[cx,cy]t=-a-1b

本实施例中,椭圆评估是指,对单一的椭圆,在给定若干(n个)该椭圆上的点的信息的情况下,对该椭圆的参数进行计算。椭圆上的点是从图像中提取获得的,它的信息可以包括位置坐标和梯度向量。梯度向量在理论上与该点在椭圆上的法线方向重合。我们将第i个点的坐标表示为(xi,yi),其梯度则表示为(gx,i,gy,i)。为了有效的进行计算,我们采取对椭圆的代数系数进行评估。而椭圆的几何参数,可以通过上述从椭圆的代数系数表达式到几何参数表达式的转换方法进行计算。具体地,所述椭圆评估算法包括以下步骤:

(1)构建如下目标函数并求解使其最小化:

此目标函数包含了三项,其中第一项叙述点的位置需要在椭圆上,第二项和第三项共同描述了梯度方向和椭圆法线方向需要重合,其中,β2为用于平衡位置信息和梯度信息的重要性的值,需说明的是,β2是根据实际应用中所提取的特征点的位置和梯度的评估误差比值来确定的。在位置评估误差一定的情况下,梯度评估误差越大,则β2取值应该越小;在梯度评估误差一定的情况下,位置评估误差越大,则β2的取值应该越大。在实践中,我们通常设定β2为1。n为给定的坐标点数量,(xi,yi)为第i个点的坐标,(gx,i,gy,i)为第i个点的梯度,k1,k2,...,kn为引入的n个新的未知数。

(2)将椭圆的代数系数和新引入的未知数联合起来,组成待计算的向量p,则p=[abcdefk1k2…kn]t,则所述目标函数表达为

其中,q是(3n)×(n+6)的矩阵,表示为

求解使所述目标函数最小化时限定||p||=1,通过奇异值分解,有q=u∑vt,其中,u、∑、v分别表示左奇异向量矩阵、奇异值矩阵和右奇异向量矩阵。p的解即为矩阵v中对应最小奇异值的列向量,即得所述a、b、c、d、e、f的值。

s4、根据当前的椭圆的代数系数表达式,在特征点集内搜索所有内点,得到内点集。

其中,所述内点指的是满足如下两个条件的特征点:(1)离椭圆的距离比较近;(2)梯度方向与特征点在椭圆上的对应点(为便于描述,下称点p’)的法线方向的夹角比较小。特征点到椭圆的距离最自然的定义是几何定义,即特征点到该椭圆上最近点的欧式距离。然而,几何距离的计算涉及到数值迭代,需要较多的计算资源。所以,我们采用了更高效的存在着解析解的参数距离来作为几何距离的近似。参数距离定义为特征点p到点p’的欧式距离,点p’为特征点p与椭圆中心的连线与椭圆相交的两个交点中离特征点p较近的那个交点。

s5、根据所有搜索到的内点,代入椭圆评估算法,重新评估椭圆的代数系数。

其中,步骤s5与s2相似,不同的是参与评估的点的个数。一般来说,参与评估的内点越多,评估的结果越精确。当参与评估的点数多于3时,椭圆评估算法给出的解是最小二乘法的解。

s6、重复步骤s3-s5,直到内点的数目不再增加;可说明的是,内点的数目随着评估的迭代是变化的。一般来说,刚开始基于三个随机特征点的评估是不准确的,所以,对应的内点数目比较少。后面的评估是基于内点评估的,由于内点的数目比较多(一般的应用有几十到几百个),它评估出的椭圆会比较准确,从而在后面的迭代中,会有更多的内点被找到,从而近一步的提升评估的准确度。所以,刚开始的几次评估迭代时,内点的数目会不断的增加,而到后面稳定时,内点的数目也会稳定甚至有时会减少。

s7、根据评估的椭圆的代数系数和内点集,判断被评估的椭圆是否有效,如果有效,则视为成功检测到一个椭圆,进行下一步骤,否则返回步骤s2;其中,当满足以下三个条件时判断椭圆为有效:(1)内点的个数达到预设范围,若对应内点太少表示采样的三个点不在同一个椭圆上,评估是失败的;(2)内点在椭圆上的分布均匀;(3)内点在椭圆上的分布完整。条件(2)和(3)是根据前面叙述的椭圆参数表达式,将内点对应的φ值逐一计算出来;然后根据φ值的大小对内点进行排序,排序后的内点就有了相邻的概念。然后对所有相邻的内点计算模式减法获得δφ值。(2)和(3)是基于δφ值的统计而来。步骤s7与步骤s3不同的是,步骤s7主要利用了内点与椭圆的相对几何关系进行有效性判断,这一步的检测是为了排除一些诸如机械部件上会出现的边缘曲线,它们非常接近椭圆的一部分,但它们并不完整,所以可以通过步骤7中三个有效判断条件进行排除。

s8、记录步骤s6中最终评估得到的椭圆代数系数,并从特征点集中去除相应的内点,返回步骤s2,直到图像中所有的椭圆都被检测和评估出来。其中,所述从特征点集中去除相应的内点的目的是为了避免重复检测到同一个椭圆,同时,由于点集变小了,检测到新的椭圆的概率就会增大。比如,特征点集中原来有100个点。现在通过其中的20个点评估出了当前的椭圆。这20个点就是这个椭圆对应的内点。接着,若要检测下一个新的椭圆,就要从特征集中去掉这部分内点,使特征点集中只剩下80个点。

如图1为本申请实施例中的待测试图像,根据在步骤s1中描述的边缘检测算法,特征点可以从测试图像中被提取出来。特征点提取的结果在图2中展现。其中如图4所示,特征点用实心圆点表示。每个特征点上的箭头方向表示该特征点在图像中对应的灰度梯度方向。如图3所示,经过所述基于图像梯度信息的多椭圆检测和评估算法处理后,所有被检测到的椭圆都根据其得到的几何参数被描绘出来,并被叠加到测试图像上,以便于比较结果。

本发明通过图像的梯度信息和随机采样一致性的算法,从图像中对一个或多个椭圆进行快速检测和精确评估,克服了传统霍夫变换在对复杂几何元素进行检测和评估时所存在的内存需求大、计算时间长、评估结果不准确等问题。

本实施例还提供一种基于图像梯度信息的多椭圆检测和评估终端,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的基于图像梯度信息的多椭圆检测和评估算法。

示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在终端设备的装置中的执行过程。例如,所述计算机程序可以被分割成如图5的各个模块:

特征点提取模块100,用于用边缘检测算法从图像中提取特征点,得到特征点集,所述特征点包括位置坐标和梯度向量;

椭圆评估模块200,用于从特征点集中随机抽取三个点,代入椭圆评估算法中评估椭圆的代数系数;

有效椭圆判断模块300,用于根据评估得到的代数系数,判断被评估的椭圆是否有效;

内点收集模块400,用于根据当前的椭圆的代数系数表达式,在特征点集内搜索所有内点,得到内点集;

基于内点的椭圆评估模块500,用于根据所有搜索到的内点,代入椭圆评估算法,重新评估椭圆的代数系数;

基于内点的有效椭圆判断检测模块600,用于根据评估的椭圆的代数系数和内点集,判断被评估的椭圆是否有效;

记录及整理模块700,用于记录最终评估得到的椭圆代数系数,并从特征点集中去除相应的内点。

所述终端可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述终端还可以包括输入输出设备、网络接入设备、总线等。所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述终端的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述终端集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

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