串流插件
mxpi_parallel2serial
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必填项 | 是否可修改 |
|---|---|---|---|
| dataSource | 输入数据对应索引(通常情况下为上游元件名称),可以配置多个,以逗号隔开。 | 否 | 是 |
| removeParentData | 删除原Buffer数据,默认为0。0:不删除原Buffer数据。1:删除原Buffer数据。 | 否 | 是 |
| status | 串行化插件的工作模式。0:异步(默认)。异步模式下,各路buffer到达后直接发送。1:同步。同步模式下,需全部输入的buffer都到齐后再一起发送(按端口顺序)。 | 否 | 是 |
-
配置dataSource属性,串行化插件会挂载元数据,并将数据按照接收的顺序发送给下游插件。

假定串行化插件mxpi_parallel2serial0接收数据的顺序为demoA0,demoA1。
- 串行化插件将以demoA0为key在demoA0传递的buffer上获取元数据。
- 以mxpi_parallel2serial0为key挂载上一步骤中获取的元数据。
- 将buffer发送给下游插件demoB。
- demoA1数据重复以上步骤进行处理。
-
不配置dataSource属性,串行化插件仅会将数据按照接收的顺序发送给下游插件。

假定串行化插件mxpi_parallel2serial0接收数据的顺序为demoA0,demoA1,串行化插件将demoA0,demoA1获取到的buffer,依次发送给下游插件demoB。
mxpi_distributor
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必填项 | 是否可修改 |
|---|---|---|---|
| dataSource | 输入数据对应索引,默认值为上游插件对应输出端口的元数据key。 | 否 | 是 |
| classIds | 指定需要输出的类别索引,以逗号隔开。此插件根据用户配置的类别,将不同类别的目标进行重组,以类别顺序通过不同输出端口分发给下游插件。下游插件依次通过目标分发插件名_id作为key来获取元数据(id为目标分发插件的输出端口号,从0开始,依次递增1)。 | 是 | 是 |
| distributeAll | 当某个端口没有目标数据时,是否往下发数据。支持配置yes,no两种方式,默认值为no。 | 否根据class id分发进行配合使用。 | 是 |
| channelIds | 指定需要输出的通道索引,以逗号隔开。此插件根据用户配置的通道,buffer以通道索引的顺序通过不同输出端口分发给下游插件。 | 是 | 是 |
Note
- mxpi_distributor插件一般与queue插件配合使用,即mxpi_distributor插件的每个输出端口连接queue插件。
- 当根据channel id来进行分发时,必须配置channelIds属性。当根据class id来进行分发时,必须配置classIds和dataSource属性。
- 分发插件支持每个输出端口包含多种类别(或通道)的数据,每个输出端口中的索引采用竖线(|)进行区分。具体可参考示例。
-
只配置classIds属性和dataSource属性,分发插件将按照目标索引(class id)的顺序,依次向下游插件发送带有该类别元数据的buffer。

假定分发插件mxpi_distributor0接收到demoA插件的buffer,然后将以demoA作为key获取元数据,将元数据按照类别进行重组。
- 以mxpi_distributor0_0为key挂载类别为4和5的元数据,并将buffer发送给demoA0插件。
- 以mxpi_distributor0_1为key挂载类别为6的元数据,并将buffer发送给demoA1插件。
- 以mxpi_distributor0_2为key挂载类别为7的元数据,并将buffer发送给demoA2插件。
-
只配置channelIds属性,分发插件将按照通道标识(channel id)的顺序,依次向下游插件发送buffer。

假定分发插件mxpi_distributor0接收到demoA插件的buffer。
- 将通道索引为1或2的buffer发送给demoA0插件。
- 将通道索引为3的buffer发送给demoA1插件。
- 将通道索引为4的buffer发送给demoA2插件。
mxpi_synchronize
|
|
表 1 mxpi_synchronize插件的属性
| 属性名 | 描述 | 是否为必填项 | 是否可修改 |
|---|---|---|---|
| config | 默认配置参数 | 否 | 是 |
输入的buffer为相同时(元数据无影响),等待所有输入端口接收到数据,然后向下游插件发送数据。

