APP下载

一种改进的Canny算子在机器人视觉系统中的应用①

2017-10-13王诗宇孙一兰尹震宇

计算机系统应用 2017年3期
关键词:算子高斯滤波器

王诗宇, 林 浒, 孙一兰, 尹震宇



一种改进的Canny算子在机器人视觉系统中的应用①

王诗宇1,2, 林 浒1, 孙一兰3, 尹震宇1

1(中国科学院沈阳计算技术研究所, 沈阳 110168)2(中国科学院大学, 北京 100049)3(沈阳高精数控技术有限公司, 沈阳 110168)

在对传统Canny边缘检测算子深入分析的基础上, 利用统计原理研究和分析图像灰度值数据, 提出一种改进型Canny算子. 与传统的Canny边缘检测算子相比, 改进型的Canny算子将边缘点邻域内灰度相似的像素点的灰度平均值代替原灰度值, 并引进一种自适应的阈值确定方法, 根据灰度值信息确定高低阈值, 在保持边缘提取准确性的同时增加了双阈值设置的自适应性. 最后将改进型的Canny算子应用于工业机器人视觉系统中, 并与传统的Canny算子的实验结果进行比对分析. 实验结果表明, 改进型的Canny算子更好的权衡了噪声和边缘之间的关系, 对待测物体的边缘提取效果更好.

机器人视觉; 边缘检测; Canny算子

1 引言

图像的边缘指的是图像中灰度值有突变的地方, 是待测工件与背景图样的分界线. 边缘的获取是机器人视觉系统中的一个重要环节. 图像的边缘包含了待测工件的大量信息, 是图像最基本的特征之一. 边缘提取的效果直接关系到后续图像处理中的拟合、分类和识别过程. 在工程应用中, 图像的边缘也常被作为人们检测工件缺陷、定义工件尺寸以及定位工件的识别依据. 因此准确提取工件边缘信息对于整个视觉系统来说至关重要[1,2].

Canny边缘检测算子[3]是John F. Canny于1986年提出的一个多级边缘检测算子. 更为重要的是, Canny创立了边缘检测计算理论来解释Canny算子的工作流程. Canny算子首次建立了边缘检测的数学模型, 将图像的边缘检测转化为检测单位函数极大值问题, 并依据好的边缘检测算子应有的指标提出来判定边缘检测算子的三个准则. 因此, Canny算子具有高信噪比和高检测精度等优点, 在工程实践中被广泛的应用. 但是, Canny算子依然存在一定的不足之处, 由于经典的Canny算子选用高斯滤波器来对图像进行平滑处理, 其平滑参数的选取对滤波效果起到了决定性的影响. 除此之外, 虽然经典的Canny算子采用高低两个阈值来提取边缘, 相比于单阈值的方式虽然更加灵活, 但依然存在阈值分割的共性问题.

在传统Canny算子的基础上, 本文从图像中边缘处灰度值近似度角度入手, 引入灰度权重参数σ, 有效的权衡了噪声和边缘之间的关系. 同时将最大类间方差法引入Canny算子, 使其在边缘连接环节中的阈值设置上有较好的自适应性. 最后将其运用到机器人视觉系统中, 可以精确地提取目标边缘, 为后续的定位、分拣匹配等过程提供有价值的信息.

2 经典Canny边缘检测算子

通常可以将边缘检测的算法分为两类, 分别为基于查找的算法和基于零穿越的算法, 除此之外还有统计判别法以及接下来我们要介绍的Canny边缘检测算法.

2.1 三个评判准则

Canny算子是一种基于优化思想的方法, 其目标是找到一个最优的边缘检测算法, 因此它提出了三个评判边缘检测性能的准则[3]:

1) 低错误率准则, 就是要尽可能的标识出实际边缘, 同时减少噪声产生的误报, Canny算子认为当信噪比达到最高时, 边缘提取的质量最优. 信息处理中信噪比常用来表示, Canny算子中的()定义如下:

其中()为高斯滤波器,H为滤波器处理后的响应函数,H为对应的噪声响应函数.

