Yolov5s利用onnx部署并转dll的记录

1.首先,直接调用官方版本的export.py文件,将已经训练好的网络模型导出成.onnx文件。

2.之后,用Visual Studio创建新的C++项目文件。先进行onnxruntime库的配置。

3.在配置完onnxruntime之后就可以在VS中通过readNet函数来读取之前保存的模型文件。注意net_path是onnx文件所存储的绝对路径。

4.在读取完模型之后我们还要进一步将模型的输出内容解码生成我们想要的检测结果,这一步的实现就需要另外编写解码过程的代码,根据不同的模型以及不同的检测类别需要编写不同的解码过程,具体的解码过程与pycharm中的解码过程是一样的(只是需要转写成C++的形式)。解码的步骤包括将outputs的信息进行拆分、得到初步预测结果,进行初次预测结果的筛选,进行非极大值抑制,以及最终检测结果的可视化等等。

5.在以上步骤完成之后就实现了在VS中调用onnx文件中的网络模型,接下来需要将之前编写好的整个读取模型并检测的文件转换成dll动态库的形式。先对应创建前面所编写的.cpp文件的头文件,创建 yolov5s的类别并在cpp文件中定义它的test成员函数(实际上就是刚才所编写的加载模型+检测图片的函数)

6.在完成了源文件和头文件的定义之后,就可以按照C++项目封装成dll文件的一般形式来进行封装了。具体步骤为:

        ①首先在配置属性中将生成文件的类型修改为静态库和动态库,分别生成dll文件和lib文件两个文件。

        ②之后在这两个文件中找到这两个文件并新建一个lib文件夹将其保存下来,除此之外还要另外建一个include文件夹,将刚才定义的头文件复制到改文件夹下。

        (在后续调用dll文件时需要将其复制到对应的项目文件夹下,并对其进行配置)。此时已经完成了dll文件的封装步骤了,接下来是调用dll文件的步骤。

(7)之后创建一个新的项目来验证刚才的文件是否封装成功。

        a.创建完新的项目之后,①需要在附加包含目录和附加库目录中分别配置刚才封装好的include文件夹和lib文件夹(注意此时两个文件夹要复制到新项目中),②并且在附加依赖项中配置.lib的静态文件。

        b.在新项目的cpp文件中需要完成以下动作:①

  • 首先需要包含要调用函数所在的头文件:
  • 其次需要创建yolov5s的示例对象,再调用对应的检测函数即可。
  • C.完成以上步骤之后运行新创建的项目,就可以正常调用dll文件中已经定义好的模型以及函数了
  • -----------------------------------------------------------------------------
  • 以下是一些参考来源:
  • 演练:创建和使用自己的动态链接库 (C++) | Microsoft Learn

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值