快速入门

您正在查看旧版本的文档。点击页面右上角可切换到最新版本的文档。

本章介绍如何应用 Mech-DLK SDK 实现 Mech-DLK 导出的缺陷分割模型的推理。

准备工作

推理流程

inference flow

函数说明

下面以 Mech-DLK 导出的缺陷分割模型为例,介绍应用 Mech-DLK SDK 实现模型推理时使用的函数。

创建输入图像

MMindImage input;
createImage("path/to/image.png", &input);

调用 createImage 函数创建输入图像。

创建推理引擎

Engine engine;
createPackInferEngine(&engine, "path/to/xxx.dlkpack", GpuDefault, 0);

调用 createPackInferEngine 函数创建推理引擎。

  • 当部署电脑上配置有英伟达的独立显卡时,你可以将推理后端(即此函数中的第三个参数)设置为 GpuDefault 或 GpuOptimization。

    • 当此参数设置为 GpuOptimization 时,需要等待 1~5 min 的优化时间。

  • 当部署电脑上未配置英伟达的独立显卡时,推理后端只能设置为 CPU。

  • 此函数中,第四个参数为英伟达显卡 ID,如果只有一张显卡,填写 0 即可。当推理后端设置为 CPU 时,此参数无效。

深度学习引擎推理

infer(&engine, &input, 1);

调用 infer 函数进行深度学习引擎推理。

此函数中,参数 1 表示推理的图片数量,必须与 input 中的图片数量相同。

获取缺陷分割结果

DefectAndEdgeResult* defectAndEdgeResult = NULL;
unsigned int resultNum = 0;
getDefectSegmentataionResult(&engine, 0, &defectAndEdgeResult, &resultNum);

调用 getDefectSegmentataionResult 函数得到缺陷分割模型的结果。

此函数中,第二个参数 0 表示深度学习模型推理包中的模型索引。

  • 如果是单模型推理包,该参数只能设置为 0

  • 如果为级联模型推理包,该参数需要根据模型推理包中算法的顺序进行设置。

结果可视化

resultVisualization(&engine, &input, 1);
showImage(&input, "result");

调用 resultVisualization 函数将模型推理结果绘制到 input 中。

此函数中,参数 1 表示推理的图片数量,必须与 input 中的图片数量相同。

释放内存

releaseDefectSegmentationResult(&defectAndEdgeResult, resultNum);
releaseImage(&input);
releasePackInferEngine(&engine);

分别将模型推理结果、输入图片、引擎模型所占内存释放掉,防止内存泄露。

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。