2) 高定位性准则, 就是标识出的边缘要与图像中的边缘尽可能的接近, 即检测出的边缘与实际边缘点的距离最小.

3) 单边缘响应准则, 即图像中的边缘只能被标记一次, 并且要最大限度地抑制虚假边缘的出现.

2.2 Canny算子的实现

Canny算子本身是一个多阶段的优化算子, 因此相比于其他经典的梯度边缘检测算子的效果都要好, Canny算子的流程如图1所示[4].

图1 Canny算子流程图

Canny算子属于先平滑后微分的方式. 为了降低计算强度, 提高图像处理速度, 将要使用的二维高斯函数(,)分解为两个一维高斯函数()和(), 分别对原始图像的方向和方向进行卷积操作, 得到平滑后的图像(,).

Canny算子在梯度矢量的计算上不同于传统的边缘提取算法, Canny算子采用2×2偏导的有限差分计算平滑后的图像.

(6)

EE是滤波器沿和方向作用的结果, 梯度幅值(,)和梯度方向(,)为:

(7)

(8)

在计算过梯度的幅值和方向后, 要对梯度向量进行“非极大值抑制”, 目的是找到图像中所有像素点的局部极大值, Canny算子采用3×3口对(,)的8个邻域方向的所有元素进行梯度插值, 将(,)与梯度方向上的插值结果进行比较, 如果小于梯度插值结果则将(,)对应的边缘标志位赋0值.

传统的梯度边缘检测算法使用单阈值分割的方式, 不能保证误检率与错检率同时最小, 而且提取边缘的连续上也有一定缺陷, Canny算子采取双阈值分割, 对图像的边缘灰度信息进行统计分析, 将高于高阈值的像素全部提取保留为边缘像素, 低于低阈值的像素直接排除, 对于介于高低阈值之间的像素点, 仅仅当像素与高于高阈值点的像素连接在一起时才会被保留为边缘像素.

2.3 Canny算子的缺陷分析

经典的Canny算子在对图像进行处理之前使用高斯滤波器对图像进行平滑处理, 高斯滤波[5-7]是一种线性平滑滤波, 二维高斯滤波器如图2所示.

图2 高斯滤波器

由图2可知, 参数的选取影响着高斯滤波器的宽度, 因此也决定着图像的平滑程度. 当选取的参数较大时, 虽然提高了高斯滤波器的降噪效果, 但也会明显的模糊图像的边缘, 对高频细节的保护并不明显, 增加了错检率. 而选取较小的参数时, 对噪音的抑制效果便有所降低, 同时也会降低边缘的定位精度[8,9].

除此之外, Canny算子的双阈值对边缘的提取更加灵活. 对于一幅图像, 高阈值负责排除因噪声产生的虚假边缘, 低阈值则作为判断边缘是否连接的判别条件. 高阈值设置的较低无法有效的去除虚假边缘, 过高虽然可以滤除多数的假边缘, 但也会使边缘丢失更多的信息. 低阈值设置的较低虽然能够使连接较多的边缘, 但也会产生较多的虚假边缘, 过高则会使图像包含的边缘信息减少, 造成图像边缘的不连续.

高斯滤波器的平滑参数以及Canny算子高低双阈值的选择很难做到相互兼顾, 同时, 一组固定的参数也很难满足所有的图像. 这也成为了传统Canny算子中的一种适应性缺陷.

3 改进的Canny边缘检测算子

针对经典Canny算子中的不足, 我们采用统计理论将图像边缘与其他像素分离开来, 因为图像的边缘是指图像中灰度值显著变化的区域, 因此我们根据直方图统计法就可以大体确定图像的边缘信息. 这样, 在图像边缘处, 我们就可以利用灰度值权重来代替高斯滤波中的距离权重来去除图像噪声, 而在非边缘处, 我们继续运用去噪效果较好的高斯滤波器, 这样就可以在较为准确的保护图像边缘信息的同时, 达到了图像平滑的效果. 此外, 我们将一种自适应的阈值确定方法引入到Canny算子中, 使Canny算子在面对图像变化的情况下依然能够获得理想的效果, 排除因阈值设置的不合理而造成的虚假边缘或边缘不连续等问题.

