3D运动估计项目

先进的3D场景流估计与运动分析解决方案

1. 3D运动估计任务挑战

1.1 无法获取逐点的3D速度或3D位移GT

  • 缺乏高精度的逐点3D运动数据作为训练和评估的基准。
  • 获取真实标注数据的成本高且耗时。

1.2 缺乏开源的3D场景流估计基线网络

  • 现有开源代码中没有适用于3D场景流估计的基线网络。
  • 现有网络因计算量大和复杂算子众多,难以作为基准。

1.3 多种算子不支持

  • 常见的3D场景流估计算法涉及多种不兼容或难以实现的算子。
  • 导致项目在实际应用中面临实现和优化的挑战。
3D运动估计示意图1
3D运动流估计的不同方案
自动流估计示意图
3D运动流自动标注Pipeline

2. 主要工作

2.1 构建3D场景流训练集

  • 收集并整理多源数据以创建高质量的训练集。
  • 确保数据涵盖多种场景和运动类型,以提高模型的泛化能力。

2.2 构建并维护两种3D场景流估计网络

  • 设计高效的网络架构以处理大规模点云数据。
  • 优化网络以支持多种复杂的算子,同时保持计算效率。
  • 定期维护和更新网络,确保其在新的数据和场景中的表现。
网络性能评估
Onnx模型性能评估

3. 自动标注框架

自动标注框架架构图
自动标注框架架构图

设计和实现了一套自动标注框架,能够高效地为3D场景流估计网络生成准确的标签。该框架利用先进的算法和优化技术,显著减少了手动标注的工作量,并提升了标注的精度和一致性。

4. 在公开数据集上的实验

实验结果示意图
在公开数据集上的实验结果示意图

在多个公开数据集上进行了广泛的实验,验证了所构建的3D场景流估计网络的有效性和鲁棒性。实验结果显示,所提方法在精度和计算效率方面均优于现有的基线方法,尤其在复杂场景和高负载条件下表现尤为出色。

5. 模型效果评估与可视化

视频1:自动标注场景流估计可视化

6. 模型训练和部署

6.1 浮点模型训练

标准训练流程包括以下步骤:

  • 前向传播:输入3D点云数据,通过深度学习模型计算预测结果。
  • 计算损失:根据预测值与真实标签计算损失函数。
  • 反向传播:通过梯度下降算法更新模型参数。

6.2 板端部署阶段

在将训练完成的模型部署到英伟达 Orin 和地平线 J6E 等硬件平台时,主要流程如下:

  1. 模型转换与优化
    • 将训练好的浮点或量化模型导出为 ONNX 格式。
    • 使用平台提供的工具进行模型优化:
      • 对于英伟达 Orin:使用 TensorRT 优化 ONNX 模型。
      • 对于地平线 J6E:使用 Horizon 提供的模型转换工具(如 Horizon SDK 或工具链)。
    • 验证优化后的模型是否与原始模型输出一致。
  2. 部署环境准备
    • 在目标平台上安装必要的运行时库和驱动。
    • 创建运行时句柄并加载优化后的模型。
    • 配置输入输出张量参数:数据布局、数据类型、内存类型等。
  3. 推理流程
    • 数据预处理:读取3D点云、初始化缓存、标准化处理。
    • 模型推理:调用目标平台的推理接口完成模型计算。
      • 英伟达 Orin:使用 TensorRT 的推理 API。
      • 地平线 J6E:使用 Horizon SDK 的推理接口(如 Horizon Inference API)。
    • 结果后处理:解析模型输出,生成可用结果并统计性能指标。