插件参考

总体说明

Vision SDK中实现的插件继承自MxPluginBase。插件以“mxpi_”开头,包含“status”、“deviceId”、“dataSource”三个公共属性以及GStreamer原生属性“parent”和“name”,具体说明如表1所示。

表 1 插件属性说明

属性 说明
status 该属性指定插件运行方式为同步执行或异步,int类型,取值范围[0, 1],0为异步,1为同步,默认为0(异步执行),请用户根据实际情况设置。
deviceId 该属性指定插件运行的芯片,int类型,默认与pipeline配置文件中开头的deviceId相同,请用户根据实际情况设置。
dataSource 该属性指定插件处理数据的来源,string类型,默认为auto,用户可指定上游插件名称作为数据来源,请用户根据实际情况设置。
parent GStreamer插件原生属性,表示元素的父对象。
name GStreamer插件原生属性,表示元素的名称。

Note

  • 插件属性可以通过工具gst-inspect-1.0进行检测,以检测结果为准。
  • 本文只列举了部分GStreamer插件原生属性,更多详细信息请查看GStreamer开源源码。

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

输入插件

appsrc

功能描述

GStreamer原生插件。配合SendData接口与SendDataWithUniqueId接口使用,向Stream中发送数据,appsrc将数据发给下游元件,当且仅当Stream中存在appsrc插件时以上两个接口有效。

约束限制

插件基类(factory)

appsrc

输入和输出

  • 输入:外部接口调用。
  • 输出:buffer(数据类型“MxpiBuffer”)。

属性

具体请参见表1

表 1 appsrc插件的属性

属性名 描述 是否为必选项 是否可修改
blocksize 每个buffer读取的大小(以字节为单位),默认值为4096。
num-buffers 发送结束流(EOS)前,要输出的buffer个数,默认值为-1,无限制。
typefind 协商前运行类型查找。
do-timestamp 对buffer应用当前时间流,默认为false。
caps 源衬垫(pad)允许的功能(capabilities)。
size 数据流的大小(以字节为单位),如果未知,则为-1。
stream-type 流的类型,默认为Stream。
max-bytes 内部队列的最大字节数,默认值为200000,值为0代表无限制。
format 分段事件和查找(seek)的格式,默认为按字节查找。
block 最大字节排队时块推送缓冲区,默认为false。
is-live 是否作为活(live)源,默认为false。
min-latency 最小延迟,默认为-1,通常表示自动计算最小延迟。
max-latency 最大延迟,默认为-1,无限制。
emit-signals 发出需要的数据,足够的数据,寻找数据信号,默认为true。
min-percent 当队列中的字节低于最大字节的这个百分比时,发出需要的数据,默认为发送。
current-level-bytes 当前排队的字节数,默认为0。
duration 数据流的持续时间,以纳秒为单位,默认为18446744073709551615。

mxpi_rtspsrc

[!NOTICE]

  • 当使用拉流插件的加密传输功能时,前置条件如下:

    1. 安装“libgiognutls.so”。
    2. 设置“GIO_MODULE_DIR”环境变量(“libgiognutls.so”所在的文件夹路径)。
    3. 编写pipeline时配置拉流插件的属性“tlsCertFilePathList”、“tlsValidationFlags”。
  • 推荐使用加密登录,非加密登录有安全风险。

    加密登录时,建议用户把用户名、密码加密保存到开发的应用中,使用Vision SDK构建pipeline时先解密再调用CreateMultipleStreams进行构建。

    • 如果使用配置文件作为pipeline模板时,建议将参数敏感信息部分在配置文件中使用${xxxx}替代(其中xxxx为对应的参数名),包括rtspUrl中的用户名密码、tlsCertFilePathList中的口令信息。在使用Vision SDK构建pipeline时,先读取文件内容,解密后,将${xxxx}替换为用户名和密码,再调用CreateMultipleStreams进行串流。
    • 如选择将用户名、证书密码等值直接明文写在配置文件中,存在信息泄露的风险。请妥善保管用户名及密码。若密钥中包含特殊字符,请将其进行url编码,如username:pass@word@xxx.xxx.xxx.xxx:xxx/xxx应写为username:pass%40word@xxx.xxx.xxx.xxx:xxx/xxx(@字符的url编码为%40)。
    • 拉流插件元素默认模板的作者信息为 root <<user@hostname.org>>
  • Vision SDK软件包的安装路径下的“lib/plugins”中的“libmxpi_rtspvideoinfo.so”为mxpi_rtspsrc插件的依赖,不可作为插件单独使用。

  • 如果用户自行下载gst-launch-1.0执行插件,为了避免敏感信息泄露,请使用**-q**命令禁止打印入参。

功能描述

接收外部调用接口的输入视频路径,对视频进行拉流,并将拉取的裸流存储到缓冲区(buffer)中,并发送到下游插件。

约束限制

目前只支持H.264、H.265拉流,加密传输功能只支持使用口令加密的证书私钥。

插件基类(factory)

mxpi_rtspsrc

输入和输出

  • 输入:无。
  • 动态输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiFrame”)。

属性

请参见表1

表 1 mxpi_rtspsrc插件的属性

属性名 描述 是否为必填项 是否可修改
rtspUrl RTSP取流地址(可以从网络摄像机获取,也可通过Live555等工具将本地视频文件转换为RTSP流)。
channelId 表示视频拉流的路数标识,默认值为0。
timeout 表示一段时间(timeout)没有拉流后,会断开拉流,默认值为0。
fpsMode 是否打印拉流帧率,只能填0或1。
0:不打印帧率(默认)。
1:打印帧率。
首次拉流的流地址无效时,属性为1时也不打印帧率。
tlsValidationFlags 用于验证服务的TLS证书验证标识,取值范围参考如下, rtsp场景下不生效:
1 (0x00000001):unknown-ca
2 (0x00000002):bad-identity
4 (0x00000004):not-activated
8 (0x00000008):expired
16 (0x00000010):revoked
32 (0x00000020):insecure
64 (0x00000040):generic-error
127 (0x0000007f):validate-all
tlsCertFilePathList 依次填写CertCrt、CertKey、CaCert、Token,Crl,以逗号隔开,默认值为空, rtsp场景下不生效。(证书及密钥相关文件的权限需设置为400)
CertCrt:本地(客户端)证书路径。
CertKey:本地(客户端)证书私钥路径。
CaCert:服务端CA证书路径。
Token:本地(客户端)加密私钥解密口令。
Crl:服务端证书吊销列表,该配置项为可选项。不配置时,插件不会校验服务端证书是否被吊销。
async-handling 处理异步状态更改。
message-forward 转发所有子消息。

插件示例

  • “rtspUrl”参数传入RTSP取流地址,示例以加密形式展示,需传入用户名与密码。
  • “tlsCertFilePathList”参数传入了“server.crt”、“server.key”、“ca.crt”和“server.crl”证书相关文件路径。
"mxpi_rtspsrc0": {
 "factory": "mxpi_rtspsrc",
 "props": {
  "rtspUrl": "rtsps://username:password@xxx.xxx.xxx.xxx:xxx/xxx",
  "channelId": "0",
  "tlsValidationFlags": "127",
  "tlsCertFilePathList": "xxx/server.crt,xxx/server.key,xxx/ca.crt,<cert_password>,xxx/server.crl",
  "fpsMode": "1"
 },
 "next": "mxpi_videodecoder0"
},

输出插件

mxpi_dataserialize

功能描述

将Stream结果组装成JSON字符串输出。用户可通过在配置文件中填写元件名,来选择需要输出的结果。

约束限制

同步/异步(status)

异步

插件基类(factory)

mxpi_dataserialize

输入和输出

  • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiClassList”或“MxpiObjectList”)。
  • 输出:buffer(数据类型“MxpiBuffer”)。

端口格式(caps)

  • 静态输入:{"ANY"}。
  • 静态输出:{"result/json-result"}。

属性

请参见表1

表 1 mxpi_dataserialize插件的属性

属性名 描述 是否为必选项 是否可修改
outputDataKeys 指定需要输出的数据的索引(通常情况下为元件名称),以逗号隔开。此插件根据用户选择的元件名,将元件数据拼接成JSON字符串。该JSON字符串用于根据插件的依赖关系输出组装结果。
eraseHeaderVecFlag 是否要删除数据的header信息。需要设为1,不需要设为0,默认值为1。

appsink

功能描述

GStreamer原生插件。配合GetResult接口与GetResultWithUniqueId接口使用,从Stream中获取数据,当且仅当Stream中存在appsink插件时,以上两个接口有效。

约束限制

插件基类(factory)

appsink

输入和输出

  • 输入:buffer。
  • 输出:外部接口调用。

属性

具体请参见表1

表 1 appsink插件的属性

属性名 描述 是否为必选项 是否可修改
sync 同步锁,默认为加锁。
max-lateness 缓冲区(buffer)在被丢弃之前可以延迟的最大纳秒数,默认为-1,无限制。
qos 生成上游服务质量事件,默认为false。
async 异步转到暂停,默认为true。
ts-offset 时间戳偏移(以纳秒为单位),默认值为0。
enable-last-sample 启用最后一个样本(sample)属性,默认为true。
last-sample 只读属性,查看是否接收到最后的输出结果。
blocksize 每个buffer获取的大小(以字节为单位),默认值为4096。
render-delay 接收元件的附加呈现延迟(以纳秒为单位),默认值为0。
throttle-time 呈现buffer之间的保持时间,默认值为0,表示禁用。
max-bitrate 每秒要呈现的最大比特数,默认值为0,表示禁用。
processing-deadline 最大处理截止时间(以纳秒为单位),默认值为20000000。
caps 源衬垫(pad)允许的功能(capabilities)。
eos 检查接收元件是否是结束流(EOS)或未启动,默认为false。
emit-signals 发出新的预卷和新的采样信号,默认为false。
max-buffers 内部缓存的最大buffer数,默认值为0,无限制。
drop 队列被填充时丢弃旧的buffer,默认为false。
wait-on-eos 收到结束流(EOS)后,等待所有buffer处理完毕,默认true。
buffer-list 使用buffer列表。

fakesink

功能描述

GStreamer原生插件。一个吞噬任何数据的伪插件(黑洞插件),类似于Linux的/dev/null伪设备,用于丢弃不需要的数据。

约束限制

插件基类(factory)

fakesink

输入和输出

  • 输入:buffer。
  • 输出:无。

属性

filesink

[!NOTICE] 输出文件权限可能会过大,有文件信息泄露的风险。 在销毁流的过程中会直接停止所有插件的运行,请妥善保存所需的文件。

功能描述

GStreamer原生插件。把输入的数据写入文件并存储到本地。

约束限制

插件基类(factory)

filesink

输入和输出

  • 输入:buffer。
  • 输出:无。

属性

请参见表1

表 1 filesink插件的属性

属性名 描述 是否为必填项 是否可修改
append 添加到一个现有的文件上,默认为false。
buffer-mode 使用缓冲模式,默认为-1。-1:default(默认缓冲)0:full(完全缓冲)1:line(行缓冲,已弃用,类似完全缓冲)2:unbuffered(无缓冲)
buffer-size 设置buffer的大小,可设置需要的bytes,也可设置为buffer的最大值,默认为65536。
location 文件的位置,无默认值。
max-transient-error-timeout 当遇到瞬态错误时最多等待的毫秒时间(当前为EACCES),默认值为0。
o-sync 使用O_SYNC来打开文件,实现同步IO。默认值为false。

串流插件

mxpi_parallel2serial

功能描述

多个端口输入数据通过一个端口按顺序输出。

约束限制

同步/异步(status)

支持同步和异步。

插件基类(factory)

mxpi_parallel2serial

输入和输出

  • 动态输入:buffer(数据类型“MxpiBuffer”)、metadata。
  • 静态输出:buffer(数据类型“MxpiBuffer”)、metadata。

属性

请参见表1

表 1 mxpi_parallel2serial插件的属性

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

示例

  • 配置dataSource属性,串行化插件会挂载元数据,并将数据按照接收的顺序发送给下游插件。

    假定串行化插件mxpi_parallel2serial0接收数据的顺序为demoA0,demoA1。

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

    假定串行化插件mxpi_parallel2serial0接收数据的顺序为demoA0,demoA1,串行化插件将demoA0,demoA1获取到的buffer,依次发送给下游插件demoB。

mxpi_distributor

功能描述

向不同端口发送指定类别或通道的数据。用户可通过在配置文件中填写类别索引或通道索引,来选择发送需要输出的结果。

同步/异步(status)

异步

约束限制

目前只支持根据channel id或class id进行分发。

插件基类(factory)

mxpi_distributor

输入和输出

  • 静态输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiObjectList”或“MxpiClassList”或“MxpiObject”或“MxpiClass”)。
  • 动态输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiObjectList”或“MxpiClassList”或“MxpiObject”或“MxpiClass”)。

