机器视觉复杂平面边缘角点的高精度定位方法探析

   2023-08-21 互联网2380
核心提示:  1 引 言  边缘是指图像局部亮度变化最显著的部分。边缘角点的提取和检测是数字图像处理和机器视觉的一个基本问题,边缘角

  1 引 言

  边缘是指图像局部亮度变化最显著的部分。边缘角点的提取和检测是数字图像处理和机器视觉的一个基本问题,边缘角点包含丰富的图像目标特征信息,即被识别目标的重要几何参数信息,也是二维平面边缘识别的重要特征。特别是对边界没有已知数学模型的二维复杂平面边缘,通过对边缘轮廓线特征角点的检测, 可对目标线型进行有效地描述和建模,以获取目标边界的全部信息。角点检测精度对后续图像分析及参数计算精度有着至关重要的影响,由于平面角点的数学描述较为复杂,目前还没有一种通用的检测方法。因此,本文研究复杂平面边缘角点的高精度检测方法具有重要的理论意义和实用价值。

  2 边缘轮廓角点的基本检测算法及存在的问题

  在机器视觉领域中,二维复杂平面边缘角点的含义比较模糊,存在多种数学描述方法。目前关于角点的定义和描述主要有如下几种:1)角点是一阶导数 (即灰度的梯度)的局部最大所对应的象素点;2)角点是指两条边以上边缘的交点;3)角点指示了物体边缘变化不连续的方向;4)角点处的一阶导数最大,而 且二阶导数为零;5)角点处不仅梯度的数值大,而且梯度方向的变化率也很大。

  对于不同的角点检测方法,其区别在于如何来定义角点。目前,角点检测算法主要分为两大类:一类是直接基于图像灰度的角点检测算法,另一类是基于边缘提取的角点提取算法。基于图像灰度的角点检测算法由于不需要进行边缘提取工作,在实际中得到了一定的应用,如Moravec“兴趣算子”,Susan 角点提取算子和Plessey角点算子。但该类方法只对强边界敏感,角点定位性能差,稳定性不好,且算法较为复杂。基于边缘提取的角点检测算法的基本思想是:角点是两条边界或多条边界的交点。所以角点检测可以通过以下四种方式得到:一、抽取出边界并用链码表示,计算边界曲率,然后取局部极大值点;二、用多 边型近似边界,搜索线与线的交点;三、对边界点利用形态学的腐蚀和膨胀算子搜索凸点和凹点,近而确定出角点;四、利用亚象素边界检测算子检测出边界,用聚 类法拟合直线,然后求交点。

  上述方法均采用单一特征进行角点检测,各自具有不同的应用背景,并不具备通用性。例如,较之简单直观的曲线,服装衣片中的曲线千变万化,如上装的袖窿、袖山弧线、领圈弧线、下装的裤后档以及下档缝等衣片轮廓线等,其检测与加工精度直接决定着服装加工质量及合体程度,对服装成品的外观质量起着至关 重要的作用,采用单一特征角点检测方法具有较大的局限性。为解决这一难题,本文提出了一种采用“2+1”次边缘轮廓角点的检测方法。实践表明,该方法能有 效地实现高精度的角点定位。

  3 “2+1”次边缘轮廓角点检测方法

  3.1第一次寻角点

  步骤一、拍摄样片图像,处理成单像素宽的边缘轮廓线(如图二),并将点信息存储在数组中。存储数组记录了每个象素点所在行和列的位置、链码方向、x和y单位矢量坐标。如图一a和b及表一所示。

  表一 单位矢量坐标定义

  步骤二、x和y单位矢量坐标分别累加求和

  累加求和是对表示方向的单位矢量的分量进行相加,相加时采用的累加求和步长是三个链码,前进步长是一个链码。类似于一个一次只能求三个链码的单位矢量和模板,并将结果存储于另一数组中。对于链码局部的连续环,x和y方向单位矢量坐标 =l(i)+ l(i+1)+ l(i+2)(l(i)是与i对应的单个链码的矢量坐标分量),L(i)x 和L(i)y是链码 第i环在水平和垂直方向的分量长度,分别求之并将结果存储于数组中。对于封闭轮廓边缘的最后两个象素点,求其单位矢量和时,可令 l(i+1)= l(1),l(i+2)= l(2)。

  步骤三、建立角度分量

  利用x和y的单位矢量坐标L(i)x, y,求出链码第i环与x 轴正方向的夹角 θ(i)。

  当abs(L(i)x )>= abs(L(i)y)时, θ(i)=atan(L(i)y / L(i)x);

  当abs(L(i)x ) < abs(L(i)y)时, θ(i)= -atan(L(i)y / L(i)x)。

  步骤四、求曲率

  L(i)在i 点的曲率为δ(i)=abs[ θ( i+1)- θ(i-1)]。在整条链上首先设定一阈值,δ(i)大于该阈值时先确定为角点。方法如下:

  (1) 当封闭轮廓在边缘i处象素点的曲率δ(i)取最大值时,记下其象素坐标(u(i),v(i)),并存入数组。

  (2) 当i处在封闭轮廓边缘的前五个象素点时,令δ(j)=0,j [i,i+3];当i处在封闭轮廓边缘的后五个象素点时,令 δ(j)=0, j [i-3,i];当i处中间位置时,令δ(j)=0,j [i-5,i+5];

  (3) 循环(1)(2)步骤,直至δ(i)不小于该设定的阈值时停止。

  此时,所得角点是按曲率大小在数组中排列,然后再将角点按在封闭链码中出现的先后位置进行重新排序,并将象素坐标(u(i),v(i))存储于 数组之中。第一次寻角点结果如图三所示,其优点是不会漏掉重要的点。另外,考虑到最终拟和曲线的需求,除了每段曲线的两个重要端点外,还应保留部分中间次重要点,这样拟合出的曲线较平滑,失真度小。

  3.2第二次寻角点

  第二次寻角点是在上述已求取点的基础上进行,其方法是利用角点的象素坐标(u(i),v(i))求相邻的两角点线段与x轴正向的夹角,然后比 较,得出角点位置。步骤如下:

  其中s的初始值设为s0 =1,t为第一次寻得角点个数。在循环体内如果A(i)>=0.2(本例中A设定的阈值为0.2),记录此角 点的象素坐标(u1(i), v1(i)),并将s=i,直到完成循环。记录每一个A(i)大于此阈值的象素坐标,并存入数组。

  本次寻角点的优点在于,采用了相邻两角点线段的夹角与其他相邻两角点线段的夹角比较,而不是非相邻角点线段间夹角的比较,使两线段的角度变化更为明显;另外,循环中变量s的应用使搜索速度更快,角点筛选的结果如图四所示。

  3.3角点优化

  该步骤的目的是对第二次结果的优化,除去伪角点,最终得到真实角点。步骤如下:

  本文中阈值的设定应考虑到能使误差较小,且具有较好的适用性。若阈值过大,会造成某些真实角点的遗失;反之会得到了过多的伪角点。

  4.结论

  本文研究的通过两次求角点和一次优化的“2+1”算法,能够有效地求出二维复杂平面边缘轮廓的真实角点,并在机器视觉服装衣片边缘数字化系统中 得到了成功地应用,获得了较高的测量精度。该算法可广泛推广应用于其它复杂轮廓线的角点提取,具有较好的通用性。

  参考文献

  [1] WANG H.BRANY M.Real- time Corner Detection Algorithm for Motion Estimation. Image and Vision Machine.1995 (9):695~703

  [2] MIROSLAV T.MARK H.Fast Corner Detection. Image and Vision Computing,1998,16(I):75~ 87

  [3] Li Liyuan,Chen Weina. Corner Detection and Interpretation on Planar Curves Using Fuzzy ReasoNIng.IEEE Trans.on Pattern Analysis and Machine Intelligence,1999,21(1 1):1204~ 1210

  [4] Koplowitz J,Plante S. Corner Detection for Chain CODed Curvers [J].Pattern Recognition,1995,28 (6) :843~852

  [5] 贾云得.机器视觉[M].北京:科学出版杜,2000.108—109

  [6] 吴炯等.数字图像中边缘算法的实验研究[J].微计算机信息,2004.5


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