OpenVINO2022.1 C++在ubuntu20.04部署yolov5-6.x

模型转换路线:

在这里插入图片描述

pt --> onnx -->.xml,.bin --> OpenVINO runtime(C++)

1. 准备工作

  • Github下载yolov5工程
  • 安装依赖库,如pytorch,pip install -r requirements.txt
  • 训练得到pt模型

2. pt --> onnx

  1. 官网装openvino-dev[onnx]:Intel® Distribution of OpenVINO™ Toolkit
  2. 使用yolov5工程中的模型转换模块将pt模型转换为onnx模型:
    python export.py --data xxx.yaml --weights xxx.pt --img xxx(size) --batch 1

3. onnx --> IR(.xml, .bin)

  1. 用Model Optimizer将onnx模型转换为Intermediate Representation (IR),包含.xml和.bin文件,转换过程的其他参数参考Converting an ONNX Model.
    mo --input_model xxx.onnx
    在这里插入图片描述

4. IR(.xml, .bin) --> OpenVINO runtime(C++)

  1. 为了用C++跑模型,首先安装OpenVINO runtime,配置环境(安装),添加source,官方安装步骤:Install and Configure Intel® Distribution of OpenVINO™ Toolkit for Linux¶

  2. 编写C++程序,写CmakeList.txt,用cmake编译:
    在这里插入图片描述

附录

  1. main.cpp
  • 头文件
#include <openvino/openvino.hpp>    //OpenVINO >=2022.1
  • 创建OpenVINO Core:
ov::Core core;
ov::CompiledModel compiled_model = core.compile_model("xxx.xml", "AUTO");
ov::InferRequest infer_request = compiled_model.create_infer_request(); 
  • 获取输入、输出节点Tensor:
Tensor input_image_tensor = infer_request.get_tensor("images");
Tensor output_tensor = infer_request.get_tensor("output");
  • 读入图片,将Mat图像转换为Tensor,然后让openvino runtime推理,获取推理结果并解析:
cv::Mat img = cv::imread(xxx.jpg);
fill_tensor_data_image(input_image_tensor, in_img);
infer_request.infer();
cv::Mat det_output(out_rows, out_cols, CV_32F, (float*)infer_output_tensor.data());
  • NMS
vector<int> indexes;
cv::dnn::NMSBoxes(boxes, confidences, 0.25, 0.45, indexes);
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wilbur11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值