Update from Sync Service

This commit is contained in:
FNS Service
2026-04-21 22:23:13 +08:00
parent ae342818b3
commit d2285a141c
2 changed files with 288 additions and 0 deletions

View File

@@ -25,6 +25,7 @@ updated: 2026-04-21
| [[ByteTrack训练评估]] | 训练与测试方法 | | [[ByteTrack训练评估]] | 训练与测试方法 |
| [[ByteTrack性能指标]] | SOTA 性能对比 | | [[ByteTrack性能指标]] | SOTA 性能对比 |
| [[无人机水文视频测流应用分析]] | 水文水利应用方案 | | [[无人机水文视频测流应用分析]] | 水文水利应用方案 |
| [[项目需求规划]] | Demo 开发需求文档 |
--- ---

View File

@@ -0,0 +1,287 @@
# 无人机水文视频测流 Demo 需求规划
> 基于 ByteTrack 的实时流速测量系统
---
## 一、项目背景
### 1.1 目标
开发一个**无人机视频流速测量 Demo**,实现:
- 无人机航拍水面示踪物
- 实时跟踪示踪物轨迹
- 计算流速分布和断面流量
### 1.2 应用场景
| 场景 | 说明 |
|------|------|
| 洪水应急监测 | 快速获取洪水流速 |
| 河道流量测验 | 代替传统浮标法 |
| 水库泄洪评估 | 实时监测流速分布 |
---
## 二、技术架构
```
┌─────────────────────────────────────────────────────────┐
│ 系统架构图 │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 无人机 │────▶│ 边缘计算 │────▶│ 数据展示 │ │
│ │ 摄像机 │ │ 设备 │ │ 平台 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │ │
│ ┌────────┴────────┐ │
│ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ │
│ │ YOLOX │ │ByteTrack│ │
│ │ 目标检测 │ │ 多目标跟踪│ │
│ └──────────┘ └──────────┘ │
│ │ │ │
│ └────────┬────────┘ │
│ ▼ │
│ ┌──────────────┐ │
│ │ 流速计算引擎 │ │
│ └──────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ 结果可视化 │ │
│ └──────────────┘ │
└─────────────────────────────────────────────────────────┘
```
---
## 三、功能需求
### 3.1 核心功能
| 序号 | 功能 | 优先级 | 说明 |
|------|------|--------|------|
| F1 | 视频输入 | P0 | 支持视频文件 / 摄像头 / RTSP 流 |
| F2 | 目标检测 | P0 | 检测示踪物(泡沫球/氢气球) |
| F3 | 多目标跟踪 | P0 | ByteTrack 实时跟踪 |
| F4 | 轨迹可视化 | P0 | 实时显示跟踪轨迹 |
| F5 | 流速计算 | P0 | 基于轨迹计算流速 |
| F6 | 结果导出 | P1 | 导出轨迹数据和流速结果 |
### 3.2 扩展功能
| 序号 | 功能 | 优先级 | 说明 |
|------|------|--------|------|
| E1 | 参数配置 | P1 | 可配置检测阈值、跟踪参数 |
| E2 | 离线分析 | P2 | 支持事后视频分析 |
| E3 | 多帧平均 | P2 | 平滑流速结果 |
| E4 | 断面流量 | P2 | 计算完整断面流量 |
---
## 四、非功能需求
### 4.1 性能指标
| 指标 | 要求 | 说明 |
|------|------|------|
| 处理帧率 | ≥ 25 FPS | 实时性要求 |
| 跟踪精度 | IDF1 ≥ 70 | 轨迹连续性 |
| 流速误差 | ≤ 15% | 与标准方法对比 |
| 端到端延迟 | ≤ 100ms | 从帧输入到结果输出 |
### 4.2 系统要求
| 项目 | 要求 |
|------|------|
| 运行环境 | Python 3.8+, PyTorch 1.7+ |
| 硬件要求 | NVIDIA GPU (4GB+ VRAM) |
| 边缘部署 | Jetson AGX Xavier / Orin |
| 兼容性 | 支持视频文件 / USB相机 / 网络流 |
### 4.3 可用性
- 配置文件管理参数
- 友好的日志输出
- 异常错误提示
---
## 五、模块设计
### 5.1 模块列表
```
src/
├── video_input/ # 视频输入模块
│ ├── file_reader.py # 视频文件读取
│ ├── camera_reader.py # 摄像头读取
│ └── rtsp_reader.py # RTSP 流读取
├── detector/ # 目标检测模块
│ └── yolox_detector.py # YOLOX 检测器
├── tracker/ # 多目标跟踪模块
│ └── byte_tracker.py # ByteTrack 跟踪器
├── velocity/ # 流速计算模块
│ ├── tracker.py # 轨迹管理
│ └── velocity_calc.py # 流速计算
├── visualizer/ # 可视化模块
│ └── overlay.py # 结果叠加
└── main.py # 主程序入口
```
### 5.2 数据结构
```python
# 示踪物检测结果
class Detection:
bbox: List[float] # [x1, y1, x2, y2]
score: float # 检测置信度
class_id: int # 类别
# 跟踪轨迹
class Track:
track_id: int
bbox: List[float]
velocity: Tuple[float, float] # 像素/秒
history: List[Tuple[float, float, int]] # (x, y, frame_id)
# 流速结果
class VelocityResult:
track_id: int
velocity_x: float # m/s
velocity_y: float # m/s
speed: float # m/s
direction: float # rad
```
---
## 六、开发阶段
### Phase 1: 核心框架 (1-2周)
**目标**:完成基础跟踪功能
| 任务 | 工期 | 交付物 |
|------|------|--------|
| 环境搭建 | 1天 | Docker 镜像 |
| 视频输入 | 2天 | 支持文件/摄像头 |
| YOLOX 集成 | 3天 | 检测器封装 |
| ByteTrack 集成 | 3天 | 跟踪器封装 |
| 基础可视化 | 2天 | 轨迹叠加显示 |
**交付物**:可跟踪视频中运动物体的 Demo
### Phase 2: 流速计算 (1周)
**目标**:实现流速计算功能
| 任务 | 工期 | 交付物 |
|------|------|--------|
| 轨迹管理 | 2天 | Track 类 |
| 坐标转换 | 1天 | 像素→物理坐标 |
| 流速计算 | 2天 | VelocityCalc 类 |
| 结果展示 | 1天 | 流速箭头叠加 |
**交付物**:显示流速矢量的 Demo
### Phase 3: 参数调优 (1周)
**目标**:优化检测和跟踪效果
| 任务 | 工期 | 交付物 |
|------|------|--------|
| 参数配置 | 2天 | config.yaml |
| 检测优化 | 2天 | 阈值调优 |
| 跟踪优化 | 2天 | 卡尔曼滤波调参 |
**交付物**:参数可配置的 Demo
### Phase 4: 测试验证 (1周)
**目标**:验证流速精度
| 任务 | 工期 | 交付物 |
|------|------|--------|
| 测试视频采集 | 2天 | 测试数据集 |
| 精度对比 | 3天 | 误差分析报告 |
| 性能优化 | 2天 | 优化后 Demo |
**交付物**:完整 Demo + 测试报告
---
## 七、测试数据需求
### 7.1 测试视频
| 类型 | 内容 | 时长 | 数量 |
|------|------|------|------|
| 室内水槽 | 控制条件 | 30s | 3 |
| 野外河流 | 实测场景 | 60s | 5 |
| 洪水场景 | 应急监测 | 60s | 2 |
### 7.2 对照数据
- ADCP 同步测量数据
- 流速仪对照数据
- 浮标轨迹人工标注
---
## 八、风险评估
| 风险 | 影响 | 概率 | 应对措施 |
|------|------|------|----------|
| 检测效果差 | 高 | 中 | 准备多套检测模型 |
| 跟踪ID跳变 | 中 | 中 | 增加轨迹缓冲 |
| 边缘设备性能不足 | 高 | 低 | 提前测试 Jetson 性能 |
| 流速精度不达标 | 中 | 中 | 多方法对比验证 |
---
## 九、验收标准
### 9.1 功能验收
- [ ] 可读取视频文件并实时显示
- [ ] 检测器可识别示踪物
- [ ] ByteTrack 跟踪轨迹稳定
- [ ] 流速计算结果合理
- [ ] 支持导出结果数据
### 9.2 性能验收
- [ ] 处理帧率 ≥ 25 FPS (1080p)
- [ ] 跟踪轨迹连续,无频繁断裂
- [ ] 流速误差 ≤ 15% (与ADCP对比)
### 9.3 代码质量
- [ ] 代码结构清晰
- [ ] 注释完整
- [ ] 单元测试覆盖核心模块
---
## 十、后续扩展
| 方向 | 说明 |
|------|------|
| 深度优化 | 专用检测器微调 |
| 工程化 | 边缘部署优化 |
| 云端集成 | 数据上传与分析 |
| 自动化 | 无人值守自动测量 |
---
## 附录:技术选型
| 组件 | 选择 | 原因 |
|------|------|------|
| 检测器 | YOLOX | ByteTrack 原生支持,效果好 |
| 跟踪器 | ByteTrack | 双阶段关联,适合遮挡 |
| 深度学习框架 | PyTorch | 生态丰富 |
| 边缘设备 | Jetson AGX Xavier | 算力足够 |
| 编程语言 | Python | 开发效率高 |