假定同步等待插件mxpi_synchronize0接收数据的顺序为demoA0,demoA0,demoA1,demoA0,demoA0...,那么同步等待插件将在接收到第三个数据demoA1时,此时所有端口才都有数据,才会向下游插件demoB发送buffer。
queue
GStreamer原生插件。在此插件输出时为后续处理过程另创建一个线程,用于将输入数据与输出数据解耦,并创建缓存队列,存储尚未输出到下游插件的数据。 |
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| current-level-buffers | 当前队列中的Buffer数量,默认为0。 | 否 | 否 |
| current-level-bytes | 当前队列中的总数据,默认为0。 | 否 | 否 |
| current-level-time | 当前队列中的总数据(以ns为单位),默认为0。 | 否 | 否 |
| flush-on-eos | 收到EOS事件时,丢弃所有数据,或立即将EOS事件继续传送,默认为false。 | 否 | 否 |
| leaky | queue的泄露位置,默认为不泄露(0),可选值{0,1,2},1为新数据泄漏,2为老数据泄漏。 | 否 | 是 |
| max-size-buffers | 队列中的最大Buffer数,默认为200。 | 否 | 是 |
| max-size-bytes | 队列中的最大数据量,默认为10485760。 | 否 | 否 |
| max-size-time | 队列中的最大数据量(以ns为单位),默认为1000000000。 | 否 | 否 |
| min-threshold-buffers | 队列中允许读取的最小Buffer数,默认为0。 | 否 | 否 |
| min-threshold-bytes | 队列中允许读取的最小数据量,默认为0。 | 否 | 否 |
| min-threshold-time | 队列中允许读取的最小数据量(以ns为单位),默认为0。 | 否 | 否 |
| silent | 不释放queue信号,默认为false。 | 否 | 否 |
tee
|
|
请参见表1。 |
Note
- tee插件一般与queue插件配合使用,即tee插件的每个输出端口连接queue插件。
- tee插件通过浅拷贝对同一个buffer进行多路分发,需要保证该buffer经过多分支处理后,能在同一个appsink端口输出,以防出现coredump问题。
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| allow-not-linked | 允许输出端口不被连接,默认为false。 | 否 | 否 |
| has-chain | 是否使用push模式,默认为true。 | 否 | 否 |
| last-message | 描述当前状态的信息,默认为Null。 | 否 | 否 |
| num-src-pads | srcpad的数量。 | 否 | 否 |
| pull-mode | pull模式下的行为,默认为0。 | 否 | 否 |
| silent | 不生成last-message事件,默认为true。 | 否 | 否 |
mxpi_datatransfer
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必填项 | 是否可修改 |
|---|---|---|---|
| dataSource | 输入数据对应索引(通常情况下为上游元件名称),可以配置多个,以逗号隔开。默认值为上游插件对应输出端口的元数据key。 | 否 | 是 |
| transferMode | 设置数据转移模式:auto:默认值,自动模式,自动将内存搬移到另外一种内存中。d2h:device2host,将Device内存搬移到Host。h2d:host2device,将Host内存搬移到Device。 | 否 | 是 |
| removeSourceData | 是否清除输入数据的内存:yes:默认值,删除数据。no:保留数据。 | 否 | 是 |
Note
默认情况下,该插件只能用于单分支Stream的业务,否则可能导致其他分支数据处理异常。如需在多分支Stream场景,请将“removeSourceData”设置为“no”。
通常情况下,外部数据发送到Stream中或者Stream的数据往外发送时需要用该插件。

