1. 引言
随着机械自动化水平的发展,汽车零部件生产中的大部分环节都已实现了智能化,但零部件是否装配正确到位仍需人工目力或检具检测,由于受到主观因素、工作强度以及视觉疲劳程度的影响,人工的误检率较高,效率和检测质量较低且人工成本较高,影响工业的生产质量 [1] 。
机器视觉在检测缺陷方面具有非接触性、灵活性高、效率和准确率高的特点,被广泛应用于制造业中的工况监视、成品检验和质量控制等环节 [2] [3] [4] [5] 。郭全民等人提出了一种基于机器视觉的多铆钉自动检测算法,较传统OTSU算法更准确的对目标和背景进行聚类,更多的污点区域未被划分为目标类,有效解决了铆钉倾斜放置对检测过程的影响 [6] 。陈至坤等人针对传统的轮廓提取方法提取的图像轮廓有时存在断点的问题,给出了Radon变换法对断点轮廓进行重构,从而得到连续的单像素宽的图像轮廓,且具有一定的抗干扰能力 [7] 。
针对汽车零部件检测的人力浪费和工人的误检率、漏检率高,效率较低的问题,设计了一种基于机器视觉的汽车零部件检测系统,降低了质检环节的误检率和漏检率,提高了工人工作效率,为工业生产节省了生产成本,有利于零部件质量信息的集成。
2. 问题描述
经工厂调研发现,汽车置杯盒零部件装配后,需对零部件进行如下检测,如图1所示。
1) 各个连接件和零件是否安装,包括:卡扣,泡棉,铁片,螺钉,按键,不织布。
2) 泡棉是否装反,破损。
3) 螺丝是否装配到位。
4) 铁片是否装反,柱头是否经过热熔处理。
3. 系统硬件实现
3.1. 系统总体框架
汽车零部件检测系统结构图如图2所示。启动系统后,系统处于待机状态,等待工作人员放入标准产品。若光电传感器检测到物体被放置,低电平信号由光电传感器传输到单片机,系统处于激活状态,两个启动开关同时被按下后,下降沿触发单片机外部中断,由中断服务程序发送高电平至继电器,继电器控制电磁阀,气缸压紧物体,单片机发出下降沿的外触发信号触发相机拍摄采集零部件图像。图像信息由网线传输至工控机,由程序检测图像的标准参数信息,系统自动复位,工作人员取出标准产品。系统开始检测状态,由工作人员放入待检测产品,由系统检测是否存在缺陷,若存在缺陷,经过串口通信,通过单片机,保持气缸原始状态不被松开,蜂鸣器开始报警。等待复位开关按下,低电平传输到单片机,单片机发送低电平到继电器,继电器控制电磁阀,控制气缸松开,蜂鸣器停止报警;若不存在缺陷,单片机发送低电平信号到继电器,控制气缸松开,检测流程结束。
3.2. 系统硬件平台设计
一个典型的工业机器视觉系统硬件设备包括:光源、镜头、相机 [8] 。系统平台结构设计如图3所示,主要由零件上方和两侧的相机,多个光源组成。各个组件都可根据实际情况调节角度和高度。整个平台外围被铝塑板包围,以杜绝环境光的影响,只留一个供工人放置拿取零部件的矩形孔。
系统相机采用大恒图像的水星(MERCURY)家族的MER-G系列数字相机,具有高分辨率、高清晰度、低噪声等特点,适用于工业检测、医疗、科研、教育以及安防等领域。系统一共设置四个相机,两个位于零部件正上方,用于采集零部件俯视图(一个彩色相机,一个黑白相机),两个位于零部件两侧(两个黑白相机),用于采集零部件的侧视图。系统选择上方彩色相机镜头为VS0816-5M;黑白相机镜头为VS1614-10M;两侧相机镜头为VS1614-4M。系统采用4个条形LED光源(位于零部件上方前后左右四个方位,角度、高度可调节),对零部件进行自上而下的前向照明。考虑到安装问题且环形光源对图像局部亮度较为均匀,采用2个环形LED光源(位于零部件两侧)前向照明,突出物体的立体信息,节省安装空间,如图3所示。

Figure 3. System hardware platform structure
图3. 系统硬件平台结构图
4. 系统程序设计
4.1. 按键检测程序设计
在置杯盒零部件的生产中,按键易装反和漏装,工人在检测时也较难发现按键装配错误。程序使用一种基于边缘方向梯度的模板匹配算法检测按键 [9] [10] [11] 。主要用来检测按键装配方向和装配类型是否正确。由于各个按键图像形状特征有较大差别,检测时首先获取标准按键图像,放上待检测工件,用模板匹配算法在待检测图像上进行搜索定位,将图像模板在高层图像金字塔进行搜索匹配(模板有旋转有放缩的搜索),映射到低层,搜索速度较快。如果没有匹配到目标,则以预先输入的三个按键图像作为模板图像,如图4所示,使用三个按键模板分别在待测工件按键区域内进行搜索匹配,如果匹配到目标则按键安装正确,否则提示安装错误,算法流程如图5所示。其中滞后阈值需要两个阈值,高阈值和低阈值,二者之比在2:1和3:1之间较为合适。若某一像素值幅值高于高阈值,则被保留;低于低阈值,则被舍弃;若在二者之间,仅当该像素连接一个高于高阈值的像素时才被保留。

