🐟 鱼类检测系统 (Fish Detection System)

基于 PyQt5Ultralytics YOLO 开发的鱼类目标检测系统,支持图片、批量文件夹、视频文件和实时摄像头四种检测模式。
主界面
类别筛选
图片检测
批量图片检测
筛选类别检测


✨ 一.功能特性

核心功能

  • 🎯 模型选择:支持加载任意 YOLOv5/v8/v11 系列 .pt 权重
  • ⚙️ GPU 模型初始化:启动时预热 CUDA 上下文与首次推理,避免运行时崩溃
  • 📄 YAML 类别加载:支持 listdict 两种 names 字段格式
  • 类别筛选:对话框勾选需要检测的鱼种,支持全选/全不选/反选
  • 🖼️ 多源检测
    • 单张图片
    • 图片文件夹(自动扫描)
    • 视频文件
    • 实时摄像头
  • ▶️ 手动开始:只有点击"开始检测"才执行推理
  • ⏸️ 暂停 / 继续 / 停止:运行中随时控制
  • 💾 结果保存:带框图片 + Excel 统计表(按类别统计每帧)
  • 📊 实时统计:侧边栏累计显示每类鱼检测次数
  • 📝 日志记录:操作记录 + 检测日志,带时间戳
  • 🀄 中文显示:通过 PIL + 自定义字体绘制中文标签,无乱码

优化增强

  • 🎛️ 可调参数面板:置信度 / IoU / 图像尺寸 直接在 UI 上调整
  • 实时 FPS 显示:视频和摄像头模式下显示推理速度
  • 📸 快照功能:摄像头/视频运行中一键保存当前帧(Ctrl+S)
  • 📂 快速打开保存目录:检测完成后一键打开(Ctrl+O)
  • 📤 统计导出:随时将累计统计导出为 Excel
  • 🎨 白色主题:浅色专业界面
  • 🔄 默认路径:启动自动加载预设的模型和 YAML

📦 二.环境配置(推荐)

  • 操作系统:Windows 10/11(推荐)、Linux、macOS
  • Python:3.8 ~ 3.11
  • 显卡(可选):支持 CUDA 的 NVIDIA GPU(推荐 GTX 1060 及以上)
  • 内存:≥ 8 GB
  • 显存:≥ 4 GB(使用 GPU 时)

🚀 三. 操作流程

如果已配置默认路径,启动后会自动完成:

  1. 模型 → 模型选择 — 选择 .pt 权重文件
  2. 模型 → 模型初始化 (GPU) — 加载模型并预热 GPU
  3. 类别 → 类别文件选择 (YAML) — 加载类别定义
  4. 类别 → 类别筛选(可选)— 只检测感兴趣的鱼类
  5. 数据源 → 选择输入:
    • 🖼 图片选择
    • 🗂 图片文件夹选择
    • 🎬 视频选择
    • 📷 实时摄像头
  6. (可选) 调整右上方参数:置信度 / IoU / 图像尺寸
  7. ▶ 开始检测 — 运行推理
  8. 运行中可以:
    • ⏸ 暂停 / ▶ 继续
    • 📸 拍摄快照(摄像头/视频)
    • ⏹ 停止
  9. 检测完成后点击 📂 打开保存目录 查看结果

📁 四.输出文件结构

每次检测会在 runs/detect/expN/ 下生成独立文件夹:

runs/detect/exp1/
├── det_image1.jpg                              # 单图/批量:每张标注图
├── det_video.mp4                               # 视频:标注视频
├── cam_20260421_153045_30.jpg                  # 摄像头:自动关键帧
├── snapshot_20260421_153102.jpg                # 手动快照
├── detection_results_20260421_153000.xlsx      # 图片/批量结果表
├── video_results_20260421_153000.xlsx          # 视频统计表
└── camera_results_20260421_153000.xlsx         # 摄像头统计表

Excel 表格字段

图片/批量模式

文件名检测时间检测总数鲫鱼鲤鱼草鱼
img001.jpg2026-04-21 15:30:005212

视频模式

帧序号时间戳(s)检测总数鲫鱼鲤鱼
1204.80312

摄像头模式

时间帧序号检测总数鲫鱼鲤鱼
2026-04-21 15:30:4530422

🎛️ 五.参数说明

参数默认值说明
置信度 (conf)0.25低于此值的预测框会被过滤,建议 0.15~0.40
IoU (iou)0.45NMS 交并比阈值,越低去重越严格
图像尺寸 (imgsz)640推理输入尺寸,越大精度越高但越慢

调参经验:

  • 漏检多 → 降低 conf(如 0.15)
  • 误检多 → 提高 conf(如 0.4)
  • 重叠框多 → 降低 iou(如 0.3)
  • 小目标多 → 提高 imgsz(如 960 或 1280)

🙏 六.致谢


📮七. 反馈

如有问题或改进建议,欢迎评论或者私信。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