电路板缺陷检测系统(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
以上系统源码经过技术整理与调试,确保能正常运行