媒体数据处理插件

使用前须知

  • 缩放插件和抠图插件的贴图区域与抠图区域的缩放比例请控制在[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。