1. 引言
智能制造是我国制造强国建设的主攻方向,其发展程度直接关乎我国制造业的质量水平 [1] 。在此背景下,各行业对于机械设备生产自动化、生产效率和质量的要求都有所提高。对于多种系统装备,接触器可以频繁开闭大电流来控制电路,在装备中作为配电开关,广泛应用于较高电压设备的自动控制系统中 [2] 。在大规模生产中,接触器接线缺陷往往通过人工筛查,并在发现缺陷后再进行分类处理。人工方法工作量大、成本高,同时受人工工作时长影响,筛查时间受限、效率低下、易出现漏检现象。
目前,机器视觉在表面缺陷检测中的研究逐渐广泛,可使用机器学习算法对识别得到的特征进行分类,从而达到视线缺陷检测的目的,如SVM和各类神经网络模型 [3] [4] 。与传统金属器件的缺陷检测相比,接触器接线部分图像采集难度不高,对光线要求不严格,色彩明显,图像特征突出,接线缺陷部分形态相对固定且特征明显,只包含错接漏接两种类型,非常适合利用机器学习算法采用图像识别技术进行缺陷检测。
本文采用SVM算法 [5] 建立基于图像识别的接触器接线缺陷检测模型,对接触器两种主要接线缺陷漏接和错接进行检测,并将该模型的检测结果与基于KNN [6] 、决策树 [7] 和VGG-16 [8] [9] 的检测结果进行对比,验证本文模型的检测效率。为降低图像目标检测受到的样本局限性影响,进一步提高泛化能力,利用Imageio和Imgaug对原始数据集图像进行扩展和增强,以得到精度更高的模型。同时利用自编码器添加异常状态检测,使得模型能够及时对异常输入做出报警。通过对比多种模型在仿真实验中的检测精度,验证模型鲁棒性。
2. 接触器接线缺陷图像预处理
基于缺陷检测模型的需要,在对在生产线上的接触器架设摄像机后进行图像采集,建立接触器接线状况数据集,含有两种缺陷类型。数据集中包含固定角度拍摄、不同光照变化下的接触器图片。对缺陷检测模型进行训练,使其可以用于实地检测生产中的接触器接线缺陷。
2.1. 原始数据集
本文接触器接线缺陷数据来源于某品牌接触器产线的实拍图像,共收集图像数据161张。接触器常见接线缺陷共两种类型:错接和漏接。原始数据集根据是否有缺陷将图像简单的分为无缺陷(OK)和有缺陷(NG),代表性原始图像如图1、图2、图3所示。原始图像数据按120:31:10的比例划分为训练集、验证集、测试集。

Figure 2. Category II-Defective-NG-Wiring not connected
图2. 有缺陷-NG (漏接)

Figure 3. Category III-Defective-NG-Incorrect wiring sequence
图3. 有缺陷-NG (错接)
2.2. 图像预处理模型
小样本图像识别任务需要机器学习模型在少量标注数据上进行训练和学习 [10] 。本文建立的原始数据集共161张,具有缺陷特征的图像共29张。为了使用少量样本对模型进行充分训练,需要使用伪数据补充标注不足的小样本数据,并引入充当噪声的辅助数据。
根据文献 [11] [12] 提供的思想,与复杂图像相比接触器图像需要体现的变化形式较少,故将提取特征添加噪声的过程简化为将多种图像增强方式相结合,通过重复处理得到具有更多特性的样本。本文采用高斯变换、均值变换、中值模糊、灰度变换、浮雕处理等25种图像处理方法,并利用iaa.Sequential ( )和iaa.Some Of ( )函数对上述25种处理方法进行部分混合和随机搭配,再生成15种增强处理方法,最终实现对每张原始图像40次图像增强操作,将120张原始训练集扩充至4800张,加原始图像120张,本文训练集共计4920张样本,验证集和测试集不做处理,保持为原始图像。部分经处理后的样本实例如图4所示。




