插件参考
总体说明
Vision SDK中实现的插件继承自MxPluginBase。插件以“mxpi_”开头,包含“status”、“deviceId”、“dataSource”三个公共属性以及GStreamer原生属性“parent”和“name”,具体说明如表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插件时以上两个接口有效。 |
|
|
|
具体请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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]
当使用拉流插件的加密传输功能时,前置条件如下:
- 安装“libgiognutls.so”。
- 设置“GIO_MODULE_DIR”环境变量(“libgiognutls.so”所在的文件夹路径)。
- 编写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**命令禁止打印入参。
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必填项 | 是否可修改 |
|---|---|---|---|
| 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
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| outputDataKeys | 指定需要输出的数据的索引(通常情况下为元件名称),以逗号隔开。此插件根据用户选择的元件名,将元件数据拼接成JSON字符串。该JSON字符串用于根据插件的依赖关系输出组装结果。 | 是 | 是 |
| eraseHeaderVecFlag | 是否要删除数据的header信息。需要设为1,不需要设为0,默认值为1。 | 否 | 是 |
appsink
GStreamer原生插件。配合GetResult接口与GetResultWithUniqueId接口使用,从Stream中获取数据,当且仅当Stream中存在appsink插件时,以上两个接口有效。 |
|
|
|
具体请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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伪设备,用于丢弃不需要的数据。 |
|
|
|
filesink
[!NOTICE] 输出文件权限可能会过大,有文件信息泄露的风险。 在销毁流的过程中会直接停止所有插件的运行,请妥善保存所需的文件。
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必填项 | 是否可修改 |
|---|---|---|---|
| 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
|
|
请参见表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。 | 否 | 是 |
媒体数据处理插件
使用前须知
- 缩放插件和抠图插件的贴图区域与抠图区域的缩放比例请控制在[1/32, 16]范围内。
- 抠图插件的使用存在奇数对齐机制,例如输入32缩放16倍得到512,由于奇数对齐机制,32会变为31,此时512 / 31 > 16,缩放比例超过16导致缩放失败。
- 图像处理插件支持OpenCV方法与Ascend方法,具体差异如下:
- Ascend方法:调用昇腾DVPP接口进行处理。
- OpenCV方法:调用OpenCV接口进行处理。
mxpi_imagedecoder
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| deviceId | 使用设备的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。 | 否 | 是 |
| imageFormat | 解码的图像格式,默认为jpg格式。 |
是 | 是 |
| cvProcessor | 处理方法。 |
否 | 是 |
| outputDataFormat | 用于使用OpenCV方法或输入图像格式为bmp时,配置图像的输出数据类型,仅支持配置为BGR或RGB。 |
否 | 是 |
| dataType | 解码数据的类型,默认为uint8,也可以设置成float32,该选项在OpenCV处理方法中生效。 | 否 | 是 |
| formatAdaptation | 色域转换功能,将图像解码为BGR888格式,值为string,默认值为off(关闭),需要启动时配置on。(当前仅在Atlas 推理系列产品上支持该功能,输入图片的分辨率约束为32*32~4096*4096)。 | 否 | 是 |
| handleMethod | 预留属性,请使用cvProcessor属性。 处理方法: |
否 | 是 |
mxpi_imageresize
|
|
|
|
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| deviceId | 使用设备的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。 | 否 | 是 |
| removeParentData | 删除原Buffer数据,默认为0。0:不删除原Buffer数据。1:删除原Buffer数据。 | 否 | 是 |
| parentName | 输入数据对应索引(通常情况下为上游元件名称),从当前版本不再演进,请使用dataSource。 | 否 | 是 |
| dataSource | 输入数据对应索引(通常情况下为上游元件名称)。默认为上游插件对应输出端口的key值。 | 建议使用 | 是 |
| resizeHeight | Resizer_Stretch和Resizer_KeepAspectRatio_Fit缩放模式中,指定缩放后的高。默认会自动适配下游模型推理插件的图片高度,取值范围为[6, 4096]。输入缩放后的高自动以2对齐。建议指定图像缩放后的高以2对齐,且必须在图片分辨率高的[1/32, 16]之间。如果缩放插件下游紧接的不是推理插件,必须设置缩放宽高。如果缩放插件下游紧接的是推理插件,可以不用设置缩放宽高,此时缩放宽高可以自动获取。 | 否 | 是 |
| resizeWidth | Resizer_Stretch和Resizer_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属性。 处理方法: |
否 | 是 |
mxpi_imagecrop
|
|
|
|
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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_Stretch和Resizer_KeepAspectRatio_Fit缩放模式中,缩放后的图像高度,默认为裁剪后的图像高度,即不缩放。 | 否 | 是 |
| resizeWidth | Resizer_Stretch和Resizer_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属性。 处理方法: |
否 | 是 |
| cropType | 预留属性,请使用autoDetectFrame属性。抠图方式,根据坐标点抠图,默认为cropCoordinate坐标点抠图。 | 否 | 是 |
自定义裁剪样例:
-
当输入为单坐标框(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" }, -
当输入为多个坐标框,第一个目标框为(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
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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
|
|
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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
|
|
|
|
请参见表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
透视变换插件,用于推理完后检测框是有角度的长方形,需要旋转成正长方形的场景,输出是各个检测框的抠图信息,抠的图是经过透视变换的。 |
|
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| debugMode | 设置为true时,会保存经过仿射变换后的图片到本地磁盘,保存路径为当前程序路径下warpPerspectiveImage/image*{index}*.jpg,index从0开始,最大到200。超过200会再次从0开始,原先的图片会被替换。 | 否 | 是 |
| oriImageDataSource | 待旋转的图片数据对应的索引,当创建动态端口时有效。无动态端口时,图片数据通过静态端口(即端口0)对应的buffer中获取。 | 否 | 是 |
Note
debugMode设置为true时,会将插件的输出数据保存到磁盘文件中,产生额外的文件。产生的额外文件请用户自行管控,必要时请自行删除。处理隐私数据或敏感数据时请勿使用。
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插件。
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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)。 |
|
|
|
|
|
请参见表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 | 内部调试中,请勿使用。 | 否 | 否 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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(图像后处理基类)的子类插件中拥有该属性。是否需要先将模型推理的坐标映射回抠图前的原图上。不设置该属性的默认情况下不映射到原图上。如需要映射,则输入对应的抠图插件名称。 | 否 | 是 |
mxpi_objectpostprocessor
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
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
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
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
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
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插件。
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| dataSourceDetection | 模型检测后的目标框数据的对应索引(通常情况下为上游元件名称)。 | 是 | 是 |
| dataSourceFeature | 特征提取后的目标特征数据的对应索引(通常情况下为上游元件名称)。 | 否 | 是 |
| trackThreshold | 路径记录对象属于同一目标概率阈值,大于该阈值认为是同一对象(默认值:0.5,取值范围:[0, 1.0])。 | 否 | 是 |
| lostThreshold | 路径记录目标丢失帧数阈值,帧数大于该阈值认为行程目标已丢失(默认值:5,取值范围:[0, 10])。 | 否 | 是 |
mxpi_motsimplesortV2
实现多目标(包括机动车,非人目标以及人)路径记录功能。相比较前一个版本的差别为:
|
|
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| dataSourceDetection | 模型检测后的目标框数据的对应索引(默认为上游插件对应输出端口的key值)。 | 否 | 是 |
| dataSourceFeature | 特征提取后的目标特征数据的对应索引(默认为上游插件对应输出端口的key值)。 | 否 | 是 |
| trackThreshold | 路径记录对象属于同一目标概率阈值,大于该阈值认为是同一对象(默认值:0.5,取值范围:[0, 1.0])。 | 否 | 是 |
| lostThreshold | 路径记录目标丢失帧数阈值,帧数大于该阈值认为行程目标已丢失(默认值:5,取值范围:[0, 10])。 | 否 | 是 |
- 只使用物体的bounding box(框信息)做MOT,常见使用场景:对视频中的车进行动向记录。

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

mxpi_facealignment
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| deviceId | 使用的昇腾AI处理器的芯片编号,无需设置,统一由stream_config字段中的deviceId属性设置。 | 否 | 是 |
| dataSourceImage | 目标图像输入数据对应索引,默认为上游插件对应输出端口的key值。 | 否 | 是 |
| dataSourceKeyPoint | 目标关键点输入数据对应索引,默认为上游插件对应输出端口的key值。 | 否 | 是 |
| afterFaceAlignmentHeight | 目标对齐后的图像高度,默认为112,取值范围为[32, 8192]。 | 否 | 是 |
| afterFaceAlignmentWidth | 目标对齐后的图像宽度,默认为112,取值范围为[32, 8192]。 | 否 | 是 |
Note
请注意“afterFaceAlignmentHeight”与“afterFaceAlignmentWidth”属性值与输入图片的元数据的一致性,否则会由于参数不一致而产生错误信息,导致对齐结果获取失败。同时OpenCV要求高度和宽度需要为2的倍数。
mxpi_qualitydetection
视频质量诊断插件,可用于对视频解码之后的图像进行质量分析检测,对异常的场景进行日志告警。
|
|
|
|
|
|
请参见表1。 |
表 1 mxpi_qualitydetection插件的属性
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| dataSource | 输入数据对应索引(通常情况下为上游元件名称),默认为上游插件对应输出端口的key值。 | 否 | 是 |
| qualityDetectionConfigContent | 质量检测算法属性配置内容,具体属性介绍参考表2。 | 否 | 是 |
| qualityDetectionConfigPath | 质量检测算法属性配置文件路径(该属性与qualityDetectionConfigContent须至少配置一项,qualityDetectionConfigContent优先级大于该属性),具体参数介绍参考表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数据不能导出。 |
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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。 |
|
|
|
屏幕展示(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”。
|
|
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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
|
|
|
|
请参见表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 | 否 | 是 |
| 属性名 | 描述 | 取值大小 |
|---|---|---|
| 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。 |
|
|
|
请参见表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
|
|
|
|
请参见表1。 |
表 1 mxpi_osdinstancemerger插件的属性
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| dataSourceList | 输入数据对应索引名称,用“,”分割,长度需与输入端口数一致(默认为上游插件对应输出端口的挂载元数据的key)。 | 否 | 是 |

pipeline样例:
"mxpi_osdinstancemerger0":{
"props":{
"dataSourceList":"mxpi_class2osdinstances0,mxpi_object2osdinstances0"
},
"factory":"mxpi_osdinstancemerger",
"next":"queue20"
},
mxpi_channelselector
|
|
|
|
请参见表1。 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| channelIds | 输入的通道ID,以逗号分隔,通道ID不可重复。示例如:"channelIds":"0,1"。 | 是 | 是 |
输入来自不同通道的buffer,输出用户指定通道的buffer,并过滤其他通道的buffer及元数据。

pipeline样例:
"mxpi_channelselector0":{
"props":{
"channelIds":"0,1"
},
"factory":"mxpi_channelselector",
"next":"queue4"
},
mxpi_channelimagesstitcher
|
|
|
|
|
|
请参见表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
channelIds输入的通道ID不能为空,且必须与mxpi_channelimagesstitcher所设置的channelIds一致。 |
|
|
|
|
|
请参见表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
|
|
|
|
请参见表1 |
| 属性名 | 描述 | 是否为必选项 | 是否可修改 |
|---|---|---|---|
| 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"
},