如上图所示,以缩放图像数据为例。用户可以将解码后的数据(Host内存)发送给Stream,通过该插件就可以将数据转移到Device侧,缩放插件正常运行,输出结果经过该插件转移后缩放后图像数据被转移至Host,用户获取到该数据就可以在Host侧正常访问。如图所示的案例中,发送数据和接收结果需要用“SendProtobuf()”和“GetProtobuf()”接口实现,具体请参见图 SendProtobuf/GetProtobuf数据流图。
mxpi_nmsoverlapedroiV2
|
|
|
|
请参见表1。 |
表 1 mxpi_nmsoverlapedroiV2插件的属性
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| dataSourceDetection | 获取目标检测后物体bounding box(框信息)的索引(默认为上游插件对应输出端口的key值)。 | 否 | 是 |
| dataSourceBlock | 获取背景划分块的bounding box(分块框信息)的索引(默认为上游插件对应输出端口的key值)。 | 否 | 是 |
| nmsThreshold | 设置NMS计算阈值,默认值0.45,取值范围[0, 1]。 | 否 | 是 |
mxpi_roigenerator
[!NOTICE] 当分块个数过多时,可能导致输入数据过大,无法申请内存。
|
|
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| splitType | 设置分块的方式,支持Size_Block,Num_Block,Custom三个可选参数,默认值为Size_Block。Size_Block:通过分块大小对图像进行分割。Num_Block:通过设置分块个数对图像进行分割。Custom:用户自定义图像分块区间以及合并区间。 | 否 | 是 |
| blockHeight | 当splitType为Size_Block时使用,设置分块图像的高,取值范围32~8192,默认值为512。 | 否 | 是 |
| blockWidth | 当splitType为Size_Block时使用,设置分块图像的宽,取值范围32~8192,默认值为512。 | 否 | 是 |
| chessboardHeight | 当splitType为Num_Block时使用,设置分块y轴方向块的个数,取值范围1~256,默认值为1。 | 否 | 是 |
| chessboardWidth | 当splitType为Num_Block时使用,设置分块x轴方向的个数,取值范围1~256,默认值为1。 | 否 | 是 |
| overlapHeight | 设置分块之间重叠区域,设置y轴方向上的重叠区域,取值范围0~8192,默认值为0。 | 否 | 是 |
| overlapWidth | 设置分块之间重叠区域,设置x轴方向上的重叠区域,取值范围0~8192,默认值为0。 | 否 | 是 |
| cropRoi | 当splitType为Custom时使用,用户自定义分块的坐标框(x0,y0,x1,y1)。每个坐标框以“ | ”间隔。使用示例:“0,0,512,512 | 512,0,1024,512”。 |
| mergeRoi | 当splitType为Custom时使用,用户自定义每个分块合并的区间,使用绝对坐标,需要与cropRoi对应,使用示例:“20,20,400,400 | 530,20,800,400”。 | 否 |
mxpi_semanticsegstitcher
表 1 mxpi_semanticsegstitcher插件的属性
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| dataSourceSemanticSeg | 语义分割模型推理结果对应的索引,默认情况下可通过插件连接情况自动获得。 | 否 | 是 |
| dataSourceCropRoi | 分块目标框数据对应的索引,默认情况下可通过插件连接情况自动获得。 | 否 | 是 |
| dataSourceMergeRoi | 图像合并的目标区域,默认情况下可通过插件连接情况自动获得。 | 否 | 是 |
mxpi_objectselector
|
|
|
|
请参见表1 |
Note
- 参数均需要赋值,当都配置为0时,默认不进行过滤。
- 目标框面积需要同时满足:MinArea < 目标框面积 < MaxArea。
- 过滤顺序是先对目标框进行面积上下限、置信度过滤,然后从过滤后剩下的目标框中选择最大或最小的N个目标框,不能同时选择最大最小。
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| dataSource | 输入数据对应索引(通常情况下为上游元件名称),可以配置多个,以逗号隔开。默认值为上游插件对应输出端口的元数据key。 | 否 | 是 |
| FirstDetectionFilter | 设置目标框选择条件,格式为map,字段释义如下:Type:Area目前只支持面积选择。TopN:选择最大的N个目标框,为0时关闭选择。BottomN:选择最小的N个目标框,为0时关闭选择。MinArea:目标框面积下限,为0时关闭选择。MaxArea:目标框面积上限,为0时关闭选择。ConfThresh:目标框置信度大于该阈值,保留目标框,默认值为0。 | 是 | 是 |
mxpi_skipframe
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| frameNum | 跳过的帧数,取值范围为[0, 100]。默认值为0。 | 否 | 是 |

