1. 引言
我国制造业一直是国民经济的支柱产业[1]。随着近几年大数据、人工智能、深度学习等信息技术的急速发展,各行各业中逐渐都渗透进了它们的身影,发挥着重要的作用。数字化、智能化、网络化发展[2]制造行业,是提升制造业竞争力的关键[3],也是制造型企业高质量发展的重要抓手[4]。断路器是最常用的电气设备之一,负责正常回路的开通与关断,也承担处理故障电路的任务。断路器在生产装配过程中常见的缺陷有灭弧室或绝缘片的缺失。其中,灭弧室的作用为熄灭分合闸时动静触头之间产生的电弧,保证断路器关断后电路确实处于断开状态,避免电弧导致短路,使线路烧毁;而绝缘片的作用是将断路器内各导体隔开,避免断路器内部出现短路。为保证产品的合格率,过去厂家大多采取对产品抽样后人工检查的方式。然而,人工检视与分析的精度与效率都很有限,也浪费大量的人力资源。为有效解决这一问题并提高生产线智能化水平,可以利用机器学习中的机器视觉代替人工,对断路器中的绝缘片与灭弧室进行目标检测。
机器视觉是获取图像信息的人工智能技术。机器视觉的本质是充当人的眼睛,同时在功能上优于肉眼,进行高精度、高效率地运作[5]。随着机器视觉技术在工况监视、成品检验和质量控制等生产环节中的广泛应用[6],有效缩短了产品的设计周期、生产周期[7],实现人机交互的柔性化生产,增强了企业的竞争优势。机器视觉包含三大任务,分别是图像分类、目标检测及图像分割。目标检测是机器视觉中的重要一环,其作用是代替人眼从数字图像中检测实例类别目标[8],可用于检测图像中的单个或多个物体,对多种场景皆具适应性。机器视觉的实时、高效、灵活等优点,已成为各行各业缺陷检测的一种十分重要的技术手段。
本文基于深度学习图像处理技术中的YOLOv5模型[9],针对断路器生产过程中可能出现的灭弧室或绝缘片缺失的问题,制作断路器装配缺陷检测专用数据集,训练目标检测模型,并将其部署到NVIDIA Jetson Nano边缘AI计算平台中,实现嵌入式断路器缺陷检测系统的开发和落地使用。
2. 断路器装配缺陷图像预处理
本论文研究对象为某公司的塑壳断路器,其外观如图1所示。基于缺陷检测模型的需要,在生产线上架设摄像机对装配中的断路器进行图像采集,建立断路器装配状况数据集,含有两种缺陷类型。数据集中包含固定角度拍摄、不同光照变化下的断路器图片。对缺陷检测模型进行训练,使其可以用于实地检测生产中的断路器装配缺陷。
Figure 1. Appearance of molded case circuit breaker
图1. 塑壳断路器外观
2.1. 原始数据集
本文断路器装配缺陷数据来源于某品牌断路器产线的实拍图像,共收集图像数据82张。断路器的装配缺陷主要为缺失绝缘片或灭弧室。如图2所示:红框1和4分别显示断路器缺失灭弧室和绝缘片;绿框2、3和5则为正确安装灭弧室和绝缘片的情况。
Figure 2. Circuit breaker assembly defects
图2. 断路器装配缺陷
2.2. 图像预处理模型
小样本图像识别任务需要机器学习模型在少量标注数据上进行训练和学习[10]。本文采集的原始数据集共82张,其中39张用于模型训练,43张用于模型测试。本文选用Python的开源图像增强库imgaug进行数据增强操作[11],利用库中包含的各种如旋转翻转、亮度调整、色度调整、对比度调整、锐度调整、添加噪声等多种改变图像的策略,模拟各种拍摄情况,对输入图像进行变换,将39张用于模型训练的原始图像扩展至3900张。
数据增强后,采用开源标注工具LabelImg人工将每一张图像数据进行目标物标注:数据集包含的类别为存在灭弧室、不存在灭弧室、存在绝缘片、不存在绝缘片,分类标签设置为aec_exist、aec_non、insulator_exist和insulator_non。在标注过程中还同时手动筛选了重复的图像,最后,得到断路器装配缺陷图像数据共883张,如图3所示,最终,采用这部分883张预处理后的图像进行模型训练。
Figure 3. Preprocessed circuit breaker defect dataset
图3. 数据预处理后的断路器缺陷数据集
3. 基于YOLOv5的断路器缺陷检测模型
YOLO系列卷积网络属于一阶目标检测模型,相较于二阶检测模型,一阶模型将目标检测任务被统一为一个回归问题。YOLO系列的YOLOv5有非常轻量级的模型大小,使用的Pytorch框架更为便利,易于配置环境,对用户更为友好。YOLOv5能直接对单个图像、多个图像、视频及网络摄像头输入进行推理,能将经过训练得到的权重文件转化为onnx文件,便于模型部署。
3.1. 评价指标
目标检测的评价指标主要有检测速度和检测精度。检测速度主要与模型参数量、激活函数和损失函数等有关,而检测精度主要由准确率、召回率等表示。本文采用的模型精度指标有:准确率(Precision)、召回率(Recall)、AP (Average Precision)值、mAP (mean Average Precision)值、F1分数(F1-score);检测速度指标有:模型检测速度FPS (Frames Per Second)和GFLOPS (Giga Floating-point Operations Per Second)。各评价指标的计算公式如下:
1) Precision:模型将目标正确分为正样本的概率,
;
2) Recall:模型认为是正样本且正解的部分占所有实际正样本的比例,
;
3) AP:准确度均值;
4) mAP:所有类别AP值的均值,代表了模型检测的整体准确率;
5) F1:准确率和召回率的加权调和平均数,
;
6) FPS:目标检测网络每秒可以检测多少张图像,
(秒);
7) GFLOPS:每秒10亿次的浮点运算数,作为GPU性能参数,理论上该数值越高越好。
3.2. 断路器装配缺陷检测模型的训练
本文选用YOLOv5-5.0版本,其模型结构如图4所示[12],其结构包含输入端(Input)、骨干(Backbone)网络、颈部(Neck)网络和头输出(Head)组成。为了缩短卷积网络的训练时间,同时获得更高的检测精度,本文选择官方提供的预训练权重进行网络训练。由表1可见,在众多YOLOv5版本中YOLOv5s的参数量最小,模型复杂度最低,但相对地,其在通用COCO数据集上平均检测精度最低。但由于本课题的场景较为简单且检测目标较少,因此权衡之下选用YOLOv5s.pt作为预训练权重。
Figure 4. Structure of YOLOv5
图4. YOLOv5的网络结构图
Table 1. Comparison of model parameters in YOLOv5 series
表1. YOLOv5系列各模型参数对比
模型 |
模型体积(M) |
模型复杂度(FLOPS) |
mAP@0.5(COCO) |
YOLOv5s |
7.3 |
17.0 |
55.4 |
YOLOv5m |
21.4 |
51.3 |
63.1 |
YOLOv5l |
47.0 |
115.4 |
66.9 |
YOLOv5x |
87.7 |
218.8 |
68.8 |
表2给出了断路器装配缺陷检测模型训练过程中不同epoch下的损失函数情况。图5给出了断路器装配缺陷检测模型训练150 epoch时的损失函数变化曲线。二者结合可以看出:前50 epoch时box、class和object的损失函数以一个较高的斜率快速下降;50~100 epoch之间,曲线下降的斜率已经变小;100 epoch后,数值下降幅度已经很小,几乎不再下降,训练逐渐趋向饱和,此时模型训练已基本达到最佳权重。
Table 2. Loss function at different epochs of model training
表2. 模型训练不同epoch时的损失函数
loss |
epoch 50 |
epoch 100 |
epoch 150 |
box |
0.02818 |
0.01994 |
0.01748 |
class |
0.00255 |
0.00124 |
0.00092 |
object |
0.05886 |
0.04994 |
0.04750 |
Figure 5. Loss function curve at 150 epoch of model training
图5. 模型训练150epoch时的损失函数曲线
3.3. 模型测试结果
表3给出了模型测试时的模型参数。表4给出了检测模型针对各种装配缺陷的模型评价指标。从表4可以看到,模型对灭弧室存在(aec_exist)、灭弧室缺失(aec_non)、绝缘片存在(insulator_exist)及绝缘片缺失(insulator_non)这四类状态的检测精度均很高。识别结果如图6所示,图中方框显示的是检测结果的IoU值,即检测结果的置信度,通常通过设置IoU阈值过滤掉得分较低的检测框,本文设定IoU值为0.5。
Table 3. Model parameters of test set
表3. 测试模型参数
网络层数 |
参数量 |
单帧推理时间 |
GFLOPS |
224 |
7,062,001 |
610 ms |
16.3 |
Table 4. Evaluation index of test set
表4. 断路器装配缺陷检测模型评价指标
类别 |
Precision |
Recall |
F1-score |
mAP@0.5 |
mAP@0.5: 0.95 |
aec_exist |
0.983 |
0.943 |
0.963 |
0.97 |
0.787 |
aec_non |
0.991 |
0.958 |
0.974 |
0.982 |
0.799 |
insulator_exist |
0.976 |
0.939 |
0.957 |
0.968 |
0.726 |
insulator_non |
0.978 |
0.95 |
0.964 |
0.981 |
0.703 |
all |
0.982 |
0.947 |
0.964 |
0.975 |
0.754 |
Figure 6. Defect detection results
图6. 缺陷识别结果
4. 模型部署
为实现灵活部署和迅速投入实际产线使用,对模型进行小型化封装非常必要。本文将训练测试好的模型经TensorRT加速库对模型网络结构进行横向、纵向合并,然后将其部署到NVIDIA Jetson Nano边缘AI计算设备中,大大增加了检测模型的灵活性,更能满足生产实际需要。
4.1. 硬件配置
本文边缘端部署设备选用NVIDIA Jetson Nano边缘AI计算设备,其外观如图7所示,是一个小型的人工智能计算机,搭载英伟达公司特色GPU,可以并列运行多个神经网络,拥有473GFLOPS的AI算力,低功耗、接口多、易上手、价格合理,专精于图像的AI边缘计算、人工智能和机器学习方向,满足本文对设备经济化、高质量化的需求。配置好的整套硬件系统如图8所示,主要部件包括NVIDIA Jetson Nano B01开发板(安装于亚克力外壳中,带散热风扇)、Wi-Fi蓝牙网卡、64G SD卡、13.3英寸高清屏幕、IMX219摄像头以及机械键盘与鼠标。
Figure 7. NVIDIA Jetson Nano AI computing device
图7. NVIDIA Jetson Nano AI计算设备
Figure 8. Hardware equipment used to deploy the system
图8. 部署采用的硬件设备
4.2. 模型部署和可视化
使用移动存储将模型移植到Jetson Nano上,配置相关环境,将训练好的模型权重文件best.pt (将其重命名为circuit_breaker.pt)传输到边缘设备中调试,使用TensorRT加速引擎、提高推理速度,模型正常运行。依托Python的PyQt5库,实现前端界面按钮搭建、图像视频传输和检测结果显示,检测结果会自动保存在程序文件同目录下的“result”文件夹。检测效果如图9所示。
Figure 9. Real time detection results of Nano system
图9. Nano系统实时检测结果
5. 结语
本文以某品牌断路器产品装配过程为背景,针对装配过程中可能出现的缺失灭弧室、绝缘片等情况设计了一套基于YOLOv5的断路器装配缺陷检测系统,并将训练好的系统布置到NVIDIA Jetson Nano AI边缘计算设备上。该系统可对图像、视频和实施输入视频信息进行检测,减少人力监管困难,提升产品整体质量。经测试集测试,本系统达到了预期检测目标,能够满足实际产线的需求。