3.1 图像的灰度直方图统计

直方图广泛运用于很多的计算机视觉应用中, 简单来说, 直方图就是对图像数据进行统计的一种方法. 从数学的角度来说, 直方图描述图像中各个灰度级的统计特征, 可以将它看作是图像灰度值得统计函数, 统计采集到的图像中各个灰度级的出现次数或频率.

灰度直方图是一个二维图, 横坐标为图像中各个像素点的灰度级别, 纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率, 这样, 通过直方图我们就可以大致确定出图像边缘周围的灰度值分布. 如图3中所示为实验采集到的图片的灰度图和其灰度值统计, 我们根据直方图中波谷和拐点的变化关系来获取边缘处的灰度信息.

3.2 基于灰度值的边缘平滑原理

在图像边缘检测中有两个关键点[10], 一是要有效的减少噪声的影响, 二是要尽量精确确定边缘的位置, 为了同时满足上述两点要求, 在图像平滑阶段就需要采用不同的滤波方式. 在图像变化平缓的区域, 一定邻域内的像素灰度值非常接近, 因此经典的Canny算子中的高斯滤波器可以有效的去除噪声, 作为低通滤波器来消除由噪声产生的相关度较弱的像素; 在图像变化剧烈的区域, 我们将边缘点邻域内灰度相似的像素点的灰度平均值代替原灰度值, 这样就使得图像边缘不模糊受损, 这就保证了图像在高效高斯平滑的同时又确保了对图像边缘的保护[11,12].

算法改进后, 图像输出像素的值依赖于像素值的加权值组合:

加权系数(,,,)取决于定义域核和值域核的组合:

其中, (,)表示当前的像素点, (,)表示邻域点,(•)表示对应像素点的灰度值,σ是空域滤波器标准差,σ是灰度滤波器标准差.

在对图像卷积的过程中, 我们根据直方图来设置几个区域阈值, 在平滑的非边缘区域我们运用经典Canny算子中的高斯滤器对图像进行平滑处理, 在边缘附近的区域, 我们则采用将边缘点邻域内灰度相似的像素点的灰度平均值代替原灰度值的方法, 来去除边缘附近的噪声. 这样就克服了经典Canny算子中高斯平滑过程对于图像边缘信息的破坏.

3.3 一种自适应的阈值设置方法

这里我们可以将一种自适应的阈值确定方法, 即最大类间方差法引进到Canny算子中. 最大类间差法的原理就是依据图像中背景和目标的灰度特性差别, 当它们的差别越大时, 其类间方差也越大, 进而通过求取类间方差的最大值来获取使背景和目标两部分错分的概率最小的阈值[13,14].

如图3中的(b)图所示, 双峰分别代表了图像中目标和背景两部分灰度的分布情况. 这里假设分割图像目标和背景的阈值为, 图像中目标像素和背景像素的数量分别为1和2, 像素总数为1和2之和; 目标像素和背景像素所占比重分别为1和2, 平均灰度值分别为为1和2, 图像总的平均灰度值为, 因此它们满足如下关系:

最后通过法遍历求出使最大的阈值.对应灰度图像双峰之间的谷底部分的灰度值, 将此时的作为滞后阈值的高阈值, 再通过一定比例系数求取出滞后阈值的低阈值. 为了精确的检测到图像的边缘信息, 排除虚假边缘的影响, 并保证图像边缘的连续性, 我们将在对梯度进行非极大值抑制后引入上述方法. 这样就使得Canny算子可以根据图像的变化自适应的确定合适的高低阈值.

3.4 改进后的Canny算子流程

改进后的Canny算子如图4所示. 首先通过分析图像的灰度分布情况来判断当前点大致的区域信息, 若在边缘附近, 则将边缘点邻域内灰度相似的像素点的灰度平均值代替原灰度值; 在图像变化平缓的区域, 采用高斯滤波器对图像进行噪声的抑制. 最后为了准确的连接图像的边缘, 在对图像进行非极大值抑制后使用最大类间差法来确定最优的高低阈值, 最后检测到连续的且含有较少假边缘的图像边缘.

