Ubuntu Openvino(YOLOV5)加载训练好的模型 xml onnx bin

2023-11-01

使用 Openvino 对自己训练好的模型yolov5 pt -> IR 进行推理

环境需求

  • Ubuntu 系统 20.04
  • vscode 编辑器
  • python3
  • Openvino 环境(priority
    关键为 export 导出的修改

Openvino安装

参考官网在这里插入图片描述(18 和 21 选择对应的安装版本即可)

如果是新手建议选择可视化界面安装

重点

因为这篇文章不是重点讲述如何安装 Openvino,所以有 bug 可以参考

注意事项:

  • 解压路径可以自己定义,建议安装的位置选择默认的 /opt/intel 即可。
  • 其中不需要自己安装 opencv,openvino 会自动安装。
  • 安装过后同样会跳到一个官网的网址,跟着步骤往下,将推理优化模型模块安装完即可,下面4个步骤。

Step 2: Install External Software Dependencies¶
Step 3: Configure the Environment¶
Step 4: Configure the Model Optimizer¶

  • 可选选项可以安装也可不用安装。

安装完后就可以测试自己是否已经安装完成
测试的 demo 在/opt/intel/openvino_2021/deployment_tools/demo
在这里插入图片描述

推理部分

Yolov5 训练好自己的 pt 模型使用 export.py 转换成 openvino 格式。

!python3 /content/drive/MyDrive/yolov5/export.py --weights /content/drive/MyDrive/yolov5/runs/train/exp4/weights/best.pt --include openvino

修改 export.py 的默认 arguments

在这里插入图片描述

  1. 将 opset = 12 更改为 opest = 10
  2. –data 更改为训练时的 data.yaml 文件(同样)
  3. model.model[-1].export = True

注意 :

  • 路径中的*best.pt 为从 yolov5 训练(train.py) 好的模型。
  • 选项为openvino

然后就会从原理模型 train 完的路径中找到三个文件夹。
在这里插入图片描述
其中bin 和 xml 为 openvino 中间模型文件。

  • 然后就是CMakeLists.txt 文件的定义修改(注意之前的安装目录)
cmake_minimum_required(VERSION 3.5)
project(detect_test)
set(CMAKE_CXX_STANDARD 11)
include_directories(
    #OpenVINO推理引擎的头文件
    /opt/intel/openvino_2021/deployment_tools/inference_engine/include/
    /opt/intel/openvino_2021/deployment_tools/ngraph/include/
)

#查找必要的依赖包
find_package(OpenCV REQUIRED)
set(InferenceEngine_DIR "/opt/intel/openvino_2021/deployment_tools/inference_engine/share")
find_package(InferenceEngine)
set(ngraph_DIR "/opt/intel/openvino_2021/deployment_tools/ngraph")
find_package(ngraph REQUIRED)
set(ngraph_LIBRARIES "/opt/intel/openvino_2021/deployment_tools/ngraph/lib/libngraph.so")
set(ngraph_INCLUDE_DIRS "/opt/intel/openvino_2021/deployment_tools/ngraph/include/")


# 编译detector.so

add_library (detector SHARED ${CMAKE_CURRENT_SOURCE_DIR}/detector.cpp)
target_include_directories(detector
        PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
        PUBLIC ${OpenCV_INCLUDE_DIR}
        PUBLIC ${InferenceEngine_INCLUDE_DIRS}
        PUBLIC ${ngraph_INCLUDE_DIRS}
)
target_link_libraries(detector
        ${OpenCV_LIBS}
        ${InferenceEngine_LIBRARIES}
        ${ngraph_LIBRARIES}
)

add_executable(detect_test main.cpp)
target_link_libraries(detect_test
                        PRIVATE 
                        ${InferenceEngine_LIBRARIES}
                        ${OpenCV_LIBS} 
                        ${NGRAPH_LIBRARIES}
                        detector
                        )

我的 github 仓库
在 build 文件中运行可执行文件
mkdir build
cd build
cmake … && make
./detect_test

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu Openvino(YOLOV5)加载训练好的模型 xml onnx bin 的相关文章

随机推荐

  • MATLAB神经网络编程(四)——线性神经网络的实现与局限

    MATLAB神经网络编程 化学工业出版社 读书笔记 第四章 前向型神经网络 4 2 线性神经网络 本文是 MATLAB神经网络编程 书籍的阅读笔记 其中涉及的源码 公式 原理都来自此书 若有不理解之处请参阅原书 一 线性神经网络的实现 线性
  • vue 中 elementui Dropdown 下拉菜单中 选项的click事件

  • gcc/g++交叉编译*.c/*.cpp程序时的配置

    CFLAGS I PWD src CFLAGS I third party hisi include CFLAGS L third party hisi lib CXXFLAGS I PWD src CXXFLAGS I third par
  • 电脑网络故障:LSP造成?

    问题 1 什么是LSP 删除了什么才导致了不能上网 LSP 为什么能影响网络 其内部的原理机制是什么 网络连接正常但无法上网 能ping通外网DNS 解决方法 2013 11 03 00 47 17 转载 标签 辅助工具 在线聊天 解决方法
  • java 阻塞模式与非阻塞模式

    TCP IP 阻塞模式与非阻塞模式 java view plain copy print package concurrentTest import java io BufferedReader import java io IOExcep
  • warning:Deprecated declaration LaberPwmSel_High - give arg types解决方法

    有些小伙伴在编译代码的时候偶尔会遇到这样的警告 当然这对整体并没有什么影响 直接忽略也是ok的 警告的大概意思是 LaberPwmSel High 应该提供类型声明 也就是说 使用MDK编译器的时候 如果函数在定义时没有传参 要在括号中加v
  • css禁止滑动页面_css页面滑动穿透的两种解决办法

    这篇文章主要介绍了css如何防止页面滑动穿透 小编觉得挺不错的 现在分享给大家 也给大家做个参考 一起跟随小编过来看看吧 问题描述 移动端当有 fixed 遮罩背景和弹出层时 在屏幕上滑动能够滑动背景下面的内容 这就是著名的滚动穿透问题 示
  • java实现----sql解析器

    更新中 首先我们项目要编写一个小型的dbms 所以我负责编写的sql解析的部分 所以本文只是记录我学习和编写sql解析器的过程
  • 大型网站架构之架构模式

    上节讲了大型网站的演变 今天讲下架构的模式 什么是模式呢 每一个模式描述了一个再我们周围不断重复发生的问题及问题解决方案的核心 这样你就能一次次重用该方案而不必去做重复的工作 可见模式的关键在于可重复性 网站架构模式的目标 面临高并发访问
  • element-ui中文官方文档入口

    点击下面链接 element ui点我跳转中文文档链接
  • 小区视频监控系统

    一 方案概述 名称 小区视频监控系统设计方案 内容 现在高档小区在大中小城市遍布各个角落 每天进出这些小区人形形色色 人们的居住环境应该有所保障 加上小区内部的高档配置硬件更应如此 但是仅仅靠人力所为是不现实的 人力成本 维护成本 效率低下
  • Git技能树(3):Git使用

    Git技能树 3 Git使用 在开始 Git 的基础命令学习之前 我们先来认识一下版本库 Repository 接下来我们所有提到的 Git 基础命令 都是基于版本库的 那么什么是版本库呢 版本库又名仓库 英文名 repository 你可
  • mybatis-plus更新数据updateById返回false

    Packet byId ips getById 211l System out println byId Packet pa new Packet pa setId byId getId pa setStatus 1 pa setVersi
  • 霍夫投票直观理解

    霍夫投票法最典型的示例是二维图像中霍夫直线检测 过二维平面中的定点可以得到无数条直线 如果以顶点参数为做一条直线 即将这些直线变换到参数空间 那么这个定点对应参数空间中的一条直线 如果在参数空间中有两条直线相交于同一个点 那么说明对应的两个
  • Unity排行榜功能(使用MVC框架)

    要求 实现如图所示UI界面 按下某一按键实现排行榜的更新 M 数据模型类 主要负责数据 玩家的数据 public class RankModel 定义三个属性 姓名 分数 排名 定义构造函数 public string Name set g
  • 基于arduino下的巡线小车

    先发代码再进行解释吧 include
  • 《Head First HTML5 javascript》第10章 自定义对象

    2022 11 23 第10章 自定义对象 面向对象OOP Object Oriented Programming 对象是一个包含相关数据和方法的集合 通常由一些变量和函数组成 我们称之为对象里面的属性和方法 对象是存储在单个分组中的相关功
  • Git统计个人提交代码行数

    1 Git统计个人提交代码行数 git log format aN sort u while read name do echo en name t git log author name pretty tformat numstat aw
  • Windows系统文件快捷链接(软链接/硬链接/符号链接)mklink

    记录学习mklink 将大文件从c盘移出 快捷方式 软链接 硬链接 符号链接 快捷方式 常见文件链接方式 在Windows上以 lnk结尾的文件 这类文件通常用于指定某一个文件或某一个目录的位置 可扩展性很强 桌面快捷方式就是这类了 软链接
  • Ubuntu Openvino(YOLOV5)加载训练好的模型 xml onnx bin

    使用 Openvino 对自己训练好的模型yolov5 pt gt IR 进行推理 环境需求 Ubuntu 系统 20 04 vscode 编辑器 python3 Openvino 环境 priority 关键为 export 导出的修改