目录
MindX SDK简介
MindX是一款针对昇腾系列AI芯片的软件开发工具包(SDK),它提供了一系列的API和工具,帮助开发者对昇腾系列AI芯片进行开发和优化。提供了一系列的部署工具,可以将优化后的AI模型部署到昇腾AI芯片上,进行实时推理,实现低延迟、高性能的AI应用。其突出特点是使用流程编排进行开发。
总的来说,MindX SDK为开发者提供了一套完整的开发环境和工具,帮助开发者轻松地进行昇腾系列AI芯片的开发、优化和部署,实现高性能、低功耗的AI应用。
插件的Buffer与Metadata
Plugin表示业务流程中的基础模块,通过Element的串接构建成一个Stream。Buffer用于内部挂载解码前后的视频、图像数据,是Element之间传递的数据结构,同时也允许用户挂载元数据(Metadata),用于存放结构化数据(如目标检测结果)或过程数据(如缩放后的图像)。如下图,Metadata依附于buffer。
自定义插件
Init初始化接口
virtual APP_ERROR Init(std::map<std::string, std::shared_ptr<void>>& configParamMap) = 0;
插件json版:该插件名为mxpi_webpushstream0
"mxpi_webpushstream0": {
"props": {
"dataSourceCoordinate": "mxpi_objectpostprocessor0",
"channelId": "0",
"deviceId": "0"
},
"factory": "mxpi_webpushstream",
"next": "fakesink0"
},
获取基础资源,获取控件的基本属性(“props”),读取的原始属性都是字符串,需要进行转换,也可以读取本地自定义的配置文件:
APP_ERROR WebPushStream::Init(std::map<std::string, std::shared_ptr<void>>& configParamMap)
{
for (const auto& kv : configParamMap) {
const std::string& key = kv.first;
std::cout<<key;
}
channelId_ = *std::static_pointer_cast<uint>(configParamMap["channelId"]);
if (channelId_ == -1) {
LogInfo << "Failed to read the channelId";
return APP_ERR_COMM_INIT_FAIL;
}
coordinateDataSource_ = *std::