昇腾社区首页
中文
注册

Metadata

Metadata为插件生成的结构化数据,例如分类信息、目标信息。元数据依附在插件缓存上实现传递。

Metadata通过protobuf定义(对应MxpiDataType.pb.h、MxpiDumpData.pb.h以及MxpiOSDType.pb.h文件中的接口,该文件为protobuf自动生成文件,其中包含部分protobuf内部自定义的类,请用户不要使用。详细的proto文件参考Metadata proto文件”章节),目前已经定义的数据结构如下:

表1 MxpiDataType Metadata数据结构

名称

功能

成员

MxpiFrame

存放视频/图像帧的描述信息和数据。

  • MxpiFrameInfo frameInfo;
  • MxpiVisionList visionList;

MxpiFrameInfo

存放视频/图像帧的描述信息,例如通道编号、帧序。

  • uint32 channelId; //通道编号
  • uint32 frameId; //帧序
  • bool isEos; //是否为最后一帧

MxpiVisionList

视频/图像数据列表。

  • repeated MxpiVision visionVec;

MxpiVision

视频/图像数据,包括视频/图像内存和描述信息。

  • repeated MxpiMetaHeader headerVec;
  • MxpiVisionInfo visionInfo;
  • MxpiVisionData visionData;

MxpiMetaHeader

信息头,用于指示当前数据的依赖数据。通过dataSource找到依赖数据列表,通过memberId找到依赖数据在列表中的编号。

  • string parentName; //数据的信息来源
  • int32 memberId; //数据的编号索引
  • string dataSource; //数据的信息来源,意同parentName,推荐使用

MxpiMemoryType

数据类型枚举,类型包括Host内存、Device内存和DVPP内存。

  • MXPI_MEMORY_HOST; //Host内存
  • MXPI_MEMORY_DEVICE; //Device内存
  • MXPI_MEMORY_DVPP; //DVPP内存
  • MXPI_MEMORY_HOST_MALLOC; //使用malloc申请内存
  • MXPI_MEMORY_HOST_NEW; //使用new申请内存

MxpiDataType

数据类型,包括8位无符号整型类型和32位浮点类型。

  • MXPI_DATA_TYPE_FLOAT32;
  • MXPI_DATA_TYPE_UINT8;

MxpiVisionInfo

视频/图像数据描述信息。例如图像格式、宽高。

  • uint32 format; //视频/图像格式
  • uint32 width; //宽度
  • uint32 height; //高度
  • uint32 widthAligned; //对齐后宽度
  • uint32 heightAligned; //对齐后高度
  • uint32 resizeType; //图片缩放方式
  • float keepAspectRatioScaling; //缩放比例
  • repeated MxpiVisionPreProcess preprocessInfo; //图像前处理信息

MxpiVisionPreProcess

图像前处理信息。例如图像宽高、抠图坐标、贴图坐标。

  • uint32 widthSrc; //图片宽信息
  • uint32 heightSrc; //图片高信息
  • uint32 cropLeft; //抠图坐标左边
  • uint32 cropRight; //抠图坐标右边
  • uint32 cropTop; //抠图坐标上边
  • uint32 cropBottom; //抠图坐标下边
  • uint32 pasteLeft; //贴图坐标左边
  • uint32 pasteRight; //贴图坐标右边
  • uint32 pasteTop; //贴图坐标上边
  • uint32 pasteBottom; //贴图坐标下边
  • uint32 interpolation; //指定缩放算子
  • string elementName; //插件名称

MxpiVisionData

视频/图像数据内容,其中dataPtr和freeFunc为指针的uint64数值,需将指针强转成该类型。

  • uint64 dataPtr; //内存指针数值
  • int32 dataSize; //内存大小,需要和实际内存大小一致,否则可能会导致coredump
  • uint32 deviceId; //Device编号
  • MxpiMemoryType memType; //内存类型
  • uint64 freeFunc; //内存销毁函数指针数值
  • bytes dataStr; //bytes数据类型序列化成JSON时会自动进行base64编码
  • MxpiDataType dataType; //标识数据类型
  • uint64 matPtr; //数据指针

MxpiObjectList

检测目标列表。

  • repeated MxpiObject objectVec;

MxpiObject

