基于Darknet网络和YOLO4的实时电路板故障检测算法

2023-07-06 12:41孔祥伟马春斌
计算机测量与控制 2023年6期
关键词:断路电路板元器件

赵 岩,孔祥伟,马春斌,杨 浩

(1.国营长虹机械厂,广西 桂林 541003;2.北京钛航信息技术有限公司,北京 100195)

0 引言

随着现代电子集成技术的快速发展,复杂装备中核心的系统功能已经通过大规模集成电路进行实现,且电路板上元件越来越密集,电路也更加复杂。一方面使用集成电路技术使得装备在精密化、小型化、计算能力上有了显著的提升;另一方面,电路板出现故障以后往往很难进行检测,也伴随着装备突发失效的风险。电子设备维修保障中,集成电路执行的功能越来越重要,快速识别和检修故障是至关重要的步骤。随着印制电路板的密集化和多层化,传统的接触式电路板检测技术的各种限制和缺陷变得越来越明显,不但需要接触式检测,而且只能发现已经出现的故障,对于潜在的故障难以诊断。传统的接触式电路板故障检测在微波、毫米波等高频电路中检测时,使用接触式检测可能会导致在检测时影响到电路分布参数,影响原来的电路工作,所以接触式检测不能适用于高频电路的检测。除此之外,接触式电路板检测需要对电路板进行拆卸和组装,这可能会增加故障的概率。接触式检测需要使用探针进行接触,这可能会对电路板造成损伤,需要对每个测试点进行测试,测试时间较长。随着电子设备的不断发展,接触式电路板检测技术的局限性越来越明显,需要研究新的非接触式电路板检测技术。

近些年来,国内外对电路板故障诊断技术的研究力度逐步加大,主要侧重在使用机器学习方法来实现故障诊断模型。其中,周金祖[1]等提出基于改进隐马尔科夫模型的电路板故障诊断算法,并引入遗传算法训练模型的参数,克服了传统算法的收敛速度慢、易陷入局部最优解和运算复杂等缺点,改进后模型的故障预测准确率、收敛速度和收敛稳定性都有明显改善;郝建新[2]等提出基于SVM 与改进D-S理论电路板故障诊断方法,所提算法可以有效降低各证据体对诊断结论的冲突,增强正确诊断结果的信度显著提高;王力[3]等提出基于BCL-ASA-BP神经网络的模拟电路板芯片故障诊断,其提出的方法对芯片故障综合诊断准确率可达98.35%,较传统BP 算法提升13.9%。谢永成[4]等提出基于GA-BP 神经网络的装甲车辆电路板故障诊断,能够有效提升装甲车辆电气系统电路板故障诊断效率和质量,郝建新等[5]提出了一种由特征提取网络与关系学习网络并行构成的可综合利用温度序列局部特征及特征间关系的电路板故障诊断模型,实现电路板故障的高准确度诊断。黄威等[6]提出了基于深度学习的机器人电路板自主故障检测系统,提升模型对细小故障的检测,精确故障定位。Song等[7]提出一种结合计算机视觉的简单高效的智能故障诊断方法,有效提取部件的热故障特征,减少误诊和误诊不足。

