文章目录
- 一、需求定义
- 二、最简单可行方案:视频目标检测+计数
- 三、核心算法设计
-
- [1. 鱼苗检测模型](#1. 鱼苗检测模型)
- [2. 为什么不能直接数检测框?](#2. 为什么不能直接数检测框?)
- 目标跟踪
- 四、针对"投放鱼苗"场景的特殊设计
- 方案A:投放通道计数(最推荐)
- 五、模型训练
- 六、模型训练
- 七、实时检测程序
- 八、硬件选择
- 九、如果要求"政府验收级"
- 十、我推荐你的第一版方案
一、需求定义
目标
输入:
- 摄像头视频
- 无人机视频
- 水下摄像头视频
- 投放现场录像
输出:
- 投放鱼苗数量
- 投放时间
- 投放批次
- 鱼苗种类(可选)
- 投放位置(可选)
例如:
2026-08-11 10:32:15
某河段投放鲤鱼苗
检测数量:5230尾
置信度:96.8%
二、最简单可行方案:视频目标检测+计数
架构:
摄像头
|
视频流
|
目标检测模型
|
鱼苗识别
|
目标跟踪
|
数量统计
|
数据库
|
后台显示
三、核心算法设计
1. 鱼苗检测模型
推荐:
YOLO系列
例如:
- YOLOv8
- YOLOv10
- YOLO11
输入:
视频帧
输出:
鱼苗1:
x,y,w,h
confidence=0.94
鱼苗2:
x,y,w,h
confidence=0.91
类似:
+----------------+
| |
| 🐟 |
| 🐟 |
| 🐟 |
| |
+----------------+
检测框:
[fish]
[fish]
[fish]
2. 为什么不能直接数检测框?
因为视频连续:
第1帧:
鱼A
鱼B
鱼C
第2帧:
鱼A
鱼B
鱼C
如果直接累加:
3+3+3...
会得到错误数量。
所以需要:
目标跟踪
推荐:
ByteTrack
或者:
DeepSORT
流程:
YOLO检测
↓
得到鱼的位置
↓
Tracker分配ID
鱼A:
ID=001
鱼B:
ID=002
鱼C:
ID=003
↓
统计新出现ID数量
最终:
出现过ID:
001
002
003
004
005
数量=5
四、针对"投放鱼苗"场景的特殊设计
这里比普通监控复杂。
因为鱼苗通常:
- 密度高
- 体积小
- 重叠严重
- 游动快
所以建议增加:
方案A:投放通道计数(最推荐)
不要拍整个河。
在投放口安装摄像头。
例如:
运输桶
↓
↓↓↓↓↓
=================
摄像区域
=================
河流
只检测经过某个区域的鱼。
类似:
高速公路车辆计数。
设置虚拟线:
----------------
|
|
鱼苗 →→→→→
----------------
鱼穿过:
+1
优势:
准确率最高。
五、模型训练
你需要数据集。
数据采集
自己拍:
建议:
5000~10000张图片。
包含:
正常情况
单鱼
双鱼
密集鱼群
不同光照
不同水质
标注
使用:
- LabelImg
- Roboflow
标:
fish
例如:
图片:
0001.jpg
鱼1 bbox
鱼2 bbox
鱼3 bbox
生成:
0001.txt
0 0.35 0.42 0.1 0.08
0 0.52 0.31 0.07 0.05
六、模型训练
例如YOLO:
训练:
yolo train \
model=yolov8m.pt \
data=fish.yaml \
epochs=200 \
imgsz=640
得到:
best.pt
七、实时检测程序
Python结构:
fish_counter/
│
├── model/
│ └── best.pt
│
├── camera/
│
├── detector.py
│
├── tracker.py
│
├── counter.py
│
└── database.py
主流程:
伪代码:
python
while True:
frame = camera.read()
fish = YOLO(frame)
tracks = tracker.update(fish)
for fish in tracks:
if fish.cross_line():
count +=1
display(count)
八、硬件选择
河岸固定
推荐:
摄像头:
- 4K工业相机
GPU:
- NVIDIA Jetson Orin Nano
或者:
普通电脑:
RTX4060以上。
无人机方案
无人机:
无人机
|
AI识别
|
估算数量
难点:
鱼苗重叠严重。
准确率下降。
九、如果要求"政府验收级"
需要增加:
多摄像头融合
例如:
摄像头1
\
\
AI融合
/
摄像头2
避免漏检。
RFID/标记法
科研放流常用:
鱼苗注射:
- PIT标签
- 荧光标记
然后扫描。
精度最高。
十、我推荐你的第一版方案
如果这是一个实际项目:
不要做"河里数鱼"。
做:
投放口鱼苗智能计数系统
技术路线:
高清摄像头
+
YOLOv8鱼苗检测
+
ByteTrack跟踪
+
虚拟线计数
+
数据库记录
+
Web后台
预计:
-
开发周期:1~2个月
-
成本:3000~10000元
-
准确率:
- 投放口:95%以上可实现
- 河内估计:60~80%
"基于YOLO与多目标跟踪的河流生态修复鱼苗智能投放监测系统"
这个题目其实很适合 AI、计算机视觉方向。