检测目标数据结构。

  • repeated MxpiMetaHeader headerVec;
  • float x0; // 目标左上角坐标x值
  • float y0; // 目标左上角坐标y值
  • float x1; // 目标右下角坐标x值
  • float y1; // 目标右下角坐标y值
  • repeated MxpiClass classVec; //类别信息数据结构,内部的“MxpiMetaHeader”无效
  • MxpiImageMask imageMask; //图像语义分割数据信息

MxpiImageMaskList

图像语义分割数据列表。

  • repeated MxpiImageMask imageMaskVec;

MxpiImageMask

图像语义分割数据信息。例如数据的类别、形状、类别信息。

  • repeated MxpiMetaHeader headerVec; //语义分割数据信息头
  • repeated string className; //语义分割数据的类别信息
  • repeated int32 shape; //语义分割数据的形状信息
  • int32 dataType; //语义分割数据类型
  • bytes dataStr; //语义分割数据的实际内存数据

MxpiClass

图像类别数据结构。

  • repeated MxpiMetaHeader headerVec;
  • int32 classId; //类别编号
  • string className; //类别名称
  • float confidence; //类别置信度

MxpiClassList

图像类别列表。

  • repeated MxpiClass classVec;

MxpiAttributeList

目标属性列表。

  • repeated MxpiAttribute attributeVec;

MxpiAttribute

目标属性。

  • repeated MxpiMetaHeader headerVec;
  • int32 attrId; //属性编号
  • string attrName; //属性类型名称
  • string attrValue; //属性结果
  • float confidence; //属性置信度

MxpiTrackLetList

路径记录目标信息列表。

  • repeated MxpiTrackLet trackLetVec;

MxpiTrackLet

路径记录目标信息。

  • repeated MxpiMetaHeader headerVec;
  • uint32 trackId;
  • uint32 age; //目标“存活”帧数
  • uint32 hits; //目标被成功记录帧数
  • int32 trackFlag; //路径记录状态

MxpiTensorPackageList

模型Tensor组合列表。

  • repeated MxpiTensorPackage tensorPackageVec;

MxpiTensorPackage

模型Tensor组合数据结。

  • repeated MxpiMetaHeader headerVec;
  • repeated MxpiTensor tensorVec;

MxpiTensor

模型Tensor数据结构。

  • uint64 tensorDataPtr; //内存指针数值
  • int32 tensorDataSize; //内存大小,需要和实际内存大小一致,否则可能会导致coredump
  • uint32 deviceId; //Device编号
  • MxpiMemoryType memType; //内存类型
  • uint64 freeFunc; //内存销毁函数指针
  • repeated int32 tensorShape; //张量形状
  • bytes dataStr; //内存中的数据
  • int32 tensorDataType; //内存中张量的数据类型

MxpiFeatureVectorList

特征数据列表。

  • repeated MxpiFeatureVector featureVec;

MxpiFeatureVector

特征数据结构。

  • repeated MxpiMetaHeader headerVec;
  • repeated float featureValues; //特征数据

MxpiPoseList

人体姿态估计数据列表。

  • repeated MxpiPose poseVec;

MxpiPose

人体姿态估计数据信息。

  • repeated MxpiMetaHeader headerVec; //姿态估计数据头信息
  • repeated MxpiKeyPoint keyPointVec;

    //人体所有关键点数据集合

  • float score; //姿态估计置信度

MxpiKeyPoint

人体关键点数据信息。

  • float x; //关键点横坐标
  • float y; //关键点纵坐标
  • int32 name; //关键点名称
  • float score; //关键点置信度

MxpiKeyPointAndAngleList

目标关键点和角度列表。

  • repeated MxpiKeyPointAndAngle keyPointAndAngleVec;

MxpiKeyPointAndAngle

目标关键点和角度。

  • repeated MxpiMetaHeader headerVec;
  • repeated float keyPointsVec; //目标五个关键点信息
  • float angleYaw; //偏航角
  • float anglePitch; //俯仰角
  • float angleRoll; //横滚角

MxpiTextObjectList

文本目标数据列表。

  • repeated MxpiTextObject objectVec;

MxpiTextObject

文本目标数据信息。例如文本目标框坐标、置信度、检测文本。

  • repeated MxpiMetaHeader headerVec; //文本目标数据头信息
  • float x0; //文本目标框的左下角横坐标
  • float y0; //文本目标框的左下角纵坐标
  • float x1; //文本目标框的右下角横坐标
  • float y1; //文本目标框的右下角纵坐标
  • float x2; //文本目标框的右上角横坐标
  • float y2; //文本目标框的右上角纵坐标
  • float x3; //文本目标框的左上角横坐标
  • float y3; //文本目标框的左上角纵坐标
  • float confidence; //文本目标框的置信度
  • string text; //文本目标框的检测文本的信息

