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-nvinferaudio

下游组件接收带有未修改内容的 Gst 缓冲区,以及从 Gst-nvinferaudio 插件的推理输出创建的元数据。

输入和输出#

本节概述 Gst-nvinferaudio 插件的输入、输出和通信工具。


  • 控制参数

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 属性。

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

Gst-nvinferaudio audio-transform 参数结构#

音频转换参数

描述

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

支持待定,将在未来版本中添加。