目录
一、界面功能展示
二、前言摘要
三、GUI界面演示
(一)用户加载自定义模型
(二)单张图像检测
(三)检测图像文件夹
(四)检测视频
(五)保存
四、模型训练以及训练结果
一、界面功能展示
基于YOLOv8的PCB板缺陷检测系统
二、前言摘要
摘要:本文提出了一种基于YOLOv8算法的印刷电路板(PCB)缺陷智能检测系统,旨在提升电子制造领域的质量控制效率。针对传统检测方法在复杂缺陷识别中的局限性,本研究采用改进型YOLOv8目标检测框架。系统首先构建包含短路、断路、焊点缺陷、划痕等典型缺陷的多源PCB图像数据库,通过数据增强策略优化样本多样性。系统架构集成图像预处理、动态推理和可视化分析模块,可实时处理产线采集的PCB图像并输出缺陷定位及分类结果。通过实验验证,基于YOLOv8的PCB缺陷检测系统展现出优异的准确性和实时性。
三、GUI界面演示
首先,基于YOLOv8的PCB缺陷检测系统主要用于PCB板上缺陷的识别,显示缺陷目标在图像中的类别、位置、数目、置信度等;可对单张图片、文件夹、视频文件读取的图像,或从摄像头获取的实时画面中的PCB缺陷进行识别,算法模型可选择替换;(这里,支持多种算法切换-从YOLOv8-YOLOv11都是可以用的,如果你手头有训练好的不是YOLOv8的模型,那也可以使用,直接选择就能使用;兼容性比较高);界面包含识别结果可视化,结果实时显示并能够进行目标逐个标注、显示和数据展示;画面显示窗口可缩放、拖动、自适应,结果可点击按钮保存,方便后续查阅使用。
1. 可进行6种PCB缺陷检测与识别,分别为: [
'mouse_bite': '鼠咬',
'open_circuit': '开路',
'short': '短路',
'spur': '毛刺',
'spurious_copper': '杂铜',
'missing_hole': '缺失孔'
];
2. 支持图片、视频及摄像头进行检测,同时支持图片的批量检测;
3. 界面可实时显示目标位置、目标总数、置信度、用时等信息;
4. 支持图片或者视频的检测结果保存;
(一)用户加载自定义模型
点击加载自定义模型图标,选择模型权重文件(我放在models里面了)操作演示如下:
3月14日
(二)单张图像检测
点击加载图像按钮,加载完成后点击开始检测按钮,进行检测;
3月14日(1)
(三)检测图像文件夹
点击加载文件夹按钮,点击开始检测开始,停止检测停止,检测结果在检测结果框里,右侧会有检测图像的名称,双击即可随意切换;
3月14日(2)
(四)检测视频
点击检测视频文件夹;即可检测
3月14日(3)
(五)保存
点击保存结果按钮,输入要保存的名称即可保存;
四、模型训练以及训练结果
数据集展示:通过网络上搜集关于PCB缺陷的各类图片
,并使用LabelMe标注工具对每张图片中的目标边框(Bounding Box)及类别进行标注。一共包含693张图片
,其中训练集包含554张图片
,验证集包含139张图片
,部分图像及标注如下图所示。
在训练模型之前,为了让我们的数据能够被YOLO找到,我们需要写一个data.yaml文件存储在目录下,在其中记录下数据的路径和模型要识别的标记类别,文件内容如下所示。YOLO通过读取目录下的data.yaml文件,进而找到我们数据集存储的位置才能读取数据进行训练验证。
train: \PCBDetection\datasets\PCB_DATASET\train # train images (relative to 'path') 128 images
val: \PCBDetection\datasets\PCB_DATASET\val # val images (relative to 'path') 128 images
test: # val images (optional)# number of classes
nc: 6# Classes
names: ["missing_hole", "mouse_bite", "open_circuit", "short", "spur", "spurious_copper"]
我们可以在终端输入如下命令进行训练,当然也可以直接点击train.py运行。
python train.py --batch 32 --epochs 300 --data data.yaml --weights yolov8n.pt
完整代码地址:https://mbd.pub/o/bread/mbd-aJaUmJ5t
在深度学习中,我们通常通过损失函数下降的曲线来观察模型训练的情况。而YOLOv8训练时主要包含三个方面的损失:矩形框损失(box_loss)、置信度损失(obj_loss)和分类损失(cls_loss),在训练结束后,我们也可以在logs目录下找到生成对若干训练过程统计图。下图为博主训练模型训练曲线图。