随着深度学习技术的发展及应用,针对图像识别检测领域,一些专家也使用深度学习技术进行了相关探索,其中Darknet深度学习框架结合YOLO[8]在图像检测方向成果显著。王辉等[9]研究了基于Darknet和YOLO3的水果图像识别,所构建模型能够有效提取水果图像的不同层特征,与原模型相比不依赖于批量大小,准确率达到95.6%;使用改进的DarkNet-53作为主干网络的水果目标检测模型,平均识别精度达到85.91%;李珣等[10]研究了基于Darknet框架下YOLO v2算法的车辆多目标检测方法,基于YOLOvocRV 模型的车辆多目标检测方法的检测率在自由流状态下可达99.11%,同步流状态下可达97.62%,阻塞流状态下可达到97.14%,具有较小的误检率和良好的鲁棒性。虞浒等[11]针对深度诊断模型较难处理信号紧邻特征点以及多变工况导致模型诊断精度和泛化性能不足的问题,梅玲玲等[12]研究设计了一种基于深度学习的道路车辆目标检测系统,简历改进的YOLOv4模型处理噪声干扰信息,减少了模型计算参数量,提高检测准确性。魏小玉等[13]提出一种基于改进轻量化神经网络的手势识别方法,检测准确度较整体提升2.62%,达到了96.18%。段中兴等[14]针对盲道障碍物检测提出改进YOLOv4算法,提高检测准确。牛振振等[15]提出了基于YOLOv5s的一个轻量型的CNN 模型YOLO_AD,用于PCB缺陷检测,减少模型参数量的同时加大对细节特征的提取,提升了识别率。侯玥等[16]提出一种新的小样本目标检测模型。谢黎等[17]提出一种基于改进YOLOv4网络的电路板元器件缺陷检测方法,对电路板上的不同元器件进行识别。何国忠等[18]提出了一种基于卷积神经网络的电路板缺陷检测网络,基于YOLO v4网络加入全局注意力机制,提高了对PCB 电路板缺陷检测的精度。崔俊佳等[19]提出了基于YOLOv5s加ResNet18的自冲铆接偏铆缺陷检测算法,对所提供的数据测试集的识别准确度达到100%。本文基于格拉姆角场(GAF)和DarkNet-53图像识别算法提出GAF-DarkNet算法,对滚动轴承故障诊断具有更好的泛化能力和识别效果。

综上所述,针对电路板故障诊断问题,使用基于图像的人工智能方法来提高电路板诊断识别率已经成为主流的研究方向,本文在此研究基础上,研究重心侧重在实时电路板故障检测工程应用角度,将采用以红外和可见光结合的图像处理与分析方式,通过特征提取能力更强的深度学习架构来进一步提高电路板故障诊断能力,并依托于非接触式的方式,能够基于视频流进行实时的故障诊断,在工程应用上更具备可行性。核心优化点包括:

1)构建完备的缺陷电路板图像样本数据集,并经过图像增强技术提高样本丰富度和规模,为深度学习大批量训练提供数据基础;

2)引入更先进的Darknet框架和YOLO4算法来实现电路板元器件的精确目标检测;

3)采用红外成像和可见光结合的形式,对图像进行配准后,以红外温度指标作为异常表征,并反向确定故障的元器件。

1 数据集说明

本算法样本图像采集使用海康威视MV-CE120-10UC工业相机,成像像素1 200 万,搭配海康威视 MVLHF0824M-10MP工业相机镜头,光源为环形面光,采集到的图像为bmp格式。为提高数据样本量,以及丰富不同场景的数据样本,采集了多种规格的电路板图像。

样本中的电路板缺陷为完整电路板人为制造,元器件识别样本为完整电路板。样本采集过程中保存同一块电路板不同位置、不同角度的图像,同时针对同一种类的不同电路板,对图像进行翻转、裁剪、旋转、缩放、平移和添加噪声等操作对数据集进行扩展,尽可能增加数据集所覆盖的情况,提高模型的鲁棒性。

样本标注使用labelImg[9]进行,标注过程如图1所示。

图1 使用labelImg进行样本标注

标注后生成标定数据,即Yolo4 目标检测算法需要的标注数据,数据组成为:

式中,label为样本类别序号;place_x为框选目标左上角X坐标;place_y为框选目标左上角Y坐标;width为框选目标宽度;height为框选目标高度。

以上数据均进行归一化处理,即符合Yolo4 训练所需坐标格式。如图2所示。

图2 图像样本标注样式

图3 元器件目标检测算法流程

样本集由训练样本和样本标注数据组成,即样本图片+样本标注数据,命名方式根据样本图片的命名,即训练样本名称和标注数据名称相同。训练样本图片与标注数据放于同一级目录中以便算法读取。验证集从标注样本后的样本中选取,选取比例:

2 算法介绍

2.1 检测算法

