赵国鑫 闫旺 于灏
关键词:机器视觉;图像处理;焊接检测;风电塔筒;焊缝宽度
0 引言
近年来,酒泉市风力发电产业得到了快速发展,风电塔筒是风力发电重要的设备之一,在风力发电机组中主要起支撑作用,同时吸收机组震动,保证风电设备的稳定性。风电塔高度高,需要有足够的强度、刚度和抗疲劳性能,以保证在大风或暴风袭击时,不会发生整机倾倒等事故。塔筒整体结构采用焊接技术制造,焊缝长度长,焊接工程量大,焊接质量要求高。在焊缝的外观检验中,宽度及宽度差检测是焊缝外观检测的一个重要指标。
目前,塔筒焊缝的外观检测使用的是人工检测法,即工人利用焊缝检测尺测量焊缝的不同位置进行数据分析,由于焊缝较长,检测过程费时费力,过度依靠检测者的经验,且具有较大的主观性,不利于智能化推广;而且会因工作时间的延长、出现测量者的疲劳和检测水平的问题,出现误测、漏测,测试结果不够稳定等问题。
通过与图像处理和人工智能相结合的办法来检测焊缝的表面成型质量,已经有了丰硕的成果。褚慧慧[1]做了基于视觉的焊缝质量检测技术研究,将机器视觉技术应用到焊缝质量检测中,实现了非接触的高灵敏度与高精度测量,提高了检测效率,降低了检测成本。王立伟等人[2]对基于视觉信息的钢板连续生产线激光焊接关键技术进行了研究,将机器视觉融入钢板激光连续焊接技术中,实现了焊缝、焦点的位置以及焊接速度的精确控制。王振民等人[3]利用机器视觉的方法,获取了焊接过程中的熔池相关参数,并以此为依据对焊接过程进行控制。但是,大部分的检测系统是基于机构光或者激光的[4-6],需要专门的硬件设备,检测过程相对比较复杂;且关于风电塔筒焊缝质量的研究相对较少。针对这些问题,本文提出一种基于视觉技术的风电塔筒焊缝宽度检测方法。
1 方法简述
通过摄像设备获取焊接件图像,读入图像并采用人机交互的方式对图像进行选区;提取其亮度信息对图像进行灰度化获得灰度图像,采用直方图均衡化和中值滤波对图像进行增强,中值滤波可以有效地降低噪声,并更好地保护图像的边缘信息。基于视觉的焊缝宽度检测系统流程如图1所示。
使用区域生长法对图像进行分割获得焊缝的二值图,区域生长方法是根据同一物体区域内像素的相似性质来聚集像素点的方法,从初始区域(如小邻域甚至于每个像素)开始,将相邻的具有同样性质的像素或其他区域归并到目前的区域中,从而逐步增长区域,直至没有可以归并的点或其他小区域为止。区域内像素的相似性度量可以包括平均灰度值、纹理、颜色等信息。在没有先验知识可以利用时,可以取得最佳的性能,可以用来分割比较复杂的图像。
依靠形态学处理修补过分割区域得到焊缝区域,形态学是图像处理中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使后续的识别工作能够抓住目标对象最为本质的形状特征,如边界和连通区域等;最后依据像素数来计算焊缝宽度的各个参数。
2 仿真系统设计
2.1 界面设计
焊缝宽度检测系统是基于Windows系统和Matlab 软件开发的。软件的界面主要包含4个区域,即命令窗口、处理结果预览窗口、焊缝宽度曲线显示区域与参数计算窗口。在命令窗口中集成了6个命令,分别为选择图片、选区、滤波、区域生长分割、形态学处理与焊缝宽度曲线命令。在执行区域生长分割时需要人机交互确定多种子的生长位置,从而实现了对复杂图像的分割。在执行形态学处理命令时,可以认为修正形态学处理的参数,从而进一步优化分割效果。
在处理预览窗口中,可以实时查看每一步运算的结果,在焊缝宽度曲线区域可以查看焊缝宽度的曲线,更加直观地看到焊缝宽度的变化情况。在参数计算窗口中可以计算并查看焊缝宽度信号的各种信息,包括最大值、最小值、均值、方差等。
2.2 直方图均衡化
对不同灰度的像素进行统计,可以获得灰度直方图,通过改变灰度直方图可以改变像素的灰度,进而增强动态范围偏小的图像对比度,直方均衡化是简单且有效的图像增强方法。
图像的灰度直方图是一个一维的离散函数:
2.3 中值滤波
虽然期望得到高质量的图像,但是由于焊接件本身或是拍摄设备与工艺等问题,得到的图像往往会存在一些噪声(noise) 可用公式(3) 表示图像噪声。
由于中值滤波属于非线性滤波,不需要处理图像的统计信息,所以运算速度快、易于实现,中值滤波在一定情况下可以克服线性滤波器的细节丢失问题。算法对窗口中像素的灰度值进行排序并采用中间灰度值来代替窗口中心像素的灰度值,如图7和图8所示,以此方法遍历整个图像,实现对整个图像的降噪。
2.4 区域生长法
区域生长法是根据一定准则要求将像素或(种子)聚合形成更大连通域的图像分割方法,其基本过程是从生长点开始(可以为像素或区域),将符合要求的相邻像素或者区域与生长点聚合从而形成新的生长点,然后重复此过程,直到找出所有符合要求的像素为止,算法的判断依据可以是灰度值、纹理、颜色等图像信息。区域生长算法关键有三个,即种子的选择、要求的确定和中终止条件的确定。
如图9所示,每个方格代表一个像素,其中数字表示该像素的灰度。以灰度值為130的像素为初始的生长点,记为f (i,j )。在8邻域内,生长准则是待测点灰度值与生长点灰度值相差小于或等于10,图10为区域生长后的图,然后继续迭代,直到没有符合生长条件的像素后停止。
2.5 形态学处理
图像的膨胀(Dilation) 和腐蚀(Erosion) 是两种基本的形态学运算;如图11所示,白色为背景区域,橙色为目标区域,以3×3的模板遍历整个图像,当中心像素8邻域中存在背景像素时,则把其赋值为背景值;膨胀原理与腐蚀相反,当中心像素8邻域中存在目标像素时,则把其赋值为目标值,如图11所示。
对图像腐蚀后膨胀,可以消除图像间的黏连平滑形状边界,且不改变目标区域的面积,即为开运算;先对图像膨胀后腐蚀,可以闭合目标区域内的孔洞,连接相邻目标区域,修补间断的轮廓等,称之为闭运算,如图12所示。
3 系统测试
3.1 测试条件
所做实验采用的是Windows 11系统,处理器为11th Gen Intel(R) Core(TM) i5-11300H@3.10GHz,内存(RAM) 为16.00GB,系统类 型为64 位,所用软件为MATLAB 2022b。
3.2 图像增强模块测试
运行软件,在图像选取窗口选择要检测的图像,如13所示;在图像选区窗口通过鼠标选取要检测的焊缝区域,该区域为矩形区域,边长为鼠标左键按住与松开时两点间水平距离与竖直距离,选区如图14所示。采用加权平均法对图像进行灰度化,由于人眼对三种颜色分量方的敏感度不同,红色、绿色和蓝色较为常用的权值分别为0.3、0.59和0.11,然后对图像进行中值滤波,滤波后的图像如图15所示。
3.3 图像分割模块测试
运行区域生长分割命令,在弹出的窗口选择种子点,系统采用的是多种子区域增长法,可以一次选取多个种子,如图16所示,选取的种子数目、位置对图像分割的效果有较大影响,分割后的图像如图17所示。
3.4 形态学处理模块测试
系统采用的形态学处理的结构元素为disk,默认大小为5个像素。用户可以在形态学参数值输入框中自定义结构元素的大小,参数值的大小关系到计算结果的准确程度。如果参数值选择过大,则会造成欠分割,即会使得背景中的像素被误分到目标区域内;如果选择的参数值较小,则会造成过分割,即把目标中的像素误分到背景中。在本次测试环节中,结构元素的大小为23,其处理结果如图18所示。
3.5 焊缝参数计算模块测试
运行焊接宽度曲线可以获得焊縫宽度的曲线,曲线的纵坐标为焊缝的长度,曲线的横坐标为焊缝在某一位置的像素数,即焊缝的宽度,如图19所示。运行参数计算命令,即可对焊缝宽度的相关参数进行计算,例如最大值、最小值、均值和方差等,可以定量的描述焊缝的宽度,便于用于评价焊缝的质量,参数计算窗口如图20所示。
4 结论
针对目前风电塔筒焊缝宽度检测过程中存在的问题,设计和开发了一种基于视觉的焊缝宽度检测系统。采用相机采集焊缝图像,通过图像处理,代替人工测量焊缝的宽度,实现了风电塔筒焊缝宽度检测的自动化、智能化;系统对硬件的要求低,限制少;不依赖测量者的经验与技术,实现了焊缝宽度的精确、稳定测量,大大减小了人工处理过程所带来的误差,提高了效率。