Gst-nvds3dfilter#
Gst-nvds3dfilter 插件是一个可自定义的插件,它提供了一个自定义库接口来加载组件 ds3d::datafilter
。
该插件完全通过 YAML 格式的内容或文件进行配置。sink_caps
和 src_caps
也是可配置的。

自定义库接口#
插件解析配置文件或内容,并设置 SinkCaps 和 SrcCaps。从 custom_lib_path
加载自定义 ds3d::datafilter
。通过 custom_create_function
创建此 datafilter。
有关 ds3d::datafilter
的更多详细信息,请参阅 DS3D 手册 ds3d::datafilter- DS3D 自定义 DataFilter。
输入和输出#
输入
NvDs3DBuffer 或
元数据 (NvDsBatchMeta),其中包含用户元数据 NVDS_3D_DATAMAP_META_TYPE
控制参数
config-file
config-content
输出
NvDs3DBuffer 或
元数据 (NvDsBatchMeta),其中包含用户元数据 NVDS_3D_DATAMAP_META_TYPE
sink_caps
从
in_caps: ds3d/datamap
字段或任何用户指定的in_caps:
解析。
src_caps
从
out_caps: ds3d/datamap
字段或任何用户指定的out_caps:
解析。
配置文件#
- 示例
name: multimodal_triton_infer type: ds3d::datafilter in_caps: ds3d/datamap out_caps: ds3d/datamap custom_lib_path: libnvds_tritoninferfilter.so custom_create_function: createLidarInferenceFilter config_body: in_streams: [color, depth]
Gst-nvds3dfilter 属性规范#
属性 |
描述 |
版本 |
---|---|---|
config-content |
yaml 配置文件内容 |
DS 6.1 |
config-file |
yaml 配置文件路径 |
DS 6.1 |
支持的 DS3D filter 自定义库#
这些自定义库是 DeepStream 发行包的一部分。
DS3D Data filter |
Data filter 自定义库 |
创建实例函数 |
描述 |
---|---|---|---|
Multi-Modal-triton-infer |
|
|
多模态传感器数据推理库,详见 libnvds_tritoninferfilter 配置规范 |
Data-alignment |
|
|
激光雷达/相机传感器内参和外参以及对齐 |
Depth-2-point-cloud |
|
|
将图像深度数据转换为 3D 点云数据,详见 自定义 datafilter libnvds_3d_depth2point_datafilter 配置规范 |
自定义 ds3d::datafilter
库:libnvds_3d_alignment_datafilter.so
#
来自 ds3d/datamap
缓冲区的输入 kLidarXYZI
被转换为 kLidarXYZIAligned
。这通过一系列变换完成。
变换 在对齐过滤器内部完成,并在 KITTI 数据格式和校准数据参考的帮助下进行描述。
变换 ID |
详情 |
---|---|
AL_TR_1 |
|
AL_TR_2 |
|
AL_TR_3 |
|
在 DeepStream 世界中
cam_intrinsic |
|
lidar_to_cam_extrisic |
是一个 3X4 矩阵 = matrix_multiply(R0_rect, Tr_velo_to_cam) |
更多信息请点击此处:对齐配置选项。
输入和输出#
输入
ds3d/datamap
控制参数
config-file
config-content
输出
ds3d/datamap
配置文件#
- 示例
name: lidar_alignment_filter type: ds3d::datafilter link_to: ds3d_aligned_render in_caps: ds3d/datamap out_caps: ds3d/datamap custom_lib_path: libnvds_3d_alignment_datafilter.so custom_create_function: createLidarAlignmentFilter config_body: cam_width: 1242 cam_height: 375 cam_intrinsic: [7.215377000000e+02, 0.000000000000e+00, 0.000000000000e+00, 0.000000000000e+00, 7.215377000000e+02, 0.000000000000e+00, 6.095593000000e+02, 1.728540000000e+02, 1.000000000000e+00, 4.485728000000e+01, 2.163791000000e-01, 2.745884000000e-03] #lidar_to_cam_extrisic is a 3X4 matrix = matrix_multiply(R0_rect, Tr_velo_to_cam); #lidar_to_cam_extrisic is in column major order #For more details on R0_rect and Tr_velo_to_cam, please check: https://github.com/lkk688/3DDepth/blob/main/README.md lidar_to_cam_extrisic: [2.34773698e-04, 1.04494074e-02, 9.99945389e-01, -9.99944155e-01, 1.05653536e-02, 1.24365378e-04, -1.05634778e-02, -9.99889574e-01, 1.04513030e-02, -2.79681694e-03, -7.51087914e-02, -2.72132796e-01] #cam input keys to ratain in the output datamap cam_input_keys: [DS3D::ColorFrame+1] #lidar input and output/aligned keys to retain in the output datamap #note: lidar_input_keys and lidar_aligned_keys map the same sensor data lidar_input_keys: [DS3D::LidarXYZI+0] lidar_aligned_keys: [DS3D::LidarAlignedXYZIKey] max_points: 2073600 mem_pool_size: 32 align_to_intrinsic: false lidar_element_size: 4
配置选项#
config-key |
描述 |
示例值 |
---|---|---|
cam_width |
用于视频输入的相机图像宽度。 |
1242 |
cam_height |
用于视频输入的相机图像高度。 |
375 |
cam_intrinsic |
是以列优先顺序排列的 3X4 矩阵。
|
[3X4] 矩阵,列优先顺序。 |
lidar_to_cam_extrisic |
是一个 3X4 矩阵 = matrix_multiply(R0_rect, Tr_velo_to_cam);
|
[3X4] 矩阵,列优先顺序。 |
lidar_input_key |
用于从输入 datamap 缓冲区获取激光雷达输入的键名。 |
DS3D::LidarXYZI+0 |
lidar_aligned_key |
用于激光雷达输出的键名,由对齐过滤器新添加到输出 datamap 缓冲区中。 |
DS3D::LidarAlignedXYZIKey |
max_points |
输入 datamap 中激光雷达点的最大数量,位于
|
2048000 |
mem_pool_size |
对齐过滤器维护一个内部池。
|
4 |
align_to_intrinsic |
|
True |
lidar_element_size |
|
4 |