改进Canny算法在码垛机器人视觉图像处理中的应用研究

2018-10-09 07:06王国虎薛进学
机电工程 2018年9期
关键词:码垛梯度幅值

王国虎,薛进学

(1.郑州工业应用技术学院 机电工程学院,河南 新郑 451152;2.河南科技大学 机电工程学院,河南 洛阳 471003)

0 引 言

近年来,为适应自动化水平和劳动力成本的不断提高这一趋势,各类码垛机器人得到广泛应用。码垛机器人的使用提高了工业生产的自动化、智能化、标准化程度[1]。其中,机器人视觉作为码垛机器人应用的一项关键技术变得越来越重要。机器人视觉系统要求码垛机器人能够对不同形状工件在码垛时进行判断与识别。首先机器人视觉系统对工件进行图像获取、识别和定位,然后经控制部分作出判断,控制码垛机器人抓取工件将其置于指定的位置。

在一幅数字图像中,边缘信息虽然只占有有限的像素,但包含了大量的图像特征信息。因此,边缘检测技术是机器人视觉、数字图像处理和图像分析领域研究的重点和难点[2]。传统的边缘检测算法,如Sobel算法、Roberts算法、Prewitt算法、Log算法、Krich算法等处理效果不理想。1986年John Canny首次提出了Canny边缘检测算法,该算法能有效弥补其他传统边缘检测算法的不足,因此Canny算法被认定为边缘检测方法中较好的算法[3]。

但是,由于科技的进步,要求边缘检时对外部复杂的影响因素处理能力提升。由于对噪声比较敏感,传统Canny算法在检测过程中会有伪边缘和孤立边缘点产生,影响了图像的处理效果[4]。又因为在采用双阈值方法定位边缘时,选择下限阈值会对图像处理结果产生很大影响,下限阈值过大时容易丢失边缘细节,无法形成完整边缘曲线,造成边缘曲线出现间断;而下限阈值过小时又会出现大量的伪边缘[5]。并且传统Canny算法获取的边缘不能达到单像素级,在一个边缘点会出现多个响应的现象。这些问题制约了传统Canny算法在实际生产中的应用。为此,国内外很多专家学者对图像边缘检测技术进行了深入研究,提出了多种改进方法,取得了较好的应用效果。

本文根据码垛机器人工作的实际情况,提出一种优化改进方法。

1 码垛机器人视觉系统及图像处理

码垛机器人视觉系统是通过码垛机器人视觉传感器抓取图像,然后将图像传送至处理单元,通过数字化处理,根据像素分布和亮度、颜色等信息,进行尺寸、形状、颜色等的判别,进而根据判别结果控制现场设备动作的系统[6]。

机器人视觉系统一般由光源、光学系统,CCD/CMOS摄像机、图像采集卡、图像处理软件、监视器、计算机、通信(输入/输出)单元等组成。组成关系如图1所示。

常用的图像处理方法有图像增强、图像平滑、边缘锐化、图像分割和图像识别等[7]。

图1 码垛机器人视觉系统的组成

由于通过码垛机器人视觉系统获取的初始图像质量较低,不利于后续处理,首先要通过图像处理软件对其进行图像处理,输出改善质量后的图像,以便于计算机对图像分析、处理和识别,然后通过设计合理的高通滤波器对图像进行梯度滤波,得到边缘信息[8]。

边缘检测法以物体的边界对图像进行分割,通过检测图像中的局部不连续性得到图像的边缘(通常将画面上灰度突变部分当作边缘),通过一些策略把局部边缘分割成局部区域的方法确定物体边缘。

常用的边缘检测的梯度算法有Robert、Sobel、Prewitt和Canny等,在实际应用中这些算法检测效果各有特点。其中Canny算法由于具有较高的信噪比和检测精度,在图像处理领域有着广泛的应用。

2 传统Canny算法优缺点

传统Canny算法通过高斯滤波器对图像进行平滑处理之后再对梯度幅值进行非极大值抑制,最后设置全局高低阈值th1和th2,选取边缘点[9]。其边缘检测有以下优点:(1)信噪比好;(2)定位精度高;(3)单边缘响应性好。根据以上准则,Canny推导出最优边缘检测算法的一个近似实现,即边界点位于图像被高斯函数平滑后的梯度幅值的极大点。

由于自动化生产要求机器视觉对外界复杂的条件,如光照不足、噪声干扰等有更好的适应性,Canny算法的不足主要有:(1)噪声影响图像平滑,抑制噪声过强会使图像边缘位置产生偏移;(2)边缘检测的高低阈值th1和th2需要实验测试并通过人为设定,无法满足自动化检测的要求。

3 改进的Canny边缘提取算法

为弥补Canny算法的不足,本文通过改进的Canny算法,在采用在像素3×3邻域内通过计算x,y,45°,135°这4个方向一阶偏导数有限差分来确定像素梯度幅值的方法,通过构造梯度直方图以及构造高、低阈值的方法自动确定最佳阈值。

3.1 改进的梯度幅值计算方法