图4 改进后的Canny算子流程图

改进后的Canny算子克服了经典Canny算子中对图像边缘信息完整性以及对滞后高低阈值选取上的局限性, 兼顾了整个边缘提取过程中边缘完整性、假边缘以及边缘连续性等主要方面.

4 实验、结果及分析

实际的机器人视觉系统中, 边缘的提取在工件识别、检测和定位的过程中都有广泛的应用, 我们列举以下两种不同材质的实验工件, 结合OpenCV开源视觉库[15]来进行仿真实验.

在物流分拣领域, 经常根据不同的品牌对商品进行分类, 这就需要视觉系统可以有效的识别出商品的标识, 这里以某种饮品的瓶盖为待测目标, 实验结果如图6所示.

(a) 原始图像 (b) 经典Canny算子处理(较大平滑参数)

(c) 经典Canny算子 (d)改进Canny算子处理(较小平滑参数)

图5 瓶盖实验效果

图5中(a)图是相机获取到的原始图像, (b)和(c)是使用经典Canny算子处理后的效果, 但是分别使用了不同的平滑参数, 其中(b)图使用了较大的平滑参数, 从图中也可以看出, (b)图的去噪效果最好, 但是牺牲了图像部分的边缘信息. (c)图与(b)图相反, 将平滑参数调小后得到如图所示的处理效果, 可以看到虽然获取了图像完整的边缘信息, 但是对噪声的抑制作用并不十分理想. (d)图是采用改进后的Canny算子处理后的效果图, 通过判断对应点像素灰度值所处的阈值范围来选取不同的处理方式, 使得要获取的图像边缘被较为完整的提取出来, 同时对噪声的抑制效果以及边缘的连续性也比较理想.

边缘的提取也经常被应用于电子元器件的检测, 通过视觉技术可以判定PCB电路板上相应芯片等器件的位置, 电路的布线以及芯片型号等信息. 为了获取更清晰的处理效果, 图6截取了一整块PCB电路板上的部分图像.

(a) 原始图像 (b) 经典Canny算子处理(较大平滑参数)

(c) 经典Canny算子 (d)改进Canny算子处理(较小平滑参数)

图6 PCB板实验效果

与上一个实例相同, (a)图是相机获取到的原始图像, (b)和(c)分别是经典Canny算子采用较大的平滑参数和较小的平滑参数处理后的效果图, (d)图则是采用改进后的Canny算子处理过的结果. (b)图中虽然对噪声的抑制取得了不错的效果, 但是从图中可以看出芯片边缘的电路排线受到了较大程度的模糊, (c)图的边缘信息虽然得到了较完整的保留, 但是在噪声抑制的环节表现并不够理想, (d)图采用改进后的算法取得了更好的效果.

改进后的Canny算子主要思想是通过分析采集到的图像的灰度值关系来进一步确定对应像素点所处的区域, 进而采用不同的滤波方式来对图像进行平滑处理, 并在对梯度进行非极大值抑制后通过引入最大类间方差法, 使Canny算子能够合理的设置滞后阈值. 这样可以保证在滤波阶段既能有效的抑制噪声, 又能很好的保护图像边缘的信息. 传统的高斯滤波仅考虑了像素间空间位置上的关系, 而灰度值的变化往往比像素空间位置关系更能影响图像的边缘细节, 因此高斯滤波必须要在噪声和边缘之间做出选择. 而本文通过统计方法对图像中的边缘信息进行了判断, 并引入了基于像素间相似程度考量的权重系数, 保持了原高斯滤波器的去噪优势, 也保护了图像的边缘细节, 形成了一种结合空间邻近度和像素值相近度的处理方法, 同时引入最大类间方差法来确定Canny算子的高低阈值, 使得边缘有更好的连续性, 并且排除了多数的假边缘.

5 结语