Figure 4. Samples processed with image enhancement
图4. 经过图像增强处理的样本
针对图像样本可能存在的问题,如环境噪声、曝光等对图像质量的影响,对图像信号进行恰当的增强和优化处理,增强轮廓和纹理特点,可以使图像特征更加明显,易于识别,从而提升训练效果。
在处理实际生产问题时,图像在拍摄、传输过程中常受到拍摄环境影响或相机性能限制,容易产生噪声干扰。为抑制噪声和改善图像质量,本文采用高斯滤波对整幅图像进行加权平均,在满足图像识别需求对样本减噪的同时可以使模型得到更好的结果,高斯滤波去噪效果实例如图5所示。

Figure 5. Gaussian filter denoising effect
图5. 高斯滤波去噪效果
3. 基于SVM的接触器缺陷检测模型
支持向量机由Cortes和Vapnik于1995年提出 [5] ,主要用于求解分类和回归问题。但SVM具有很强的适应性和泛化性,接触器接线图像训练样本数据规模小,特征明显,适合使用SVM算法进行图像分类。
3.1. 参数确定
SVM模型需要对核函数及其具体参数进行选择。核函数具体分为四项:linear,poly,rbf,sigmoid [13] [14] ,不同的核函数采用不同的计算方法和不同参数。选择的原则大体可以根据样本和特征的数量进行选择(如特征数量少而样本数量大可以选择高斯核函数,特征数量大到和样本数量差不多可以选用线性核函数),但根据训练样本的结果显示进行选择是最佳方案。
所有核函数中均包括惩罚因子C这个可调节的参数。当C值过大时,容易出现过拟合;C值过小时,会出现欠拟合现象。通过网格搜索方法确定支持向量机的最优参数选择。
如图6所示,在训练样本上,除了sigmoid核函数表现不佳,当惩罚系数为10或100时,线性核(linear)、多项式核(poly)与高斯核(rbf)精度相似,但前两者在验证集上精度下滑,出现不同程度的过拟合现象,高斯核精度更高,故选择高斯核和相应的惩罚系数。

Figure 6. Accuracy of SVM with different kernel functions and penalty coefficients
图6. 不同核函数和惩罚系数下SVM的训练、测试精度
在高斯核函数中还有一个参数γ需要调节。当γ值过大时,支持向量的辐射范围非常小,将会导致模型过拟合;当γ值过小时,任何一个支持向量都会影响到整个数据集,导致模型类似于具有一组超平面的线性模型,即严重的欠拟合。故最终选择C = 100, γ = 0.0001的高斯核作为SVM模型的参数,如图7所示。

Figure 7. Tuning SVM hyperparameters, training and testing results
图7. SVM调参训练、测试结果
3.2. 精度指标
本文所使用的针对目标检测模型的评价指标为准确率(Accuracy, ACC)、均方误差(Mean Squared Error, MSE)、漏报率(False Negative Rate, FNR)、误报率(False Positive Rate, FPR),各评价指标的计算公式如下:
(1)
(2)
(3)
(4)
3.3. 测试对比验证
为了验证SVM模型的预测效果,在实验数据相同的条件下,将测试样本输入训练好的Tree模型、KNN模型、VGG-16神经网络模型中,进行对比。
不同模型的评估参数对比情况如表1所示,31张测试样本在各模型中的识别结果见表2,由于本文检测对象为两模态,问题复杂度相对较低,因此,检测精确度较高,在测试样本上基本无错误产生。识别结果如图8所示,可以看出该模型具有较好的识别效果。

Table 1. Recognition results of each model on validation set
表1. 各模型测试准确率

