DeepStream-3D 多模态 V2XFusion 设置#

该管线有效处理来自 4 个摄像头和 4 个对应激光雷达的数据,使用一种新模型推理 3D 边界框,该模型结合了 BEVFusion 模型和 BEVHeight 模型,以获得更准确的检测结果。该模型由 DAIR-V2X 数据集 预训练。该管线无缝使用 ds3d::datatfiler 进行 Triton 推理。最终,用户可以推理 4 个摄像头的视频/图像和相应的激光雷达数据,以检测道路上不同物体的 3D 边界框。结果可以与视频/图像一起可视化,并通过不同的渲染配置以不同的方式投影激光雷达点云。

DeepStream 3D Lidar V2XFusion pipeline overview

先决条件#

按照 apps/sample_apps/deepstream-app/README 文件中的说明安装通用 DeepStream SDK 模块的先决条件。

按照 samples/configs/deepstream-app-triton/README 文件中的说明准备 Triton Server 环境。

必须为 DS3D 示例应用程序安装以下开发包

  • GStreamer-1.0

  • GStreamer-1.0 基础插件

  • GLES 库

  • libyaml-cpp-dev

入门#

启动用于 V2XFusion 测试的 deepstream-triton 基础容器。如果用户已在 Jetson 主机上手动安装了 Triton 依赖项,请跳过此步骤。

# running cmdline outside of the container
$ xhost +
# export DOCKER_GPU_ARG="--runtime nvidia --privileged" # for Jetson Orin
$ export DOCKER_GPU_ARG="--gpus all" # for x86

# start the container interactively
$ docker run $DOCKER_GPU_ARG -it --rm --ipc=host --net=host -v /tmp/.X11-unix:/tmp/.X11-unix \
    -e DISPLAY=$DISPLAY \
    -w /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-3d-lidar-sensor-fusion \
    nvcr.io/nvidia/deepstream:{xx.xx.xx}-triton-multiarch
# {xx.xx.xx} is deepstream sdk version number

要开始使用,请导航到以下目录

$ cd /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-3d-lidar-sensor-fusion
# sudo chmod -R a+rw . # Grant read/write permission if running on Jetson host

下载 V2XFusion 模型并构建 TensorRT 引擎文件#

V2XFusion 预训练模型下载链接 下载预训练模型,并将其放入 v2xfusion/models/v2xfusion 文件夹。

AIR-THU/DAIR-V2X 下载 V2X-Seq-SPD (V2X-Seq Perception Dataset) 示例数据集,并将下载的 V2X-Seq-SPD-Example.zip 放入 v2xfusion/scripts 文件夹。

$ cd /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-3d-lidar-sensor-fusion/v2xfusion/scripts
$ ls V2X-Seq-SPD-Example.zip # verify the dataset is ready

请确保您拥有最新的 python 包

$ sudo pip install --upgrade setuptools packaging
$ sudo pip cache purge

运行脚本以生成模型 TensorRT 引擎文件和 ds3d 所需的数据集。

$ pip install gdown python-lzf
$ cd /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-3d-lidar-sensor-fusion/v2xfusion/scripts
$ gdown 1gjOmGEBMcipvDzu2zOrO9ex_OscUZMYY
$ ./prepare.sh dataset

注意:示例数据集由 https://thudair.baai.ac.cn/coop-forecast 提供。对于用户选择使用的每个数据集,用户有责任检查数据集许可证是否适合预期用途。

启动 DS3D V2XFusion 管线#

$ cd /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-3d-lidar-sensor-fusion
$ deepstream-3d-lidar-sensor-fusion -c ds3d_lidar_video_sensor_v2x_fusion.yml

从源代码构建:#

  • 编译示例应用程序 deepstream-3d-lidar-sensor-fusion

$ make
$ sudo make install (sudo not required in case of docker containers)

注意:要编译源代码,请使用 “sudo” 或 root 权限运行 make。

  • 从源代码编译示例应用程序 deepstream-3d-lidar-sensor-fusion 的自定义预处理和后处理库

$ cd /opt/nvidia/deepstream/deepstream/sources/libs/ds3d/inference_custom_lib/ds3d_v2x_infer_custom_preprocess
# sudo not required in case of docker containers
$ sudo make install
$ cd /opt/nvidia/deepstream/deepstream/sources/libs/ds3d/inference_custom_lib/ds3d_v2x_infer_custom_postprocess
# sudo not required in case of docker containers
$ sudo make install