基于改进Canny算法的起重机下挠度测量方法研究*
2021-09-27苑哲源颜丙生杨明超
张 柏,苑哲源,颜丙生*,杨明超,李 莎
(1.河南工业大学 机电工程学院,河南 郑州 450001;2.广东省特种设备检测研究院 珠海检测院,广东 珠海 519000)
0 引 言
随着我国经济的发展,起重机械在工业、交通、能源等各个领域的应用愈加广泛,起重机械数量也在不断地增加。
《中华人民共和国特种设备安全法》规定,每台起重机械在投入使用前都要进行监检(或首检),使用期间也要定期检修[1]。其中,由于起重机主梁下挠度对其主梁结构和承载能力、行车安全等均有重要影响,额定载荷下起重机主梁下挠度测量是检测中的重要项目。
目前,国内外行业内常采用悬线法、标尺法等主要依靠技术人员手动操作的测量方法,这些方法需要技术人员爬上起重机主梁布置悬线或标尺,操作过程危险且繁琐。另外,行业内新兴的使用经纬仪或水平仪等测量下挠度的方法,需要将测量设备置于起重机主梁正下方,虽然测量精度上较悬线法、标尺法等有所提高,但操作过程依然具有一定的不安全因素,操作方法也相对复杂且受外界的影响较大。加之起重机在这项检验中所需费的用昂贵[2],所以,提出并建立一种安全、快捷、准确且经济的起重机主梁下挠度方法,具有重要意义。
近年来,机器视觉成为工业检测的研究热点[3]。利用机器视觉代替人工视觉,对目标进行识别、检测和测量[4],不仅能在不适合人工操作的复杂、危险环境中进行作业,还能极大提高生产效率和自动化程度。由于在测量起重机下挠度的过程中,其主梁形态会随着下挠度值的改变而改变,若通过图像处理对主梁形态边缘进行提取分析,基于机器视觉的测量方法将具有可行性。
当前,基于Canny边缘检测算法的机器视觉检测已广泛应用于边界识别测量等工业检测领域。但Canny边缘检测算法需有适应性地改进和优化,才能满足不同工业测量环境下的使用需求。张洪等[5]利用改进Canny算法搜索了密封圈的毛刺。吴房胜等[6]利用改进Canny算子检测了焊缝的边缘。黎浩等[7]对Canny算法进行了阈值优化,以检测带钢表面缺陷。
若将Canny算法运用于机器视觉测量起重机下挠度中,在实际工况环境下,会存在着过滤掉一些有用的重要孤立边缘和弱边缘的问题,因此,也有必要对该算法进行适应性的改进与优化。
本研究提出基于机器视觉测量起重机下挠度的方法,针对在图像处理过程中Canny边缘检测算法在实际工况下存在的问题,对Canny算法进行改进,利用LabVIEW平台开发一套起重机下挠度测量系统,并进行测试检测。
1 视觉检测原理
1.1 下挠度机器视觉测量方法
起重机主梁下挠度是指在额定载荷下主梁跨中部位较空载时的位置向下位移的距离。
笔者采用机器视觉的方法测量下挠度,需先在主梁跨中部位用一激光点进行标记,作为不动点参考;对起重机空载时和加载额定载荷时各拍摄一张图像,利用开发的软件测量出两幅图像中激光点与主梁下边缘的距离后,计算两次距离的差值的绝对值即为所求下挠度。
测量方法示意图如图1所示。
(a)主梁空载
由图1可知,相对位移即下挠度值L为:
L=l2-l1
(1)
式中:l1—加载前起重机主梁下边缘距离激光标记点距离;l2—加载后起重机主梁下边缘距离激光标记点距离。
在系统中,则需要通过改进的Canny边缘检测算法对激光点和起重机下边缘进行边缘检测提取,而后将图像中的相对位移测量出来,根据主梁上如腹板、型钢等已知尺寸的部位在图像中的像素宽度与实际宽度的比值得到换算比例,进而计算出实际的下挠度值。
1.2 Canny边缘检测算法
Canny边缘检测算法是一种定位精度高、抗噪性能好的单像素边缘计算方法[8]284。该算法分为高斯滤波、计算梯度、非极大抑制和双阈值处理4个步骤[9]:
(1)高斯平滑滤波器卷积降噪
将图像与高斯函数做卷积以提高算法的抗噪能力(高斯滤波是一种低通加权均值滤波,即将一个模板内的所有像素点的灰度值求加权平均值[10]),然后将该值赋给模板内的中心像素点。
高斯滤波器的卷积核为:
(2)
(2)图像梯度方向和强度的计算
由于灰度化图像可以看作是一个二元函数I(x,y),函数值表示坐标(x,y)上像素点的灰度值。当搜索该图像的边缘时,需要对各像素点及其附近的像素点灰度值进行梯度强度和方向的计算。Canny边缘检测算法中进行梯度计算时可选用Roberts、Prewitt和Sobel等梯度算子。
如图像I与Sobel算子进行梯度的卷积运算,其结果Gx、Gy可分别表示为:
(3)
则有中心像素处的梯度方向角θ和像素梯度幅值G如下:
(4)
其中:近似计算时梯度方向可认为是0°、45°、90°、135° 4个方向之一。
(3)沿梯度方向的梯度幅值非极大值抑制
若计算得到的像素梯度值是沿着梯度方向的最大值时,说明该像素点是边缘像素点,否则是伪边缘点。Canny边缘检测算法中的非极大值抑制过程实现了该判定,当像素梯度幅值是沿着梯度方向的极大值时,保留该像素值,或设置为一设定的固定灰度值(如70);否则记其值为0,对该非极大值进行抑制。
(4)双阈值边缘二值化
双阈值边缘二值化,是先设定高、低两个阈值,当需要判定的边缘像素点的像素值高于高阈值时该点保留,低于低阈值时该点舍弃;当像素值处于高低阈值之间时,仅当该点与一高于高阈值的像素点相连接时才会被保留。这样可以滤除一些由其他原因造成的伪边缘,更为准确、有效地确定待测图像边缘。
2 改进算法流程的Canny边缘检测算法
2.1 算法改进原理
Canny边缘检测算法先通过高斯平滑滤波[11]高效地去除待测图片中的噪声,而后经图像梯度方向和强度计算找到可能的边缘点,再通过非极大值抑制和双阈值边缘二值化去除伪边缘点和虚假边缘。
虽然高斯平滑滤波能够有效地去除噪声,但这不可避免地会减弱图像的边缘信息[12],特别是一些孤立边缘和不明显的弱边缘。这些减弱后的边缘信息会在Canny算法后续处理中被过滤掉[13],这对以后的特征分析和测量计算不利。
门式起重机工作场合环境复杂,如室内时常伴随着粉尘、光污染,室外时常伴随着阴雨、大雾天气,这些工况环境使得门式起重机成像质量差,一些具有参考价值的边缘会因对比度不佳等因素被弱化,最后被Canny边缘检测算法忽略。
为解决以上问题,可以根据原有Canny边缘检测算法流程,在高斯平滑滤波之前增加可调节的图像灰度变换和图像二值化过程。图像灰度变换的主要作用是调整图像亮度、增强图像对比度和压缩扩展图像高低灰度,以突出图像中的重要信息[8]260(即图像边界),以便于以后的图像特征分析和计算机测量计算。
其具体实现过程为:设输入图像为函数Src,输出图像为函数Dst,灰度变换函数为GST,有:
D(x,y)=GST(b,c,g)·Src(x,y)
(5)
式中:x—图像中像素点横坐标;y—图像中像素点纵坐标;b—亮度值;c—对比度值;g—伽马值。
当图像中像素点坐标(x,y)确定时,由二元函数Src(x,y)、Dst(x,y)既可确定输入、输出图像中像素点的像素值;而三元函数GST(b,c,g)是由亮度b(brightness)、对比度c(contract)和伽马变换g3个变量决定的,当变量b、c和g确定时,变换函数GST(b,c,g)的值确定。
显然,该过程能够对图像中高低灰度进行压缩或扩展,但不会改变图像中像素点之间的位置关系。图像二值化过程是通过将像素点灰度值与设定的阈值进行对比判断,将图像中边界与非边界区域明显区分开来[14]。改进的算法流程的Canny算法步骤如下:
(1)可调节的灰度变换;
(2)图像二值化;
(3)高斯平滑滤波降噪;
(4)计算图像梯度强度和方向;
(5)非极大值抑制;
(6)双阈值边缘二值化;
(7)判断所得边缘二值化图像是否理想,不理想需重复步骤(1)操作。
在系统中通过当前所显示的图像的二值化边缘效果,实时动态调节图像灰度参数以保持和增强那些重要的弱边缘和孤立边缘,而后进行一次Canny边缘检测算法,循环数次,直至显示的二值化边缘图像达到预期,能够顺利进行后续的特征分析为止。
2.2 改进算法测试
为测试改进后算法的可行性,笔者在实验室中搭建了模拟起重机测量平台。针对在模拟粉尘工况下所截取的模拟起重机主梁的一部分图像,利用改进前和改进后Canny算法检测边缘,检测结果如图2所示。
图2 边缘二值化图像对比
由图2可以看出:由于粉尘环境下模拟主梁边界是弱边缘,不够清晰,利用改进前的Canny边缘检测算法得到的二值化边缘图像相对应部分很模糊,甚至未检测到边缘;通过改进算法流程的Canny边缘检测算法得到的二值化图像比使用常规Canny算法所得到的图像要清晰,包括弱边缘在内的边缘特征更加明显,证明该改进算法能够达到预期效果,具有可行性。
3 测量系统
3.1 测量系统硬件
测量系统硬件部分的主要功能是实现门式起重机在为测量下挠度而加载额定载荷前后形态的拍摄和数据传输。该部分所需要的硬件主要包括:三脚架、高清摄像头、激光定位器和计算机。
实物图如图3所示(其中,激光定位器单独放置)。
图3 测量系统硬件组装结构实物图
在硬件选择方面,要求三脚架能够固定摄像头,并能够在一定范围内调节摄像头空间位置,使其能够准确、稳定地获取到门式起重机的形态图像。高清摄像头选用的型号为Gsou极速A20。
激光定位器选用红点式激光定位器,该定位器使用方便、不占用空间、可定位距离远,在各种光源环境下的定位斑点清晰、形态特征好。
3.2 测量系统软件
测量系统的软件部分主要是对硬件部分进行控制,并将由摄像头获取的目的图像进行图像处理和测量计算。笔者基于NI公司的LabVIEW平台开发了一套起重机主梁下挠度值测量系统。
3.2.1 软件总体流程
系统软件的核心是程序。该程序部分分为:图像获取存储模块、图像特征提取模块、图像特征测量模块和计算模块4部分。其中,图像特征提取模块中包含图像重点区域剪切和改进算法流程的Canny边缘检测。
具体程序流程图如图4所示。
图4 测量系统程序流程图
3.2.2 图像重点部分剪切
在对获得的图像进行可控的Canny边缘检测之前,为了避免程序对整幅图像无差别处理,需要先对图像进行剪切。
剪切程序段如图5所示。
通过“IMAQ Extract2.vi”将图像上所需处理的重点部分剪切下来,利用生产者消费者队列结构送入下一模块,这样既避免了后续模块对无关部分图像的处理,又降低了图像所占用的内存,可极大地提高程序的处理效率。
3.2.3 改进算法流程的Canny边缘检测
图像处理模块如图6所示。
图6 图像处理模块
由生产者消费者队列中输出的重要部分图像数据,经过默认灰度变换函数“IMAQ BGCLookkup.vi”、图像二值化函数“IMAQ Threshold.vi”和已设定初始值的Canny边缘检测函数“IMAQ CannyEdgeDetection.vi”后,在前面板上显示出默认处理的效果;
操作人员可根据默认处理的效果,在前面板上调节灰度变换中的“Brightness”、“Contrast”和“Gamma”值,根据实时反馈的处理效果图像以确定最佳的二值化边缘图像。这里对Canny预设高斯滤波上阈值为0.7,下阈值为0.2。处理后的边缘二值化图像将保存至指定文件夹。
3.2.4 像素距离测量
通过预设参数和测量显示方式的“IMAQ Clamp Vertical Max.vi”,可根据鼠标划定的矩形范围内测量两边界之间的像素距离。
该段程序如图7所示。
图7 像素距离测量模块
这里主要是测量处理得到的二值化边缘图像中激光点至起重机主梁下边缘的像素距离,及图中主梁腹板的像素距离;再根据测量得到的像素距离和输入的主梁腹板实际宽度值,通过比例换算便可计算出目的下挠度值。
4 系统测试
4.1 视觉系统校准
采集到的数字图像中包含着机器视觉系统所需要的信息,且这些信息是以像素形式存在的。若实现系统软件对图像的准确处理与测量,就必须让视觉系统使用真实世界的坐标系和测量单位[15,16]。因此,要事先得到相机图像像素坐标和真实世界坐标系之间的映射关系,才能使得最后得到的结果正确。
利用软件中的校准模块,能够快速地得到摄像机中的畸变参数,以确定相机坐标系与真实世界坐标系的映射关系。笔者选择圆心距为12 mm的校准点阵为校准过程提供输入,校准系统将根据由相机采集到的校准点阵图像,根据最小二乘法确定畸变模型参数,以完成校准过程,实现坐标系统一。
此外,由于起重机主梁下挠度值只是主梁中轴线在竖直方向上的位移,没有第二方向的坐标转换,只需要根据所测起重机主梁腹板在竖直方向的实际宽度值与采集到的图像中相应像素尺寸进行比例换算,就可完成该步校准,获得统一的测量单位。
4.2 实际测试
在某起重机装载卸载工地,笔者进行了起重机主梁下挠度测量的实际测试,通过系统前面板获取起重机加载额定载荷主梁形态图像后,截取重点测量部分的图像区域。
起重机加载前重点部分图像处理界面如图8所示。
图8 起重机加载前重点部分图像处理界面
在图像处理界面,需要在控制面板中动态调节参数,以获取满意的激光点和起重机主梁下边缘二值化边缘图像,而后进入测量计算模块。
参数调节界面如图9所示。
图9 参数调节界面
测量计算模块如图10所示。
图10 二值化边缘图像像素单位测量界面
最后测得主梁上已知尺寸的型钢像素宽度为24.920 9。结合型钢实际宽度100 mm,经程序计算可得到本次下挠度测量的换算比例为4.012 7;测得基于激光定点的加载前后图像中下边缘的像素位移为7,结合换算比例计算得到的下挠度为28.088 8 mm。
该台起重机使用传统方法手动测量值为28 mm,则系统测量与传统测量的相对误差为0.32%。
此外,为了进一步验证该系统的可靠性,笔者对另外两种型号的门式起重机进行了系统测量和传统方法测量结果的对比,其结果如表1所示。
表1 系统测量与传统方法测量结果对比
从表1中可以看出:对于不同型号起重机的下挠度,系统测量值与传统方法测量值的相对误差值均小于0.5%,由此可证明所开发的测量系统具有较强的稳定性和可靠性,能够满足起重机下挠度测量工程应用的需求。
5 结束语
笔者通过LabVIEW平台开发了一套测量起重机下挠度的系统,改进了Canny边缘检测算法,提出了利用机器视觉测量起重机下挠度的方法,并构建了基于该方法的测量系统,进行了实际测试。
研究结果表明:
(1)该系统的测量相对误差小于0.5%,精度满足起重机下挠度工程测量要求,测量方法安全、快捷、经济,具有一定的工程应用价值;
(2)实现了对复杂工况环境下起重机主梁弱边缘和孤立边缘的检测和提取,得到的边缘二值化图像边界清晰(精确测量距离的前提),具有一定的参考价值和学术意义。
在后续的研究中,笔者将以该系统为基础,对其进行适应性改进与优化,以实现对厂房主梁、桥梁等大跨度结构物体的挠度值测量。