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

28 KiB
Raw Blame History

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相机

解决方案:

# 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: 直接拼接 (简单)

# 将长焦相机视为独立视角
# 模型自动学习融合策略
camera_order = [
    'CAM_FRONT_STANDARD',  # idx 0
    'CAM_FRONT_TELE',      # idx 1
    'CAM_FRONT_LEFT',      # idx 2
    'CAM_FRONT_RIGHT'      # idx 3
]

解决方案B: 特征融合 (推荐)

# 在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: 持续并行...

优势:
✓ 节省时间 (总时间 = 采集 + 标注,而非相加)
✓ 快速反馈 (标注问题及时调整采集)
✓ 资源充分利用

流水线工具:

#!/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