具体实施方案
下面通过具体实施方式结合附图对本发明作进一步详细说明。
如附图1所示,本发明的一种稳定的直线/圆特征检测方法,包括以下步骤:步骤①:基准点及初始检测区域设置;步骤②:检测区域基准点重新定位;步骤③:参照基准点调整初始设置检测区域;步骤④:区域范围内待拟合特征检测;其中,步骤④分为:⑤一维数据采样、⑥一维边界点检测、⑦拟合数据点提取、⑧直线/圆拟合。
在直线/圆检测流程中步骤①中,首先在初始图像(参考图像)中设置特征检测区域,如附图2(a)和附图2(b)所示,检测区域提供特征检测时的部分参数,包括:测量线方向、起始位置、长度、检测方向、检测段高度。同时在该区域还为当前图像Cimg的检测区域提供了基准位置,根据步骤②和步骤③中的变换关系算出基准位置在图像Cimg中的新位置。
在步骤②中利用模板匹配方法得到图像中显著特征的位置FP,检测区域的基准点P设置在参考图像上,Fp和P点可以建立变换关系(R,t),如附图3所示。当图像改变时(当前图像),基准点的位置会发生改变,产生新的基准点P′。P′的计算方法在步骤③中得到。
对于后续输入的图像(当前图像)利用步骤③中位置补正关系将检测区域重新设定。基准点位置的改变伴随着产生坐标变换矩阵的改变,通过参考图像和当前图像的矩阵变换调整检测区域,得到检测区域在当前图像的位置及方向。如附图4所示,图中检测区域的位置和姿态都发生了变化,首先利用模板匹配定位方法找到图像中的显著特征及位置Fp,再利用参考图像中的变化关系(R,t)计算出新的检测区域的基准位置P′。
一维测量数据采样及处理
假设数字图像的组成公式为I(x,y)=G(x,y)-N(x,y),图像范围内各点都是由原始模拟图像G(x,y)及噪声图像N(x,y)叠加得到。相机拍摄时光照变化、相机芯片感光因素、不同芯片之间能量分布等各种因素都会体现在噪声图像上,因此噪声图像的成因一般没有简单的模型可以得到。边缘提取过程当中,噪声因素会干扰最终的结果。多数图像处理的分析都将高斯噪声模型替代噪声图像,通过处理范围内的高斯信号抑制该区域内的噪声图像。
一维边缘检测的数据模型是选择二维图像中的一个区域并提取区域范围内的数据,通过分析数据变化的快慢判断某位置是否为边缘点。一维投影数据来源于二维图像,在得到有效数据的同时也得到了噪声信号。附图5表示标准的一维边界点模型,边界点在位置R处。该模型没有受噪声影响,可以不使用滤波操作。使用高斯滤波或其它滤波(如双边滤波)处理附图5所示的模型时,在图像灰度阶跃处(位置R)会弱化边界点的梯度幅值。
一维数据生成过程中,在得到有效数据(附图5中R处附近)的同时会带来噪声信息。传统的滤波操作在平滑噪声区域数据及特征区域数据的同时,降低特征区域梯度强度并改变特征区域的数据走向。本发明所采用的算法的特点是在每个位置根据数据来源的特性,决定各位置滤波与否或是滤波的程度。
附图6的表示图像在生成一维数据时的步骤,粗线框是设定的检测范围,虚线是测量线(测量数据采样点),大空心箭头表示投影方向垂直于测量线方向。边界点检测方向和测量线方向平行。附图6中圆点左侧是强噪声区域,右侧是特征数据伴有弱噪声。本发明所采用的算法在维持特征信号的前提下,减弱噪声对结果的干扰。测量线上每个点的数据由检测范围内投影方向上的内容组成,决定滤波强弱及是否滤波的是投影线所处的环境。附图6中圆点左侧垂直测量线的投影线为噪声区域,且噪声强度较大,需要加强滤波;在圆点右侧附近是特征数据区域,为保持边界点的准确性,测量线保持原始数据;右侧偏右的弱噪声区域弱化滤波处理。
一维投影数据来源于二维图像,如同图像模型表示为i(x)=f(x)+n(x,σx)。σx是测量线上各点的噪声标准方差,由测量线上投影线范围内计算得到。噪声方差的估计值按照统计方法直接得到。本发明所采用的算法流程如下:
(1)提取测量线方向数据;
(2)投影线范围内测量线局部噪声尺度计算;
(3)测量线上局部尺度的滤波操作。
附图7是测量线投影数据曲线示意图,附图8是一维测量线的数据不同处理方式结果示意图,其中附图8中的点线即为附图7的曲线,虚线是全局滤波方式,实线是局部尺度滤波方式,滤波方法是双边滤波。局部尺度滤波在噪声波动强烈范围内较大尺度的平滑处理原始数据,在噪声较小区域或是无噪声范围内能更大程度的保持处理结果相对原始数据不变。
尺度滤波处理后的数据后期利用一阶导数操作,选择|f′g|≥fT设定为边界点。数据经过滤波操作降低噪声区的一阶导数幅值,更便于剔除噪声信号。
一维数据的边缘点检测
边缘点的定义是灰度变化强烈的位置,如附图5的R坐标处。边缘滤波算法主要分为一阶滤波和二阶滤波算法。一阶滤波算法的判断标准是选择梯度幅值极大值的位置,如sobel算法ei=|f′*h|i=|f*h′|i;二阶滤波算法是选择导数过零点位置,如Laplace算法pi=f″*h=f*h″,其中h是滤波函数,如高斯函数。当边界点的模糊程度较大时,一阶导数方式或二阶导数方法很难得到准确的单一边缘点信息。局部尺度的一阶算法及二阶算法能够针对不同模糊程度的边缘位置使用合适的尺度数值,得到单一准确数值。
高斯信号的一阶导数为 尺度阈值计算方法如下。设参数αP为逐点意义数据,αI为全局意义数据,两者关系为αP=1-(1-αI)1/n,设定αI=0.05,n是图像尺寸。此外需使用命题1:假设一个线性变化sn是定义域的方差,线性变化的方差为SL=||L||2sn。设概率分布函数pU,V=f(U),得到如下概率公式:
图像噪声设定为高斯噪声,标准方差为sn,
其中s1=||g1(x,σ1||2sn(上述命题1设定)。由公式(1)f(u)=u2,推导并得公式:
积分结果如下:
为保证αP的阈值,设定积分下限值c1,该值满足如下等式:
其中s1=||g1(x,σ1)||2,αP=2.0×10-7,得到如下等式:
式(7)的图像噪声信号方差sn由图像内容计算,模糊信号方差(σ1)为未知数。计算一阶导数时也需要使用模糊信号方差。在应用中,为计算满足下列条件的模糊信号方差,在系列参数中枚举匹配符合要求数据。
同理,二阶导数的局部尺度数值使用上述方式计算得到,其中
拟合内点及噪声点分割与筛选
集合P:={pi|pi:=(xi,yi)}是待拟合的点集,拟合模型(如直线ax-by+c=0,圆(x-a)2+(y-b)2=r2)参数为点集在函数变化后的误差为:
其中F(·)是拟合函数相关的用来计算误差的函数。后期需要对误差集合{|ri|}从小到大排序。
设定内点分割尺度(比例)参数s,所有符合下面表达式的都属于内点集合:
阈值参数E设置为2.5能包含98%的符合高斯模型误差的内点。
参数是第J次拟合参数(θJ)的第i个绝对误差,nJ是内点个数,尺度参数可以用迭代K阶尺度估计(IterativeScaleKEstimation,ISKE)
其中是高斯密度函数的正态分布累积函数;K是一个预设定的固定参数,数值和输入点集的噪声信号相关,在0到1之间,式(11)的关键是如何估计内点个数nJ。迭代K阶尺度估计的算法设定nJ的初始值等于输入点集的势,根据s的特性迭代计算尺度数值,直至得到收敛的尺度数值。集合表示第J次拟合参数的第t次迭代,该集合收敛且单调递减,迭代K阶尺度估计算法描述如下所示:
K值的选择与输入点集合的特性有关:噪声点的比率较高时,设置较小K值;反之,设置较大的数据。默认K值设置为0.1。当该值设置较小时,存在原本属于内点的数据被分割到噪声集合的可能性。在得到内点集合后,针对噪声集合中的数据进一步做筛选,将绝对误差小且不会影响内点整体波动特性的数据重新分配到内点集合。
在挑选最佳拟合结果过程中,会选择不同组合的拟合参数,根据不同的组合得到初始拟合数据,最终的结果要选择权重最大的一组。权重的数据来源由拟合模型、内点集合的误差。
设定集合数据是第j次拟合参数的所有内点的误差,设计估计权重函数的定义如下:
式(12)中的叶帕涅奇尼科夫核函数(theEpanechnikovkernelKNE(r))及带宽函数的估计值的表达式如下:
得到权重函数如下:
拟合的权重越大,表示拟合度越好。以上的权重注重的是内点的误差特性,会使某些波动较大的内点数据产生较大权重,线性度较好的内点集合权重较小。设内点集合的误差集合数据的方差是设定相关拟合权重的另一种模式为:
ω=ωσ+ωj(17)
最后的输出结果选择为权重最大的一组内点。
特征拟合的输入集是上述方式挑选出来的所有内点,利用最小二乘算法解决拟合参数的问题。直线拟合的最小二乘是线性方程,圆拟合采用非线性的最小二乘拟合算法或牛顿迭代算法。
为验证本发明的有效性进行了大量的测试,附图9为测试的部分实例,是实际工业机器视觉应用采集的图像,从图中可以看出图像质量较差,直线边缘部分模糊,特征不明显。附图9(a)和附图9(c)为传统的直线检测方法的检测点和拟合直线,附图9(b)和附图9(d)为本发明的直线检测方法的检测点及拟合直线,从图中可以看出本发明在图像质量很差时仍能够稳定地检测到需要的直线。
本发明的方法,首先设定基准点及初始检测区域、通过模板匹配对检测区域进行重新定位、再利用位置补正调整检测区域,通过提取测量线方向数据、投影线范围内测量线局部噪声尺度计算和测量线上局部尺度的滤波操作计算得到噪声的方差估计值,然后计算出一维数据的边缘点,再通过拟合内点及噪声点分割与筛选剔除检测到点中的噪声点,保留直线/圆上的内点,最后利用最小二乘方法对检测到内点拟合出直线/圆。本发明提出的方法能够在强噪声图像中稳定地提取边缘特征点并拟合为直线/圆的方法,由于通过模板匹配进行检测区域及ROI区域设定,直线/圆只在ROI区域进行,具有非常好的计算实时性,在工业机器视觉的测量技术中将有重要的应用。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。