元器件目标检测是电路板故障定位的核心,本算法以Darknet深度学习框架作为基础,使用YOLO4目标检测算法,具有更好的分层特征提取、学习能力和特定硬件环境下实时高效处理大规模数据的能力,能更好地满足基于机器学习的红外图像故障检测算法系统对识别精度和实时性的要求。

首先设计并搭建基于深度学习的目标检测识别模型,以数据为驱动,数据越完备,模型学习到的目标检测识别能力的泛化性越强。模型具有较高的特征提取、学习、处理大规模数据的能力,能更好地满足基于机器学习的红外图像故障检测算法系统对识别精度和实时性的要求。在学习阶段,模型迭代输入小规模数据集中的序列图像,输出预测的待识别目标信息,然后计算预测结果与真实标签之间的损失值,通过梯度反向传播的方式对模型参数进行迭代优化,挖掘小样本数据集中包含的输入图像序列数据集与待识别目标之间的复杂映射关系,训练学习过程中采用的数据增强、特征提取模块设计、学习优化方案等保证了算法模型的泛化能力。在辅助识别阶段,实时输入新采集的序列图像,模型学习到的检测识别能力对每一帧图像中的目标进行识别,给出识别目标的大小、位置、置信度等信息。

2.1.1 模型结构

如图4所示,基于Darknet+YOLO4的目标检测模型采用神经网络结构,主要包括特征提取主干网络(CSPDarkNet53)、颈部网络(Neck Network)和head预测模块三部分。

图4 Darknet+YOLO4的目标检测模型结构

其中:

1)主干特征提取网络:CSPDarkNet53作为算法的主干特征提取网络,由5个CSPNet子模块组成(对应图3中的Residual X),充分提取图像特征后,将后3 个CSPNet模块提取的不同尺度图像特征传入SPP网络和PANet网络进行特征融合。

2)颈部网络:颈部网络由空间金字塔池化SPP模块和路径聚合网络PANet组合而成。SPP 模块对特征层进行1×1、5×5、9×9和13×13四种尺度的最大值池化(Max pooling),能有效提高网络的感受野,更加有效地增加了主干特征的接收范围,显著地分离了重要的上下文特征。PANet是在特征金字塔网络(FPN,feature pyramid network)上添加了一个自下而上的路径增强结构,避免在传递过程中出现浅层信息丢失的问题,对传入的图像特征进行反复特征提取,自底而上融合从主干网络不同特征层提取的特征,形成强定位特征,进一步提高特征提取和定位能力。

3)头部网络:Head网络用于回归和分类,从颈部网络输入三种不同尺度的特征图,分别检测小、中、大3种目标,预测层经过处理输出目标得分、预测锚框尺寸坐标、分类置信度等。

4)模型学习策略:模型损失函数由回归框预测损失LCIoU、置信度损失LConf、分类损失Lcls三部分,公式如下:

2.1.2 模型训练

本次训练采用命令行进行,经过对YOLOv4源码进行编译后,使用的训练命令如图5所示。

图5 模型训练指令

训练还需对整体文件进行配置,即手动设定data文件。xxx.data文件为目录文件,包括了权重保存位置(backup)、训练集序文件地址(train)、验证集序文件地址(valid)、类名地址(names)、类别数量(classes)。

训练过程如图6所示,可以看出,当迭代训练12 000次后,模型的误差损失已经降为0.459 7,mAP@0.5 为99.2%,整体精度能够满足目标检测要求。

图6 训练过程

2.1.3 Weights文件筛选

训练权重文件筛选主要依靠训练中的Loss曲线和mAP曲线以及对实时保存(每100epoch保存一次)的模型进行单张预测或批量预测进行。

训练过程中算法会显示训练的实时Loss曲线和mAP曲线,每一个epoch 的Loss和每100 个epoch(epoch>1 000)的mAP会形成曲线图。若Loss持续下降或成振荡下降过程,mAP呈上升趋势为较好的训练结果。但是为防止过拟合出现,应根据实际情况进行判断是否停止训练。

