一、项目简介本系统基于 YOLOv8 深度学习目标检测模型和 PyQt6 图形界面框架开发是一款面向轴承表面缺陷智能识别的桌面应用。系统提供从模型训练、多源输入检测到结果可视化、历史追溯的完整功能链路适用于工业质检辅助、课程设计、毕业设计答辩及算法学习场景。二、核心功能介绍1. 模型训练模块 (train.py)基于 YOLOv8 训练轴承缺陷检测模型自动保存训练日志results.csv自动生成可视化图表混淆矩阵、PR 曲线、F1 曲线等保存最佳权重best.pt和最终权重last.pt支持自定义训练参数epoch、batch、图像尺寸等和数据增强2. 检测功能图片检测支持 JPG、PNG、BMP 等常见图片格式左侧预览原图右侧展示检测结果实时统计各类缺陷数量可调节置信度阈值支持保存标注结果视频检测支持 MP4、AVI、MOV、MKV 等视频格式实时逐帧检测并显示统计整个视频的缺陷总数支持录制检测结果视频显示帧数和 FPS 信息摄像头检测支持多个摄像头设备实时检测与显示支持拍照和录制功能实时统计缺陷数量可重置统计数据3. 历史记录管理自动记录所有检测历史按检测类型筛选图片 / 视频 / 摄像头显示检测时间、来源、模型、检测数量支持清空历史记录4. 模型管理查看当前使用模型列出所有可用模型支持模型切换与添加新模型默认使用最佳训练权重5. 指标可视化展示训练过程生成的可视化图表包含混淆矩阵、PR 曲线、F1 曲线等网格布局清晰展示支持刷新更新6. 用户系统登录 / 注册功能本地存储用户数据密码验证与用户信息显示三、技术栈介绍类别技术 / 库用途说明深度学习YOLOv8 (ultralytics)目标检测模型基于 PyTorchGUI 框架PyQt6图形界面开发图像处理OpenCV图像读取、视频流处理、绘图图像处理Pillow图像格式转换与处理数值计算NumPy数组运算与数据处理序列化dill对象序列化用于模型相关架构设计采用 config / core / ui 三层结构界面层调用业务逻辑层业务逻辑层访问数据层模块低耦合、易扩展。四、项目结构c89/ ├── main.py # 程序入口 ├── train.py # 模型训练脚本 ├── requirements.txt # 依赖列表 ├── 启动系统.bat # 启动快捷方式 ├── 项目说明.md # 本文档 │ ├── config/ # 配置模块 │ ├── __init__.py │ └── config.py # 全局配置路径、参数、类别等 │ ├── core/ # 核心业务模块 │ ├── __init__.py │ ├── detector.py # YOLO 检测器封装 │ └── storage.py # 用户与历史记录存储 │ ├── ui/ # 界面模块 │ ├── __init__.py │ ├── login_window.py # 登录注册窗口 │ ├── main_window.py # 主窗口框架 │ ├── styles.py # 统一样式管理 │ └── widgets/ # 功能组件 │ ├── image_detect.py # 图片检测 │ ├── video_detect.py # 视频检测 │ ├── camera_detect.py # 摄像头检测 │ ├── history_widget.py # 历史记录 │ ├── model_select.py # 模型选择 │ └── metrics_widget.py # 指标可视化 │ ├── data/ # 数据目录自动生成 │ ├── users.json # 用户数据 │ ├── detection_history.json # 检测历史 │ └── detection_results/ # 检测结果文件 │ ├── datasets/ # 数据集目录 │ └── data.yaml # 数据集配置 │ ├── 轴承缺陷检测训练文件/ # 训练产物 │ ├── weights/ │ │ ├── best.pt # 最佳权重 │ │ └── last.pt # 最终权重 │ ├── results.csv # 训练日志 │ └── *.png / *.jpg # 可视化图表五、数据库设计系统采用 JSON 文件进行本地数据持久化无需安装数据库。5.1 用户表 (users.json)存储用户账号信息。{ 用户名: { password: 密码明文, created_at: 注册时间 (YYYY-MM-DD HH:MM:SS) } }字段类型说明用户名key唯一标识passwordstring用户密码created_atstring注册时间5.2 检测历史表 (detection_history.json)存储每次检测的完整记录。[ { id: 1, type: 图片检测|视频检测|摄像头检测, source: 文件路径或来源描述, model: 模型文件名, time: 检测时间 (YYYY-MM-DD HH:MM:SS), total_detections: 5, detections: [ { class_id: 0, class_name: 凹槽, confidence: 0.95, bbox: [x1, y1, x2, y2] } ] } ]字段类型说明idint自增记录 IDtypestring检测类型sourcestring输入来源文件路径等modelstring使用的模型文件名timestring检测时间total_detectionsint检测到的缺陷总数detectionsarray每条检测详情detections[].class_idint类别 ID0–3detections[].class_namestring类别名称detections[].confidencefloat置信度detections[].bboxarray边界框 [x1,y1,x2,y2]5.3 缺陷类别ID类别名英文名颜色标记0凹槽aocao红色1凹线aoxian绿色2擦伤cashang蓝色3划痕huahen黄色六、数据流程检测流程用户选择输入源 → 调整参数 → 点击检测 ↓ 加载 YOLO 模型 → 执行推理 → 后处理 (NMS) ↓ 绘制检测框 → 更新界面显示 → 统计结果 ↓ 保存到历史记录 → 可选保存结果文件训练流程准备数据集 → 配置 data.yaml → 运行 train.py ↓ YOLOv8 训练 → 生成日志和图表 → 保存权重 ↓ 验证模型 → 输出指标 → 完成七、文件存储说明数据目录data/下自动生成users.json、detection_history.json、detection_results/图片结果、视频录制、摄像头拍照等。训练结果runs/train_yyyymmdd_hhmmss/或指定目录包含weights/、results.csv、混淆矩阵、PR 曲线等图表。八、快速开始安装依赖双击安装依赖.bat或执行pip install -r requirements.txt启动系统双击启动系统.bat或执行python main.py首次使用注册账号用户名≥3 字符密码≥6 字符→ 登录 → 使用各项功能训练模型可选执行python train.py九、系统要求硬件CPU Intel i5 及以上内存 8GB 以上推荐 NVIDIA GPUCUDA 加速软件Windows 10/11Python 3.8可选 CUDA 11.0摄像头用于摄像头检测功能可选十、开发作者项目内容作者Jay开发日期2026 年定制联系vxJay8059如有问题或需要定制开发请联系上述方式。