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