根据实时的保存模型也可对训练效果进行筛选。使用命令对权重文件进行单张不同图像(不在训练集和测试集,单独采集的图像)进行预测,通过预测结果对当前模型训练效果进行判断。

模型测试时需要关闭cfg中Train下的batch和subdivisions,打开Test下的batch和subdivisions,即使batch和subdivisions都为1。

2.1.4 模型测试

输入实时采集的图像之后,模型先将输入的图像缩放到固定的尺寸(416×416),然后输入到特征提取网络中进行特征提取,经过颈部网络处理后将输入的图像提取成S×S的特征网格。在Head预测模块,每个网格负责检测落在格子里的物体,每个格子做以下几种预测,该网格是否包含物体,包含物体的置信度和包含物体的位置坐标分别是多少。因此,每个小格需要预测的数据维度为B×(1+4)+C,其中,B代表每个网格先验框的个数,C表示要检测的物体(不包含背景)类别个数,包含每个类别的预测。1表示该网格是否包含物体以及包含物体的置信度得分,4用于预测矩形框的位置坐标。因此,网络模型最终特征层的大小为S×S×(B×5+C),也即每个网格包含5个预测值,分别是4个位置坐标和1个置信度。置信度分数反映模型预测的边界框中是否包含物体,以及其预测的边界框的准确程度。如果该单元格中不存在目标,则置信度分数为0;否则,置信度分数应该等于预测框与真实值的IoU。实际上,这一步得到的结果并不是真实预测框,还需要对其进行解码,即用提前预设的先验锚框宽高对特征层的宽高进行计算,计算真实预测框的公式为:

结合图7,图中实线框代表预测框,虚线框代表先验框,公式中各参数的含义如下:cx和cy代表先验框中心点所在区域的左上角的坐标,pw和ph代表了当前先验框的宽和高,bx、by、bw、bh代表预测框的中心点坐标和长宽,tx、ty、tw、th代表模型学习得到的预测框相对于先验框的偏移量。公式中的σ代表sigmoid函数,作用是将坐标偏移量变换到[0,1]区间,这样得到的预测框的中心点坐标bx、by会限制在当前区域内,保证一个区域只预测中心点在该区域内的物体,有利于模型收敛。最后,bx、by、bw、bh就是得到最后预测框的中心坐标以及宽高。

图7 边界框回归示意图

其中,由于不同数据集的先验锚框尺寸也不尽相同,在实际应用场景中需要根据数据集计算相应的锚框尺寸。本系统采用K-means聚类算法[20]计算锚框尺寸,具体计算步骤如图8所示。

图8 K-means算法计算锚框尺寸

最后,解码之后可能会出现多个高度重复的预测框指向同一个目标的情况,而目标检测任务中理想的检测结果应该是和检测目标一一对应,所以还需要对检测结果进行“去重”处理,本系统使用非极大值抑制[21](NMS,non maximum suppression)筛选出一定区域内属于同一种类的得分最高的预测框,对检测结果进行“去重”。

2.2 红外温度识别

采用在线式监控测温热像仪进行视频拍摄,能够实时地检测出电路板的温度变化。

2.3 图像配准

为了使可见光图像与红外图像实现配准,配准值采用如下公式计算:

其中:Tx为配准值,LUx为红外图像中的框选轮廓外接矩形的左上角坐标x值,Ws为红外图像宽,Wb为可见光图像宽,LU′x为可见光图像框选轮廓外接矩形。Y坐标配准同理所示。计算出的值为绝对值,根据红外相机和可见光相机相对位置进行相应正负值设置。结合PCB 板的电路设计和元器件指标的分析,设置合适的温度阈值,实现了异常发热元器件的定位。

2.4 故障检测

经过图像配准后,通过设定异常温度阈值的形式,能够判定温度异常区域,然后该算法能够实现视频流下的元器件自动识别,定位到元器件级短路故障,以及短路故障区域。

3 模型验证

3.1 整体框架

为验证基于Darknet网络和YOLO4的实时电路板故障检测算法性能,设计算法验证平台,主要包括软件算法和硬件处理平台,基本组成如图9所示。