属性

请参见表1

表 1 mxpi_distributor插件的属性

属性名 描述 是否为必填项 是否可修改
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挂载类别为45的元数据,并将buffer发送给demoA0插件。
    • 以mxpi_distributor0_1为key挂载类别为6的元数据,并将buffer发送给demoA1插件。
    • 以mxpi_distributor0_2为key挂载类别为7的元数据,并将buffer发送给demoA2插件。
  • 只配置channelIds属性,分发插件将按照通道标识(channel id)的顺序,依次向下游插件发送buffer。

    假定分发插件mxpi_distributor0接收到demoA插件的buffer。

    • 将通道索引为12的buffer发送给demoA0插件。
    • 将通道索引为3的buffer发送给demoA1插件。
    • 将通道索引为4的buffer发送给demoA2插件。

mxpi_synchronize

功能描述

等待所有输入端口都有数据后才往输出端口推送数据。

同步/异步(status)

同步

约束限制

插件基类(factory)

mxpi_synchronize

输入和输出

  • 动态输入:buffer(数据类型“MxpiBuffer”)。
  • 静态输出:buffer(数据类型“MxpiBuffer”)。

属性

表 1 mxpi_synchronize插件的属性

属性名 描述 是否为必填项 是否可修改
config 默认配置参数

示例

输入的buffer为相同时(元数据无影响),等待所有输入端口接收到数据,然后向下游插件发送数据。

假定同步等待插件mxpi_synchronize0接收数据的顺序为demoA0,demoA0,demoA1,demoA0,demoA0...,那么同步等待插件将在接收到第三个数据demoA1时,此时所有端口才都有数据,才会向下游插件demoB发送buffer。

queue

功能描述

GStreamer原生插件。在此插件输出时为后续处理过程另创建一个线程,用于将输入数据与输出数据解耦,并创建缓存队列,存储尚未输出到下游插件的数据。

约束限制

默认的缓存队列数据存储上限需低于200个Buffer且低于10MB大小,存储时限为1秒。

插件基类(factory)

queue

输入和输出

  • 输入:buffer、metadata。
  • 输出:buffer、metadata。

属性

请参见表1

表 1 queue插件的属性

属性名 描述 是否为必选项 是否可修改
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

功能描述

GStreamer原生插件,对单个输入数据分发多次。

约束限制

插件基类(factory)

tee

输入和输出

  • 输入:buffer、metadata。
  • 输出:buffer、metadata。

属性

请参见表1

Note

  • tee插件一般与queue插件配合使用,即tee插件的每个输出端口连接queue插件。
  • tee插件通过浅拷贝对同一个buffer进行多路分发,需要保证该buffer经过多分支处理后,能在同一个appsink端口输出,以防出现coredump问题。

表 1 tee插件的属性

属性名 描述 是否为必选项 是否可修改
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

功能描述

在Device(内存)和Host(CPU内存)之间转移内存数据。

同步/异步(status)

异步

约束限制

仅支持MxpiVisionList和MxpiTensorPackageList两种数据格式。

插件基类(factory)

mxpi_datatransfer

输入和输出

  • 静态输入:metadata(数据类型“MxpiVisionList”和“MxpiTensorPackageList”)。
  • 静态输出:metadata(数据类型“MxpiVisionList”和“MxpiTensorPackageList”)。

属性

请参见表1

表 1 mxpi_datatransfer插件的属性

属性名 描述 是否为必填项 是否可修改
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

功能描述

用于过滤分块后重叠区域重复目标。相比较前一个版本的差别为:
  • V2版本对插件的输入端口做了调整由单输入改成双输入。
  • 对部分属性名进行规范整改,将原来的dataSource改成dataSourceDetection,blockName改成dataSourceBlock,并且dataSourceDetection和dataSourceBlock可自动配置。

约束限制

端口0输入分块信息数据,端口1输入检测出来的目标框数据。

插件基类(factory)

mxpi_nmsoverlapedroiV2

输入和输出

  • 输入:metadata(数据类型“MxpiObjectList”)。
  • 输出:metadata(数据类型“MxpiObjectList”)。

端口格式(caps)

  • 静态输入:{"metadata/object"}。
  • 静态输出:{"metadata/object"}。

属性

请参见表1

表 1 mxpi_nmsoverlapedroiV2插件的属性

属性名 描述 是否为必选项 是否可修改
dataSourceDetection 获取目标检测后物体bounding box(框信息)的索引(默认为上游插件对应输出端口的key值)。
dataSourceBlock 获取背景划分块的bounding box(分块框信息)的索引(默认为上游插件对应输出端口的key值)。
nmsThreshold 设置NMS计算阈值,默认值0.45,取值范围[0, 1]。

mxpi_roigenerator

[!NOTICE] 当分块个数过多时,可能导致输入数据过大,无法申请内存。

功能描述

支持用户输入分块的个数、大小、overlap等参数,自动生成图像分块的目标框。

同步/异步(status)

异步

约束限制

分块个数最大支持256个。

插件基类(factory)

mxpi_roigenerator

输入和输出

  • 输入:解码后的图片,buffer(数据类型“MxpiBuffer”)。
  • 输出:
    • 端口一:图像分块区域,metadata(数据类型MxpiObjectList)。
    • 端口二(可选):图像合并的目标框,metadata(数据类型MxpiObjectList),该端口接图像合并插件(mxpi_semanticsegstitcher)。

端口格式(caps)

  • 静态输入:{"metadata/yuv"}。
  • 静态输出:{"metadata/object"}。
  • 动态输出:{"metadata/object/roi-info"}。

属性

请参见表mxpi_roigenerator插件的属性

表 1 mxpi_roigenerator插件的属性

属性名 描述 是否为必选项 是否可修改
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”。

图 1 参数示意图

mxpi_semanticsegstitcher

功能描述

对语义分割推理结果的图像进行合并。

同步/异步(status)

同步

约束限制

需要与mxpi_roigenerator插件配套使用。

插件基类(factory)

mxpi_semanticsegstitcher

输入和输出

  • 输入:三个输入端口。
    • 端口一:接收语义分割模型的推理结果,metadata(数据类型MxpiImageMaskList)。
    • 端口二:接收mxpi_roigenerator分块时生成的分块目标框数据,metadata(数据类型MxpiObjectList)。
    • 端口三:接收mxpi_roigenerator生成的图像合并的目标区域,metadata(数据类型MxpiObjectList)。
  • 输出:metadata(数据类型“MxpiImageMaskList”)。

端口格式(caps)

  • 静态输入:
    • 端口一:{"metadata/semanticseg"}。
    • 端口二:{"metadata/object"}。
    • 端口三:{"metadata/object/roi-info"}。
  • 静态输出:{"metadata/semanticseg"}。

属性

请参见表mxpi_semanticsegstitcher插件的属性

表 1 mxpi_semanticsegstitcher插件的属性

属性名 描述 是否为必选项 是否可修改
dataSourceSemanticSeg 语义分割模型推理结果对应的索引,默认情况下可通过插件连接情况自动获得。
dataSourceCropRoi 分块目标框数据对应的索引,默认情况下可通过插件连接情况自动获得。
dataSourceMergeRoi 图像合并的目标区域,默认情况下可通过插件连接情况自动获得。

图 1 典型应用流程图

mxpi_objectselector

功能描述

用于多级推理时,根据面积最大最小、面积上下限、置信度阈值对后处理结果进行选择过滤。

约束限制

接收后处理插件mxpi_objectportprocessors输出的目标框数据。

插件基类(factory)

mxpi_objectselector

输入和输出

  • 输入:metadata(数据类型“MxpiObjectList”)。
  • 输出:metadata(数据类型“MxpiObjectList”)。

端口格式(caps)

  • 静态输入:{"metadata/object"}。
  • 静态输出:{"metadata/object"}。

属性

请参见表1

Note

  • 参数均需要赋值,当都配置为0时,默认不进行过滤。
  • 目标框面积需要同时满足:MinArea < 目标框面积 < MaxArea。
  • 过滤顺序是先对目标框进行面积上下限、置信度过滤,然后从过滤后剩下的目标框中选择最大或最小的N个目标框,不能同时选择最大最小。

表 1 mxpi_objectselector插件的属性

属性名 描述 是否为必选项 是否可修改
dataSource 输入数据对应索引(通常情况下为上游元件名称),可以配置多个,以逗号隔开。默认值为上游插件对应输出端口的元数据key。
FirstDetectionFilter 设置目标框选择条件,格式为map,字段释义如下:Type:Area目前只支持面积选择。TopN:选择最大的N个目标框,为0时关闭选择。BottomN:选择最小的N个目标框,为0时关闭选择。MinArea:目标框面积下限,为0时关闭选择。MaxArea:目标框面积上限,为0时关闭选择。ConfThresh:目标框置信度大于该阈值,保留目标框,默认值为0。

mxpi_skipframe

功能描述

对数据进行跳帧。

同步/异步(status)

异步

约束限制

插件基类(factory)

mxpi_skipframe

输入和输出

  • 输入:buffer(数据类型“MxpiBuffer”)。
  • 输出:buffer(数据类型“MxpiBuffer”)。

端口格式(caps)

  • 静态输入:{“ANY”}。
  • 静态输出:{“ANY”}。

属性

请参见表1

表 1 mxpi_skipframe插件的属性

属性名 描述 是否为必选项 是否可修改
frameNum 跳过的帧数,取值范围为[0, 100]。默认值为0。

媒体数据处理插件

使用前须知

  • 缩放插件和抠图插件的贴图区域与抠图区域的缩放比例请控制在[1/32, 16]范围内。
  • 抠图插件的使用存在奇数对齐机制,例如输入32缩放16倍得到512,由于奇数对齐机制,32会变为31,此时512 / 31 > 16,缩放比例超过16导致缩放失败。
  • 图像处理插件支持OpenCV方法与Ascend方法,具体差异如下:
    • Ascend方法:调用昇腾DVPP接口进行处理。
    • OpenCV方法:调用OpenCV接口进行处理。

mxpi_imagedecoder

功能描述

用于图像解码,当前只支持JPG/JPEG/BMP格式。

JPG/JPEG输入图片格式约束:
  • 只支持Huffman编码,码流的subsample为444/422/420/400/440。
  • 不支持算术编码。
  • 不支持渐进JPEG格式。
  • 不支持JPEG2000格式。

同步/异步(status)

异步

约束限制

  • JPG/JPEG输入图片的最大分辨率:8192 * 8192。
  • JPG/JPEG输入图片的最小分辨率:32 * 32。
  • OpenCV方法或BMP输入图片均无分辨率范围约束。
  • 输出图片的widthStride(对齐后的宽度):
    • Atlas 200I/500 A2 推理产品对齐到128(即宽度为128的倍数),解码插件自动对齐。
    • Atlas 推理系列产品对齐到64(即宽度为64的倍数),解码插件自动对齐。
  • 输出图片的heightStride(对齐后的高度):对齐到16(即高度为16的倍数),解码插件自动对齐。

插件基类(factory)

mxpi_imagedecoder

输入和输出

  • 输入:buffer(数据类型“MxpiBuffer”)。
  • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”,“MxpiObjectList”)。

端口格式(Caps)

  • 静态输入:{"image/jpeg"}。
  • 动态输出:{"image/yuv","metadata/object","image/rgb"}。

属性

请参见表1

表 1 mxpi_imagedecoder插件的属性

