输入数据获取

插件之间传递的数据统一采用protobuf定义,具体的数据格式参考Metadata”章节Metadata proto文件”章节。相应的输入数据通过protobuf解析,输出结果通过protobuf组装。

Vision SDK通过插件的“Process()”函数,将输入数据以入参(mxpiBuffer)形式传入,并通过“GetMetadata”接口提供给用户。

具体操作如下:

1
2
3
4
5
// Get the data from buffer
MxpiBuffer * buffer = mxpiBuffer[0];                 // 0为输入端口编号,当前版本固定为0。
MxpiMetadataManager mxpiMetadataManager(buffer);
std::shared_ptr<void> metadata = mxpiMetadataManager.GetMetadata(key);
std::shared_ptr<MxpiVisionList> srcVisionListSptr = std::static_pointer_cast<MxpiVisionList>(metadata);

其中,key为上游插件挂载输出结果时用的字符串(通常为上游元件名称,例如vpcresize0),将获取到的输入数据转换成相应的数据格式(通过查询上游插件的说明文档获取数据结构,例如MxpiVisionList)。

自定义插件元数据获取及处理方式请参见读取自定义插件元数据