🍊作者:计算机编程-吉哥
🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。
🍊心愿:点赞 👍 收藏 ⭐评论 📝
🍅 文末获取源码联系
👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~
目录
[1. 水下检测(4 种模式)](#1. 水下检测(4 种模式))
[2. 检测记录](#2. 检测记录)
[3. 数据看板](#3. 数据看板)
[4. 智能问答](#4. 智能问答)
[5. 个人中心 & 用户管理](#5. 个人中心 & 用户管理)
[✅ 水平框 HBB,高效易用](#✅ 水平框 HBB,高效易用)
[✅ 3 模型对比,公平公正](#✅ 3 模型对比,公平公正)
[✅ 过拟合防护机制完善](#✅ 过拟合防护机制完善)
[✅ 多源权重下载,避免崩溃](#✅ 多源权重下载,避免崩溃)
[✅ 青蓝色系 UI,水下氛围感](#✅ 青蓝色系 UI,水下氛围感)
一、项目简介
underwater_detection (水下垃圾检测系统)是一个面向水下场景的智能检测 Web 平台,基于 YOLO11-L 水平框目标检测 ,实现对水下 3 类目标的实时识别:
| 类别 | 英文 | 说明 |
|---|---|---|
| 垃圾 | trash | 塑料、金属、木材、橡胶、纸、布、渔具等 |
| 生物 | bio | 海洋动植物(鱼类、海藻、珊瑚等) |
| 水下机器人 | rov | ROV(Remotely Operated Vehicle) |
项目采用 Vue 3 用户端 + Django 4 后端 + YOLO11-L 主模型 + MySQL 8 的全栈架构,提供 7 大模块:登录 / 注册 / 水下检测 / 检测记录 / 数据看板 / 智能问答 / 个人中心,管理员额外拥有用户管理模块。
二、技术栈
后端
-
Python 3.10 + Django 4.2.16
-
ultralytics 8.3.40(YOLOv8 / YOLO11 通用)
-
PyTorch 2.8.0+cu128(GPU 版,支持 RTX 5060)
-
MySQL 8 + PyMySQL
-
OpenCV、Pillow、NumPy、scikit-learn、jieba
前端
-
Vue 3.4 + Vue Router 4 + Element Plus 2.9
-
ECharts 5.5(数据看板 5 个图表)
-
marked(智能问答 Markdown 渲染)
-
Vite 6 构建
训练工程
-
3 个训练脚本:
train_yolo11.py(主模型)、train_yolo8.py(对比1)、train_faster_rcnn.py(对比2) -
统一 300 epoch,batch=8(FRCNN 为 4),imgsz=640,启用 AMP 混合精度
-
共享工具
_shared.py:多源权重下载 + 字体兜底 + 断点续训
三、核心功能
1. 水下检测(4 种模式)
-
单图检测:上传一张图片,返回 HBB 水平框 + 类别 + 置信度
-
批量检测:一次上传多张,批量推理并汇总
-
视频检测:上传视频文件,逐帧检测后输出结果视频
-
摄像头实时:调用浏览器原生 API,实时画面检测
2. 检测记录
所有检测结果写入 detection_records 表,支持按时间、来源(image/batch/video/camera)、模型类型筛选查看。
3. 数据看板
5 个 ECharts 图表:检测总数趋势、类别分布、来源占比、置信度分布、模型对比。
4. 智能问答
基于 DeepSeek API 直连 + knowledge_corpus 知识库(10 条预置语料),SYSTEM_PROMPT 已重写为水下检测领域,回答以 Markdown 渲染。
5. 个人中心 & 用户管理
用户可修改昵称、邮箱、手机、头像;管理员可管理所有用户(启用/禁用/改角色)。
四、项目亮点
✅ 水平框 HBB,高效易用
相比旋转框 OBB,HBB 训练/推理更高效,输出 (x1, y1, x2, y2) 像素坐标,直接 cv2.rectangle 绘制,前端展示无压力。
✅ 3 模型对比,公平公正
| 角色 | 模型 | 对比维度 |
|---|---|---|
| 主模型 | YOLO11-L | 最新代际 |
| 对比1 | YOLOv8-L | 同尺寸不同代 |
| 对比2 | Faster R-CNN ResNet50-FPN | 单阶段 vs 两阶段 |
3 个模型均训练 300 epoch,统一输入 640×640,启用 AMP,保证对比公平。
✅ 过拟合防护机制完善
-
早停 :val mAP 连续 20 epoch 不升即停(
patience=20, min_delta=0.001) -
余弦退火:YOLO 从 lr0=0.01 平滑降到 0.0001
-
Faster R-CNN 双重调度:CosineAnnealingLR + ReduceLROnPlateau(8 轮不降 lr 减半)
-
断点续训 :
--resume自动加载 last.pt / last.pth,接着跑 -
每 5 epoch 保存 checkpoint:断电也不怕
✅ 多源权重下载,避免崩溃
yolo11l.pt 首次运行自动从 4 个国内镜像 + GitHub 直连依次尝试,每个 90s 超时、最多重试 2 次,下载失败可手动放置。
✅ 青蓝色系 UI,水下氛围感
全栈统一主色 #0891b2(深青蓝)、辅助色 #06b6d4(亮青蓝)、背景 #f0f9ff(浅蓝白),看板图表、统计卡片、导航栏全部统一。
五、功能截图展示