属性名 描述 是否为必选项 是否可修改
deviceId 使用设备的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。
imageFormat 解码的图像格式,默认为jpg格式。
  • Ascend方法支持jpeg和jpg、bmp。
  • OpenCV方法支持jpg、jpeg、bmp等。
  • cvProcessor 处理方法。
  • ascend(默认):调用昇腾DVPP接口进行处理。
  • opencv:调用OpenCV接口进行处理。
  • outputDataFormat 用于使用OpenCV方法或输入图像格式为bmp时,配置图像的输出数据类型,仅支持配置为BGR或RGB。
  • 使用OpenCV方法解码时,图像解码默认输出BGR数据,也可通过本属性修改为RGB数据。
  • bmp图像解码默认输出为BGR数据,也可通过本属性修改为RGB数据。
  • 使用Ascend方法解码时,jpeg和jpg图像解码输出为yuv数据,不支持该属性配置。
  • dataType 解码数据的类型,默认为uint8,也可以设置成float32,该选项在OpenCV处理方法中生效。
    formatAdaptation 色域转换功能,将图像解码为BGR888格式,值为string,默认值为off(关闭),需要启动时配置on。(当前仅在Atlas 推理系列产品上支持该功能,输入图片的分辨率约束为32*32~4096*4096)。
    handleMethod 预留属性,请使用cvProcessor属性。
    处理方法:
  • ascend(默认)
  • opencv
  • mxpi_imageresize

    功能描述

    对解码后的YUV、RGB格式的图像进行指定宽高的缩放。

    • 其中YUV_420既支持4k大小的图像,也支持8k大小的图像。
    • 其他类型的YUV图像,只支持4k大小的图像,如YUV422,YUV444等。
    • RGB格式支持RGB888和BGR888。

    同步/异步(status)

    异步

    约束限制

    • 既支持4k,也支持8k的图像格式:
      MXPI_PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1, // 1, YUV420SP NV12 8bit
      MXPI_PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2, // 2, YUV420SP NV21 8bit
    • 只支持4k的图像格式:
      MXPI_PIXEL_FORMAT_YUV_400 = 0, // 0, YUV400 8bit
      MXPI_PIXEL_FORMAT_YUV_SEMIPLANAR_422 = 3, // 3, YUV422SP NV12 8bit
      MXPI_PIXEL_FORMAT_YVU_SEMIPLANAR_422 = 4, // 4, YUV422SP NV21 8bit
      MXPI_PIXEL_FORMAT_YUV_SEMIPLANAR_444 = 5, // 5, YUV444SP NV12 8bit
      MXPI_PIXEL_FORMAT_YVU_SEMIPLANAR_444 = 6, // 6, YUV444SP NV21 8bit
      MXPI_PIXEL_FORMAT_YUYV_PACKED_422 = 7, // 7, YUV422P YUYV 8bit
      MXPI_PIXEL_FORMAT_UYVY_PACKED_422 = 8, // 8, YUV422P UYVY 8bit
      MXPI_PIXEL_FORMAT_YVYU_PACKED_422 = 9, // 9, YUV422P YVYU 8bit
      MXPI_PIXEL_FORMAT_VYUY_PACKED_422 = 10, // 10, YUV422P VYUY 8bit
      MXPI_PIXEL_FORMAT_YUV_PACKED_444 = 11, // 11, YUV444P 8bit
      MXPI_PIXEL_FORMAT_RGB_888 = 12,        // 12, RGB888 8bit
      MXPI_PIXEL_FORMAT_BGR_888 = 13,        // 13, BGR888 8bit
    • 8k图片格式的宽高大小范围:32~8192。4k图片格式的宽高大小范围:32~4096。

    插件基类(factory)

    mxpi_imageresize

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。

    端口格式(caps)

    • 静态输入:{"image/yuv","metadata/object","image/rgb"}。
    • 静态输出:{"image/yuv","image/rgb"}。

    属性

    请参见表1

    表 1 mxpi_imageresize插件的属性

    属性名 描述 是否为必选项 是否可修改
    deviceId 使用设备的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。
    removeParentData 删除原Buffer数据,默认为0。0:不删除原Buffer数据。1:删除原Buffer数据。
    parentName 输入数据对应索引(通常情况下为上游元件名称),从当前版本不再演进,请使用dataSource。
    dataSource 输入数据对应索引(通常情况下为上游元件名称)。默认为上游插件对应输出端口的key值。 建议使用
    resizeHeight Resizer_StretchResizer_KeepAspectRatio_Fit缩放模式中,指定缩放后的高。默认会自动适配下游模型推理插件的图片高度,取值范围为[6, 4096]。输入缩放后的高自动以2对齐。建议指定图像缩放后的高以2对齐,且必须在图片分辨率高的[1/32, 16]之间。如果缩放插件下游紧接的不是推理插件,必须设置缩放宽高。如果缩放插件下游紧接的是推理插件,可以不用设置缩放宽高,此时缩放宽高可以自动获取。
    resizeWidth Resizer_StretchResizer_KeepAspectRatio_Fit缩放模式中,指定缩放后的宽。默认会自动适配下游模型推理插件的图片宽度,取值范围为[32, 4096]。输入缩放后的宽自动以16对齐。建议指定图像缩放后的宽以16对齐,且必须在图片分辨率宽的[1/32, 16]之间。如果缩放插件下游紧接的不是推理插件,必须设置缩放宽高。如果缩放插件下游紧接的是推理插件,可以不用设置缩放宽高,此时缩放宽高可以自动获取。
    maxDimension FastRCNN缩放模式中缩放后图片的最大长度。
    minDimension FastRCNN缩放模式中缩放后图片的最小长度。
    resizeType 缩放方式:Resizer_Stretch:拉伸缩放,默认缩放方式。支持OpenCV方法和Ascend方法。Resizer_KeepAspectRatio_FastRCNN:和FastRCNN缩放方式对应。支持OpenCV方法和Ascend方法。Resizer_KeepAspectRatio_Fit:等比缩放,使图片等比缩放至在指定宽高的区域内面积最大化。支持OpenCV方法和Ascend方法。Resizer_OnlyPadding:只padding,支持OpenCV方法和Ascend方法。Resizer_KeepAspectRatio_Long:最长边设置成某个指定值,等比例缩放,仅支持OpenCV方法。Resizer_KeepAspectRatio_Short:最短边设置成某个指定值,等比例缩放,仅支持OpenCV方法。Resizer_Rescale:按长宽缩放的较小比例拉伸缩放,仅支持OpenCV方法。Resizer_Rescale_Double:按长宽缩放的较小比例拉伸缩放两次,仅支持OpenCV方法。Resizer_PaddleOCR:以高为准的等比例缩放,仅支持OpenCV方法。Resizer_MS_Yolov4:YOLOv4模型对应的缩放方式,仅支持OpenCV方法。
    scaleValue 设置图片缩放的指定值,默认值为32,取值范围[32, 8192]。Resizer_KeepAspectRatio_Long最长边缩放到的指定值。Resizer_KeepAspectRatio_Short最短边缩放到的指定值。
    RGBValue 设置补边颜色值,依次输入R、G、B值,默认为空即不执行padding颜色设置,使用DVPP默认背景色。仅支持Ascend方法。
    interpolation 设置resize插件的插值方式,默认值为0。Atlas 200I/500 A2 推理产品支持以下算法(默认为0)。0:华为自研的高滤波算法。1:业界通用的Bilinear算法(与OpenCV算法的计算精度接近)。2:业界通用的Nearest Neighbor算法(与OpenCV算法的计算精度接近)。3:业界通用的Bilinear算法(与TensorFlow框架的计算精度接近)。4:业界通用的Nearest Neighbor算法(与TensorFlow框架的计算精度接近)。Atlas 推理系列产品支持以下算法(默认为0)。0、1:业界通用的Bilinear算法(与OpenCV算法的计算过程类似,当输入和输出图片格式都为RGB时,在[1/32, 512]的缩放范围内,与OpenCV算法的单个像素值最大差异为正负1)。2:业界通用的Nearest Neighbor算法(与OpenCV算法的计算过程类似)。
    cvProcessor 处理方法。ascend(默认):调用昇腾DVPP接口进行处理。opencv:调用OpenCV接口进行处理。
    paddingType 补边方式。Padding_NO(默认):不补边(Ascend/OpenCV方法支持该补边处理方式)。Padding_RightDown:右下方补边(仅OpenCV方法支持该补边处理方式)。Padding_Around:上下左右补边(Ascend/OpenCV方法支持该补边处理方式)。
    paddingHeight 补边后的高,必须比缩放后图片的高大。(该属性仅在OpenCV方法处理中生效)
    paddingWidth 补边后的宽,必须比缩放后图片的宽大。(该属性仅在OpenCV方法处理中生效)
    paddingColorB 指定补边颜色中三原色蓝色,可以设置为[0, 255]内的浮点数。仅支持OpenCV方法。
    paddingColorG 指定补边颜色中三原色绿色,可以设置为[0, 255]内的浮点数。仅支持OpenCV方法。
    paddingColorR 指定补边颜色中三原色红色,可以设置为[0, 255]内的浮点数。仅支持OpenCV方法。
    handleMethod 预留属性,请使用cvProcessor属性。
    处理方法:
  • ascend(默认)
  • opencv
  • mxpi_imagecrop

    功能描述

    • 支持根据目标检测的(x,y)坐标和(width,height)宽高进行图像裁剪(抠图)。
    • 支持指定上下左右四个方向的扩边比例,扩大目标框的区域进行图像裁剪。
    • 支持指定缩放后的宽高将裁剪(抠图)的图像缩放到指定宽高。

    同步/异步(status)

    同步

    约束限制

    • 输入端口0接收图像数据以及抠图坐标数据。
    • 输入端口1接收图像数据(比如缩放后的图片数据)。
    • 输入图像的最小分辨率:32 * 32。
    • 抠图范围限制:
      • Ascend方法抠图取值范围,高6 ~ 4096,宽10 ~ 4096。
      • OpenCV方法抠图取值范围,高1 ~ 8192,宽1 ~ 8192。
    • 既支持4k,也支持8k的图像格式:
      MXPI_PIXEL_FORMAT_YUV_SEMIPLANAR_420 = 1, // 1, YUV420SP NV12 8bit
      MXPI_PIXEL_FORMAT_YVU_SEMIPLANAR_420 = 2, // 2, YUV420SP NV21 8bit
    • 只支持4k的图像格式:
      MXPI_PIXEL_FORMAT_YUV_400 = 0, // 0, YUV400 8bit
      MXPI_PIXEL_FORMAT_YUV_SEMIPLANAR_422 = 3, // 3, YUV422SP NV12 8bit
      MXPI_PIXEL_FORMAT_YVU_SEMIPLANAR_422 = 4, // 4, YUV422SP NV21 8bit
      MXPI_PIXEL_FORMAT_YUV_SEMIPLANAR_444 = 5, // 5, YUV444SP NV12 8bit
      MXPI_PIXEL_FORMAT_YVU_SEMIPLANAR_444 = 6, // 6, YUV444SP NV21 8bit
      MXPI_PIXEL_FORMAT_YUYV_PACKED_422 = 7, // 7, YUV422P YUYV 8bit
      MXPI_PIXEL_FORMAT_UYVY_PACKED_422 = 8, // 8, YUV422P UYVY 8bit
      MXPI_PIXEL_FORMAT_YVYU_PACKED_422 = 9, // 9, YUV422P YVYU 8bit
      MXPI_PIXEL_FORMAT_VYUY_PACKED_422 = 10, // 10, YUV422P VYUY 8bit
      MXPI_PIXEL_FORMAT_YUV_PACKED_444 = 11, // 11, YUV444P 8bit

    插件基类(factory)

    mxpi_imagecrop

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiObjectList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。

    端口格式(caps)

    • 静态输入:{"metadata/object"},动态输入:{"image/yuv","image/rgb"}。
    • 静态输出:{"image/yuv","image/rgb"}。

    属性

    请参见表1

    表 1 mxpi_imagecrop插件的属性

    属性名 描述 是否为必选项 是否可修改
    deviceId 使用的Ascend设备的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。
    parentName 输入数据对应索引(通常情况下为上游元件名称)。功能与dataSource一致,建议使用dataSource,后续版本会删除。 请勿使用
    dataSource 输入数据对应索引(通常情况下为上游元件名称),默认为上游插件对应输出端口的key值。 建议使用
    dataSourceImage 设置抠图的图片数据源(通常情况下为上游某个元件名称)。
    leftExpandRatio 向左扩边的比例,默认值为0,取值范围为[0, 1]。
    rightExpandRatio 向右扩边的比例,默认值为0,取值范围为[0, 1]。
    upExpandRatio 向上扩边的比例,默认值为0,取值范围为[0, 1]。
    downExpandRatio 向下扩边的比例,默认值为0,取值范围为[0, 1]。
    resizeHeight Resizer_StretchResizer_KeepAspectRatio_Fit缩放模式中,缩放后的图像高度,默认为裁剪后的图像高度,即不缩放。
    resizeWidth Resizer_StretchResizer_KeepAspectRatio_Fit缩放模式中,缩放后的图像宽度,默认为裁剪后的图像宽度,即不缩放。
    maxDimension FastRCNN缩放模式中缩放后图片的最大长度。
    minDimension FastRCNN缩放模式中缩放后图片的最小长度。
    resizeType 缩放方式:Resizer_Stretch:拉伸缩放,默认缩放方式。Resizer_KeepAspectRatio_FastRCNN:和FastRCNN缩放方式对应。Resizer_KeepAspectRatio_Fit:等比缩放,使图片等比缩放至在指定宽高的区域内面积最大化。
    RGBValue 设置padding颜色值,依次输入R,G,B值,默认为空即不执行padding颜色设置,使用DVPP默认背景色。
    paddingType 设置padding方式,方式有两种:Padding_No(默认)Padding_RightDownPadding_Around
    cvProcessor 处理方法。ascend(默认):调用昇腾DVPP接口进行处理。opencv:调用OpenCV接口进行处理。
    autoDetectFrame 默认从上游插件(一般为推理插件或分块插件)的输出中找到裁剪的坐标框,如需自定义裁剪的坐标框请关闭该属性,默认值为1,可选值为0或1,0时需要提供坐标框。坐标框由(x0, y0),(x1, y1)两个坐标组成。
    cropPointx0 抠图x0坐标,String类型,区间为[1, 8192],支持多目标框输入。
    cropPointx1 抠图x1坐标,String类型,区间为[1, 8192],支持多目标框输入。
    cropPointy0 抠图y0坐标,String类型,区间为[1, 8192],支持多目标框输入。
    cropPointy1 抠图y1坐标,String类型,区间为[1, 8192],支持多目标框输入。
    handleMethod 预留属性,请使用cvProcessor属性。
    处理方法:
  • ascend(默认)
  • opencv
  • cropType 预留属性,请使用autoDetectFrame属性。抠图方式,根据坐标点抠图,默认为cropCoordinate坐标点抠图。

    自定义裁剪样例:

    1. 当输入为单坐标框(x0, y0)为(1, 1),(x1, y1)为(100, 100)。

       "mxpi_imagecrop0": {
                  "props" : {
                      "autoDetectFrame" : "0",
                      "cropPointx0" : "1",
                      "cropPointy0" : "1",
                      "cropPointx1" : "100",
                      "cropPointy1" : "100"
                  },
                  "factory": "mxpi_imagecrop",
                  "next": "xxxxxxxx"
              },
      
    2. 当输入为多个坐标框,第一个目标框为(1, 1)(100, 100),第二个目标框为(100, 100)(200, 200)。

       "mxpi_imagecrop0": {
                  "props" : {
                      "autoDetectFrame" : "0",
                      "cropPointx0" : "1, 100",
                      "cropPointy0" : "1, 100",
                      "cropPointx1" : "100, 200",
                      "cropPointy1" : "100, 200"
                  },
                  "factory": "mxpi_imagecrop",
                  "next": "xxxxxxxx"
              },
      

    mxpi_videodecoder

    功能描述

    用于视频解码,当前只支持H.264/H.265格式。

    同步/异步(status)

    异步

    约束限制

    • 输入视频的最大分辨率:4096 * 4096。
    • 输入视频的最小分辨率:128 * 128。
    • 输出图像的widthStride(对齐后的宽度):对齐到16(即宽度为16的倍数),解码插件自动对齐。
    • 输出图像的heightStride(对齐后的高度):对齐到2(即高度为2的倍数),解码插件自动对齐。
    • 输入视频格式:H264 bp/mp/hp level5.1 YUV420编码的视频流、H265 8/10bit level5.1 YUV420编码的视频流。
    • 输出图像的格式:YUV420SP NV12、 YUV420SP NV21。

    插件基类(factory)

    mxpi_videodecoder

    输入和输出

    输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiFrame”)。

    输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。

    端口格式(caps)

    静态输入:{"video/x-h264"}

    静态输出:{"image/yuv"}

    属性

    请参见表1

    表 1 mxpi_videodecoder插件的属性

    属性名 描述 是否为必选项 是否可修改
    inputVideoFormat 输入视频流的格式,默认为H264,暂时只能填写H264或者H265,填写其他格式会在运行中报错。需要与拉流插件的文件格式保持一致。目前已实现从上游插件(比如拉流插件)获取视频格式,用户不再需要设置格式,该属性已弃用。
    outputImageFormat 解码的输出图像格式,默认为YUV420SP_NV12,暂时只能填写YUV420SP_NV12或者YUV420SP_NV21,填写其他格式会在运行中报错。
    vdecChannelId 视频解码通道号,默认为0。在Atlas 200I/500 A2 推理产品上,取值范围为[0, 31]。在Atlas 推理系列产品上,取值范围为[0, 255]。每个视频解码插件应使用不同的解码通道号。
    outMode 设置是否实时出帧。默认值为0,可取值为0或1。0:由于解码过程中存在缓存帧,无法实时输出,因此VDEC需要在收到码流中的多帧数据后,才开始输出解码结果。1:快速出帧模式,VDEC获取码流中的一帧数据后,就开始实时输出解码结果。只支持简单参考关系的H.264/H.265标准码流(无长期参考帧,无B帧)。
    outPicWidthMax 解码码流最大宽度,取值范围[0, 4096]。
    outPicHeightMax 解码码流最大高度,取值范围[0, 4096]。
    skipFrame 跳帧个数,默认为0,取值范围[0, 100]。
    vdecResizeWidth 解码后缩放的宽。默认为0,即不做缩放,取值范围[0, 4096]。在Atlas 200I/500 A2 推理产品上为预留参数。
    vdecResizeHeight 解码后缩放的高。默认为0,即不做缩放,取值范围[0, 4096]。在Atlas 200I/500 A2 推理产品上为预留参数。

    Note

    解码插件内部缓存输入数据的输入buffer有限制,如果后端处理慢的话,就会触发反压,导致输入buffer不能被消费。当再次送帧进来的时候,会报错sendframe失败,解码插件不能恢复正常工作。

    mxpi_videoencoder

    功能描述

    用于视频编码。

    同步/异步(status)

    异步

    约束限制

    • 输入图像的最大分辨率:
      • Atlas 200I/500 A2 推理产品为1920 * 1920。
      • Atlas 推理系列产品为4096 * 4096。
    • 输入图像的最小分辨率:128 * 128。
    • 输入图像格式:当前只支持YUV420SP NV12/YUV420SP NV21格式。
    • 输出码流格式:H264 MP和H265 MP。
    • 输出内存:不需要用户管理输出内存,由系统管理内存。
    • Atlas 推理系列产品上,对于H.264格式的码流,最大分辨率的乘积不超过4096 * 2304。

    插件基类(factory)

    mxpi_videoencoder

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)。

    端口格式(caps)

    • 静态输入:{"ANY"}。
    • 静态输出:{"ANY"}。

    属性

    请参见表1

    表 1 mxpi_videoencoder插件的属性

    属性名 描述 是否为必选项 是否可修改
    iFrameInterval 视频I帧间隔大小,默认为30,取值范围[1, 2000]。
    imageHeight 输入图像高度,默认为1080。Atlas 200I/500 A2 推理产品取值范围[128, 1920]。Atlas 推理系列产品取值范围[128, 4096]。
    imageWidth 输入图像宽度,默认为1920。Atlas 200I/500 A2 推理产品取值范围[128, 1920]。Atlas 推理系列产品取值范围[128, 4096]。
    fps 是否打印视频编码帧率,默认为0,只能填0或者1。0:不打印帧率。1:打印帧率。
    dataSource 输入数据对应索引(通常情况下为上游元件名称),默认为上游插件对应输出端口的key值。
    inputFormat 输入的图像格式,默认是YUV420SP_NV12,暂时只能填YUV420SP_NV12或者YUV420SP_NV21。
    outputFormat 输出的码流格式,默认是H264,只能填H264或者H265。
    vencChannelId 码流的通道号,VENC和JPEGE共用通道,默认是0。Atlas 200I/500 A2 推理产品上通道号由系统分配,无需设置该参数。Atlas 推理系列产品上,取值范围[0, 127]。
    rcMode 指定码率控制模式,默认值2,取值如下:1:变码率VBR模式。0,2:定码率CBR模式。
    srcRate 输入码流帧率,单位fps,默认为30,取值范围[1, 120]。
    maxBitRate 输出码率,单位kbps,默认值为300,取值范围[10, 30000]。
    ipProp 一个GOP内单个I帧bit数和单个P帧bit数的比例,CBR模式默认值为70,VBR模式默认值为80,取值范围[1, 100]。Atlas 推理系列产品不支持设置该属性。
    frameReleaseTimeOut 视频帧保存在内存中的最长时间,默认为5秒,取值范围[1,10]。用户需根据自身业务调整,超时时间越长,视频质量越高,但占用内存会更大,性能会降低。

    mxpi_imageencoder

    功能描述

    用于图片编码。

    同步/异步(status)

    异步

    约束限制

    • 输入图像的最大分辨率:8192 * 8192。
    • 输入图像的最小分辨率:32 * 32。
    • 输入图像的宽、高均为偶数,当为奇数的时候自动对齐至偶数。
    • 输入图像的widthStride(对齐后的宽度):对于YUV420SP或RGB数据,对齐到16(若想获得更优性能请对齐到128)。对于YUV422Packed数据,为输入图片宽度的两倍对齐到16。
    • 输入图像的heightStride(对齐后的高度):与输入图片的高度相同的数值,或为输入图片的高度向上对齐到16的数值(最小为32)。
    • 输入图像格式:当前只支持YUV420SP(nv12、nv21)、YUV422Packed(yuyv、uyvy、yvyu、vyuy)、RGB(rgb888、bgr888)。
    • 输入数据类型:当前仅支持uint8。
    • 输出图片格式:JPEG压缩格式的图片文件,例如*.jpg。

    插件基类(factory)

    mxpi_imageencoder

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”或“MxpiFrame”或“MxpiVision”)。
    • 输出:buffer(数据类型“MxpiBuffer”)。

    端口格式(caps)

    • 静态输入:{"ANY"}。
    • 静态输出:{"ANY"}。

    属性

    请参见表1

    表 1 mxpi_imageencoder插件的属性

    属性名 描述 是否为必选项 是否可修改
    deviceId 使用的Ascend设备的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。
    dataSource 输入数据对应索引(通常情况下为上游元件名称),默认为上游插件对应输出端口的key值。
    encodeLevel 编码等级。Atlas 200I/500 A2 推理产品,默认为100,取值范围[1, 100]。Atlas 推理系列产品,默认为100,取值范围为[1, 100]。[1, 100]区间数值越小,输出图片质量越差。对于默认值0与100效果一样。

    mxpi_imagenormalize

    功能描述

    用于图像归一化或标准化处理,具体可以使用公式来描述:x' = (x - alpha) / beta。

    同步/异步(status)

    异步

    约束限制

    目前只支持UINT8、FLOAT32的输入数据类型。RGB888、BGR888的输入图像格式。

    插件基类(factory)

    mxpi_imagenormalize

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。

    端口格式(caps)

    • 静态输入:{"ANY"}。
    • 静态输出:{"ANY"}。

    属性

    请参见表1

    表 1 mxpi_imagenormalize插件的属性

    属性名 描述 是否为必选项 是否可修改
    deviceId 使用的Ascend设备的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。
    dataSource 输入图片数据对应索引(默认为上游插件对应输出端口的元数据的key)。
    alpha x' = (x - alpha) / beta 中的alpha值,默认值为0,0,0。依次输入R,G,B值。
    beta x' = (x - alpha) / beta 中的beta值,默认值为1,1,1。依次输入R,G,B值。
    format 输出图像的格式,目前只支持RGB888,BGR888,auto(与输入保持一致),默认值为auto。
    dataType 输出图像的数据类型,目前只支持UINT8,FLOAT32,auto(与输入保持一致),默认值为auto。
    processType 使用标准化或归一化对输入的图像数据进行预处理,int型,默认值为1。0:归一化。1:标准化。

    mxpi_imagenormalize插件的常见使用场景有两种:

    • 归一化:将一系列数据变化固定在某个区间(范围)中,通常这个区间是[0, 1]。

      此时,alpha = min(x),beta = max(x) - min(x)。

    • 标准化:将数据变换为均值为0,标准差为1的分布。

      此时,alpha = mean,beta = std。

    • 其他使用场景,可根据公式进行相应变化。

    mxpi_opencvcentercrop

    功能描述

    用于裁剪图片中心图片

    同步/异步(status)

    异步

    约束限制

    目前只支持UINT8、FLOAT32的输入数据类型。RGB888、BGR888的输入图像格式。

    插件基类(factory)

    mxpi_opencvcentercrop

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。

    端口格式(caps)

    • 静态输入:{"metadata/object"},{"image/yuv","image/rgb"}。
    • 静态输出:{"image/yuv","image/rgb"}。

    属性

    请参见表1

    表 1 mxpi_opencvcentercrop插件的属性

    属性名 描述 是否为必选项 是否可修改
    deviceId 使用的Ascend设备的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。
    dataSource 输入图片数据对应索引(默认为上游插件对应输出端口的元数据的key)。
    cropHeight 裁剪出的图片高,默认值为0,取值范围[0, 819200]。
    cropWidth 裁剪出的图片宽,默认值为0,取值范围[0, 819200]。

    pipeline样例:

    "mxpi_opencvcentercrop0": {
        "props": {
        "cropHeight":"416",
        "cropWidth":"416"
        },
    "factory": "mxpi_opencvcentercrop",
    "next": "mxpi_modelinfer0"
    },
    

    mxpi_warpperspective

    功能描述

    透视变换插件,用于推理完后检测框是有角度的长方形,需要旋转成正长方形的场景,输出是各个检测框的抠图信息,抠的图是经过透视变换的。

    本插件包含一个静态端口(必须连接)和一个动态端口(不连接则不创建)。

    同步/异步(status)

    同步

    约束限制

    插件基类(factory)

    mxpi_warpperspective

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。

    端口格式(caps)

    • 静态输入:{"metadata/object","metadata/texts"}。
    • 静态输出:{"image/yuv","image/rgb"}。

    属性

    请参见表1

    表 1 mxpi_warpperspective插件的属性

    属性名 描述 是否为必选项 是否可修改
    debugMode 设置为true时,会保存经过仿射变换后的图片到本地磁盘,保存路径为当前程序路径下warpPerspectiveImage/image*{index}*.jpg,index从0开始,最大到200。超过200会再次从0开始,原先的图片会被替换。
    oriImageDataSource 待旋转的图片数据对应的索引,当创建动态端口时有效。无动态端口时,图片数据通过静态端口(即端口0)对应的buffer中获取。

    Note

    debugMode设置为true时,会将插件的输出数据保存到磁盘文件中,产生额外的文件。产生的额外文件请用户自行管控,必要时请自行删除。处理隐私数据或敏感数据时请勿使用。

    mxpi_rotation

    功能描述

    用于图片旋转。

    同步/异步(status)

    同步

    约束限制

    目前支持的输入数据类型:

    • UINT8
    • FLOAT32

    目前支持的输入图像格式:

    • RGB888
    • BGR888

    插件基类(factory)

    mxpi_rotation

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。

    端口格式(caps)

    • 静态输入1:{"image/rgb"}。
    • 动态输入2:{"metadata/class"}。
    • 静态输出:{"image/rgb"}。

    属性

    请参见表 mxpi_rotation插件的属性

    表 1 mxpi_rotation插件的属性请参见

    属性名 描述 是否为必选项 是否可修改
    deviceId 使用的Ascend设备的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。
    dataSourceWarp 输入图片数据对应索引(默认为上游插件对应输出端口的元数据的key)。
    dataSourceClass 分类结果数据对应索引(默认为上游插件对应输出端口的元数据的key)。
    rotateCode 旋转类别:ROTATE_90_CLOCKWISE:顺时针旋转90度(默认值)。ROTATE_180:旋转180度。ROTATE_90_COUNTERCLOCKWISE:逆时针旋转90度。
    rotCondition 旋转条件,默认为GE:GE:大于等于。GT:大于。LE:小于等于。LT:小于。
    criticalValue 旋转临界值,默认为0。

    推理插件

    mxpi_modelinfer

    Note

    从当前版本不再演进,建议使用mxpi_tensorinfer插件。

    功能描述

    目标分类或检测。

    约束限制

    目前只支持单Tensor输入(图像数据)的推理模型。

    插件基类(factory)

    mxpi_modelinfer

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiObjectList”,“MxpiClassList”,“MxpiAttributeList”,“MxpiFeatureVectorList”,或“MxpiTensorPackageList”(不使用后处理情况下))。

    端口格式(caps)

    • 静态输入:{"image/yuv"}。
    • 静态输出:{"metadata/object", "metadata/class", "metadata/attribute", "metadata/feature-vector", "metadata/tensor"}。

    属性

    请参见表1

    表 1 mxpi_modelinfer插件的属性

    属性名 描述 是否为必选项 是否可修改
    modelPath 指定推理模型om文件路径。最大只支持至4G大小的模型,并且模型要求属主为当前用户,权限不大于640。
    postProcessConfigPath 后处理配置文件路径。
    postProcessConfigContent 后处理配置。
    labelPath 后处理类别标签路径。
    parentName 输入数据对应索引(通常情况下为上游元件名称),功能与dataSource一致,建议使用dataSource。本属性后续版本会删除。 请勿使用
    dataSource 输入数据对应索引(通常情况下为上游元件名称),默认为上游插件对应输出端口的key值。
    postProcessLibPath 后处理动态链接库so文件路径。如果不指定,则不进行后处理,直接将模型推理结果写入元数据MxpiTensorPackageList并将内存拷贝到outputDeviceId指定位置。
    deviceId 使用的Ascend设备的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。
    tensorFormat 值为0时采用NHWC,值为1时采用NCHW,默认为0。
    pictureCropName 该属性用于指示是否需要先将模型推理的坐标映射回抠图前的原图上。在默认情况下,如果不设置该属性,则不映射到原图上。如需要映射,则输入对应的抠图插件名称。
    waitingTime 多batch模型可容忍的等待组BATCH时间,超过此时间则结束等待自动完成推理,默认为5000 ms。
    outputDeviceId 不使用后处理so时,内存拷贝到outputDeviceId所指定位置。若需拷贝至Host侧,设为-1;若需拷贝至Device侧,当前仅支持填写stream_config字段中的deviceId。
    dynamicStrategy 动态Batch推理情形下,选取合适batchsize所采用的策略。默认为"Nearest"。"Nearest"策略:选取与缓存图片数量差值的绝对值最接近的batchsize(绝对值相等取较大者)。"Upper"策略:取大于或等于缓存图片数量的最小batchsize。"Lower"策略:取小于或等于缓存图片数量的最大batchsize。程序限制上限batchSize是128,请根据模型batchSize合理设置待推理的图片数量,输入图片超过模型最大batchSize时,多出的图片不会进行推理。
    checkImageAlignInfo 图像对齐高宽检验,值为string,默认为on(需要校验),如需关闭填写off。

    Note

    • parentName是为了兼容之前版本,后续建议使用dataSource,两者使用方式相同,使用时只能选其一。
    • postProcessConfigContent和postProcessConfigPath两个属性的目的都是获取后处理的配置内容,不同点在于一个是直接将内容写出来,另一个是以文件的形式给出,实际使用中只需使用其中一个属性即可。

    模型后处理介绍

    详细内容见模型后处理类参考(modelinfer框架)

    mxpi_tensorinfer

    功能描述

    对输入的张量进行推理。

    同步/异步(status)

    同步

    约束限制

    插件基类(factory)

    mxpi_tensorinfer

    输入和输出

    • 输入:数据类型“MxpiTensorPackageList”,(兼容“MxpiVisionList”时,自动转换为通道数为3的“MxpiTensorPackageList”)。
    • 输出:数据类型“MxpiTensorPackageList”。

    端口格式(caps)

    • 静态输入:{"metadata/tensor"},动态输入:{"image/yuv"},至少一个端口,可以为多个。
    • 静态输出:{"metadata/tensor"}。

    属性

    请参见表1

    表 1 mxpi_tensorinfer插件的属性

    属性名 描述 是否为必选项 是否可修改
    modelPath 指定推理模型OM文件路径。最大只支持至4G大小的模型,并且模型要求属主为当前用户,权限不大于640。
    outputDeviceId 不使用后处理so时,内存拷贝到outputDeviceId所指定位置。若需拷贝至Host侧,设为-1。若需拷贝至Device侧,当前仅支持填写stream_config字段中的deviceId。
    waitingTime 多batch模型可容忍的等待组BATCH时间,超过此时间则结束等待自动完成推理,默认为5000ms。
    dynamicStrategy 动态Batch推理情形下,选取合适batchsize所采用的策略。默认为"Nearest"。"Nearest"策略:选取与缓存图片数量差值的绝对值最接近的batchsize(绝对值相等取较大者)。"Upper"策略:取大于或等于缓存图片数量的最小batchsize。"Lower"策略:取小于或等于缓存图片数量的最大batchsize。
    singleBatchInfer 单batch推理开关。布尔型,默认为0。0:自动根据模型的第一维,选择单batch或多batch推理。1:无论模型的第一维是否为1,都只会进行单batch推理。
    outputHasBatchDim 模型输出维度是否具有batch维,如果没有,推理插件会自动为输出张量增加batch维,布尔型,默认值为1。0:没有。1:有。
    skipModelCheck 跳过模型数据输入校验。

    示例

    插件会等待前面所有插件发送的数据都到达后,进入Process接口(即同步模式SYNC),对其中的MxpiTensorPackageList(或MxpiVisionList)进行组装,若组装后的张量与模型输入张量一致,则开启推理,并将推理结果输出到输出端口。

    pipeline样例:

    "mxpi_tensorinfer0": {
        "props": {
            "dataSource": "appsrc0,appsrc1,appsrc2",
            "modelPath": "../models/bert/bert.om"
         },
        "factory": "mxpi_tensorinfer",
        "next": "mxpi_classpostprocessor0"
    },
    

    Note

    在使用推理结果进行精度测试时,模型推理前的预处理方式需要优先按照所用模型训练时使用的预处理方式,包括但不限于缩放方式、缩放时插值方式、抠图方式、对齐方式等。

    模型后处理插件

    后处理插件基类

    模型后处理插件用于对模型推理的输出张量进行后处理并将对应结果写入元数据。由于不同推理任务类型的后处理所需要的输入,以及输出类型都不相同,因此需要采用不同的后处理插件。为了易于复用,Vision SDK已将部分接口和成员提取到后处理基类中。对于每类任务,如目标检测任务,采用动态加载后处理so的方法,实现支持各种模型(如YOLOv3,FasterRCNN,SsdVgg-16等模型)的多态性。

    功能描述

    用于对模型推理的输出张量进行后处理。

    约束限制

    后处理插件当前需要连接在mxpi_tensorinfer推理插件之后使用,只接受MxpiTensorPackageList作为元数据输入。

    父类不生成插件,子类继承父类生成插件。

    父类类名

    MxModelPostProcessorBase,MxImagePostProcessorBase(图像后处理基类,继承自MxModelPostProcessorBase)。

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiTensorPackageList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiObjectList”,“MxpiClassList”,“MxpiImageMaskList”,“MxpiTextObjectList”等)。

    端口格式(caps)

    • 静态输入:{"metadata/tensor"}。
    • 静态输出:子类重写。

    属性

    请参见表1

    表 1 MxModelPostProcessorBase(及MxImagePostProcessorBase)的属性

    属性名 描述 是否为必选项 是否可修改
    deviceId 使用的Ascend设备的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。
    postProcessLibPath 后处理动态链接库so文件路径。如果不指定,则不进行后处理,直接将模型推理结果写入元数据MxpiTensorPackageList并将内存拷贝到outputDeviceId指定位置。
    labelPath 后处理类别标签路径。
    dataSource 输入数据对应索引(通常情况下为上游元件名称),默认为上游插件对应输出端口的key值。
    postProcessConfigPath 后处理配置文件路径。
    postProcessConfigContent 后处理配置。
    dataSourceResize 仅在继承MxImagePostProcessorBase(图像后处理基类)的子类插件中拥有该属性。该属性用于指示是否需要先将模型后处理中的坐标映射回缩放前的图片。在默认情况下,如果不设置该属性,则从推理插件前一个插件获取。如果获取不到,则不会进行坐标的缩放还原。
    dataSourceRoiBoxes 仅在继承MxImagePostProcessorBase(图像后处理基类)的子类插件中拥有该属性。该属性用于指示是否需要先将模型推理的坐标映射回抠图前的原图上。在默认情况下,如果不设置该属性,则不映射到原图上。如需要映射,则输入对应的抠图插件名称。
    funcLanguage 设置成后处理插件的开发语言,比如C++或Python。
    className 后处理类的名称。
    pythonModule 加载的后处理module名称,与Python或so内的module名称统一。
    dataSourceImage 内部调试中,请勿使用。

    表 2 Python后处理的属性

    属性名 描述 是否为必选项 是否可修改
    funcLanguage 设置成后处理插件的开发语言,比如C++或Python。
    postProcessLibPath 后处理动态链接库so文件目录,该目录下存在后处理的Python文件或so。
    className 后处理类的名称。
    pythonModule 加载的后处理module名称,与Python或so内的module名称统一。
    labelPath 后处理类别标签路径。
    dataSource 输入数据对应索引(通常情况下为上游元件名称)。
    postProcessConfigPath 后处理配置文件路径。
    deviceId 使用的Ascend设备的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。
    dataSourceResize 仅在继承MxImagePostProcessorBase(图像后处理基类)的子类插件中拥有该属性。该属性用于指示是否需要先将模型后处理中的坐标映射回缩放前的图片。不设置该属性的默认情况下从推理插件前一个插件获取。如果获取不到,则不会进行坐标的缩放还原。
    dataSourceRoiBoxes 仅在继承MxImagePostProcessorBase(图像后处理基类)的子类插件中拥有该属性。是否需要先将模型推理的坐标映射回抠图前的原图上。不设置该属性的默认情况下不映射到原图上。如需要映射,则输入对应的抠图插件名称。

    图 1 后处理插件类继承关系图

    mxpi_objectpostprocessor

    功能描述

    继承图像后处理基类,用于对目标检测模型推理的输出张量进行后处理。

    约束限制

    目前其上游只能连接mxpi_tensorinfer推理插件,只接受MxpiTensorPackageList作为元数据输入。调用mxBase仓的目标检测基类Process接口实现通讯,接受ObjectInfo数据类型的返回。

    插件基类(factory)

    mxpi_objectpostprocessor

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiTensorPackageList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiObjectList”)。

    端口格式(caps)

    • 静态输入:{"metadata/tensor"}。
    • 静态输出:{"metadata/object"}。

    属性

    请参见表1表2

    Python后处理插件pipeline样例:

    "mxpi_objectpostprocessor0": {
                "props": {
                    "funcLanguage":"python",
                    "postProcessConfigPath": "../models/yolov3/yolov3_tf_bs1_fp16.cfg",
                    "labelPath": "../models/yolov3/yolov3.names",
                    "postProcessLibPath": "../../../python",
                    "className":"Yolov3PostProcess",
                    "pythonModule":"postprocess.post"
                },
                "factory": "mxpi_objectpostprocessor",
                "next": "mxpi_dataserialize0"
            },
    

    C++后处理插件pipeline样例:

    "mxpi_objectpostprocessor0": {
     "props": {
                    "dataSource": "mxpi_tensorinfer0",
                    "funcLanguage":"c++",
                    "postProcessConfigPath": "../models/yolov3/yolov3_tf_bs1_fp16.cfg",
                    "labelPath": "../models/yolov3/yolov3.names",
                    "postProcessLibPath": "../../../lib/modelpostprocessors/libyolov3postprocess.so"
            },
            "factory": "mxpi_objectpostprocessor",
            "next": "mxpi_dataserialize0"
    },
    

    mxpi_classpostprocessor

    功能描述

    继承模型后处理基类,用于对分类模型推理的输出张量进行后处理。

    约束限制

    目前其上游只能连接mxpi_tensorinfer推理插件,只接受MxpiTensorPackageList作为元数据输入。

    调用mxBase仓的目标检测基类Process接口实现通讯,接受ClassInfo数据类型的返回。

    插件基类(factory)

    mxpi_classpostprocessor

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiTensorPackageList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiClassList”)。

    端口格式(caps)

    • 静态输入:{"metadata/tensor"}。
    • 静态输出:{"metadata/class"}。

    属性

    请参见表1表2

    Python后处理插件pipeline样例:

    "mxpi_classpostprocessor0": {
            "props": {
                    "funcLanguage":"python",
                    "postProcessConfigPath": "../models/resnet50/resnet50_aipp_tf.cfg",
                    "labelPath": "../models/resnet50/resnet50_clsidx_to_labels.names",
                    "postProcessLibPath": "../../../python",
                    "className":"Resnet50PostProcess",
                    "pythonModule":"postprocess.post"
            },
            "factory": "mxpi_classpostprocessor",
            "next": "mxpi_dataserialize0"
    },
    

    C++后处理插件pipeline样例:

    "mxpi_classpostprocessor0": {
            "props": {
                    "dataSource": "mxpi_tensorinfer0",
                    "funcLanguage":"c++",
      "postProcessConfigPath": "../models/resnet50/resnet50_aipp_tf.cfg",
      "labelPath": "../models/resnet50/resnet50_clsidx_to_labels.names",
      "postProcessLibPath": "../../../lib/modelpostprocessors/libresnet50postprocess.so"
            },
            "factory": "mxpi_classpostprocessor", 
            "next": "mxpi_dataserialize0"
    },
    

    mxpi_semanticsegpostprocessor

    功能描述

    继承图像后处理基类,用于对语义分割模型推理的输出张量进行后处理。

    约束限制

    目前其上游只能连接mxpi_tensorinfer推理插件,只接受MxpiTensorPackageList作为元数据输入。

    调用mxBase仓的目标检测基类Process接口实现通讯,接受SemanticSegInfo数据类型的返回。

    插件基类(factory)

    mxpi_semanticsegpostprocessor

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiTensorPackageList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiImageMaskList”)。

    端口格式(caps)

    • 静态输入:{"metadata/tensor"}。
    • 静态输出:{"metadata/semanticseg"}。

    属性

    请参见表1表2

    Python后处理插件pipeline样例:

    "mxpi_semanticsegpostprocessor0": {
     "props": {
      "dataSource": "mxpi_tensorinfer0",
                    "funcLanguage":"python",
      "postProcessConfigPath": "../models/deeplabv3/deeplabv3.cfg",
      "labelPath": "../models/deeplabv3/deeplabv3.names",
      "postProcessLibPath": "../../../python",
                    "className":"Deeplabv3Post",
                    "pythonModule":"postprocess.post"
      },
     "factory": "mxpi_semanticsegpostprocessor",
     "next": "mxpi_dataserialize0"
    },
    

    C++后处理插件pipeline样例:

    "mxpi_semanticsegpostprocessor0": {
        "props": {
            "dataSource": "mxpi_tensorinfer0",
                    "funcLanguage":"c++",
            "postProcessConfigPath": "../models/deeplabv3/deeplabv3.cfg",
            "labelPath": "../models/deeplabv3/deeplabv3.names",
            "postProcessLibPath": "../../../lib/modelpostprocessors/libdeeplabv3postprocess.so"
            },
        "factory": "mxpi_semanticsegpostprocessor",
        "next": "mxpi_dataserialize0"
    },
    

    mxpi_textgenerationpostprocessor

    功能描述

    继承模型后处理基类,用于对文本生成(以及翻译,文字识别,语音识别等)模型推理的输出张量进行后处理。

    约束限制

    目前其上游只能连接mxpi_tensorinfer推理插件,只接受MxpiTensorPackageList作为元数据输入。调用mxBase仓的目标检测基类Process接口实现通讯,接受TextsInfo数据类型的返回。

    插件基类(factory)

    mxpi_textgenerationpostprocessor

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiTensorPackageList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiTextsInfoList”)。

    端口格式(caps)

    • 静态输入:{"metadata/tensor"}。
    • 静态输出:{"metadata/text"}。

    属性

    请参见表1表2

    Python后处理插件pipeline样例:

    "mxpi_textgenerationpostprocessor0": {
     "props": {
      "dataSource": "mxpi_tensorinfer0",
                    "funcLanguage":"python",
      "postProcessConfigPath": "../models/crnnms/crnn.cfg",
      "labelPath": "../models/crnnms/crnn.names",
      "postProcessLibPath": "../../../python",
                    "className":"CrnnPostProcess",
                    "pythonModule":"postprocess.post"
     },
     "factory": "mxpi_textgenerationpostprocessor",
     "next": "mxpi_dataserialize0"
    },
    

    C++后处理插件pipeline样例:

    "mxpi_textgenerationpostprocessor0": {
     "props": {
      "dataSource": "mxpi_tensorinfer0",
                    "funcLanguage":"c++",
      "postProcessConfigPath": "../models/crnnms/crnn.cfg",
      "labelPath": "../models/crnnms/crnn.names",
      "postProcessLibPath": "../../../lib/modelpostprocessors/libcrnnpostprocess.so"
     },
     "factory": "mxpi_textgenerationpostprocessor",
     "next": "mxpi_dataserialize0"
    },
    

    mxpi_textobjectpostprocessor

    功能描述

    继承图像后处理基类,用于对文本目标框检测模型推理的输出张量进行后处理。

    约束限制

    目前其上游只能连接mxpi_tensorinfer推理插件,只接受MxpiTensorPackageList作为元数据输入。调用mxBase仓的目标检测基类Process接口实现通讯,接受TextObjectInfo数据类型的返回。

    插件基类(factory)

    mxpi_textobjectpostprocessor

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiTensorPackageList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiTextObjectList”)。

    端口格式(caps)

    • 静态输入:{"metadata/tensor"}。
    • 静态输出:{"metadata/textobject"}。

    属性

    请参见表1表2

    Python后处理插件pipeline样例:

    "mxpi_textobjectpostprocessor0": {
     "props": {
      "dataSource": "mxpi_tensorinfer0",
                    "funcLanguage":"python",
      "postProcessConfigPath": "../models/ctpn_ms_cv/ctpn_mindspore.cfg",
      "postProcessLibPath": "../../../python",
      "labelPath": "../models/ctpn_ms_cv/ctpn.names",
                    "className":"CtpnPostProcess",
                    "pythonModule":"postprocess.post"
     },
     "factory": "mxpi_textobjectpostprocessor",
     "next": "mxpi_dataserialize0"
    },
    

    C++后处理插件pipeline样例:

    "mxpi_textobjectpostprocessor0": {
     "props": {
      "dataSource": "mxpi_tensorinfer0",
                    "funcLanguage":"c++",
      "postProcessConfigPath": "../models/ctpn_ms_cv/ctpn_mindspore.cfg",
      "postProcessLibPath": "../../../lib/modelpostprocessors/libctpnpostprocess.so",
      "labelPath": "../models/ctpn_ms_cv/ctpn.names"
     },
     "factory": "mxpi_textobjectpostprocessor",
     "next": "mxpi_dataserialize0"
    },
    

    mxpi_keypointpostprocessor

    功能描述

    继承图像后处理基类,用于对姿态检测模型推理的输出张量进行后处理。

    约束限制

    目前其上游只能连接mxpi_tensorinfer推理插件,只接受MxpiTensorPackageList作为元数据输入。调用mxBase仓的目标检测基类Process接口实现通讯,接受KeyPointInfo数据类型的返回。

    插件基类(factory)

    mxpi_keypointpostprocessor

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiTensorPackageList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiPoseList”)。

    端口格式(caps)

    • 静态输入:{"metadata/tensor"}。
    • 静态输出:{"metadata/keypoint"}。

    属性

    请参见表1表2

    Python后处理插件pipeline样例:

    "mxpi_keypointpostprocessor0": {
                "props": {
                    "funcLanguage":"python",
                    "postProcessConfigPath": "../models/openpose/openpose.cfg",
                    "labelPath": "../models/openpose/coco.names",
                    "postProcessLibPath": "../../../python",
                    "className":"OpenPosePostProcess",
                    "pythonModule":"postprocess.post"
                },
                "factory": "mxpi_keypointpostprocessor",
                "next": "mxpi_dataserialize0"
            },
    

    C++后处理插件pipeline样例:

       "mxpi_keypointpostprocessor0": {
            "props": {
                "dataSource": "mxpi_tensorinfer0",
                "postProcessConfigPath": "../models/openpose/openpose.cfg",
                "labelPath": "../models/openpose/coco.names",
                "postProcessLibPath": "libopenposepostprocess.so"
            },
            "factory": "mxpi_keypointpostprocessor",
            "next": "mxpi_dataserialize0"
        },
    

    智能视频分析(IVA)插件

    mxpi_motsimplesort

    Note

    即将废弃,请使用mxpi_motsimplesortV2插件。

    功能描述

    实现多目标(包括机动车,非人目标以及人)路径记录功能。

    约束限制

    插件基类(factory)

    mxpi_motsimplesort

    输入和输出

    • 静态输入:buffer(数据类型“MxpiBuffer”)、动态输入:metadata(数据类型“MxpiObjectList”)。
    • 静态输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiTrackLetList”)。

    属性

    请参见表1

    表 1 mxpi_motsimplesort插件的属性

    属性名 描述 是否为必选项 是否可修改
    dataSourceDetection 模型检测后的目标框数据的对应索引(通常情况下为上游元件名称)。
    dataSourceFeature 特征提取后的目标特征数据的对应索引(通常情况下为上游元件名称)。
    trackThreshold 路径记录对象属于同一目标概率阈值,大于该阈值认为是同一对象(默认值:0.5,取值范围:[0, 1.0])。
    lostThreshold 路径记录目标丢失帧数阈值,帧数大于该阈值认为行程目标已丢失(默认值:5,取值范围:[0, 10])。

    mxpi_motsimplesortV2

    功能描述

    实现多目标(包括机动车,非人目标以及人)路径记录功能。相比较前一个版本的差别为:

    • V2版本对插件的输入端口做了调整:只使用物体的框信息做MOT时,只用连接一个输入端口。在此基础上,若还使用物体的特征信息做MOT,则连接两个输入端口。
    • dataSource实现自动配置。

    同步/异步(status)

    同步

    约束限制

    插件基类(factory)

    mxpi_motsimplesortV2

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiObjectList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiTrackLetList”)。

    端口格式(caps)

    • 静态输入:{"ANY"}、动态输入:{"ANY"}。
    • 静态输出:{"ANY"}。

    属性

    请参见表1

    表 1 mxpi_motsimplesortV2插件的属性

    属性名 描述 是否为必选项 是否可修改
    dataSourceDetection 模型检测后的目标框数据的对应索引(默认为上游插件对应输出端口的key值)。
    dataSourceFeature 特征提取后的目标特征数据的对应索引(默认为上游插件对应输出端口的key值)。
    trackThreshold 路径记录对象属于同一目标概率阈值,大于该阈值认为是同一对象(默认值:0.5,取值范围:[0, 1.0])。
    lostThreshold 路径记录目标丢失帧数阈值,帧数大于该阈值认为行程目标已丢失(默认值:5,取值范围:[0, 10])。

    示例

    • 只使用物体的bounding box(框信息)做MOT,常见使用场景:对视频中的车进行动向记录。

    • 同时使用物体的bounding box(框信息)和物体的特征做MOT,常见使用场景:对视频中的人或目标进行动向记录。

    mxpi_facealignment

    功能描述

    目标对齐插件,可用于矫正检测出的目标图像。输入目标图像的关键点信息和需要对齐的目标图像,输出对齐后的目标图像。

    同步/异步(status)

    同步

    约束限制

    • 输入端口0为目标图像数据。
    • 输入端口1为目标关键点数据。

    插件基类(factory)

    mxpi_facealignment

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)。
    • 输出:buffer(数据类型“MxpiBuffer”)。

    属性

    请参见表1

    表 1 mxpi_facealignment插件的属性

    属性名 描述 是否为必选项 是否可修改
    deviceId 使用的昇腾AI处理器的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。
    dataSourceImage 目标图像输入数据对应索引,默认为上游插件对应输出端口的key值。
    dataSourceKeyPoint 目标关键点输入数据对应索引,默认为上游插件对应输出端口的key值。
    afterFaceAlignmentHeight 目标对齐后的图像高度,默认为112,取值范围为[32, 8192]。
    afterFaceAlignmentWidth 目标对齐后的图像宽度,默认为112,取值范围为[32, 8192]。

    Note

    请注意“afterFaceAlignmentHeight”与“afterFaceAlignmentWidth”属性值与输入图片的元数据的一致性,否则会由于参数不一致而产生错误信息,导致对齐结果获取失败。同时OpenCV要求高度和宽度需要为2的倍数。

    mxpi_qualitydetection

    功能描述

    视频质量诊断插件,可用于对视频解码之后的图像进行质量分析检测,对异常的场景进行日志告警。

    支持的检测场景有:

    • 视频亮度异常检测
    • 视频遮挡异常检测
    • 视频模糊异常检测
    • 视频雪花噪声异常检测
    • 视频偏色异常检测
    • 视频条纹噪声检测
    • 视频信号丢失异常检测
    • 视频冻结异常检测
    • 视频抖动异常检测
    • 视频画面突变异常检测
    • PTZ云台运动异常检测

    约束限制

    该插件仅支持在视频解码插件(mxpi_videodecoder)之后进行配置。

    插件基类(factory)

    mxpi_qualitydetection

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。

    端口格式(caps)

    • 静态输入:{ "image/yuv", "metadata/object" }。
    • 静态输出:{ "ANY" }。

    属性

    请参见表1

    表 1 mxpi_qualitydetection插件的属性

    属性名 描述 是否为必选项 是否可修改
    dataSource 输入数据对应索引(通常情况下为上游元件名称),默认为上游插件对应输出端口的key值。
    qualityDetectionConfigContent 质量检测算法属性配置内容,具体属性介绍参考表2
    qualityDetectionConfigPath 质量检测算法属性配置文件路径(该属性与qualityDetectionConfigContent须至少配置一项,qualityDetectionConfigContent优先级大于该属性),具体参数介绍参考表2

    表 2 质量检测算法参数介绍

    属性名 描述 默认值
    FRAME_LIST_LEN 插件存放视频帧队列长度。 20
    BRIGHTNESS_SWITCH 视频亮度检测算法开关。 false
    BRIGHTNESS_FRAME_INTERVAL 视频亮度检测帧间隔。输入必须是正整数并且小于FRAME_LIST_LEN。当输入小数时自动会向下取整。 10
    BRIGHTNESS_THRESHOLD 视频亮度检测算法阈值。 1
    OCCLUSION_SWITCH 视频遮挡检测算法开关。 false
    OCCLUSION_FRAME_INTERVAL 视频遮挡检测帧间隔。输入必须是正整数并且小于FRAME_LIST_LEN。当输入小数时自动会向下取整。 10
    OCCLUSION_THRESHOLD 视频遮挡检测算法阈值。 0.32
    BLUR_SWITCH 视频模糊检测算法开关。 false
    BLUR_FRAME_INTERVAL 视频模糊检测帧间隔。输入必须是正整数并且小于FRAME_LIST_LEN。当输入小数时自动会向下取整。 10
    BLUR_THRESHOLD 视频模糊检测算法阈值。 2000
    NOISE_SWITCH 视频噪声检测算法开关。 false
    NOISE_FRAME_INTERVAL 视频噪声检测帧间隔。输入必须是正整数并且小于FRAME_LIST_LEN。当输入小数时自动会向下取整。 10
    NOISE_THRESHOLD 视频噪声检测算法阈值。 0.005
    COLOR_CAST_SWITCH 视频偏色检测算法开关。 false
    COLOR_CAST_FRAME_INTERVAL 视频偏色检测帧间隔。输入必须是正整数并且小于FRAME_LIST_LEN。当输入小数时自动会向下取整。 10
    COLOR_CAST_THRESHOLD 视频偏色检测算法阈值。 1.5
    STRIPE_SWITCH 视频条纹检测算法开关。 false
    STRIPE_FRAME_INTERVAL 视频条纹检测帧间隔。输入必须是正整数并且小于FRAME_LIST_LEN。当输入小数时自动会向下取整。 10
    STRIPE_THRESHOLD 视频条纹检测算法阈值。 0.0015
    DARK_SWITCH 视频黑屏检测算法开关。 false
    DARK_FRAME_INTERVAL 视频黑屏检测帧间隔。输入必须是正整数并且小于FRAME_LIST_LEN。当输入小数时自动会向下取整。 10
    DARK_THRESHOLD 视频黑屏检测算法阈值。 0.72
    VIDEO_FREEZE_SWITCH 视频冻结检测算法开关。 false
    VIDEO_FREEZE_FRAME_INTERVAL 视频冻结检测帧间隔。输入必须是正整数并且小于FRAME_LIST_LEN。当输入小数时自动会向下取整。 10
    VIDEO_FREEZE_THRESHOLD 视频冻结检测算法阈值。 0.1
    VIEW_SHAKE_SWITCH 视频抖动检测算法开关。 false
    VIEW_SHAKE_FRAME_INTERVAL 视频抖动检测帧间隔。输入必须是正整数并且小于FRAME_LIST_LEN。当输入小数时自动会向下取整。 10
    VIEW_SHAKE_THRESHOLD 视频抖动检测算法阈值。 20
    SCENE_MUTATION_SWITCH 视频突变检测算法开关。 false
    SCENE_MUTATION_FRAME_INTERVAL 视频突变检测帧间隔。输入必须是正整数并且小于FRAME_LIST_LEN。当输入小数时自动会向下取整。 10
    SCENE_MUTATION_THRESHOLD 视频突变检测算法阈值。 0.5
    PTZ_MOVEMENT_SWITCH PTZ云台运动检测算法开关。 false
    PTZ_MOVEMENT_FRAME_INTERVAL PTZ云台运动检测帧间隔。输入必须是大于1的正整数并且小于FRAME_LIST_LEN。当输入小数时自动会向下取整。 10
    PTZ_MOVEMENT_THRESHOLD PTZ云台运动检测算法阈值。 0.95

    调试插件

    mxpi_dumpdata

    [!NOTICE] 使用此插件会将插件的输出数据保存到磁盘文件中,产生额外的文件。产生的额外文件请用户自行管控,必要时请自行删除。处理隐私数据或敏感数据时请勿使用此插件。

    功能描述

    数据导出插件,用于导出上游插件的MxpiBuffer类型数据,以JSON格式输出。当location属性没有指定时,导出的数据存在MxpiBuffer中发给下游插件,当指定了location属性时,导出数据到指定的文件,透传上游插件的MxpiBuffer类型数据到下游插件。

    约束限制

    metadata中的数据只能导出protobuf定义的类型的数据,自定义的C++ class或者struct数据不能导出。

    插件基类(factory)

    mxpi_dumpdata

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)。
    • 输出:buffer(数据类型“MxpiBuffer”)。

    属性

    请参见表1

    表 1 mxpi_dumpdata插件的属性

    属性名 描述 是否为必选项 是否可修改
    filterMetaDataKeys 导出时过滤metadata中对应索引的内容,如果metadata中保存了自定义的C++ class或者struct数据,则需要把数据对应的索引填入,当有多个时,使用逗号分隔。如:"ReserveMetadataGraph, MxstFrameExternalInfo"。当配置了requiredMetaDataKeys时,此属性无效。
    requiredMetaDataKeys 导出时只导出metadata中特定索引的内容,当有多个时,使用逗号分隔。如:"mxpi_imagedecoder0, ReservedVisionList"。
    location 导出数据的文件名,该参数可选,不填时数据不导出,传入下个插件。指定时,数据导出到文件中,透传上游插件的MxpiBuffer到下游插件。当配置的文件名带目录名称时,会自动创建目录,比如test/file.output,会创建test目录,dump出的内容保存到这个目录下的file.output文件里。
    dumpMemoryData 是否导出MxVisionData和MxpiTensor里的dataStr字段,这个字段是把内存数据经过base64编码后保存到文本中,数据长度会比较大。默认值为true,导出数据。设置为false时,该字段不导出。

    mxpi_loaddata

    功能描述

    数据加载插件,用于加载mxpi_dumpdata插件导出的文件,还原成MxpiBuffer,需要配合filesrc插件进行使用,filesrc作为mxpi_loaddata插件的上游插件读取文件内容后传给mxpi_loaddata。

    约束限制

    只支持当前sdk protobuf定义的类型,用户自定义的类型不支持。

    插件基类(factory)

    mxpi_loaddata

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)。
    • 输出:buffer(数据类型“MxpiBuffer”)。

    属性

    屏幕展示(OSD)插件

    简介

    OSD基础功能相关插件。

    主要实现在图片上绘制基本单元,如画框、画线、画圆、写字等功能,涉及目标框转绘图,分类转绘图,拼图以及坐标转换等插件。

    mxpi_opencvosd

    使用mxpi_opencvosd插件前,需要使用osd相关的模型文件,请执行Vision SDK软件包安装目录下operators/opencvosd/generate_osd_om.sh脚本生成所需模型文件。支持单个pipeline创建多个mxpi_opencvosd实例。

    [!NOTICE]

    • 确保当前用户ATC相关环境变量已设置正确,可以正常使用ATC工具。
    • 用户需具备ASCEND_OPP_PATH目录写权限。root用户默认ASCEND_OPP_PATH路径为:“/usr/local/Ascend/cann/opp”;普通用户默认ASCEND_OPP_PATH路径为:“$HOME/Ascend/cann/opp”。

    功能描述

    调用OSD基础功能在图片上绘制基本单元,如画框、写字、画线、画圆等。

    同步/异步(status)

    同步

    约束限制

    • MxpiOsdInstancesList中的osd参数需符合OpenCV接口限制。
    • 每个输入buffer中的MxpiVisionList与MxpiOsdInstancesList长度一致。

    插件基类(factory)

    mxpi_opencvosd

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)、metadata(数据类型“MxpiOsdInstancesList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。

    端口格式(caps)

    • 静态双输入:{"image/yuv"},{"metadata/osd"}。
    • 静态输出:{"image/yuv"}。

    属性

    请参见表1

    表 1 mxpi_opencvosd插件的属性

    属性名 描述 是否为必选项 是否可修改
    dataSourceImage 输入端口0的buffer索引名称(默认为上游插件对应输出端口0的元数据的key)。
    dataSourceOsd 输入端口1的buffer索引名称(默认为上游插件对应输出端口1的元数据的key)。

    示例

    调用OSD基础功能buffer(MxpiOsdInstancesList)在输入图片上(MxpiVisionList)绘制基本单元,如画框、写字、画线、画圆等,并且输出buffer给下游插件。

    pipeline样例:

    "mxpi_opencvosd0":{
        "props":{
      "dataSourceImage":"mxpi_channelimagesstitcher0_0",
      "dataSourceOsd":"mxpi_channelosdcoordsconverter0"
        },
        "factory":"mxpi_opencvosd",
        "next":"queue10"
    },
    

    mxpi_object2osdinstances

    功能描述

    目标框转绘图单元插件。将MxpiObjectList转换为用于osd绘图的MxpiOsdInstancesList。

    同步/异步(status)

    异步

    约束限制

    -

    插件基类(factory)

    mxpi_object2osdinstances

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiObjectList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiOsdInstancesList”)。

    端口格式(caps)

    • 静态输入:{"metadata/object"}。
    • 静态输出:{"metadata/osd"}。

    属性

    请参见表1

    表 1 mxpi_object2osdInstances插件的属性

    属性名 描述 是否为必选项 是否可修改
    dataSource 输入数据对应索引名称(默认为上游插件对应输出端口的元数据的key)。
    colorMap 给目标类别设置颜色,"R1,G1,B1 R2,G2,B2 R3,G3,B3
    rectThickness 目标框的粗细。默认值为1,取值范围[0, 100]的整型。
    rectLineType 目标框线条的类型。与OpenCV的线体类型枚举值对应,具体和fontLineType设置一致,请参见表 设置pipeline的属性说明
    fontFace 字体的类型。与OpenCV的字体类型枚举值对应,请参见表 设置pipeline的属性说明
    fontScale 字体的大小。默认值为1.0,取值范围[0.0, 100.0]的double型。
    fontThickness 字体的粗细。默认值为1,取值范围[1, 100]的整型。
    fontLineType 字体的线条类型。与OpenCV的线体类型枚举值对应,请参见表 设置pipeline的属性说明
    createText 是否显示目标检测模型的分类结果文本,布尔型,1:是,0:否,默认值为1

    表 2 设置pipeline的属性说明

    属性名 描述 取值大小
    fontFace FONT_HERSHEY_SIMPLEX(正常尺寸无衬线字体)。 0(默认)
    FONT_HERSHEY_PLAIN(小尺寸无衬线字体)。 1
    FONT_HERSHEY_DUPLEX(正常尺寸无衬线字体,比FONT_HERSHEY_SIMPLEX更复杂)。 2
    FONT_HERSHEY_COMPLEX(正常尺寸衬线字体)。 3
    FONT_HERSHEY_TRIPLEX(正常尺寸衬线字体,比FONT_HERSHEY_COMPLEX更复杂)。 4
    FONT_HERSHEY_COMPLEX_SMALL(正常尺寸衬线字体的较小版本)。 5
    FONT_HERSHEY_SCRIPT_SIMPLEX(手写体字体)。 6
    FONT_HERSHEY_SCRIPT_COMPLEX(FONT_HERSHEY_SCRIPT_SIMPLEX的复杂变体)。 7
    FONT_ITALIC(斜体字标志)。 16
    fontLineType LINE_4(4连通线)。 4
    LINE_8(8连通线)。 8(默认)
    LINE_AA(抗锯齿线)。 16

    pipeline样例:

    "mxpi_object2osdinstances0":{
        "props":{
      "colorMap":"100,100,100|200,200,200|0,128,255|255,128,0",
      "fontFace":"16",
      "fontScale":"0.5",
      "fontThickness":"2",
      "fontLineType":"16",
      "rectThickness":"2",
      "rectLineType":"16"
        },
        "factory":"mxpi_object2osdinstances",
        "next":"queue5"
    },
    

    mxpi_class2osdinstances

    功能描述

    分类结果转绘图单元插件。将MxpiClassList转换为用于osd绘图的MxpiOsdInstancesList。MxpiVisionList提供子图的坐标信息,不使用动态端口时,直接从buffer中获取MxpiVisionList。

    同步或异步

    同步

    约束限制

    -

    插件基类(factory)

    mxpi_class2osdinstances

    输入和输出

    • 输入:
      • buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiClassList”)。
      • buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。
    • 输出:
      • buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiOsdInstancesList”)。

    端口格式(caps)

    • 静态输入:{"metadata/class"},动态输入:{"image/yuv"}。
    • 静态输出:{"metadata/osd"}。

    属性

    请参见表1

    表 1 mxpi_class2osdinstances插件的属性

    属性名 描述 是否为必选项 是否可修改
    dataSourceClass 分类结果对应索引名称(默认为上游插件对应输出端口的元数据的key)。
    dataSourceImage 图片对应索引名称(默认为上游插件对应输出端口的元数据的key)。
    topK 显示分类结果的前K个,0~100,默认为1。
    position 分类结果文字相对于图像的位置。可选以下五种之一,默认为LEFT_TOP_IN:LEFT_TOP_OUT:图像的左上角外部。LEFT_TOP_IN:图像的左上角内部。LEFT_BOTTOM_IN:图像的左下角内部。RIGHT_TOP_IN:图像的右上角内部。RIGHT_BOTTOM_IN:图像的右下角内部。
    fontFace 字体的类型。与OpenCV的字体类型枚举值对应,请参见表 设置pipeline的属性说明
    fontScale 字体的大小。默认值为1.0,取值范围[0.0, 100.0]的double型。
    fontThickness 字体的粗细。默认值为1,取值范围[1, 100]的整型。
    fontLineType 字体的线条类型。与OpenCV的线体类型枚举值对应,请参见表 设置pipeline的属性说明
    createRect 是否为分类结果文字创建矩形边界,布尔型,1:是,0:否,默认值为1。
    colorMap 矩形边界的颜色,"R1,G1,B1 R2,G2,B2 R3,G3,B3
    rectThickness 矩形边界的粗细。默认值为1,取值范围[-1, 100]的整型。当设为-1时,颜色会填充此矩形。
    rectLineType 矩形边界线条的类型。与OpenCV的线体类型枚举值对应,具体和fontLineType设置一致,请参见表 设置pipeline的属性说明

    pipeline样例:

    "mxpi_class2osdinstances0":{
        "props":{
     "colorMap":"100,100,100|200,200,200|0,128,255|255,128,0",
     "fontFace":"1",
     "fontScale":"0.8",
     "fontThickness":"1",
     "fontLineType":"8",
     "rectThickness":"2",
     "rectLineType":"8",
     "position":"LEFT_TOP_IN",
     "topK":"3",
     "createRect":"1"
        },
        "factory":"mxpi_class2osdinstances",
        "next":"tee1"
    },
    

    mxpi_osdinstancemerger

    功能描述

    将来自多个输入端口的绘图单元汇总

    同步/异步(status)

    同步

    约束限制

    -

    插件基类(factory)

    mxpi_osdinstancemerger

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiOsdInstancesList”),动态输入数。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiOsdInstancesList”)。

    端口格式(caps)

    • 动态输入:{"metadata/osd"}。
    • 静态输出:{"metadata/osd"}。

    属性

    请参见表1

    表 1 mxpi_osdinstancemerger插件的属性

    属性名 描述 是否为必选项 是否可修改
    dataSourceList 输入数据对应索引名称,用“,”分割,长度需与输入端口数一致(默认为上游插件对应输出端口的挂载元数据的key)。

    pipeline样例:

    "mxpi_osdinstancemerger0":{
        "props":{
        "dataSourceList":"mxpi_class2osdinstances0,mxpi_object2osdinstances0"
        },
        "factory":"mxpi_osdinstancemerger",
        "next":"queue20"
    },
    

    mxpi_channelselector

    功能描述

    透传指定通道ID的buffer,过滤其他通道的buffer,清空除帧信息外的元数据。

    同步/异步(status)

    异步

    约束限制

    channelIds输入的通道ID不能为空。

    插件基类(factory)

    mxpi_channelselector

    输入和输出

    • 单输入:buffer(数据类型“MxpiBuffer”)。
    • 单输出:buffer(数据类型“MxpiBuffer”)。

    端口格式(caps)

    • 静态输入:{"ANY"}。
    • 静态输出:{"ANY"}。

    属性

    请参见表1

    表 1 mxpi_channelselector插件的属性

    属性名 描述 是否为必选项 是否可修改
    channelIds 输入的通道ID,以逗号分隔,通道ID不可重复。示例如:"channelIds":"0,1"。

    示例

    输入来自不同通道的buffer,输出用户指定通道的buffer,并过滤其他通道的buffer及元数据。

    pipeline样例:

    "mxpi_channelselector0":{
        "props":{
                    "channelIds":"0,1"
         },
         "factory":"mxpi_channelselector",
         "next":"queue4"
    },
    

    mxpi_channelimagesstitcher

    功能描述

    将多路图片拼成一个大图,同时动态输出每路图片的前处理信息,提供给坐标组装插件。

    同步/异步(status)

    同步

    约束限制

    • channelIds输入的通道ID不能为空。
    • 各个通道的图片宽高必须一致。
    • 输出图片信息的宽,默认值为1920,取值范围[32, 4096]的整型。
    • 输出图片信息的高,默认值为1080,取值范围[32, 4096]的整型。

    插件基类(factory)

    mxpi_channelimagesstitcher

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。

    端口格式(caps)

    • 动态输入:{“image/yuv”}。
    • 静态输出:{“image/yuv”},动态输出{“metadata/stitch-info”}。

    属性

    请参见表1

    表 1 mxpi_channelImagesstitcher插件的属性

    属性名 描述 是否为必选项 是否可修改
    dataSource 输入数据对应索引,可配置多个,但必须与输入端口数量相同。默认为上游插件对应输出端口的key值。
    channelIds 输入的通道ID,以逗号分隔,通道ID不可重复。示例如:"channelIds":"0,1"。
    outputWidth 输出图片信息的宽,默认值为1920,取值范围[32, 4096]的整型。
    outputHeight 输出图片信息的高,默认值为1080,取值范围[32, 4096]的整型。
    RGBValue 设置背景颜色值,依次输入R,G,B值,例如:'255,255,255',默认为空即不执行padding颜色设置,使用DVPP默认背景色。

    示例

    输入的多路通道buffer1~N,通过用户指定的通道并过滤其他通道的buffer,将输入图片拼接成一个大图并输出,同时动态输出每路图片的前处理信息,提供给坐标组装插件。

    pipeline样例:

    "mxpi_channelimagesstitcher0":{
        "props":{
             "channelIds":"0,1",
             "outputWidth": "1920",
             "outputHeight": "1080",
             "RGBValue": "255,255,255"
        },
        "factory":"mxpi_channelimagesstitcher",
        "next":["queue8","queue9"]
    },
    

    mxpi_channelosdcoordsconverter

    功能描述

    多路通道坐标转换插件。接收来自各路通道的绘图单元和拼接信息(坐标偏移)。输出汇总后的坐标转换结果。

    同步/异步(status)

    同步

    约束限制

    channelIds输入的通道ID不能为空,且必须与mxpi_channelimagesstitcher所设置的channelIds一致。

    插件基类(factory)

    mxpi_channelosdcoordsconverter

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”,“MxpiOsdInstancesList”)。
    • 输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiOsdInstancesList”)。

    端口格式(caps)

    • 静态输入{“metadata/stitch-info”},动态输入:{“metadata/osd”}。
    • 动态输出:{“metadata/osd”}。

    属性

    请参见表1

    表 1 mxpi_channelosdcoordsconverter插件的属性

    属性名 描述 是否为必选项 是否可修改
    dataSourceStitchInfo OSD拼图插件的图片拼接信息作为输入数据对应索引,默认为上游插件对应输出端口的key值。
    dataSourceOsds OSD绘图单元输入数据对应索引,可配置多个,但必须与动态输入端口数量相同。默认为上游插件对应输出端口的key值。
    channelIds 输入的通道ID,以逗号分隔,通道ID不可重复。示例如:"channelIds":"0,1"
    enableFixedArea 是否使OSD实例中的fixedArea参数(图片缩放时,实例不跟随缩放)生效。
    布尔型,默认为1。
    0:是
    1:否

    示例

    输入多通道的绘图单元buffer(MxpiOsdInstancesList)1~N以及来自上游插件的拼接信息(MxpiVisionList),输出指定通道汇总后的OSD绘图单元buffer,过滤其他通道的buffer。

    pipeline样例:

    "mxpi_channelosdcoordsconverter0":{
        "props":{
            "dataSource":"mxpi_channelimagesstitcher0_1",
                    "channelIds":"0,1"
        },
        "factory":"mxpi_channelosdcoordsconverter",
        "next":"mxpi_aicpuosd0:1"
    },
    

    mxpi_bufferstablizer

    功能描述

    当设定时间没有buffer输入时,此插件会自动发送空buffer,直到重新有buffer输入为止。

    说明:

    将此插件接在视频解码插件后,可以在某路视频断流时维持业务流继续运行。

    同步/异步(status)

    异步

    约束限制

    插件基类(factory)

    mxpi_bufferstablizer

    输入和输出

    • 输入:buffer(数据类型“MxpiBuffer”)。
    • 输出:buffer(数据类型“MxpiBuffer”)。

    端口格式(caps)

    • 静态输入:{"ANY"}。
    • 静态输出:{"ANY"}。

    属性

    请参见表1

    表 1 mxpi_bufferstablizer插件的属性

    属性名 描述 是否为必选项 是否可修改
    tolerance 容忍时间,单位毫秒,最小为1,默认为10000。当超过容忍时间后仍未收到输入buffer,此插件会进入自动发送空buffer模式。
    frequency 自动发送空buffer模式中buffer的发送时间间距,单位毫秒,最小为1,默认为100。
    allowDelay 退出自动发送空buffer模式后,是否销毁已被替代发送的buffer,布尔型,0:是,1:否,默认为0。

    pipeline样例:

    "mxpi_bufferstablizer0": {
     "props": {
      "tolerance": "10000",
      "frequency": "100",
      "allowDelay": "0"
     },
     "factory": "mxpi_bufferstablizer",
     "next": "queue400"
    },