当前位置: 首页 > article >正文

基于YOLOv8深度学习的PCB缺陷检测识别系统【python源码+GUI界面+数据集+训练代码】

目录

一、界面功能展示

 二、前言摘要

三、GUI界面演示

(一)用户加载自定义模型

(二)单张图像检测

(三)检测图像文件夹

(四)检测视频

(五)保存

四、模型训练以及训练结果

完整代码在公猪号:今夜不能眠

回复PCB缺陷检测获得;;;

一、界面功能展示

基于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目录下找到生成对若干训练过程统计图。下图为博主训练模型训练曲线图。


http://www.kler.cn/a/591816.html

相关文章:

  • C# BindingFlags 使用详解
  • 在linux 系统下的qt 安装mqtt库
  • maven在idea上搭建
  • flutter 专题 九十八 Flutter 1.7正式版发布
  • WPF 开发从入门到进阶(五)
  • JAVA EE(9)——线程安全——锁策略CAS
  • 【安全运营】用户与实体行为分析(UEBA)浅析
  • Lua语言的自动化测试
  • 【python】带有\n的json字符串,如何优雅打印
  • goweb中文件上传和文件下载
  • 监控视频联网平台在智慧水利中的应用
  • 技术革命、需求升级与商业生态迭代——基于开源AI大模型与智能商业范式的创新研究
  • 深入理解静态与动态代理设计模式:从理论到实践
  • Oracle常见系统函数
  • 华为供应链的变革模式和方法P105(105页PPT)(文末有下载方式)
  • 3D视觉相机引导机器人的原理
  • MongoDB下载安装
  • 深度学习框架PyTorch——从入门到精通(4)数据转换
  • vue/react前端项目打包的时候加上时间,防止后端扯皮
  • Python 视频爬取教程