Table 2. Specific recognition results for each model on the validation set
表2. 各模型验证集识别结果
4. 图像状态异常检测模型
在实际生产线上,可能出现摄像头遮挡或被碰撞后位置歪斜的情况,导致接触器拍摄不全或拍入其他无关场景图像。对于这类图像,SVM模型由于缺乏训练,会将这些样本按接触器有缺陷或无缺陷进行分类,而不会做出混入了非检测器图像的提示。
此时,如果影响没有被排除,那么未来一段时间内传入的图像都是无关场景,即没有拍摄到接触器的图像,显示的分类结果也是SVM模型针对这些图像产生的分类结果,而在这段时间内经过流水线的接触器实际上均未被正确检测,可能导致漏检或误检。
为了解决这类情况,本文在SVM模型之前添加了图像异常检测模型,目的是在识别缺陷之前对图像进行初步筛查,对异常图像做出报警处理,以避免出现上述现象。
由于错误图像的数据类型无法统计,无法使用分类模型,故选择自编码器进行训练,在数据处理阶段直接保留张量,将所有训练集打包为dataloader。
自编码器 [15] 采用一个含三个隐藏层的神经网络,神经元数分别为10,3,10,统一使用Leak-Relu函数作为激活函数。图9中W1和W2分别为编码阶段和解码阶段的权重,在传统自编码器 [16] 中分别单独训练。

Figure 9. Conventional Self-Encoder Network Diagram
图9. 传统自编码器网络结构图
自编码器进行故障检测的原理是:对于输入信息X,首先通过神经网络进行压缩降维,提取出数据的重要特征,然后再将其解压,得到数据Y,再通过对比X与Y求出预测误差进行反向传递,逐步提升自编码器模型的准确性。
在模型训练完成后,使用测试集进行在线测试,通过计算测试集原样本和经过模型复原的样本的误差,与训练集的复原误差进行比较,确定控制限,最后进行误报率和漏报率的计算。
设定训练轮次为200,学习率0.001,最终得到最大误差与最小误差分别为0.349和0.045,将其作为模型的阈值。
测试集包含5000张非目标检测对象图像和10张目标检测对象图像,测试结果如表3所示,非目标检测对象识别结果如图10所示。

Table 3. Image anomaly state detection model test results
表3. 图像异常状态检测模型测试结果

Figure 10. Non-detectable object recognition results
图10. 非目标检测对象识别结果
在未采用图像异常状态检测模型的情况下,正确率仅有0.17,误报率为0.84,即有84%的错误图像被归类至正确类别;采用图像异常状态检测模型后,模型的分类正确率达到1,所有异常图像均被剔除。
这表明加入图像异常状态检测模型后,系统更加适应实际应用时复杂多变的工况,能够大大提升整个识别系统的可用性和灵活性。
5. 模型部署
为实现灵活部署和迅速投入使用,对模型进行封装非常必要。将其部署在树莓派4B中,大大增加了灵活性,更能满足生产需要。
5.1. 硬件配置
本文选择Linux raspberrypi 6.1.21系统,使用树莓派4代主板,配置显示屏,可以随时单独使用,也可以通过VNC使用PC端远程控制操作,硬件系统的外观如图11所示。

Figure 11. Hardware equipment used to deploy the system
图11. 部署采用的硬件设备
5.2. 模型部署和可视化
使用移动存储将模型移植到树莓派上,配置相关环境调试后模型正常运行。通过设置VNC,可使用同一wifi下的PC机进行远程连接,如图12所示。
通过选择文件进行识别,识别结果会记录在右侧表格中,同时显示图像文件名称、识别时刻和接线正误。
使用PC远程控制树莓派,对模型进行测试。随机选取4张图像进行测试,准确率100%,UI界面显示正常。
在树莓派系统上对模型进行二次测试,测试结果如表4所示。
6. 结语
本文提出一种基于图像识别的接触器接线缺陷检测方法。通过建立接触器接线数据集,将接触器图像划分为有无缺陷两类。
为提升图像识别准确率,对图像进行增强处理,同时利用多种增强方法扩充数据集,在小样本条件下完成模型的训练并验证其鲁棒性。为了处理非目标检测对象,引入自编码器对图像进行筛查,使模型能够处理各种输入情况,及时对非正常输入做出报警,对各类复杂条件下的接触器图像进行缺陷检测。将调试后的模型部署到嵌入式系统上,更加灵活便捷,更符合生产需求。后续将进一步细化缺陷类型,使模型能够更精准地判断接触器接线缺陷类型并给出修改建议,扩充数据集以适应多变的实地检测环境,使缺陷检测能够保持高精度的同时获得更加详细有效的信息。