媒体数据处理插件
使用前须知
- 缩放插件和抠图插件的贴图区域与抠图区域的缩放比例请控制在[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。 | 否 | 是 |