下载
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

后处理

功能介绍

一般情况下,获取模型文件时,会带有后处理的代码文件,建议使用和模型训练时一致的后处理流程,从而保证推理结果符合预期。

对于不同的经典模型,MindX SDK封装了不同的后处理函数,可实现不同模型的后处理操作,将模型推理后的数据直接传入后处理接口,得到最终结果,极大地简化了使用过程。

接口调用流程

图1 接口调用流程图

在使用后处理功能时,需要将对应模型后处理的动态链接库文件(.so)在CMakeLists.txt文件中进行链接操作,以YoloV3为例:

target_link_libraries(main mxbase yolov3postprocess ...)

示例代码

基于MindX SDK后处理函数(YoloV3)的示例如下,不可以直接拷贝编译运行,仅供参考:
// 1、初始化
// 步骤1:构造后处理 Init 的输入
std::map<std::string, std::string> postConfig;

postConfig.insert(pair<std::string, std::string>("postProcessConfigPath", yoloV3ConfigPath)); // 设置模型后处理配置文件路径
postConfig.insert(pair<std::string, std::string>("labelPath", yoloV3LabelPath)); // 设置标签文件路径

// 步骤2:执行后处理 Init
Yolov3PostProcess yolov3PostProcess;
yolov3PostProcess.Init(postConfig);

// 2、执行后处理
// 步骤1:根据YOLOV3推理结果构建后处理输入tensors
std::vector<TensorBase> tensors;
for (size_t i = 0; i < yoloV3Outputs.size(); i++) {
    MemoryData memoryData(yoloV3Outputs[i].GetData(), yoloV3Outputs[i].GetByteSize());
    TensorBase tensorBase(memoryData, true, yoloV3Outputs[i].GetShape(), TENSOR_DTYPE_INT32);
    tensors.push_back(tensorBase);
}
// 步骤2:创建后处理输出
std::vector<std::vector<ObjectInfo>> objectInfos;

// 步骤3:执行后处理 Process
yolov3PostProcess.Process(tensors, objectInfos, imagePreProcessInfos);
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词