本文从理论入手, 在深入研究传统Canny边缘检测算子的基础上, 通过统计图像灰度值分布情况来分离边缘像素, 引入基于邻域间像素灰度值的权重参数σ, 从而在滤波环节构成两种互补的滤波方式, 并在对梯度进行非极大值抑制后引入最大类间方差法设置高低阈值, 使Canny算子在面对图像变化的情况下具有自适应性. 改进后的Canny算子克服了经典Canny算子在边缘完整性、连续性以及假边缘排除等方面的束缚. 在此基础上, 进行实验仿真, 通过对比经典Canny算子的处理效果, 改进型的算子取得了良好的实验效果, 在图像处理过程中更具灵活性, 可以在许多依托于工业机器人视觉系统的领域内广泛应用, 具有良好的实际应用价值.

1 张少伟.基于机器视觉的边缘检测算法研究与应用[硕士学位论文].上海:上海交通大学,2013.

2 曾俊.图像边缘检测技术及其应用研究[博士学位论文].武汉:华中科技大学,2011.

3 Canny J. A computational approach to edge detection. IEEE Trans. on Pattern Analysis & Machine Intelligence, 1986, PAMI-8(6): 679–698.

4 王小俊,刘旭敏,关永.基于改进Canny算子的图像边缘检测算法.计算机工程,2012,38(14):196–198.

5 张铮.数字图像处理与机器视觉.北京:人民邮电出版社, 2014.

6 Marr D, Hildreth E. Theory of edge detection. Royal Society of London Proceedings, 1980, 207(1167): 187–217.

7 王蓉.图像增强算法实现[硕士学位论文].荆州:长江大学, 2014.

8 王贵彬.基于Canny算子与形态学融合的边缘检测算法[硕士学位论文].哈尔滨:哈尔滨理工大学,2014.

9 许宏科,秦严严,陈会茹.一种基于改进Canny的边缘检测算法.红外技术,2014,(3):210–214.

10 Furukawa Y, Ponce J. Carved visual hulls for image-based modeling. International Journal of Computer Vision, 2009, 81(1): 53–67.

11 杨学志,徐勇,方静,等.结合区域分割和双边滤波的图像去噪新算法.中国图象图形学报,2012,17(1).

12 王波.滤波算法在图像增强中的应用研究.计算机仿真, 2013,30(3):364–367.

13 李宝顺,王玮,包亚萍,等.一种邻域均值加权最大类间方差的阈值分割法.小型微型计算机系统,2014,(6):1368–1372.

14 贺建峰,符增,相艳,等.基于灰度空间相关性最大类间方差的图像分割.计算机工程,2015,41(11):280–286.

15 毛星云,冷雪飞.OpenCV3编程入门.北京:电子工业出版社, 2015.

Improved Canny Operator in the Application of Robot Vision System

WANG Shi-Yu1,2, LIN Hu1, SUN Yi-Lan3, YIN Zhen-Yu1

1(Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China)2(University of Chinese Academy of Sciences, Beijing 100049, China)3(Shenyang Golding NC Tech. Co., Ltd., Shenyang 110168, China)

An improved Canny operator is proposed through researching and analyzing the data of the grey image with statistical principle on the basis of deep analysis of traditional Canny edge detection operator. Compared with the traditional Canny edge detection operator, improved Canny operator replaces the original grey value of pixels with average value of similar gray level around the edge points and introduces a kind of adaptive method to determine the high and low threshold value. Applying the improved Canny operators to the robot vision system. The experimental results show that the improved Canny operator can balance the relationship between noise and edge information and extract the edges of the measured object better over the traditional Canny operator.

robot vision; edge detection; Canny operator

国家科技重大专项(2014ZX04009031)

2016-06-17;

2016-07-25

[10.15888/j.cnki.csa.005635]

猜你喜欢

算子高斯滤波器
有界线性算子及其函数的(R)性质
Domestication or Foreignization:A Cultural Choice
数学王子高斯
天才数学家——高斯
从滤波器理解卷积
Comparison of decompression tubes with metallic stents for the management of right-sided malignant colonic obstruction
开关电源EMI滤波器的应用方法探讨
一种微带交指滤波器的仿真
QK空间上的叠加算子
从自卑到自信 瑞恩·高斯林