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

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

目录

一、界面全貌展示

 二、前言摘要

三、GUI界面演示

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

(二)单张图像检测

(三)检测图像文件夹

(四)检测视频

(五)摄像头检测

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



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

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

一、界面全貌展示

运行文件夹中的yolov8_detection_gui.py文件之后,会出现这个登陆界面,直接输入用户名:admin    密码:123456即可登录进去,登陆进去后即可看到界面全貌。

需要说明的是,我在好几个电脑上测试过,最优的分辨率是1920x1080,这个分辨率是最优的。

 二、前言摘要

摘要:本文提出了一种基于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. 支持图片或者视频的检测结果保存;


下面我逐条介绍此系统的功能,如果你想要看演示视频以及环境搭建教程,可以去这里看;基于YOLOv8的PCB缺陷检测系统(毕设版)_哔哩哔哩_bilibili

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

点击加载自定义模型图标,选择模型权重文件(我放在models里面了)操作界面如下:点击左侧的加载自定义模型按钮之后,会出来这个选择界面文件夹,选择models/best.pt即可;

如果你有你自己训练好的权重文件,也可以直接加载进去,我写的这个界面是兼容多种编程文件的,不只是支持PCB缺陷检测的权重;举个例子这里也可以加载yolov11的权重文件,也可以正常使用;

(二)单张图像检测

点击加载图像按钮,加载完成后点击开始检测按钮,进行检测;

选中文件之后就会在图像显示区域显示出来,然后即可进行检测;

(三)检测图像文件夹

点击加载文件夹按钮,点击开始检测开始,停止检测停止,检测结果在检测结果框里,右侧会有检测图像的名称,双击即可随意切换;

(四)检测视频

点击检测视频文件夹;选择你要检测的视频文件,然后点击开始检测,就会开始检测了,在检测的过程中会自动保存的save_data文件夹中;

(五)摄像头检测

支持摄像头检测,这里我没打开摄像头,你可以将视频或者图像传输到你的手机上,然后对着摄像头检测就行;演示的时候就这么搞就行,哈哈

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

数据集展示:通过网络上搜集关于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/611924.html

相关文章:

  • 中医气血精津辨证
  • 【后端】【Django DRF】Django ORM 详解:一对一、一对多、多对多
  • Windows下Tomcat的下载与安装
  • 单应性矩阵(homography)
  • SpringMVC 拦截器详解
  • 堆的常见应用1
  • 细胞内与细胞间网络整合分析!神经网络+细胞通讯,这个单细胞分析工具一箭双雕了(scTenifoldXct)
  • 【机器学习】——机器学习基础概念
  • python进行数据分析(以A 股为例)
  • uniapp开发中store的基本用法和模块化详解
  • uniapp上传图片之前压缩处理
  • 解构 HarmonyOS:技术神话背后的理性审视
  • 给聊天机器人装“短期记忆“:Flask版实现指南
  • 高级数据结构02AVL树
  • AI编程工具哪家强?对比Cusor、Copilot、Cline
  • C++算法深度解析:快速排序的实现、分析与优化
  • RoMA: 基于Mamba的遥感基础模型, 已开源, 首次验证mamba的scaling能力
  • 用数组遍历出来的页面,随节点创建的ref存储在数据仓库中,如果数据删除,页面相关节点也会删除,数据仓库中随节点创建的ref会不会也同时删除
  • STM32F103C8T6移植DMP解算MPU6050
  • Elasticsearch:使用 Azure AI 文档智能解析 PDF 文本和表格数据