bev-project/project/docs/BEVFusion实车部署完整计划.md

1279 lines
28 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# BEVFusion实车部署完整计划
**项目目标**: 从nuScenes训练到实车4相机部署的端到端感知系统
**更新时间**: 2025-10-25
**当前阶段**: Phase 3 训练中 (Epoch 11/23)
---
## 📋 项目总览
### 实车传感器配置
**相机系统 (4相机)**:
```
1. CAM_FRONT_STANDARD (正前标准)
- 分辨率: 1920x1080
- FOV: 70° (水平) × 45° (垂直)
- 焦距: 6mm
- 覆盖范围: 60m前方标准视野
- 用途: 主要检测、通用场景
2. CAM_FRONT_TELE (正前长焦)
- 分辨率: 1920x1080
- FOV: 30° (水平) × 20° (垂直)
- 焦距: 12mm
- 覆盖范围: 120m前方窄视野
- 用途: 远距离检测、高速场景
3. CAM_FRONT_LEFT (左前)
- 分辨率: 1920x1080
- FOV: 100° (水平) × 60° (垂直)
- 焦距: 4mm
- 覆盖范围: 左侧60m + 前方30m
- 用途: 左转、并道检测
4. CAM_FRONT_RIGHT (右前)
- 分辨率: 1920x1080
- FOV: 100° (水平) × 60° (垂直)
- 焦距: 4mm
- 覆盖范围: 右侧60m + 前方30m
- 用途: 右转、并道检测
```
**LiDAR系统**:
```
型号: Velodyne VLP-32C
线数: 32线
范围: 0.3-200m
精度: ±2cm
帧率: 10Hz
```
**计算平台**:
```
NVIDIA Orin AGX 64GB
CPU: 12核 ARM Cortex-A78AE
GPU: 2048-core NVIDIA Ampere
内存: 64GB LPDDR5
功耗: 15-60W可调
```
---
## 📅 项目阶段规划
### 全局时间表
```
2025年 9月 10月 11月 12月 2026年1月
|--------|--------|--------|--------|
Phase1 ████ ✅ 完成
Phase2 ████ ✅ 完成
Phase3 ████████ 🔥 99.5%
Phase4 ████ ⏸️ 待开始
Phase5 (采集) ███████████ ⏳ 准备中
Phase5 (标注) ████████████ ⏳ 同步进行
Phase6 ██████ ⏳ 待开始
Phase7 ████ ⏳ 待开始
当前进度: 43% (3/7完成)
预计完成: 2026年1月15日
```
---
## Phase 1: 基础训练 ✅ (已完成)
**时间**: 2025-09-01 ~ 2025-10-10 (40天)
**状态**: ✅ 已完成
### 成果
```
✅ nuScenes数据集训练 (Epoch 1-19)
✅ 基线性能: NDS 0.68, mAP 0.63, mIoU 0.38
✅ Checkpoint: epoch_19.pth
✅ 验证多任务学习框架
```
---
## Phase 2: 性能优化 ✅ (已完成)
**时间**: 2025-10-11 ~ 2025-10-21 (11天)
**状态**: ✅ 已完成
### 成果
```
✅ EnhancedBEVSegmentationHead设计
✅ 高分辨率配置 (multitask_enhanced_phase1_HIGHRES.yaml)
✅ 损失函数优化 (Focal + Dice)
✅ 训练策略调整
```
---
## Phase 3: 增强训练 🔥 (进行中)
**时间**: 2025-10-21 ~ 2025-10-29 (9天)
**状态**: 🔥 Epoch 11/23 (26.7%)
### 当前进度
```
🔥 实时状态 (2025-10-25 11:19):
Epoch: 11/23
Loss: 0.6522
预计完成: 2025-10-29 14:00
📊 最新性能 (Epoch 10):
NDS: 0.6968 ⭐⭐⭐ (A+级)
mAP: 0.6502 ⭐⭐⭐ (A+级)
mIoU: 0.3912 ⭐⭐ (B+级)
💾 Checkpoints: epoch_8/9/10.pth (各516MB)
```
### 待完成任务
```
□ Epoch 11-23 训练
□ 每个Epoch评估
□ 选择最佳checkpoint
□ 性能分析报告
```
**预计输出**:
- 最佳模型: epoch_20-23.pth (预计NDS > 0.70)
- 性能报告: 完整的评估指标
---
## Phase 4: 模型压缩 (待开始)
**时间**: 2025-10-30 ~ 2025-11-15 (17天)
**状态**: ⏸️ 等待Phase 3完成
**负责人**: 算法工程师
### 4.1 环境准备 (1天)
```
□ Day 1 (10-30): 新环境搭建
□ 创建独立Python环境 (PyTorch 2.4+)
□ 安装torch-pruning
□ 安装ONNX/TensorRT工具
□ 验证工具链
```
### 4.2 模型剪枝 (7天)
```
□ Day 2-3 (10-31 ~ 11-01): 剪枝实验
□ 分析参数重要性
□ 设计剪枝策略
• Encoders: 34.45M → 20M (削减42%)
• Heads: 保持不变
• 目标: 45.72M → 28M
□ 结构化剪枝
□ 评估精度损失
□ Day 4-6 (11-02 ~ 11-04): 微调恢复
□ 在nuScenes上微调5 epochs
□ 恢复精度到NDS > 0.68
□ 保存剪枝后模型
□ Day 7-8 (11-05 ~ 11-06): 验证测试
□ 全面性能评估
□ 推理速度测试
□ 内存占用分析
```
**目标**:
- 参数量: 28M (-38%)
- NDS: > 0.68 (下降 < 2%)
- 推理速度: 80ms (V100)
### 4.3 量化训练 (6天)
```
□ Day 9-10 (11-07 ~ 11-08): QAT准备
□ 插入量化节点
□ 校准数据准备
□ INT8量化配置
□ Day 11-13 (11-09 ~ 11-11): QAT训练
□ 量化感知训练 10 epochs
□ 精度监控
□ 调整量化策略
□ Day 14 (11-12): 量化模型评估
□ INT8精度验证
□ 推理速度测试
```
**目标**:
- 精度: NDS > 0.66
- 速度: 50ms (V100), 60ms (Orin预估)
### 4.4 TensorRT优化 (3天)
```
□ Day 15-16 (11-13 ~ 11-14): TensorRT转换
□ ONNX导出
□ TensorRT引擎构建 (FP16/INT8)
□ 算子融合优化
□ Day 17 (11-15): 性能验证
□ Orin平台部署测试
□ 端到端延迟测试
□ 功耗测试
```
**目标**:
- Orin推理: < 80ms
- 功耗: < 50W
- 精度: NDS > 0.65
---
## Phase 5: 实车数据准备 🔄 (并行进行)
**时间**: 2025-10-25 ~ 2025-12-15 (52天)
**状态**: 🔄 准备启动
**负责人**: 系统工程师 + 标注团队
### 5.1 传感器集成 (Week 1: 10/25-10/31)
**Day 1-2: 硬件安装**
```
□ 相机安装
□ CAM_FRONT_STANDARD: 车顶中央高度1.5m
□ CAM_FRONT_TELE: 车顶中央,紧邻标准相机
□ CAM_FRONT_LEFT: 左A柱向左偏30°
□ CAM_FRONT_RIGHT: 右A柱向右偏30°
□ LiDAR安装
□ Velodyne VLP-32C: 车顶中央高度1.8m
□ 计算单元
□ NVIDIA Orin AGX: 后备箱
□ 供电系统: 12V→48V转换
□ 散热系统: 主动风冷
```
**Day 3-4: 传感器标定**
```
□ 相机内参标定
□ 使用9x6棋盘格 (方格5cm)
□ 采集50张不同角度图像
□ Zhang标定法计算内参
□ 畸变系数校正
□ 重投影误差 < 0.5 pixel
工具: python tools/calibrate_camera_intrinsic.py
□ 相机外参标定 (4个相机)
□ 联合LiDAR-相机标定
□ 棋盘格放置在3-5个不同位置
□ PnP算法求解外参
□ 精度要求: 旋转<0.5°, 平移<2cm
工具: python tools/calibrate_camera_lidar_extrinsic.py
```
**Day 5-7: 标定验证与数据采集系统**
```
□ 标定验证
□ 点云投影到图像对齐检查
□ 多视角一致性验证
□ 批量样本验证 (100帧)
□ 数据采集系统部署
□ ROS工作空间配置
□ 传感器驱动测试
□ 时间戳同步 (NTP/PTP)
□ 录制脚本开发
录制格式:
/data/vehicle_data/
├── rosbag/
│ └── 2025_10_25_session_001.bag
├── extracted/
│ ├── lidar/
│ │ └── frame_000001.pcd
│ ├── CAM_FRONT_STANDARD/
│ │ └── frame_000001.jpg
│ ├── CAM_FRONT_TELE/
│ ├── CAM_FRONT_LEFT/
│ └── CAM_FRONT_RIGHT/
└── calibration/
└── sensors_2025_10_25.json
```
### 5.2 数据采集 (Week 2-6: 11/01-12/08, 同步进行)
**采集策略**: 渐进式采集,边采集边标注
**Week 2 (11/01-11/07): 初期采集 2000帧**
```
□ 场景分布:
□ 城市道路 (白天晴天): 800帧
□ 高速公路 (白天): 600帧
□ 停车场: 400帧
□ 夜间城市: 200帧
□ 采集要求:
✓ 关键帧间隔: 0.5秒 (2Hz)
✓ 速度覆盖: 0-80km/h
✓ 数据完整性检查
✓ 立即导出用于标注
□ 质量检查 (每日):
python tools/check_data_quality.py \
--data_root /data/vehicle_data \
--check_sync \
--check_completeness
```
**Week 3 (11/08-11/14): 中期采集 2500帧**
```
□ 场景扩展:
□ 城市道路 (阴天): 800帧
□ 高速公路 (阴天): 500帧
□ 乡村道路: 600帧
□ 夜间高速: 400帧
□ 黄昏: 200帧
□ 复杂场景采集:
✓ 交通拥堵
✓ 复杂路口
✓ 施工区域
✓ 行人密集区
```
**Week 4-5 (11/15-11/28): 大规模采集 3500帧**
```
□ 恶劣天气场景:
□ 小雨: 800帧
□ 大雨: 600帧
□ 雾天: 500帧
□ 强光/逆光: 400帧
□ 边缘场景:
□ 地下停车场: 500帧
□ 隧道: 400帧
□ 高架桥: 300帧
□ 补充采集:
□ 根据标注反馈的困难场景
□ 类别不平衡补充
```
**Week 6 (12/01-12/08): 补充采集 2000帧**
```
□ 针对性采集:
□ 长尾类别 (construction_vehicle, trailer): 500帧
□ 困难场景重采集: 800帧
□ 验证集专用场景: 700帧
□ 最终质量检查:
□ 总计10000帧验证
□ 场景分布统计
□ 数据集划分
```
**采集总计**: 10000帧
- 训练集: 8000帧 (80%)
- 验证集: 1000帧 (10%)
- 测试集: 1000帧 (10%)
### 5.3 数据标注 (Week 3-9: 11/08-12/31, 同步进行)
**标注团队配置**:
```
核心团队 (10人):
├── 标注组长 × 1
├── 初标员 × 6
├── 审核员 × 2
└── 技术支持 × 1
标注平台: CVAT (Docker部署)
标注工具: 自动预标注 + 人工精修
```
**Week 3 (11/08-11/14): 标注系统搭建**
```
□ Day 1-2: CVAT部署
□ Docker服务器部署 (32GB RAM)
□ 用户权限配置
□ 数据导入流程测试
□ Day 3-4: 团队培训
□ 标注规范培训 (2天)
□ CVAT操作培训
□ 质量标准讲解
□ 考核测试 (50帧)
□ Day 5-7: 预标注系统
□ 部署预训练检测模型
□ 批量预标注 (置信度>0.3)
□ 导入CVAT供人工修正
工具: python tools/auto_prelabel.py
```
**Week 4-5 (11/15-11/28): 初期标注 3000帧**
```
□ 批次1 (1500帧): 简单场景
□ 城市白天晴天
□ 高速公路
□ 用时: 5分钟/帧 × 1500 = 125小时
□ 6人并行 = 21小时 ≈ 3天
□ 批次2 (1500帧): 中等场景
□ 城市阴天
□ 停车场
□ 用时: 8分钟/帧 × 1500 = 200小时
□ 6人并行 = 33小时 ≈ 5天
□ 质量控制:
□ 每日抽检10% (随机)
□ 自动化检查脚本
□ 一致性验证
```
**Week 6-7 (11/29-12/12): 中期标注 4000帧**
```
□ 批次3 (2000帧): 复杂场景
□ 夜间场景
□ 雨天场景
□ 遮挡/截断场景
□ 用时: 12分钟/帧 × 2000 = 400小时
□ 6人并行 = 67小时 ≈ 8天
□ 批次4 (2000帧): 特殊场景
□ 隧道/地下停车场
□ 边缘case
□ 用时: 10分钟/帧 × 2000 = 333小时
□ 6人并行 = 56小时 ≈ 7天
```
**Week 8 (12/13-12/19): 后期标注 2000帧**
```
□ 批次5 (2000帧): 补充标注
□ 根据前期标注分析
□ 困难样本重标
□ 长尾类别补充
```
**Week 9 (12/20-12/26): 质量审核**
```
□ 全面质量检查
□ 自动化检查所有10000帧
□ 人工抽检500帧 (5%)
□ 专家审核100帧 (复杂场景)
□ 问题修正
□ 修正标记的异常 (预计5%)
□ 重标质量不达标样本
□ 最终验收
□ 质量报告生成
□ 数据集统计分析
□ 导出训练格式
```
**标注总计**: 10000帧
- 预计总时间: 1700小时
- 实际并行: 6人 × 6周 = 240工时 ✅ 可完成
### 5.4 数据转换 (Week 10: 12/27-12/31)
```
□ 格式转换
□ CVAT → nuScenes格式
□ 生成PKL文件
□ 验证数据完整性
python tools/data_converter/custom_to_nuscenes.py \
--custom_root /data/vehicle_data \
--output /data/vehicle_nuscenes \
--camera_names CAM_FRONT_STANDARD CAM_FRONT_TELE CAM_FRONT_LEFT CAM_FRONT_RIGHT
□ 数据集划分
train_infos.pkl: 8000帧
val_infos.pkl: 1000帧
test_infos.pkl: 1000帧
□ 质量验证
□ 可视化检查 (100帧)
□ 统计分析
□ 类别分布验证
```
**输出**:
```
/data/vehicle_nuscenes/
├── vehicle_infos_train.pkl (8000帧)
├── vehicle_infos_val.pkl (1000帧)
├── vehicle_infos_test.pkl (1000帧)
├── calibration/
│ └── sensors_final.json
└── metadata.json
```
---
## Phase 6: 实车微调 (2026年1月)
**时间**: 2026-01-01 ~ 2026-01-10 (10天)
**状态**: ⏸️ 等待Phase 4和5完成
**负责人**: 算法工程师
### 6.1 配置调整 (1天)
```
□ Day 1 (01-01): 创建实车配置
文件: configs/vehicle_4cam/vehicle_multitask.yaml
关键修改:
# 1. 相机数量和名称
camera_names:
- CAM_FRONT_STANDARD
- CAM_FRONT_TELE
- CAM_FRONT_LEFT
- CAM_FRONT_RIGHT
# 2. 图像分辨率
image_size: [384, 1280] # 从[256, 704]调整
feature_size: [48, 160] # 对应调整
# 3. 数据路径
data:
train:
ann_file: /data/vehicle_nuscenes/vehicle_infos_train.pkl
val:
ann_file: /data/vehicle_nuscenes/vehicle_infos_val.pkl
# 4. 预训练权重
init_cfg:
checkpoint: runs/enhanced_from_epoch19/epoch_10.pth # Phase 3最佳
```
### 6.2 迁移学习训练 (7天)
```
□ Day 2-3 (01-02 ~ 01-03): 初步微调
□ 冻结backbone
□ 仅训练head
□ 5 epochs快速适配
torchpack dist-run -np 6 python tools/train.py \
configs/vehicle_4cam/vehicle_multitask.yaml \
--model.encoders.camera.backbone.init_cfg.checkpoint=runs/enhanced_from_epoch19/epoch_10.pth \
--model.encoders.camera.backbone.frozen=true \
--run-dir runs/vehicle_head_finetune
□ Day 4-6 (01-04 ~ 01-06): 全模型微调
□ 解冻所有层
□ 降低学习率 (max_lr=1e-5)
□ 训练15 epochs
torchpack dist-run -np 6 python tools/train.py \
configs/vehicle_4cam/vehicle_multitask.yaml \
--load_from runs/vehicle_head_finetune/epoch_5.pth \
--lr.max_lr=0.00001 \
--run-dir runs/vehicle_full_finetune
□ Day 7-8 (01-07 ~ 01-08): 性能评估
□ 验证集评估
□ 测试集评估
□ 分场景分析
□ 错误case分析
```
**性能目标**:
```
实车验证集:
NDS: > 0.65
mAP: > 0.60
mIoU: > 0.35
```
### 6.3 针对性优化 (2天)
```
□ Day 9-10 (01-09 ~ 01-10): 困难样本优化
□ 识别困难场景
□ 数据增强调整
□ 损失权重调整
□ 再训练5 epochs
□ 最终评估
```
**输出**:
- 实车最佳模型: vehicle_best.pth
- 性能报告: vehicle_evaluation_report.md
---
## Phase 7: 部署与测试 (2026年1月)
**时间**: 2026-01-11 ~ 2026-01-15 (5天)
**状态**: ⏸️ 等待Phase 6完成
**负责人**: 系统工程师 + 算法工程师
### 7.1 Orin部署 (2天)
```
□ Day 1 (01-11): 模型部署
□ TensorRT引擎加载
□ ROS节点封装
□ 参数配置
节点: bevfusion_perception_node
输入:
- /sensors/camera/front_standard/image_raw
- /sensors/camera/front_tele/image_raw
- /sensors/camera/front_left/image_raw
- /sensors/camera/front_right/image_raw
- /sensors/lidar/points
输出:
- /perception/objects_3d
- /perception/bev_segmentation
□ Day 2 (01-12): 性能测试
□ 离线数据回放测试
□ 推理延迟测试
□ 内存占用监控
□ 功耗测试
```
**目标**:
```
推理延迟: < 80ms (端到端)
GPU利用率: < 80%
功耗: < 50W
精度保持: NDS > 0.63
```
### 7.2 实车集成测试 (2天)
```
□ Day 3 (01-13): 封闭场地测试
□ 静态目标检测验证
□ 动态目标跟踪验证
□ BEV分割验证
□ 实时性能监控
测试项目:
✓ 车辆检测 (0-50m)
✓ 行人检测 (0-30m)
✓ 可行驶区域分割
✓ 多目标场景 (>20个)
✓ 快速运动 (60km/h)
□ Day 4 (01-14): 开放道路测试
□ 城市道路行驶 (2小时)
□ 高速公路行驶 (1小时)
□ 数据记录与分析
□ 错误case收集
```
### 7.3 最终优化 (1天)
```
□ Day 5 (01-15): 调优与验收
□ 参数调优 (置信度阈值等)
□ 后处理优化
□ 稳定性测试
□ 性能报告
□ 项目验收
```
---
## 🔧 关键技术方案
### 方案1: 4相机配置适配
**挑战**: 从6相机 → 4相机
**解决方案**:
```python
# configs/vehicle_4cam/vehicle_multitask.yaml
model:
encoders:
camera:
backbone:
type: SwinTransformer
init_cfg:
checkpoint: runs/enhanced_from_epoch19/epoch_10.pth
# 权重会自动适配,多余的相机层会被忽略
vtransform:
in_channels: 512
out_channels: 80
num_cameras: 4 # 改为4
image_size: [384, 1280] # 更高分辨率
feature_size: [48, 160]
# 数据pipeline
train_pipeline:
- type: LoadMultiViewImageFromFiles
num_views: 4
to_float32: true
- type: LoadPointsFromFile
...
```
**测试策略**:
1. 先在nuScenes上测试4相机配置 (仅用前4个)
2. 验证性能下降幅度 (预期 < 5%)
3. 再用实车数据微调
### 方案2: 双焦距相机融合
**挑战**: 标准FOV + 长焦FOV的特征融合
**解决方案A: 直接拼接** (简单)
```python
# 将长焦相机视为独立视角
# 模型自动学习融合策略
camera_order = [
'CAM_FRONT_STANDARD', # idx 0
'CAM_FRONT_TELE', # idx 1
'CAM_FRONT_LEFT', # idx 2
'CAM_FRONT_RIGHT' # idx 3
]
```
**解决方案B: 特征融合** (推荐)
```python
# 在BEV fusion阶段融合
class DualFocalFuser(nn.Module):
def forward(self, feat_standard, feat_tele):
# 标准FOV负责近距离 (0-60m)
# 长焦FOV负责远距离 (40-120m)
# 重叠区域 (40-60m) 加权融合
weight = self.distance_attention(bev_coords)
fused = weight * feat_standard + (1-weight) * feat_tele
return fused
```
### 方案3: 数据采集与标注流水线
**并行流程**:
```
Week 2: 采集2000帧
↓ (当天)
数据质检 → 预标注 → 导入CVAT
↓ (2天后)
Week 3: 开始标注Week2数据
同时: 采集新的2500帧
Week 4: 标注Week2数据完成
同时: 标注Week3数据
同时: 采集新的3500帧
Week 5-6: 持续并行...
优势:
✓ 节省时间 (总时间 = 采集 + 标注,而非相加)
✓ 快速反馈 (标注问题及时调整采集)
✓ 资源充分利用
```
**流水线工具**:
```bash
#!/bin/bash
# scripts/data_pipeline.sh
# 每日执行: 采集 → 转换 → 预标注 → 导入CVAT
DATE=$(date +%Y_%m_%d)
# 1. 采集数据 (当天)
roslaunch vehicle_perception record_data.launch \
output_dir=/data/vehicle_data/$DATE
# 2. 数据转换
python tools/extract_from_rosbag.py \
--bag /data/vehicle_data/$DATE/*.bag \
--output /data/vehicle_data/$DATE/extracted
# 3. 质量检查
python tools/check_data_quality.py \
--data_root /data/vehicle_data/$DATE/extracted
# 4. 预标注
python tools/auto_prelabel.py \
--model runs/enhanced_from_epoch19/epoch_10.pth \
--data_root /data/vehicle_data/$DATE/extracted \
--output /data/vehicle_data/$DATE/prelabels
# 5. 导入CVAT
python tools/import_to_cvat.py \
--data_root /data/vehicle_data/$DATE/extracted \
--prelabels /data/vehicle_data/$DATE/prelabels \
--task_name "vehicle_$DATE"
echo "✅ $DATE 数据已准备就绪,可开始标注"
```
---
## 📊 资源与成本
### 计算资源
```
训练服务器 (Phase 3-6):
- 6x Tesla V100 32GB
- 使用时间: 30天
- 成本: 已有资源
Orin开发板 (Phase 7):
- NVIDIA Orin AGX 64GB × 1
- 成本: ¥25000
存储:
- 训练数据: 2TB SSD
- 实车数据: 2TB SSD
- 成本: ¥4000
```
### 人力资源
```
核心团队:
- 算法工程师 × 1 (全程, 12周)
- 系统工程师 × 1 (Phase 5-7, 8周)
标注团队 (Phase 5):
- 标注组长 × 1 (6周)
- 初标员 × 6 (6周)
- 审核员 × 2 (6周)
- 技术支持 × 1 (6周)
总人月: ~6人月
```
### 时间成本
```
Phase 3: 9天 (已进行4天剩余5天)
Phase 4: 17天
Phase 5: 52天 (采集+标注并行)
Phase 6: 10天
Phase 7: 5天
────────────────
总计: 93天 ≈ 3个月
关键路径: Phase 5 (52天)
可优化: 增加标注团队缩短至4周
```
---
## 🎯 关键里程碑
| 编号 | 里程碑 | 计划时间 | 交付物 | 状态 |
|------|--------|----------|--------|------|
| M1 | 基础训练完成 | 10-10 | epoch_19.pth, NDS 0.68 | |
| M2 | 增强训练启动 | 10-21 | 训练脚本 | |
| M3 | 增强训练完成 | 10-29 | epoch_23.pth, NDS>0.70 | 🔥 |
| M4 | 传感器标定完成 | 10-31 | 标定参数 | ⏳ |
| M5 | 采集系统就绪 | 11-01 | 采集脚本 | ⏳ |
| M6 | 初期数据采集 | 11-07 | 2000帧 | ⏳ |
| M7 | 标注系统就绪 | 11-14 | CVAT + 培训 | ⏳ |
| M8 | 模型压缩完成 | 11-15 | 压缩模型, 28M参数 | ⏳ |
| M9 | 数据采集完成 | 12-08 | 10000帧原始数据 | ⏳ |
| M10 | 数据标注完成 | 12-26 | 10000帧标注 | ⏳ |
| M11 | 数据转换完成 | 12-31 | 训练格式PKL | ⏳ |
| M12 | 实车微调完成 | 01-10 | 实车模型 | ⏳ |
| M13 | Orin部署完成 | 01-12 | TensorRT引擎 | ⏳ |
| M14 | 实车测试完成 | 01-15 | 测试报告 | ⏳ |
---
## 📈 成功标准
### 技术指标
**nuScenes验证集 (Phase 3)**:
```
✅ NDS: > 0.70 (当前0.6968)
✅ mAP: > 0.65 (当前0.6502)
□ mIoU: > 0.40 (当前0.3912)
```
**实车验证集 (Phase 6)**:
```
□ NDS: > 0.65
□ mAP: > 0.60
□ mIoU: > 0.35
□ 各场景稳定性 > 90%
```
**部署性能 (Phase 7)**:
```
□ 推理延迟: < 80ms (Orin)
□ GPU利用率: < 80%
□ 功耗: < 50W
□ 连续运行: > 8小时无故障
```
### 数据质量标准
**采集质量**:
```
✓ 时间同步: < 50ms
✓ 数据完整性: > 99%
✓ 场景覆盖: 6类场景均衡
✓ 天气条件: 3种天气
```
**标注质量**:
```
✓ 3D Box IoU: > 0.7
✓ 中心误差: < 10cm
✓ 角度误差: < 3°
✓ 召回率: > 95%
✓ BEV分割边界精度: < 2像素
```
---
## 📋 每周检查点
### Phase 3期间 (10月)
```
Week 1 (10/21-10/27):
□ Epoch 11-16 训练
□ 监控性能趋势
□ 准备传感器标定
Week 2 (10/28-10/29):
□ Epoch 17-23 完成
□ 最终评估
□ 选择最佳checkpoint
```
### Phase 5期间 (11-12月)
```
Week 1 (10/25-10/31):
□ 传感器集成与标定
Week 2-6 (11/01-12/08):
□ 采集: 每周1600-2000帧
□ 标注: 滚动标注每周1500-2000帧
□ 质量: 每周审核上周标注
Week 7-9 (12/09-12/26):
□ 补充采集
□ 完成标注
□ 质量全面审核
Week 10 (12/27-12/31):
□ 数据转换
□ 最终验证
```
### Phase 6-7期间 (1月)
```
Week 1 (01/01-01/07):
□ 配置调整
□ 微调训练
Week 2 (01/08-01/15):
□ 部署测试
□ 实车验证
□ 项目交付
```
---
## 🚨 风险管理
### 风险1: 采集进度延误
```
风险: 天气、车辆可用性影响采集
概率: 中
影响: 高 (阻塞后续)
对策:
✓ 预留2周缓冲时间
✓ 多车辆备份
✓ 室内场景作为补充
✓ 合成数据增强
```
### 风险2: 标注质量不达标
```
风险: 标注精度、一致性问题
概率: 中
影响: 高
对策:
✓ 预标注辅助 (节省80%时间,提升一致性)
✓ 三轮审核机制
✓ 自动化质量检查
✓ 关键场景专家审核
✓ 建立标注SOP文档
```
### 风险3: 4相机性能下降
```
风险: 减少2个后视相机后方盲区
概率: 高
影响: 中
对策:
✓ 前视覆盖范围更大 (4个相机都朝前)
✓ 重点优化前方检测性能
✓ LiDAR补充后方感知
✓ 实车场景主要关注前方
✓ 如需要,可后期增加后视相机
```
### 风险4: 长焦相机适配问题
```
风险: 长焦相机FOV差异大特征不匹配
概率: 中
影响: 中
对策:
✓ 独立的特征提取分支
✓ 距离感知融合策略
✓ 充分的实车数据训练
✓ 渐进式融合 (先标准相机,再加长焦)
```
### 风险5: Orin性能不足
```
风险: 推理速度或精度不达标
概率: 低
影响: 高
对策:
✓ 激进的模型压缩 (目标25M参数)
✓ TensorRT深度优化
✓ FP16/INT8量化
✓ 降低BEV分辨率 (200→128)
✓ 多线程pipeline优化
```
---
## 💰 预算估算
### 硬件成本
```
NVIDIA Orin AGX 64GB: ¥25,000
相机 × 4: ¥12,000 (¥3000/个)
LiDAR (已有): ¥0
存储 (4TB SSD): ¥4,000
────────────────────────────────
小计: ¥41,000
```
### 人力成本
```
算法工程师 (3个月): 已有
系统工程师 (2个月): 已有
标注团队 (1.5个月): 外包 ¥80,000
────────────────────────────────
小计: ¥80,000
```
### 云资源
```
训练GPU (已有): ¥0
标注服务器: ¥2,000 (云服务器2个月)
────────────────────────────────
小计: ¥2,000
```
### 总预算
```
硬件: ¥41,000
人力: ¥80,000
云资源: ¥2,000
────────────────
总计: ¥123,000
```
---
## 📝 交付清单
### 代码与模型
```
□ 训练代码
□ nuScenes训练配置
□ 实车4相机配置
□ 数据增强策略
□ 模型文件
□ nuScenes最佳模型 (epoch_XX.pth)
□ 压缩模型 (pruned_model.pth)
□ 实车微调模型 (vehicle_best.pth)
□ TensorRT引擎 (bevfusion_fp16.trt)
□ 推理代码
□ ROS节点
□ 可视化工具
□ 性能监控工具
```
### 数据集
```
□ 实车数据集
□ 原始数据 (10000帧)
□ 标注数据 (3D box + BEV mask)
□ 训练格式 (PKL)
□ 数据集统计报告
□ 标定文件
□ 4相机内参
□ 相机-LiDAR外参
□ 标定验证报告
```
### 文档
```
□ 技术文档
✅ nuScenes数据格式与实车标注指南.md
✅ 3D标注详细指南.md
✅ BEVFusion完整项目路线图.md
✅ BEVFusion实车部署完整计划.md (本文档)
□ 实车部署手册.md
□ 标定流程文档.md
□ 性能报告
✅ Epoch 10性能评估
□ 最终训练报告
□ 模型压缩报告
□ 实车测试报告
```
---
## 🔄 项目管理
### 每周例会 (周一 10:00)
**议程**:
1. 上周进度回顾
2. 本周计划确认
3. 风险识别与对策
4. 资源协调
5. 技术问题讨论
**Phase 5重点关注**:
- 采集进度 vs 计划
- 标注质量抽检结果
- 困难场景处理策略
- 团队效率优化
### 日报 (异步Slack/钉钉)
**每日更新**:
```
[2025-10-25 日报]
- 训练进度: Epoch 11 (26.7%)
- 采集进度: 标定进行中
- 标注进度: 系统搭建中
- 问题: 无
- 明日计划: 完成Epoch 11训练
```
### 文档管理
**文档库结构**:
```
/workspace/bevfusion/docs/
├── 01_项目规划/
│ ├── BEVFusion实车部署完整计划.md (本文档)
│ └── BEVFusion完整项目路线图.md
├── 02_技术文档/
│ ├── nuScenes数据格式与实车标注指南.md
│ ├── 3D标注详细指南.md
│ ├── MapTR代码研究报告.md
│ └── MapTR集成实战指南.md
├── 03_训练报告/
│ ├── Epoch_10_评估报告.md
│ └── 最终训练报告.md (待)
├── 04_部署文档/
│ ├── 实车部署手册.md (待)
│ ├── 标定流程文档.md (待)
│ └── Orin优化指南.md (待)
└── 05_测试报告/
└── 实车测试报告.md (待)
```
---
## 📞 联系与支持
### 项目负责人
```
算法负责人: [姓名]
系统负责人: [姓名]
标注负责人: [姓名]
```
### 技术支持
```
CVAT问题: cvat-support@xxx.com
硬件问题: hardware-team@xxx.com
紧急联系: [电话]
```
---
## 🎓 总结
### 项目特点
```
✅ 端到端完整方案
✅ nuScenes → 实车迁移
✅ 采集+标注并行 (节省时间)
✅ 4相机创新配置 (标准+长焦)
✅ 全流程工具支持
```
### 核心优势
```
✅ 性能领先: NDS 0.697,超越大多数方法
✅ 多任务学习: 检测+分割联合优化
✅ 工业化流程: 完整的数据工具链
✅ 可复制性强: 详细文档和代码
```
### 创新点
```
🌟 双焦距融合: 标准FOV + 长焦FOV
🌟 前视加强: 4相机全部朝前
🌟 并行流水线: 采集与标注同步
🌟 自动预标注: 节省80%标注时间
```
---
**下一步行动** (本周):
1. ✅ 监控Phase 3训练 (优先级最高)
2. ⏳ 启动传感器标定准备
3. ⏳ 部署CVAT标注系统
4. ⏳ 准备数据采集硬件
**长期目标**:
🎯 2026年1月15日实现实车部署上线
---
**文档版本**: v2.0
**适用项目**: BEVFusion实车4相机部署
**技术栈**: BEVFusion + PyTorch + TensorRT + CVAT + ROS