易焕银,刘志明,杨润
(广东交通职业技术学院机电工程系,广东广州 510650)
随着电力、电子工业的发展,由各种颜色的线缆线束组成的连接线在电力、电子产品中应用得越来越广泛,如接插线、通讯连接线、电脑连接线、汽车连接线、屏蔽线等[1]。在生产过程中各种颜色的导线往往要求严格按照规定的顺序排列,而在线束线序检测中,目前还有很多企业使用人工肉眼判别的方法进行检测,因易引起视觉疲劳而造成漏错、误检。
为了提高线序检测的效率和稳定性,文献[1]提出了一种速度和检测成功率较高的基于颜色聚合向量的线序检测方法,文献[2]设计了一种对电池线序的状态进行识别的线序检测电路,文献[3]设计了一种应用于多通道声呐接收机的自动线序测试装置,文献[4]设计了一种基于视觉的彩色排线线序检测设备,文献[5]提出了一种基于机器视觉与模糊控制的电缆线序识别方法及设备。
目前,基于机器视觉的导线线序检测方法和设备检测效率较高,但往往要求线缆按指定的位置和方向放置才能进行检测,且在测试前需要多次尝试获取导线局部像素的颜色值来设置各种导线颜色的标准色,调试时间较长、灵活性不足。本文设计了一种基于机器视觉的彩色线束线序检测方法,能自动获取单条导线的RGB三个通道的颜色均值,从而提高了设置各种导线颜色标准值的效率和稳定性,通过导线最长的轮廓的最小外接矩形的方向判别导线的摆放方向,实现自动适应各种摆放角度的检测对象。算法的运行效率高(平均用时约为32 ms),检测正确率达100%,达到了实际工业应用的要求。
图1为本方法的结构图,由五个模块构成:图像采集模块、导线颜色库的建立模块、图像预处理与检测方向确定模块、线序检测和检测结果显示模块。
图1 方法结构图
系统硬件包括计算机、彩色工业相机、工业镜头和LED环形光源,计算机与工业相机连接,LED环形光源的亮度可调,用于建立成像环境,工业相机和工业镜头用于获取导线表面图像,计算机用于控制工业相机进行图像采集以及后续的图像处理算法。系统采用500万像素CMOS面阵彩色相机、LED环形光源和25mm的工业镜头。图2(a)为系统采集到的导线原图。
图2 原图、掩码图与检测方向
本方法识别导线颜色的基本原理是比较被测导线颜色的RGB平均值与导线颜色库中的各种导线的基准颜色,以RGB差值的绝对值之和最小的那种颜色为测量结果。由于环境光照非绝对均匀以及导线不同部位的反射光线存在差异等原因,同一颜色导线的不同位置成像有明显区别。传统通过手动获取局部位置的RGB值后,多次手动设置该导线的基准色的方法效率较低且稳定性不够高。为了加快各种颜色导线的基准颜色的获取,本方法通过图像处理的方法自动获取各种导线的基准颜色,进而快速建立导线颜色库。方法为分别将各种颜色的导线放入测量视野中,算法通过连通域分析[6]获取包含导线的所有像素,再计算出这些像素的RGB平均值并在图像中显示,具体实现方法的细节与1.3类似。如图3所示为粉红色导线的RGB颜色均值的获取结果。
图3 单条导线颜色的自动提取
图像预处理的基本思路是排除噪声干扰并获取各个导线在图像中覆盖的所有像素点,而检测方向的确定是为了使本方法适应各种不同摆放条件下的线束。
(1)首先,将原彩色图像(记为f()x,y)转换为灰度图,记为g(x,y),然后进行反向二值化,得到的二值图像gb(x,y)由式(1)表示。
式中T为经实验得到的最优阈值,本文实验中T为240。
(2)对gb(x,y)进行连通域分析,保留面积大于某一阈值(实验中取1000)的联通区域以去除小的噪点,得到二值图gC(x,y),如图2(b)所示,该图像的前景即为后续相应位置导线颜色识别的掩码区域。说明:由于导线中间反光比较强烈的部分不利于颜色的准确识别,阈值分割自动将其转为背景区域。
(3)首先对gC()x,y进行膨胀处理(本实验中采用半径为5的矩形结构化元素),然后根据配置文件中标准导线数目N(本实例为4),保留面积最大的N个联通区域及各自的重心,结果图记为gN()
x,y,如图2(c)所示。由于导线中间反光较为强烈部分可能在反向二值化后将同一条导线分为两个连通域,从而导致算法误判为两条导线,因此需先进行膨胀处理。gN()x,y的各连通域即为各导线的位置,其重心为后续步骤判断导线顺序的关键依据。
(4)对gN(x,y)进行腐蚀后与gN(x,y)求差,得到导线的边沿图像,保留最大的连通域后,求其最小外接矩形RECT,如图2(d)所示。本算法以矩形RECT长边的方向为各导线的摆放方向。
此部分主要包括两部分内容,首先识别各导线的颜色,然后根据1.3(4)中确定的检测方向和1.3(3)中获得的各导线重心的位置关系确定各种颜色的顺序关系。
(1)对gN(x,y)的每个连通域,求取gC(x,y)中为前景的所有像素点在f()
x,y中对应像素的R、G、B三个通道的平均值。
(2)把(1)中的R、G、B值与导线颜色库中的各个R、G、B相比较,若各通道的差值的绝对值之和都大于指定阈值(实验中取100)则判为该颜色导线未经过训练,否则判为颜色库中各通道差值的绝对值之和最小的对应颜色。
(3)检测导线的线序。首先,求取过图像原点O且垂直于1.3(4)中矩形长边的直线L,如图4的直线L所示。然后,求取各个导线的重心(图4中为G1至G4共四个点)在直线L上的垂足(图4中为P1至P4共四个点)。最后,根据各垂足离图像原点O的距离为判据确定各导线的线序(实验中的规则为:距离越小排序越靠前)。
图4 线序检测的关键点位
检测结果显示如图5所示。比较各导线与参数配置文件中的顺序编号是否一致,若一致则在其重心位置用浅灰色标注该检测颜色,否则在其重心位置用深灰色标注该检测颜色。若所有的N条导线的顺序都与配置文件中的一致,则该线序检测通过,在图像右上角显示浅灰色字符串“OK”,否则显示深灰色字符串“NG”。同时,在图像左上角显示预设线序和检出线序及检测结果的文字提示。
图5 检测结果显示
以OpenCV和MFC实现的检测系统对粉红、红、黄、黑、蓝、绿共6种颜色的导线进行测试。经过8组不同的线序组合各100次实验,共得到800次各类导线摆放情况下的检测实验结果,基于本方法实现系统的线序检测结果的正确率为100%,在实验笔记本电脑(型号:华硕FX86F,CPU主频:2.2GHz,RAM:8G)上运行,平均检测时间为32.08 ms。图6为导线倾斜摆放情况实验的排序过程图片和检测结果图,可见算法可以自动识别导线的摆放方向。
图6 方向不定情况的检测示例
针对目前的机器视觉导线线序检测系统无法自动适应导线摆放方向变化等问题,设计了一种高适应性的彩色导线线序检测方法。该方法通过导线最长轮廓的最小外接矩形的方向,判别导线的摆放方向,根据各导线重心在检测方向投影离图像原点的距离为依据,确定视野中各导线的线序。该方法可自动适应任意方向的线束。经过实验验证,算法的运行效率和检测正确率较高,具有一定的实用价值。