电路板缺陷检测系统(YOLOv11)-python

129 阅读3分钟

淘宝店铺搜索:点创微科

电路板缺陷检测系统(YOLOv11)-python

本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考

一、项目描述

电路板缺陷检测系统(YOLOv11)。通过PyQt5框架进行开发

二、项目功能

1. 上传图像

功能:导入本地存储的PCB图像文件

支持格式:JPG/JPEG/PNG/BMP等常见图像格式

操作流程:

点击”上传图像”按钮

从文件对话框中选择目标图像

系统自动显示预览图像

技术实现:通过OpenCV的imread()读取图像并转换为RGB格式显示

2. 检测缺陷

功能:对已加载的图像执行缺陷检测

核心参数:

置信度阈值(0.01-1.0可调)

默认阈值0.25(通过界面滑块调整)

检测流程:

图像送入YOLOv11模型推理

输出包含以下信息的检测结果:

缺陷类别(如missing/short/open)

置信度分数

边界框坐标

可视化效果:

红色框:元器件缺失

蓝色框:短路缺陷

绿色框:开路缺陷

每个检测框显示类别和置信度标签

3. 保存结果

功能:存储检测结果和报告

输出内容:

图像文件:标注检测框的结果图(JPG/PNG)

文本报告:包含以下信息的TXT文件:

电路板缺陷检测结果报告

图像文件: example.jpg

检测时间: 2023-08-20 14:30:00

检测到 3 个缺陷:

缺陷 1:

类型: missing_component

置信度: 0.92

位置: (120, 85) 到 (150, 115)

存储路径:用户自定义选择目录

4. 开启摄像头

功能:启动摄像头实时检测

技术特性:

使用OpenCV的VideoCapture接口

默认摄像头索引为0

实时显示检测帧率(FPS)

工作流程:

初始化视频采集线程

逐帧进行缺陷检测

实时显示检测结果

性能优化:

动态调整处理频率防止帧堆积

检测与显示分离的多线程架构

5. 加载视频

功能:处理视频文件中的PCB缺陷

支持格式:MP4/AVI/MOV/WMV等

特殊处理:

视频结束时自动循环播放

保持原始视频宽高比

**文件选择:**通过标准文件对话框选取

6. 停止检测

功能:终止视频/摄像头检测

执行操作

释放视频采集资源

停止检测线程

重置界面状态

安全机制

线程安全退出

防止资源未释放

保留最后一帧检测结果

三、运行环境

开发环境 pycharm

运行环境 py3.8

(此配置为本人调试所用,仅供参考)

四、项目技术

前端技术:

PyQt5构建界面

后端技术:

电路板缺陷检测系统(YOLOv11)

启动:gui.py

性能优化:

模型预加载减少等待时间

注支持树莓派4B 树莓派5

五、项目截图

1753322580-1a1c04acd43a14a.jpg

1753322582-5e1a9160be91818.jpg

1753322584-13a12c958c1084e.jpg

1753322585-9d8c086529bd82a.jpg

1753322587-6209062265d5342.jpg

0c6f25b0fc054fd88c8dd70eac55b61f~tplv-73owjymdk6-jj-mark-v1_0_0_0_0_5o6Y6YeR5oqA5pyv56S-5Yy6IEAg6Z2S6Z2S5a2m5aeQ_q75.webp