基于机器视觉的汽车焊缝检测系统
2018-10-31韩晓勇段锦董锁芹
韩晓勇,段锦,董锁芹
(长春理工大学 电子信息工程学院,长春 130022)
传统的汽车零件尺寸主要通过专门定做的测量工具进行测量,该方法测量的精度不高,测量的结果受人的主观因素变化较大,测量耗费时间多,测量方法繁琐。在一些情况下,测量的工具硬性接触被测零件,会对被测零件产生很大的磨损,甚至报废。传统的测量技术已远远不能满足现代工业自动化智能控制的需求。
近年来,数字图像处理技术的飞速发展推动了机器视觉技术的研究,机器视觉在测量技术中的应用促进了工业技术生产的智能化,已应用于工业、军事、农业、医药等各个领域。方化攀[1]提出一种基于区间分割蛋黄图像的方法,实现了对鸡蛋表皮存在缺陷的精确检测;刘贝[2]提出一种基于机器视觉的检测方法,对石材砖的尺寸大小进行精准检测;巢渊[3]提出一种基于机器视觉的检测系统,实现了对芯片表面的缺陷精确快速检测。伍济钢[4]提出一种基于机器视觉的尺寸检测方法,实现了计算机薄片尺寸的精确快速测量。
本文设计的基于机器视觉的汽车焊缝检测系统,实现对生产线上车辆焊缝工件尺寸的自动、精准检测。在硬件方案中,结合实际工业环境选择合适的镜头、相机、光源和交换机等相关硬件。在软件方案中,主要包括两方面功能设计,一是对多个工业相机联网采集显示、系统参数初始化、相机参数设置以及当前图像焊缝检测;二是为了快速、精确检测焊缝尺寸,提出了标定圆的椭圆检测算法和焊缝检测算法。
1 系统构成及工作流程
1.1 系统构成
本文设计的基于机器视觉的汽车焊缝检测系统主要通过对图像采集、图像处理、焊缝检测等步骤,将测得的焊缝距离输出到焊缝尺寸表格中。汽车焊缝检测系统如图1所示。
图1 汽车焊缝检测系统
为了更好地获得汽车焊缝工件金属表面的纹理特征,并且使光源具有明亮、稳定和均匀的特性,选择白色环形LED作为光源。
通过交换机建立局域网,实现对多个工业相机在线操作,将工业相机采集的数字图像信号通过交换机输入到工业计算机的图像处理系统中,实现对焊缝图像的一系列预处理、焊缝尺寸检测和结果保存。工业计算机的自动控制系统接受到图像处理系统对特定焊缝点的处理消息请求后,通过PLC控制工作平台上的相机运动,获取检测点的焊缝图像;通过显示器将工业计算机处理的焊缝检测结果进行显示。工作平台包括汽车焊缝工件和固定在电动滑轨上的相机。系统中一个相机负责多个焊缝检测点的测量,通过电动滑轨控制相机在检测点之间运动,多个相机可以完成对汽车所有焊缝点的测量。
如图2(a)是工厂提供的待检焊缝工件,图2(b)是采集的工件中某点焊缝图像。
图2(b)中的标定圆的直径为5mm,其目的在于求出镜头对物像的放大倍数,根据对图像中已知物件尺寸求出图像中的标尺(每像素代表的实际距离),根据标尺大小求出待检焊缝的尺寸d=k×N,其中,k为检测的标尺大小,N为检测到的焊缝间隔像素数。因为实际工件的焊缝距离不是完全平行的两条直线,所以,为了提高检测精度,焊缝距离计算是按照三线间距的平均值。即:在待检焊缝点B上下相邻一定像素数各取A,C一条直线,分别计算A,B,C三条焊缝的距离,取3条焊缝距离的平均值作为检测B点的焊缝距离;检测点相隔像素数根据检测要求可在软件系统参数设计界面进行修改。
图2 工件和采集的检测点图像
1.2 工作流程
汽车焊缝检测系统的工作流程如图3所示。
图3 汽车焊缝检测系统流程
第一步,将安装在支架上的相机固定在电动滑轨上,打开在线的工业相机,滑轨上的相机自动运行到待检的工位点,对焊缝图像进行采集和显示;
第二步,调整相机参数焦距、曝光、增益等大小使图像成像明亮清晰;调节光源系统照射角度和亮度使图像对比度增强。进行上述调节后,图像清晰则将相机和光源固定,否则,重复进行上述的调节步骤。将调整好的相机参数保存在系统配置文件中。在下一次打开相机时,调用对应的系统配置文件;
第三步,对采集的焊缝图像进行标尺检测。当相机不能垂直照射标定圆时,圆变成椭圆,对采集的图像进行椭圆检测,按检测的椭圆长轴进行标尺计算;
第四步,进行焊缝直线检测。检测的焊缝结果符合实际要求,则将检测点的焊缝结果进行保存。否则,重复进行第二、三步进行调节,再进行焊缝直线检测。
2 图像处理
如图4所示,采集汽车焊缝点的图像,对其进行一系列预处理,将预处理后的图像进行标定圆的椭圆检测,确定图像的标尺大小;按照检测的椭圆长轴对采集的整幅图像进行校正;并对焊缝线距离进行检测,将检测的焊缝数据保存。汽车焊缝检测算法中,最重要的是标定圆的椭圆检测和改进的Hough变换算法。
图4 汽车焊缝检测算法流程图
2.1 标定圆的椭圆检测算法
在采集图像过程中,当工件放置倾斜时,工业相机不能垂直照射被测物,采集的到图像会发生形变,标定圆变成椭圆,需要对采集的图像进行椭圆检测。
采用中值滤波对采集的汽车焊缝图像进行处理,保留图像的边缘。运用Canny边缘检测对图像中的主要边缘进行提取处理,再对处理后的图像进行轮廓提取。轮廓就是提取图像中的边界,边界分为外边界和孔边界,根据提取轮廓类型不同,得到的轮廓也不同。系统采用轮廓检测算法来确定焊缝图像的外边界、孔边界和它们的层次关系[5]。检测结果如图5所示。
使用最小二乘拟合方法对检测出的焊缝图像轮廓进行椭圆拟合,椭圆曲线方程式如式(1)所示:
其中,F(xi,yj)是点(xi,yi)到F(x,y)的代数距离。
图5 焊缝图像轮廓提取
对检测出的拟合椭圆按大小进行筛选。根据光学成像原理,标定圆到相机镜头的物距和相机靶面成像之间的光路近似为相似三角形。根据相似三角形原理,首先,计算采集图像的椭圆长轴间隔像素数,计算如公式(3);然后,根据计算的椭圆长轴像素数,对(1)(2)式拟合椭圆长轴像素数进行筛选;最后,将待检测的椭圆长轴控制在一个合理范围内。这种算法剔除了误检的椭圆,准确快速地检测出标定圆。检测的结果如图6所示,物距L可以在系统软件的系统参数设置界面进行输入。
其中,N表示物体在相机靶面上成像的像素间隔数,μ表示相机的像元尺寸大小,单位μm,f表示相机的焦距,单位为mm,D表示实际物体的大小,单位为mm。
图6 标定圆的椭圆检测
将检测椭圆的长轴和短轴,用十字的形式画在焊缝图像上,用检测的椭圆长轴来标定实际圆直径,计算标尺值,公式如式(4)所示:
其中,Scal表示图像中的标尺大小,单位为μm/pix,D表示标定圆的实际直径,单位为μm,ΔY表示在图像中检测到的椭圆长轴像素间隔,单位为像素(pix)。
2.2 改进的Hough变换检测算法
一个具有实际应用价值的汽车焊缝检测系统,在满足快速检测的基础上,还需完成精确的检测。Hough变换检测算法是工业检测的基本方法,随着参数数量的增加,计算量会急剧增大;而且,由于工件边缘粗糙和环境噪声的影响,会出现伪直线和误检的问题,使检测精度降低。
针对Hough变换的上述缺点。选择焊缝检测ROI区域,将其保存在系统文件中,进行下一次焊缝检测时,从系统文件中读取对应检测点的ROI区域进行焊缝检测;采用8领域对边缘像素进行分类[6],剔除伪直线和误检直线;对工件表面出现的断线进行延长、平行直线间隔过小的直线进行合并和斜率异常的线进行剔除。
图7 检测的焊缝结果
图7(a)是使用传统Hough变换的检测结果,图7(b)是使用改进的Hough变换的检测结果,图7(c)是在检测当前焊缝点的距离。
3 实验结果分析
在VS2010中的调试编写代码,生成软件界面,经过调试,软件界面功能正确。主界面包括系统参数设置、检测工位显示和图像文件处理功能。软件界面实现如图8所示。
图8 软件界面实现
打开检测工位显示界面,从系统配置文件中读取系统的参数、相机参数进行初始化,可对在线相机进行实时采集、帧保存、批量保存、当前图像处理等操作。打开图像文件处理界面,从系统配置文件中读取系统参数,对保存的图像文件进行标尺检测、焊缝检测、结果保存等操作。
用游标卡尺多次测量平均A点焊缝的间距为:2.990mm,多次测量平均B点的焊缝间距为3.655mm。用设计的系统软件对A点、B点各测量10组数据,测量结果如表1所示,测量数据分析如表2所示。
表1 测量结果 单位:mm
表2 测量结果误差
由表2可得,A点平均误差为0.008mm,方差为5.629E-05;C点的平均误差为0.006mm,方差为3.909E-05。测量的精度可达到0.006mm,测量方差可达到3.909E-05,测量结果满足实际工程要求,比实际人工测量结果更加稳定和精确,并且没有人工误差的代入。
4 结论
本文阐述了基于机器视觉的汽车焊缝检测系统的实现流程和汽车焊缝检测算法。系统可实现多个相机对焊缝点的自动测量,系统测量精度为0.006 mm,测量方差量级为10-5,提高了焊缝检测的精度和实时性,避免人工带来的误差,可满足实际工作环境下汽车焊缝的检测需求。对于汽车焊缝的精准自动化测量有一定的参考意义。