传统的Canny算法采用2×2邻域一阶偏导的有限差分来计算平滑后的图像梯度幅值和方向,x方向和y方向偏微分Px、Py为:

(1)

(2)

梯度幅值M(i,j)为:

(3)

梯度方向θ(i,j)为:

(4)

式中:M(i,j)—反映了图像像素点(i,j)处的边缘强度;θ(i,j)—垂直于边缘的方向。

传统Canny算法通过滤波抑制噪声会造成图像过度光滑,进而造成边缘丢失及虚假边缘的产生。本文采用在像素3×3邻域内通过计算x,y,45°,135°这4个方向一阶偏导数有限差分来确定像素梯度幅值的方法,算法如下:

x方向偏导数Px为:

Px=I[i+1,j]-I[i-1,j]

(5)

y方向偏导数Py为:

Py=I[i,j+1]-I[i,j-1]

(6)

45°方向偏导数P45°为:

P45°=I[i-1,j+1]-I[i+1,j-1]

(7)

135°方向偏导数P135°为:

P135°=I[i+1,j+1]-I[i-1,j-1]

(8)

像素梯度幅值M(i,j)为:

(9)

梯度方向θ(i,j)为:

(10)

改进算法采用3×3邻域内包含8方向的邻域对梯度幅值阵列M(i,j)中的所有像素沿梯度方向进行梯度幅值的插值,检测幅度的极大值点,进而得到边缘点,满足处理过程中抑制噪声的要求[10]。

3.2 自适应阈值的确定

Canny算法不能根据图像的特征自适应地确定高、低阈值参数,需要进行多次试验和数据统计,并人为设定。鉴于此,本文使用自适应动态阈值的确定方法。

(1)构建梯度直方图

笔者统计经过非极大值抑制后图像N[i,j]中标志位不为0的像素的梯度幅值,构建出梯度直方图。

(2)构建高、低阈值

为了不产生虚假边缘,必须在梯度直方图的非边缘区域以外的范围选取高阈值τh。根据均值和方差的计算方法,本研究利用μ0(t)和σ0或者μ1(t)和σ1计算出非边缘区域的范围。研究发现:利用μ0(t)和σ0确定非边缘区域,进而在处理过程中自适应地确定高、低阈值的方法效果良好。当高阈值τh大于μ0(t)与σ0之和时可以认为τh在非边缘区域以外,较好地防止虚假边缘在轮廓图中出现。

4 实验结果及分析

为验证改进Canny边缘检测算法的应用效果,笔者对图像进行阈值选取实验,选取最高、低阈值系数为0.1、0.3对码垛机器人摄像机视觉图像进行边缘检测,图像处理结果如图(2,3)所示。

图2 传统Canny算法(τl=0.1,τh=0.3)

图3 传统Canny算法(τl=0.2,τh=0.4)

本研究选取最高、低阈值系数为0.2、0.4,对码垛机器人摄像机视觉图像进行边缘检测,图像处理结果如图4所示。

图4 改进的Canny算法

由图2、图4可知:在未找到最适宜最高阈值和最低阈值的情况下,图像处理结果会丢失大量的图片边缘信息,导致边缘检测结果不连贯。

为对比改进的自适应Canny算法和其他几种算法的检测效果,笔者分别取传统Canny算法、Prewitt算法和Robert算法对码垛机器人摄像机视觉图像进行边缘检测。传统Canny算法边缘检测出现断边及边缘信息缺失情况,如图5所示。

图5 传统Canny算法

Prewitt算法边缘检测结果如图6所示。

图6 Prewitt算法

Robert算法边缘检测结果如图7所示。

图7 Roberts算法

由图7可知:均有断边及关键点边缘信息丢失情况产生。而如图4所示改进的Canny算法边缘检测结果可以抑制虚假边缘,并能有效保留原始图像边缘信息,其边缘检测比传统Canny算法、Prewitt算法和Robert算法的效果好。

5 结束语

本文介绍了码垛机器人视觉系统的组成,研究了视觉检测的原理和方法,针对实际应用中Canny算法在图像边缘处理过程中对噪声敏感和无法自动适应阈值的缺点,通过改变梯度幅值计算方法和自适应设定阈值的方法对其进行了改进。

实验结果表明:改进后的Canny算法能有效避免断边及虚假边缘的产生,并能自适应地设定高低阈值取得良好的边缘处理效果,在图像边缘处理效果上要优于传统的Canny算法、Prewitt算法和Robert算法,但改进方法在应用过程中存在运算速度较慢的问题,有待进一步研究解决。

猜你喜欢
码垛梯度幅值
邻井定位多频优化过零梯形激励信号源设计
多尺度串联非线性能量阱的减振效能及阻尼连接方式研究
一个带重启步的改进PRP型谱共轭梯度法
一个改进的WYL型三项共轭梯度法
随机加速梯度算法的回归学习收敛速度
可控机构式码垛机器人的运动学误差分析
移动式码垛机器人移动臂的优化设计
GSK工业机器人码垛程序编写技巧
一个具梯度项的p-Laplace 方程弱解的存在性
基于S变换的交流电网幅值检测系统计算机仿真研究