基于机器视觉的汽车线束压接缺陷检测系统
2020-04-26张相胜
张相胜,焦 鹏,潘 丰
(江南大学轻工过程先进控制教育部重点实验室,江苏无锡 214122)
0 引言
随着汽车销量的逐渐增加,汽车线束的产量呈现出飞跃式增长的发展势头。汽车线束是汽车电路中信号传输的载体,线束压接后的品质直接影响汽车电子系统的正常运行,因此对线束压接质量的检测十分重要[1]。
线束的压接是指通过施加外力将接触件端子咬合在已经剥离绝缘体的导线上,从而达到导电和牢固结合的目的[2],线束的压接已经实现了大规模、大批量的高速自动化生产,但压接缺陷的检测一般依靠低效率、高成本的人工完成。利用机器视觉实现线束压接无接触自动检测不仅能够提高产品的检测精度和速度,而且避免了人工视觉检测带来的偏差和误差[3]。
本文设计了基于机器视觉的汽车线束压接缺陷检测系统,通过图像处理技术完成对线束关键部位特征的在线检测,判断压接后的线束是否符合生产标准,可以替代人工检测,提高检测的效率和质量。
1 检测内容及系统总体结构设计
1.1 检测内容
需检测的线束区域分布如图1所示,根据线束与端子压接的相对位置,将线束分为Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ区。视觉系统主要完成以下几个方面的检测:
(1)Ⅱ区、Ⅳ区中芯线出头长度是否超标;
(2)线束是否出现芯线外露情况;
(3)Ⅰ区绝缘层压着区端子、Ⅲ区芯线压着区端子和插Ⅴ区插接区端子是否缺失变形。
图1 线束压接成品外观零件图
工艺上要求视觉系统的检测精度达到±0.03 mm,误报率小于 3%,漏报率为0,单次检测时间小于500 ms。
1.2 系统整体布局
根据线束压接缺陷的检测要求,设计了视觉系统的整体布局如图2所示。工业相机安装在相机支架上,工业镜头安装在工业相机上,方形光源安装在镜头正下方,工业相机与工控机通过GigE Vision协议实现图像传输功能,实现图像的采集与传输功能。两个接近传感器安装在摆臂运行路径的下方,与PLC的数字量输入端相连,PLC与工控机通过TCP/IP协议实现数据交互。
图2 视觉检测系统整体布局
由操作员完成导线的上料后,按照流程启动设备,开始运行生产检测工位。首先,导线经送线皮带进入摆臂中的导向管,由摆臂带动导线至压接机完成线束的压接,在摆臂摆至视觉检测工位的过程中触发光电传感器,PLC接收到时序控制信号进行逻辑处理后发送相应的控制指令到工控机,由工控机发送拍照信号。工控机获取图片后,采用图像处理软件进行线束压接缺陷检测。检测完毕后,摆臂摆至截断工位截断线束,检测合格的线束被截断至收线槽中,检测不合格的线束被截断至次品放置区中,并由工控机显示报警信息。图3为视觉检测系统的整体工作流程。
图3 视觉检测系统工作流程图
1.3 系统硬件选型
1.3.1 工业相机
工业相机负责采集目标产品图像数据,由于芯线出头长度的检测是基于HSI颜色空间完成的,根据视觉系统的检测精度、视野范围的大小、相机数据传输速率、通信接口类型等,选用acA640-120gc彩色工业相机,其主要参数如表1所示。
表1 工业相机主要参数
相机的工作距离是指相机镜头到产品检测面的垂直距离,根据具体的检测要求和现场的安装条件确定相机工作距离为50 mm,其对应的视野大小为11.9 mm×8.9 mm。根据相机的视野大小及其分辨率,得出相机的理论检测精度达到0.018 mm/pixel,满足系统的检测精度要达到±0.03 mm的要求。
1.3.2 镜头
工业镜头是视觉系统中不可缺少的部件,与人眼晶状体的功能相同,主要功能是将目标物体聚焦并成像到相机的图像传感器上[4]。合理地选择工业镜头是保证工业相机采集到清晰图像的基础,考虑到相机分辨率、视野大小和工作距离的因素,采用M118FM25型号的工业镜头。由式(1)计算出相机的近似焦距值:式中:f为镜头的焦距,mm;WD为相机的工作距离,mm;l为图像传感器横向尺寸,mm;d为图像传感器纵向尺寸,mm;L为视野横向尺寸,mm;D为视野横向尺寸,mm。
可以得出相机的近似焦距为20.16 mm,因此选用25 mm的镜头。镜头的主要参数如表2所示。
表2 镜头主要参数
1.3.3 光源
好的打光设计可以克服环境光干扰,保证图像质量稳定,增强图像的对比度,使目标与背景的边界易于分离,形成有利于图像处理的图像。为尽可能采集到质量较好的图像,采用白色方形无影单排LED高亮光源,无影灯安装在镜头正下方,光源的主要参数如表3所示。
表3 光源主要参数
2 系统软件设计
2.1 开发环境介绍
本系统选用Microsoft Visual Studio 2012开发平台,使用C++语言和MFC界面编程完成上位机界面的开发,通过调用OpenCV计算机视觉库中的函数完成视觉检测算法的设计,具有运行速度快、成本低等优点。
2.2 算法流程
视觉检测过程的主要步骤如下:
STEP1:对相机进行标定,完成图像畸变校正;
STEP2:通过获取线束外接矩形的中心坐标和偏移角度,完成图像空间变换;
STEP3:基于HSI空间完成芯线区域分割;
STEP4:根据标定参数检测芯线出头长度;
STEP5:基于芯线颜色特征分割算法和斑点检测算法完成压着部分芯线外露检测;
STEP6:通过灰度化操作和斑点检测算法完成线束外部芯线外露检测;
STEP7:通过对模板图像轮廓和目标图像轮廓进行相似度匹配,完成端子形变检测。
2.3 图像畸变校正
由于镜头本身的非理想性,导致相机在成像过程中存在一定程度的畸变,这些畸变会造成图像失真,并导致识别出错和产生测量误差的情况,因此需要对图像进行畸变校正[5]。系统选用格子尺寸为1 mm×1 mm的棋盘格标定板进行畸变校正,调整标定板的位置采集10幅图像,执行如下标定程序。
首先,调用OpenCV中的cvfindcornersubpix函数提取每一副棋盘格图像中的亚像素角点坐标值。然后,将角点的坐标值代入calibrateCamera函数中获取相机标定参数 v0、h0、fx、fy、k1、k2、k3、k4,其中,v0、h0为图像的中心坐标,fx、fy分别为像素坐标系的H轴、V轴的等效焦距,k1、k2为径向畸变系数,k3、k4为切向畸变系数。最后,调用 initUndistortRectifyMap和 remap函数实现对图像畸变的矫正。
2.4 图像空间变换
由于待测产品到达检测工位时会存在一定程度的偏差,而且各个产品表面形状特征也存在一定程度的差别,这会导致相机采集的图像特征位置发生相应的变动,不利于后续的图像处理和分析[7]。
通过拟合线束轮廓的最小外接矩形,实现对特征区域的定位,进而完成图像空间变换。首先,对灰度化后的图像进行边缘检测和开运算处理,得到仅包含线束边界的二值图像。然后,调用OpenCV中的find-Contours函数获取线束的轮廓,通过执行rectangle函数获取轮廓的最小外接矩形。最后,通过计算矩形长边与横向主轴的夹角以及矩形的中心坐标完成检测坐标系的建立。图像初始坐标系与检测坐标系的对应关系如图4所示。
图4 图像坐标系与检测坐标系
检测坐标系O'是图像坐标系O经过旋转和平移得到的。P点的图像坐标p(vp,hp)和检测坐标p(xp,yp)的转换关系如式(2)所示:
通过式(2)实现图像坐标系到检测坐标系的转换,线束坐标变换前后图像如图5所示。
图5 坐标变换效果图
2.5 芯线出头长度检测
2.5.1 芯线区域分割
对RGB空间内的源图像分析后发现,芯线的3个颜色通道(R、G、B分量)组合复杂且相关性较高,难以确定阈值进行颜色判断。HSI模型中的色彩不相关性,很好地解决了这个问题。首先,将读取到的RGB空间线束图像转化为HSI空间图像,然后,根据HSI颜色空间中3个参数设定阈值对芯线进行分割操作,对大量的线束样品采集图像分析后确定HSI参数如表4所示。
表4 HSI颜色空间阈值
最后,根据凡是在阈值区间内的像素点灰度值置为1,不在阈值区间内的像素点灰度值置为0的原则,对HSI空间图像进行二值化处理,结果如图6所示。
图6 芯线部分二值图像
2.5.2 芯线实际尺寸的计算
视觉检测程序中被测物的几何尺寸按照像素数来衡量[8-9],为了得到被测物的实际尺寸,需要将检测对象的像素单位(pixel)转换为实际单位(mm),采用连接亚像素角点,计算实际边长1 mm的黑白格子边中的像素个数的方法,得到被测物的实际尺寸与像素的转换关系,如式(3)所示:
式中:D为实际尺寸;Lpixel为像素个数;k为标定参数,求得标定参数k为0.018 1 mm/pixel。
采用拟合芯线区域最小外接矩形的方法完成芯线尺寸的计算。首先,通过提取芯线轮廓凸包特征拟合出芯线轮廓的最小外接矩形。然后,完成芯线部分的框选如图7所示。最后,计算出左侧矩形长度L1为58.1 pixel,右侧矩形长度 L2为 33.2 pixel,即为芯线的像素尺寸。
图7 芯线区域最小外接矩形图像
根据标定得到的比例关系计算得出Ⅱ区芯线实际长度D1为1.05 mm,Ⅳ区芯线实际长度D2为0.60 mm。出头长度大于1.5 mm或小于0.5 mm的线束将被判定为不合格品。
2.6 芯线外露检测
2.6.1 压着部分芯线外露检测
压着部分芯线外露的线束如图8所示,基于芯线颜色特征可以完成Ⅲ区中芯线的区域分割,并根据连通域规则计算出分割区域的像素面积。首先,对Ⅲ区压着部分进行芯线区域分割操作,得到芯线部分的二值图像。然后,通过斑点检测算法计算白斑面积,滤除面积小于10个像素点的白斑区域,如图9所示。最后,判定白斑面积占比大于等于20%的产品为芯线外露的不合格品。
图8 压着部分芯线外露图
2.6.2 线束外部芯线外露检测
图9 压着部分斑点检测算法处理图像
不同于压着部分芯线外露的情况,线束外部的背景为黑色,所以采用灰度化操作完成芯线特征的分割。首先,基于图10所示的线束图像,对多边形区域中的芯线进行阈值分割,采用固定阈值的分割方法,滤除像素灰度小于80的像素点得到上、下两部分的二值图像,如图11所示。然后,通过斑点检测算法计算白斑面积,判定白斑面积大于40的为芯线外露产品。
图10 线束外部芯线外露图像
图11 线束外部斑点检测算法处理图像
2.7 端子形变检测
针对端子形变检测,采用模板匹配的方法对图像模板与目标图像进行相似度匹配。考虑到检测系统的实时性和端子纹理特征,本文采用基于边缘信息的匹配方法。首先,创建端子的模板图像,通过Canny边缘检测算法提取模板图像和目标图像的边缘信息。然后,将边缘信息作为输入计算图像轮廓的Hu矩,调用OpenCV中的cvMatchShapes函数计算Hu矩的相似程度。最后,根据匹配值越大产品轮廓越不相似的原则,筛选出端子形变的线束。
3 系统测试
为了测试该视觉检测系统的功能和测量精度,将5 000根线束进行图像处理并获得相关检测结果。将获得的芯线尺寸数据与实际手工采用专业工具测量的尺寸数据进行对比分析,如表5所示。
表5 测量结果误差统计分析 mm
系统的实际检测精度在±0.03 mm以内,能够将芯线长度不合格的产品检出。芯线外露及端子变形的不良品都能被检测出来,系统的漏报率为0。经统计得出线束压接缺陷视觉检测系统的整体误报率小于1.3%,系统的运行时间为300 ms左右。综合以上数据,本系统能够满足工业现场的应用需求。
4 结束语
本文设计了基于机器视觉的汽车线束压接缺陷检测系统,通过图像处理技术完成对线束关键部位特征的检测,判断压接后的线束是否符合生产标准。系统已经成功应用于某汽车系统有限公司的线束生产中,能够实现线束缺陷的快速、精确、稳定检测,为企业带来了更高的收益。