【目标检测系统】基于YOLOv8的淡水鱼检测系统
摘要:本文介绍了一款基于YOLOv8深度学习的淡水鱼检测桌面应用系统,采用PySide6构建中文图形界面,支持4种常见淡水鱼(黄辣丁、鳊鱼、鲫鱼、黑鱼)的自动识别。系统提供图片、视频、摄像头等多种检测模式,具备参数调节、类别筛选、实时显示、统计分析等功能,可一键导出Excel报表和标注图像/视频。采用多线程架构确保流畅运行,支持用户认证管理,面向水产养殖、市场监管等非专业用户设计,实现零代码操作。
一、系统介绍
本系统是一套基于深度学习的淡水鱼检测桌面应用,采用 Ultralytics YOLOv8 作为核心检测引擎,PySide6 构建图形用户界面,专门用于水产养殖品种识别、市场鱼类辨识、渔业资源监测、教学科研等场景。用户只需加载预训练模型并选择图片、视频或摄像头,即可自动识别并标注出图像中的淡水鱼种类,同时输出类别名称、置信度、坐标等完整信息。
系统面向水产养殖人员、市场监管人员、渔业研究者、生物教学等非专业编程用户设计,提供直观的中文图形界面,无需编写任何代码即可完成从模型加载到结果导出的全流程操作。
核心能力:
-
自动识别 4 种常见淡水鱼(黄辣丁、鳊鱼、鲫鱼、黑鱼)
-
支持中文/英文类别名称切换
-
一键导出检测结果 Excel 报表与标注图片/视频
二、功能介绍
2.1 多模式检测
| 输入模式 | 说明 |
|---|---|
| 单张图片 | 选择一张图片进行检测,结果显示在右侧面板 |
| 批量图片 | 选择文件夹,自动检测其中所有图片文件 |
| 视频文件 | 逐帧检测视频,支持跳帧加速 |
| 实时摄像头 | 连接 USB/内置摄像头,实时显示检测结果 |
2.2 参数调节
-
置信度阈值(0.01-1.0):低于此值的目标被过滤,值越高检测越严格
-
IoU 阈值(0.01-1.0):控制重叠检测框的去重程度
-
跳帧设置:视频/摄像头模式下每隔 N 帧检测一次,降低系统负载
-
推理尺寸(320-1280):图像缩放尺寸,影响检测精度和速度
-
标注样式:检测框粗细(1-10)、标签字号(0.3-2.0)、中英文类别名切换
2.3 类别筛选
支持从 4 种淡水鱼中勾选需要检测的类别,未勾选的类别将不被识别。支持全选/全不选快捷操作。
2.4 实时画面显示
-
左侧画面:原始输入图像
-
右侧画面:标注后的检测结果(含检测框、类别名、置信度、中心点)
-
拖拽中间分隔条可调整双画面比例
-
底部实时显示当前帧检出目标数和类别数
2.5 统计与分析
-
统计图表(柱状图):各鱼类检出数量可视化,不同类别使用不同颜色
-
检测明细表:每条检测结果的完整信息
-
系统日志:完整运行日志,支持着色显示和导出为文本文件
2.6 检测历史记录
-
每次完成检测任务后自动写入数据库
-
弹窗中可:刷新、打开当时的结果目录、删除单条、清空全部
2.7 结果保存
-
检测后的标注图片(JPEG 格式)
-
检测后的标注视频(MP4 格式)
-
完整检测明细 Excel 报表(.xlsx 格式,可用 WPS/Excel 打开)
2.8 用户认证
本地 SQLite 数据库存储账号信息,SHA-256 + 随机盐值加密密码,支持注册和登录。
三、技术介绍
3.1 整体架构
main.py # 程序入口:初始化数据库 → 登录认证 → 启动主界面 auth.py # 认证模块:SQLite 用户数据库 + 登录/注册界面 ui_main.py # 主界面:UI 构建 + 信号连接 + 业务逻辑 + 弹窗组件 detection_thread.py # 检测线程:QThread 子类,后台 YOLO 推理 config.py # 全局配置:动态路径、默认参数、中英文类别字典
3.2 核心技术栈
| 技术 | 用途 | 版本说明 |
|---|---|---|
| PySide6 | Qt for Python GUI 框架 | 6.x |
| Ultralytics YOLOv8 | 目标检测模型 | v8.1.30 |
| OpenCV | 图像读取/写入/绘制 | cv2 |
| PyTorch | 深度学习后端 | 2.0.1+ |
| matplotlib | 统计图表绘制 | 3.x |
| pandas | 数据导出 (Excel) | 2.x |
| SQLite3 | 用户数据库 | Python 内置 |
3.3 线程模型
检测在独立子线程中运行,避免阻塞 GUI 主线程:
3.4 模型信息
-
模型架构:YOLOv8(可替换为任意 Ultralytics YOLO 版本)
-
类别数量:4 种常见淡水鱼
-
模型格式:支持
.pt(PyTorch)、.onnx(ONNX)、.engine(TensorRT)
四、系统优势
4.1 零代码操作
全中文图形界面,无需编程基础。从注册登录到模型加载、检测分析、结果导出,全部通过按钮和弹窗完成。
4.2 路径动态解析
所有路径(模型、保存、字体)基于项目根目录动态计算,项目文件夹改名或移动到其他位置均无需修改配置。
4.3 完整的中文生态
-
类别名支持中文显示(4 种淡水鱼均有中文翻译)
-
界面全中文
-
日志、统计、表格列名均为中文
-
图表中文正常渲染
-
中文路径完整支持
4.4 灵活的参数控制
置信度、IoU、跳帧、推理尺寸、检测框粗细、字号、中英文切换均可通过弹窗实时调节,无需重启或修改代码。
五、系统部分功能展示
5.1登录界面

5.2系统主界面

5.3参数调节

5.4图片检测

5.5结果统计

5.6检测历史

5.7、数据集部分训练结果展示

六、其他说明
本系统为本人开发的原创作品。
第三方组件声明
| 组件 | 用途 | 许可 |
|---|---|---|
| PySide6 | Qt for Python GUI 框架 | LGPL v3 |
| Ultralytics YOLO | 目标检测算法实现 | AGPL v3 |
| OpenCV (opencv-python) | 图像处理 | Apache 2.0 |
| PyTorch | 深度学习框架 | BSD |
| matplotlib | 统计图表 | PSF-based |
| pandas | 数据导出 | BSD 3-Clause |
| Pillow | 中文文字渲染 | Historical Permission Notice and Disclaimer (HPND) |
免责声明
本系统仅供学习与研究使用。训练数据和预训练模型版权归原始数据采集者所有。商业使用请确保获得相关授权。
更多推荐




所有评论(0)