图9 电路板故障诊断算法系统组成

3.1.1 硬件部分

本系统的硬件部分主要由IRAY-A8-Z3在线式监控测温热像仪、MV-CE120-10UC工业相机,配套MVL-HF0824M-10MP镜头以及携有NVIDIA显卡的工作站构成。

3.1.2 软件部分

软件主要功能是实现特定缺陷检测、元器件识别、异常发热元器件识别和定位以及断路区域检测,并以人机交互的方式实现目标模型、参数的导入和设置以及检测识别结果的显示。

3.1.3 各模块功能简要说明

1)NVIDIA 显卡工作站:目前测试到的最低要求Ge-Force 1050。由于构建软件识别的权重模型需要GPU 进行高速计算,因此软件使用依赖于NVIDIA 显卡。

2)测温热像仪:采用IRAY-A8-Z3在线式监控测温热像仪,使用以太网网络接口及I/O 信号输出。

3)工业相机:采用海康威视MV-CE120-10UC 工业相机,配套海康威视MVL-HF0824M-10MP镜头,使用USB进行数据传输。

4)元器件识别:元器件识别指对PCB 板上电阻、电容、电感等典型元器件进行识别和定位。

5)图像配准:图像配准是指红外图像和可见光图像之间的对齐。

6)异常发热元器件识别:异常发热元器件识别是指对PCB板上短路引起异常发热的元器件进行识别和定位。

7)断路检测:断路检测是指针对元器件断路引起的PCB板不能正常工作的功能区域进行检测。

3.2 试验对象说明

如图10所示,为被测电路板设计原理图。电路板有多组电源转换电路、MCU 控制芯片,串口芯片、多路继电器控制电路、多路负载及指示灯组成。本电路能够在串口的控制下,实现不同继电器的开关闭合控制,从而接通或断开不同的负载和指示灯。将这些状态预先定义为正常状态或某种故障状态,并通过红外相机进行拍摄和数据读取分析,根据红外成像的原理,在被测电路板元器件正常工作状态和非正常工作状态器件发热不同,红外成像的温度显示颜色不同,来分析出电路板故障位置和故障原因。从而达到演示红外成像故障诊断原理和验证红外成像故障诊断软件功能是否正常的效果。

图10 被测电路板设计原理图

3.2.1 电路板状态说明

电路板分为4个区域,每个区域通过1路电源控制后面2路负载通断,正常情况下,电路板上电后每个区域的电源正常工作,一路负载接通状态,另一路负载断开状态。这样红外相机测到不同区域正常状态时温度适中,短路状态温度偏高,断开状态温度偏低。电源无输出故障时电源区域温度偏低。

图11为标识电路板器件布局示意图,通过串口发送不同指令,使负载处于接通或断开状态,从而模拟不同的故障现象。

图11 电路板器件布局示意图

3.2.2 被测电路板使用

被测电路板由多组电源转换电路、MCU 控制芯片,串口芯片、多路继电器控制电路、多路负载及指示灯组成。本电路能够在串口的控制下,实现不同继电器的开关闭合控制,从而接通或断开不同的负载和指示灯。将这些状态预先定义为正常状态或某种故障状态,并通过红外相机进行拍摄和数据读取分析以及红外成像的原理,根据被测电路板元器件正常工作状态和非正常工作状态器件发热的不同和红外成像温度显示颜色的不同,分析出电路板故障位置和故障原因。从而达到演示红外成像故障诊断原理和验证红外成像故障诊断软件功能是否正常的效果。

将被测电路板连接线缆上电后,被测电路板软件界面可通过串口连接被测电路板,并通过发送指令来改变被测电路板工作状态,从而模拟不同的故障现象,提供给算法系统进行分析,用于验证红外故障检测算法的功能。

4 实验结果与分析

