Gst-nvinferaudio#
Gst-nvinferaudio 插件使用 NVIDIA® TensorRT™ 对输入数据执行推理。该插件接受来自上游的批量音频缓冲区。NvDsBatchMeta 结构必须已附加到 Gst 缓冲区。底层库 (libnvds_infer) 对维度为 CHW 的转换音频数据进行操作。Gst-nvinferaudio 插件根据 audio-transform
属性设置对输入帧执行转换(对数梅尔频谱图),并将转换后的音频数据传递到 TensorRT 引擎进行推理。底层库生成的输出类型取决于网络类型。
Gst-nvinferaudio 目前适用于以下类型的网络
编码器解码器 RNN 架构
CNN
TensorRT 接口的详细文档请见:https://docs.nvda.net.cn/deeplearning/sdk/tensorrt-developer-guide/index.html
下游组件接收带有未修改内容的 Gst 缓冲区,以及从 Gst-nvinferaudio 插件的推理输出创建的元数据。
输入和输出#
本节概述 Gst-nvinferaudio 插件的输入、输出和通信工具。
输入
Gst 缓冲区
NvDsBatchMeta(附加 NvDsFrameMeta)
ONNX
层:支持 TensorRT 支持的所有层,请参阅:https://docs.nvda.net.cn/deeplearning/sdk/tensorrt-developer-guide/index.html
控制参数
Gst-nvinferaudio 从配置文件获取控制参数。您可以通过设置属性 config-file-path 来指定此文件。有关详细信息,请参阅 Gst-nvinferaudio 文件配置规范。可以通过 GObject 属性设置的其他控制参数包括
批大小
推理间隔
将推理张量输出附加为缓冲区元数据
将实例掩码输出附加为对象元数据
通过 GObject 属性设置的参数将覆盖 Gst-nvinferaudio 配置文件中的参数。
输出
Gst 缓冲区
NvDsFrameMeta
NvDsClassifierMeta
特性#
下表概述了插件的特性。
Gst-nvinferaudio 插件特性# 特性
描述
发布
用于音频推理的 nvinferaudio 插件
引入 nvinferaudio
DeepStream 5.1.0
Gst-nvinferaudio 配置文件使用 https://specifications.freedesktop.org/desktop-entry-spec/latest 中描述的“密钥文件”格式。[property] 组配置插件的常规行为。它是唯一必需的组。[class-attrs-all] 组配置所有类别的检测参数。[class-attrs-<class-id>] 组配置由 <class-id> 指定的类别的检测参数。例如,[class-attrs-23] 组配置类别 ID 为 23 的检测参数。此类组具有与 [class-attrs-all] 相同的键。以下两个表分别描述了 [property] 组和 [class-attrs-…] 组支持的键。
Gst-nvinferaudio 属性组支持的键# 属性
含义
类型和范围
示例注释
网络类型/ 适用于 GIE(主要/辅助)num-detected-classes
网络检测到的类别数
整数,>0
num-detected-classes=91
检测器 两者
net-scale-factor
像素归一化因子
浮点数,>0.0
net-scale-factor=0.031
全部 两者
model-file
caffemodel 文件的路径名。如果使用 model-engine-file,则不需要
字符串
model-file=/home/ubuntu/model.caffemodel
全部 两者
proto-file
prototxt 文件的路径名。如果使用 model-engine-file,则不需要
字符串
proto-file=/home/ubuntu/model.prototxt
全部 两者
int8-calib-file
INT8 校准文件的路径名,用于使用 FP32 模型进行动态范围调整
字符串
int8-calib-file=/home/ubuntu/int8_calib
全部 两者
batch-size
在一个批次中一起推理的帧或对象数
整数,>0
batch-size=30
全部 两者
model-engine-file
序列化模型引擎文件的路径名
字符串
model-engine-file=/home/ubuntu/model.engine
全部 两者
onnx-file
ONNX 模型文件的路径名
字符串
onnx-file=/home/ubuntu/model.onnx
全部 两者
labelfile-path
包含模型标签的文本文件的路径名
字符串
labelfile-path=/home/ubuntu/model_labels.txt
检测器 & 分类器 两者
output-blob-names
输出层名称数组
分号分隔的字符串数组
对于检测器:output-blob-names=coverage;bbox
对于多标签分类器:output-blob-names = coverage_attrib1;coverage_attrib2
全部 两者
custom-lib-path
包含自定义模型自定义方法实现的库的绝对路径名
字符串
custom-lib-path=/home/ubuntu/libresnet_custom_impl.so
全部 两者
classifier-threshold
最小阈值标签概率。如果最高概率大于此阈值,则 GIE 输出具有最高概率的标签
浮点数,≥0
classifier-threshold=0.4
分类器 两者
output-tensor-meta
Gst-nvinfer 将原始张量输出附加为 Gst 缓冲区元数据。
布尔值
output-tensor-meta=1
全部 两者
network-type
网络类型
整数 0:检测器 1:分类器 2:分割 3:实例分割
network-type=1
全部 两者
parse-classifier-func-name
自定义分类器输出解析函数的名称。如果未指定,Gst-nvinfer 将对 softmax 层使用内部解析函数。
字符串
parse-classifier-func-name=parse_bbox_softmax
分类器 两者
custom-network-config
用于创建 CUDA 引擎的自定义接口中可用的自定义网络的配置文件路径名。
字符串
custom-network-config=/home/ubuntu/network.config
全部 两者
workspace-size
引擎要使用的工作区大小,以 MB 为单位
整数,>0
workspace-size=45
全部 两者
force-implicit-batch-dim
当网络同时支持隐式批次维度和完整维度时,强制使用隐式批次维度模式。
布尔值
force-implicit-batch-dim=1
全部 两者
infer-dims
要设置在图像输入层上的绑定维度。
通道;
infer-dims=3;224;224
全部 两者
uff-input-order
UFF 输入层顺序
整数 0:NCHW 1:NHWC 2:NC
uff-input-order=1
全部 两者
engine-create-func-name
自定义 TensorRT CudaEngine 创建函数的名称。有关详细信息,请参阅“自定义模型实现接口”部分
字符串
engine-create-func-name=NvDsInferYoloCudaEngineGet
全部 两者
output-io-formats
指定绑定输出层的数据类型和顺序。对于未指定的层,默认为 FP32 和 CHW
分号分隔的格式列表。<output-layer1-name>:<data-type>:<order>;<output-layer2-name>:<data-type>:<order>
data-type 应为 [fp32、fp16、int32、int8] 之一
order 应为 [chw、chw2、chw4、hwc8、chw16、chw32] 之一
output-io-formats=conv2d_bbox:fp32:chw;conv2d_cov/Sigmoid:fp32:chw
全部 两者
Layer-device-precision
指定网络中任何层的设备类型和精度
分号分隔的格式列表。<layer1-name>:<precision>:<device-type>;<layer2-name>:<precision>:<device-type>;
precision 应为 [fp32、fp16、int8] 之一
Device-type 应为 [gpu、dla] 之一
layer-device-precision= output_cov/Sigmoid:fp32:gpu;output_bbox/BiasAdd:fp32:gpu;
全部 两者
Gst-nvinferaudio 类属性组支持的键# 名称
描述
类型和范围
示例注释
(主要/辅助)
threshold
检测阈值
浮点数,≥0
threshold=0.5
对象检测器 两者
Gst 属性#
通过 Gst 属性设置的值将覆盖配置文件中属性的值。应用程序出于某些需要以编程方式设置的属性执行此操作。下表描述了 Gst-nvinferaudio 插件的 Gst 属性。
属性 |
含义 |
类型和范围 |
示例注释 |
---|---|---|---|
config-file-path |
Gst-nvinfer 元素的配置文件绝对路径名 |
字符串 |
config-file-path=config_infer_primary.txt |
unique-id |
唯一 ID,用于标识由此 GIE 生成的元数据 |
整数,| 0 到 4,294,967,295 |
unique-id=1 |
infer-on-gie-id |
请参阅配置文件表中的 operate-on-gie-id |
整数,0 到 4,294,967,295 |
infer-on-gie-id=1 |
operate-on-class-ids |
请参阅配置文件表中的 operate-on-class-ids |
以冒号分隔的整数(类别 ID)数组 |
operate-on-class-ids=1:2:4 |
filter-out-class-ids |
请参阅配置文件表中的 filter-out-class-ids |
分号分隔的整数数组 |
filter-out-class-ids=1;2 |
model-engine-file |
预生成的序列化引擎文件的绝对路径名,用于该模式 |
字符串 |
model-engine-file=model_b1_fp32.engine |
batch-size |
在一个批次中一起推理的音频帧数 |
整数,1 – 4,294,967,295 |
batch-size=4 |
间隔 |
要跳过推理的连续批次数 |
整数,0 到 32 |
interval=0 |
gpu-id |
用于预处理/推理的 GPU 的设备 ID(仅限 dGPU) |
整数,0-4,294,967,295 |
gpu-id=1 |
raw-output-file-write |
原始推理输出文件的路径名 |
布尔值 |
raw-output-file-write=1 |
raw-output-generated-callback |
指向原始输出生成回调函数的指针 |
指针 |
无法通过 gst-launch 设置 |
raw-output-generated-userdata |
指向要与 raw-output-generated-callback 一起提供的用户数据的指针 |
指针 |
无法通过 gst-launch 设置 |
output-tensor-meta |
指示是否将张量输出作为元数据附加到 GstBuffer 上。 |
布尔值 |
output-tensor-meta=0 |
output-instance-mask |
Gst-nvinfer 将实例掩码输出附加到对象元数据中。 |
布尔值 |
output-instance-mask=1 |
audio-transform |
转换名称和参数 |
类型为“GstStructure”的 Boxed 指针 |
audio-transform= melsdb,fft_length=2560,hop_size=692,dsp_window=hann, num_mels=128,sample_rate=44100,p2db_ref=(float)1.0, p2db_min_power=(float)0.0,p2db_top_db=(float)80.0 |
audio-framesize |
用于转换的帧大小 |
无符号整数。范围:0 - 4294967295 |
audio-framesize=441000 |
audio-hopsize |
用于转换的跳跃大小 |
无符号整数。范围:0 - 4294967295 |
audio-hopsize=110250 |
音频转换参数 |
描述 |
---|---|
audio-transform |
选项:melsdb |
fft_length |
FFT 长度(无符号整数) |
hop_size |
跳跃大小(无符号整数) |
num_frequencies |
指定 FFT 长度的频率箱数量(无符号整数) |
dsp_window |
DSP 窗口类型 (char*) 选项:none hann hamming |
num_mels |
梅尔箱数量(无符号整数) |
sample_rate |
采样率(无符号整数) |
p2db_ref |
用于 power_to_db 参考的 DSP 参数(浮点数) |
p2db_min_power |
用于 power_to_db 最小功率的 DSP 参数(浮点数) |
p2db_top_db |
用于 power_to_db 顶部 DB 的 DSP 参数(浮点数) |
attach-sys-ts |
支持待定,将在未来版本中添加。 |