AI算法sdk

SDK

本文介绍了SDK的流程,和主要的类

  • 主要关注的点是:
    • input的图片处理,归一化
    • .cfg模型中模型信息和tensorRT Engine的提取
    • 对模型输出结果进行还原及NMS等操作。

1. 加载模型文件(.cfg):模型文件的内容包括一些模型的信息和tensorRT量化后的模型引擎。

char* hrg_model_path1

  • 可以加加载多个模型文件(.cfg)有的算法需要多种模型。例如,poseC3D的模型需要yolov7-pose输出的来作为他的输入。
    这时候就可以创建多个hrgEngine

2. 初始化hrgEngine

    ret = InitialObjDetEngine(&hrgEngine1, initParam1);  
    ret = InitialObjDetEngine(&hrgEngine2, initParam2);
  • InitialObjDetEngine:会根据你的版本号例如8.4.4.2来走不同的算法分支。首先通过加载.cfg文件中的pre info的信息,来得到模型的class name, input/output name, input/output shape等等信息,用于下一个阶段的引擎反序列化。然后为不同的算法模型预先开辟模型输入的内存空间,模型engine和其输出的内存空间。然后初始化trtModel。

3. 推理引擎 RunDetEngineInner

为模型的输出开辟了内存空间之后,我们就可以开始对tensorRT序列化的引擎进行反序列化得到图片的输出了。

  • 图片预处理:resize -> hwc -> chw -> bgr2rgb -> ./255
  • 进行推理:hrg_objdet_inner_engine->runNNInfer();
            ret = trtDetEngine.runTrtInfer(
                yolo_params.input_image_buffer,
                yolo_params.input_image_len, 
                yolo_params.input_names[0], 
                yolo_params.outputs_buffer, 
                yolo_params.outputs_buffer_len, 
                yolo_params.output_names);
  • 得到模型网络feature map输出后的后处理:根据不同的模型,把网络的输出还原成框框,骨骼点,预测的类别等诸多对应的信息。

4. 释放引擎 UninitialObjDetEngine

  • 释放trt engine
  • 释放input_image_buffer, outputs_buffer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值