PCB红外故障检测软件主界面如图12所示,通过采集实验对象运行过程中的红外图像数据提供给神经网络中训练为检测使用的图像模型,进而识别出电路板预先设置好的故障。预想中的断路故障、短路故障和元器件等算法均可正确识别被测对象。将采集实验对象运行过程中的视频流,输入到目标检测模型中,用于元器件实时定位;并基于红外图像识别温度异常,经过图像配准后,定位温度异常元器件,以实现电路板元器件检测、元器件级短路,以及区域级断路定位,图13~17展示了实验结果。

图12 PCB红外故障检测主界面

图13 图像配准实验结果

通过 MV-CE120-10UC 工业相机及配套的 MVLHF0824M-10MP镜头,采用USB3.0获取待检PCB 板可见光图像,然后进行图像配准,将红外图像和可见光图像之间对齐,如图13所示。

元器件识别部分,打开待识别的PCB 电路板,开始对PCB板上电阻、电容、电感等典型元器件进行识别和定位,并打印出各种元器件的数量信息,如图14所示。

图14 元器件统计实验结果

断路检测针对元器件断路引起的PCB 板不能正常工作的功能区域进行检测,根据电路板的位置划定四个区域,即将整个电路板区域分为平均分为4个小区域,划定断路检测区域,进行检测。通过红外相机获取设定区域的平均温度,包含最高温度,最低温度,使能状态,平均温度,相应温度坐标等。并进行相应的数据处理,用来判定区域是否存在断路问题,判断PCB是否断路的步骤:

1)获取该区域的5个连续不同平均温度获取数量作为判断的灵敏度;

2)判断这5个平均温度是否为依次减小的关系,且第一个平均温度与第五个平均温度的差值大于0.3,设置0.3为判定阈值,也可根据具体情况修改;

3)若符合条件,则为断路,在图像中画出区域,清空数据;若不符合条件,清空数据。

按照这个步骤得到的断路区域检测结果如图15所示,并将得到的断路区域信息打印在主界面右下角,提示区域断路。

图15 断路区域检测

为方便调试和开发,以及简化操作步骤,断路检测判定以线程方式进行,检测故障显示在红外发热检测线程进行,与发热检测为顺序关系,并通过发热检测的标志位进行控制。发热检测在进行元器件识别时需要降低资源占用关闭了相机,因此断路检测暂停,过程结束后自动恢复。

异常发热元器件识别对PCB 板上短路引起异常发热的元器件进行识别和定位,发热检测部分需要配置两组模型,每组参数包括配置文件cfg、data文件和权重,分别载入缺陷模型和元器件模型。采用IRAY-A8-Z3测温热像仪,通过以太网和I/O 口高速采集和传输红外图像和元器件工作温度。得到红外图像中的全局温度,包含最高温度,最低温度、最高温度坐标(x,y)、最低温度坐标(x,y),如图16~17所示。

图16 发热检测(1)

图17 发热检测(2)

实验表明,预设中的断路故障、短路故障和元器件等算法均可正确识别被测对象。

5 结束语

本文结合深度学习技术,针对现有的接触式电路板故障检测方法存在的问题,提出一种新的实时非接触式电路板故障检测方法,即基于Darknet框架和YOLO4的电路板元器件目标检测算法,该方法结合K-means聚类算法实现元器件的实时定位识别,结合红外和可见光图像,根据红外温度指标判断元器件级短路故障以及区域级短路故障,实现实时的电路板故障检测,具备较好的工程应用效果。

本文研究有利于电路板故障检测的发展,目前本文针对特定电路板型号得到了良好的预测结果,未来将针对不同型号武器装备上的电路板进行泛化测试,通过增加样本种类、样本规模、故障类型来提高模型的检测准确度;并优化模型设计,以实现元器件级的短路故障检测。

猜你喜欢
断路电路板元器件
元器件国产化推进工作实践探索
对机电设备电气断路故障的深析
电路故障的判断
装备元器件采购质量管理与控制探讨
基于DSP+FPGA的元器件焊接垂直度识别方法
乏燃料水池缺乏虹吸断路开孔事件经验反馈
废弃电路板拆解技术研究现状及展望
单片机实验电路板的安装与调试
微波辅助浸取废弃电路板中铅锡锑
炭黑气力输送装置主要元器件的选择