darknet cpp weights模型转换成ONNX模型

这篇博客详细介绍了如何将PyTorch的YOLOv4模型转换为ONNX格式。首先,你需要从指定链接下载代码文件。接着,安装onnxruntime的1.9.0版本。然后,在项目data目录下准备模型的配置文件、权重文件和测试图片。在demo_onnx.py中修改模型类别数和类别names路径。最后,运行转换脚本,设置batchsize为1。转换完成后,会生成ONNX模型及预测结果图片。

整理不易,如果觉得有用,记得点赞收藏和分享哦

1. 下载转换需要的代码文件

在下面地址下载代码文件

https://gitee.com/liangjiaxi2019/pytorch-YOLOv4

2. 安装onnxruntime

这里使用的是1.9.0版本的onnxruntime

pip3 install onnxruntime==1.9.0

3. 准备模型以及配置文件

在项目的data目录下准备转换需要的文件

需要模型架构的cfg文件,表示类别names文件,模型的权重weights文件以及一张测试图片
在这里插入图片描述

4.修改代码配置

修改demo_onnx.py文件
第56行写上当前模型预测的类别数目, 修改64行,改成实际模型的类别names文件

要在Ubuntu系统上使用C++和ONNX Runtime部署YOLOv8模型,你需要按照以下步骤操作: 1. **安装必要的依赖**: - 首先,确保你的Ubuntu系统已经安装了C++和基本的开发工具包。运行 `sudo apt-get install build-essential cmake git`。 - 安装ONNX Runtime。访问ONNX Runtime GitHub页面 (https://github.com/onnx/onnxruntime) 下载源码,然后通过`cmake` 和 `make` 来构建它。例如: ``` git clone https://github.com/microsoft/onnxruntime.git cd onnxruntime mkdir build cd build cmake .. make -j$(nproc) sudo make install ``` 2. **下载和准备YOLOv8模型**: - 从Yolov4官方GitHub仓库获取YOLOv8模型(https://github.com/AlexeyAB/darknet)。注意选择适合的版本并解压。 - 将YOLOv8模型转换成ONNX格式,通常你可以使用Darknet本身将`.weights` 文件换,如`darknet2onnx` 工具。 3. **加载模型ONNX Runtime**: 使用ONNX Runtime的API,读取并加载换后的ONNX模型文件。示例代码片段如下: ```cpp #include <onnxruntime/ort_inference.h> // ... Ort::Env env; std::ifstream model_file("yolov8.onnx"); const char* model_data = new char[model_file.tellg()]; model_file.read(model_data, model_file.tellg()); OrtSession ort_session(env, model_data, model_data + model_file.tellg(), nullptr); delete[] model_data; ``` 4. **编写推理代码**: 编写C++代码来处理输入数据,调用ORT Session进行推理,并解析输出结果。YOLOv8的输出需要进一步处理才能得到目标检测的结果。 5. **测试和优化性能**: 测试你的程序,确保模型能够正常工作。如果需要,可以调整模型的输入尺寸、批大小等参数来优化性能。 6. **注意事项**: - YOLOv8模型可能会有自定义层,确保ONNX Runtime支持它们或者提供相应的插件。 - 如果遇到跨平台兼容性问题,检查模型是否经过正确地量化或对ONNX Runtime做了适当的配置。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值