Figure 5. Key detection program flow chart
图5. 按键检测程序流程图
4.2. 螺钉、卡扣检测程序设计
检测螺钉、卡扣零件是否装配,是利用处理后图像区域的灰度信息来判断。首先计算已装配的螺钉和卡扣区域的灰度平均值,结合未装配时此区域的灰度平均值,设定灰度平均值阈值,在检测时,计算螺钉和卡扣区域的平度平均值与设定阈值比较即可判别是否装配。
检测螺钉是否装配到位,由两侧相机采集各个螺钉区域的图像,对其进行阈值分割处理,形态学处理,计算轮廓,计算区域的质心位置 [12] 。如图6所示为装配正确的螺钉图像和二值图像,图7为装配时未将螺钉拧紧的图像及其二值图像,程序处理时,分别计算其二值图像的质心高度,对其比较即可判别是否装配正确。
4.3. 不织布检测程序设计
不织布只需检测是否装配,使用一种局部阈值分割的方法 [13] 。如图8所示,不织布1和不织布2由于和周围区域有较明显区分,使用灰度信息即可判别。不织布3周围区域与不织布区别不大,实验分析发现,不织布3检测到的灰度值为7,周围区域灰度值大于10,使用阈值为10来分割图像,之后检测像素值为255的面积,如图10所示。若面积为0,则表示不织布3未装配,否则表示已装配。图9位不织布3阈值分割后的图像。
4.4. 泡棉检测程序设计
程序在检测泡棉时分为两步,第一步检测泡棉是否安装,第二步检测泡棉是否缺损。泡棉是否安装使用灰度信息即可简单判别,在此不多加赘述。检测泡棉是否缺损时,由于泡棉本身存在许多气孔,在进行灰度变换和阈值分割后会形成许多明暗相间的点,但是背景图像较为平滑。算法使用scharr滤波器计算出图像的梯度信息图把泡棉和背景区分开,如图10所示。
Scharr滤波器的原理和Sobel算子类似,用来计算图像x或y方向的图像梯度信息。由于Sobel算子的内核大小为3时会产生比较明显的误差,Scharr滤波器只针对大小为3的内核,Scharr滤波器和Sobel算子运算速度一样快,但结果却更加精确。
算法使用孔洞填充和去除小区域将泡棉本身的气孔剔除 [14] ,再将泡棉分为4段,如图11所示,由于破损面积一般远大于泡棉本身的气孔,因此并不会被去除。计算未破损泡棉像素值为0的个数N,由此设定泡棉是否缺损的阈值T。在实际检测时依据此阈值即可判别泡棉是否破损。如图12为泡棉检测流程图。
4.5. 铁片检测程序设计
铁片检测有三个方面:是否装配、是否装反和柱头是否经过热熔处理。算法采集如图13所示的铁片中部区域图像信息进行分析。对铁片图像进行阈值分割处理。由于在铁片没有装配和装反的情况下,此区域像素值全部为255,因此只需检测此区域像素值为255的像素个数即可检测是否装配和装反。
检测铁片柱头是否经过热熔处理,算法首先采集经过热熔处理的铁片柱头区域,进行灰度变换,阈值分割,形态学操作和形状匹配法等操作 [15] ,计算出柱头区域(白色圆形区域)面积,依据此面积值设定阈值,在检测时即可判别铁片柱头是否经过热熔处理,如图14所示为铁片柱头热熔处理对比图。
5. 实验分析
本文选择样品1400例,其中每种缺陷各取200例(每个零部件只存在一种缺陷),无缺陷样品200例。实验数据如下表1。实验结果表示,系统可对置杯盒零部件进行十分精确地检测,比人工检测结果更加准确且效率较高,满足工业生产需求,系统检测界面如图15所示。

Table 1. System resulting data of standard experiment
表1. 标准试验系统结果数据
6. 总结与展望
本文阐述了用于控制检测系统启停及报警的硬件控制平台(包括光源、相机、镜头、单片机和工控机等设备)的设计方案和汽车置杯盒零部件检测算法。系统可以精确地检测出实际生产中可能存在的各种缺陷,满足工业生产的需求,提高了汽车生产质检环节的效率和质量,节省了人力,降低了工业制造成本,但在自动化设计方面有进一步提升的空间。
基金项目
本文获得河南大学科研基金项目(2015YBZR044)的资助。