MxpiTextsInfoList

文本生成数据列表。

  • repeated MxpiTextsInfo textsInfoVec;

MxpiTextsInfo

文本生成数据信息。

  • repeated MxpiMetaHeader headerVec; //文本生成数据头信息
  • repeated string text; //文本生成的数据字符串

MxpiCustomDataList

自定义数据列表。

  • repeated MxpiCustomData dataVec;

MxpiCustomData

自定义数据。

  • repeated MxpiMetaHeader headerVec;
  • map<string, string> map;
表2 MxpiDumpData Metadata数据结构

名称

功能

成员

MxpiDumpData

保存MxpiBuffer的内容。

  • Buffer buffer;
  • repeated MetaData metaData;

Buffer

MxpiBuffer中的buffer数据。

  • bytes bufferData

MetaData

MxpiBuffer中的metaData数据。

  • string key; //metaData的key值
  • string content; //protobuf数据JSON序列化后的数据
  • string protoDataType; //protobuf的数据类型
表3 MxpiOSDType Metadata数据结构

名称

功能

成员

MxpiOsdInstancesList

存放目标或者分类信息Osd列表。

  • repeated MxpiOsdInstances osdInstancesVec;

MxpiOsdInstances

存放Osd属性描述信息。

  • repeated MxpiMetaHeader headerVec;
  • repeated MxpiOsdText osdTextVec; //文字描述
  • repeated MxpiOsdLine osdLineVec; //线条描述
  • repeated MxpiOsdRect osdRectVec; //矩形框描述
  • repeated MxpiOsdCircle osdCircleVec; //画圆描述

MxpiOsdText

存放文字属性描述信息。

  • repeated MxpiMetaHeader headerVec;
  • string text; //要添加的文字内容
  • int32 x0; //添加文字原点坐标的X坐标
  • int32 y0; //添加文字原点坐标的Y坐标
  • int32 fontFace; //文字的字体类型
  • double fontScale; //文字的字体大小
  • bool bottomLeftOrigin; //取值为true,原点坐标为文字左上角坐标,false为左下角坐标
  • MxpiOsdParams osdParams; //Osd公有属性实例对象
  • bool fixedArea; //缩放后,Osd属性描述信息是否按照原图等比例缩放

MxpiOsdLine

存放线条属性描述信息。

  • repeated MxpiMetaHeader headerVec;
  • int32 x0; //线条左上角X坐标
  • int32 y0; //线条左上角Y坐标
  • int32 x1; //线条右下角X坐标
  • int32 y1; //线条右下角Y坐标
  • MxpiOsdParams osdParams; //Osd公有属性实例对象

MxpiOsdRect

存放矩形框属性描述信息。

  • repeated MxpiMetaHeader headerVec;
  • int32 x0; //矩形框左上角X坐标
  • int32 y0; //矩形框左上角Y坐标
  • int32 x1; //矩形框右下角X坐标
  • int32 y1; //矩形框右下角Y坐标
  • MxpiOsdParams osdParams; //Osd公有属性实例对象
  • bool fixedArea; //缩放后,Osd属性描述信息是否按照原图等比例缩放

MxpiOsdCircle

存放画圆属性描述信息。

  • repeated MxpiMetaHeader headerVec;
  • int32 x0; //画圆左上角X坐标
  • int32 y0; //画圆左上角Y坐标
  • int32 radius; //画圆的半径
  • MxpiOsdParams osdParams; //缩放后,Osd属性描述信息是否按照原图等比例缩放

MxpiOsdParams

存放Osd公有属性描述信息。

  • uint32 scalorB; //颜色B通道值,取值范围0-255
  • uint32 scalorG; //颜色G通道值,取值范围0-255
  • uint32 scalorR; //颜色R通道值,取值范围0-255
  • int32 thickness; //粗细大小
  • int32 lineType; //线条类型
  • int32 shift; //缩小参数

表3中的线条类型与字体类型,具体请参见mxpi_object2osdinstances”章节中的“设置pipeline的属性说明”表格。