OpenVINO+Yolov5+Windows10的CPU部署

2024-03-15 22:38

本文主要是介绍OpenVINO+Yolov5+Windows10的CPU部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

主要是记录一些参考网址,顺便记录一些废话。。。

在windows上,有时部署还是挺痛苦的,相对部署的人比较少,参考资料也不多,很多模型要自己去摸索。OpenVINO的话主要看官方的模型。

为了在Windows上部署模型,通常我们可以这样做:
(1)可以选择一些比较容易或别人已经部署过的模型。
(2)在没有GPU的情况下,一般用NCNN比较容易成功。本人多次在windows上编译过这个短小精悍的NCNN。
(3)如果用GPU话,可能还是TensorRT更合适。另外libTorch也是个不错的选择。
(4)不用GPU的情况下,windows上OpenVINO和OnnxRuntime可能相对较好。其实我也不是专业部署人员,所以也不敢肯定,只能凭自己的经验说,Intel和Microsoft对windows的平台支持还是要稍微好一点,毕竟自家的平台(虽然Microsoft这些年有被别人牵着鼻子走的感觉),纯CPU的话,我貌似还没有找到比OpenVINO更快的部署工具。

关于OpenVINO的入门介绍可以参考我的前两篇文章:

玩转OpenVINO之一:cpp samples和demo的编译_tanmx219的博客-CSDN博客_openvino 编译demo
玩转OpenVINO之二:试运行mask_rcnn_demo_tanmx219的博客-CSDN博客

好了,言归正传,下面我们来试试在win10上用OpenVINO部署Yolov5,我这里模型很小,用CPU直接部署。

我这里OpenVINO_2021-4.2是自己用VS2017编译的,其主目录地址是:
D:\OpenCV455\openvino

同时我还安装了OpenVINO-toolKit_2021-4.2LTS,
https://registrationcenter-download.intel.com/akdlm/irc_nas/18320/w_openvino_toolkit_p_2021.4.752.exehttps://registrationcenter-download.intel.com/akdlm/irc_nas/18320/w_openvino_toolkit_p_2021.4.752.exe其主目录地址是
C:\Program1\Intel\openvino_2021.4.752
C:\Program1\Intel\openvino_2021.4.752\deployment_tools,

我这里用的是自己用VS2017编译的版本。

Yolov5经过不断更新,已经做得比较人性化了。现在可以直接从Yolov5中用export_openvino直接导出,其导出函数定义为

def export_openvino(model, im, file, prefix=colorstr('OpenVINO:')):# YOLOv5 OpenVINO exporttry:check_requirements(('openvino-dev',))  # requires openvino-dev: https://pypi.org/project/openvino-dev/import openvino.inference_engine as ieLOGGER.info(f'\n{prefix} starting export with openvino {ie.__version__}...')f = str(file).replace('.pt', '_openvino_model' + os.sep)cmd = f"mo --input_model {file.with_suffix('.onnx')} --output_dir {f}"subprocess.check_output(cmd, shell=True)LOGGER.info(f'{prefix} export success, saved as {f} ({file_size(f):.1f} MB)')except Exception as e:LOGGER.info(f'\n{prefix} export failure: {e}')

可见,其使用的代码就是

“mo --input_model {file.with_suffix('.onnx')} --output_dir {f}”

这个命令相当于我在D:\OpenCV455\openvino目录下使用的命令:

"python  ./mo_onnx.py --input_model .onnx文件路径  --output_dir  期望模型输出的路径"

注意要保持版本一致,任何一种方式都是可以的。如果不确定,比如我这里,那就老老实实使用“D:\OpenCV455\openvino”下面的转换,完成后再用自己编译的“D:\OpenCV455\openvino”下面的库部署。

部署的源码可参考后面给出的例子,跑的时候会有些问题,我因为自己修改了Yolov5模型,因此部署也适当做了些变更。经测试CPU模式下,每秒十帧以上无压力,OpenVINO对自家平台的支持还是相当不错的。

参考源码:

https://github.com/fanweiya/openvino_yolov5_cpphttps://github.com/fanweiya/openvino_yolov5_cpphttps://github.com/fb029ed/yolov5_cpp_openvinohttps://github.com/fb029ed/yolov5_cpp_openvino

这篇关于OpenVINO+Yolov5+Windows10的CPU部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/813489

相关文章

UnrealScriptIDE调试环境部署

先安装vs2010   再安装VSIsoShell.exe, 下载地址 https://pan.baidu.com/s/10kPNUuDGTbWXbz7Nos-1WA       fd3t   最后安装unside,下载地址 https://archive.codeplex.com/?p=uside  安装中间有一步选择Binary文件夹要选对路径。   安装好以后,启动 UDKDe

java中查看函数运行时间和cpu运行时间

android开发调查性能问题中有一个现象,函数的运行时间远低于cpu执行时间,因为函数运行期间线程可能包含等待操作。native层可以查看实际的cpu执行时间和函数执行时间。在java中如何实现? 借助AI得到了答案 import java.lang.management.ManagementFactory;import java.lang.management.Threa

青龙面板部署通用教程,含服务器、路由器、X86等部署方法

1. 拉取镜像/更新镜像 docker pull whyour/qinglong:latest 2. 删除镜像 docker rmi whyour/qinglong:latest 3. 启动容器 普通服务器 docker run -dit \-v $PWD/ql/config:/ql/config \-v $PWD/ql/log:/ql/log \-v $PWD/ql/db:

宝塔面板部署青龙面板教程【简单易上手】

首先,你得有一台部署了宝塔面板的服务器(自己用本地电脑也可以)。 宝塔面板部署自行百度一下,很简单,这里就不走流程了,官网版本就可以,无需开心版。 首先,打开宝塔面板的软件商店,找到下图这个软件(Docker管理器)安装,青龙面板还是安装在docker里,这里依赖宝塔面板安装和管理docker。 安装完成后,进入SSH终端管理,输入代码安装青龙面板。ssh可以直接宝塔里操作,也可以安装ssh连接

手把手教你入门vue+springboot开发(五)--docker部署

文章目录 前言一、前端打包二、后端打包三、docker运行总结 前言 前面我们重点介绍了vue+springboot前后端分离开发的过程,本篇我们结合docker容器来研究一下打包部署过程。 一、前端打包 在VSCode的命令行中输入npm run build可以打包前端代码,出现下图提示表示打包完成。 打包成功后会在前端工程目录生成dist目录,如下图所示: 把

[Centos7] 部署Zabbix5.0

目录 0 卸载 Zabbix1 准备工作1.1 关闭防火墙1.2 关闭SELinux1.3 重启服务器1.4 安装MySQL 2 配置 Zabbix yum 源2.1 安装zabbix的软件仓库配置包2.2 安装 Software Collections 仓库2.3 修改 Zabbix 仓库配置文件 3 安装 Zabbix3.1 遇到报错Requires: libmysqlclient.so

[分布式网络通讯框架]----ZooKeeper下载以及Linux环境下安装与单机模式部署(附带每一步截图)

首先进入apache官网 点击中间的see all Projects->Project List菜单项进入页面 找到zookeeper,进入 在Zookeeper主页的顶部点击菜单Project->Releases,进入Zookeeper发布版本信息页面,如下图: 找到需要下载的版本 进行下载既可,这里我已经下载过3.4.10,所以以下使用3.4.10进行演示其他的步骤。

springboot学习02-[热部署和日志]

热部署和日志 热部署 热部署

关于CPU的一点知识

首先说一下,CPU是干啥的: CPU所负责的就是解释和运行最终转换成机器语言的程序内容 我们需要知道的CPU结构:重点需要关注寄存器 运算器 简单说就是负责运算从内存读取到寄存器中的数据,可以看作一个数据加工厂,就是对寄存器中的数据做运算,这些运算包含基本的算术和逻辑运算。 算术逻辑单元(ALU) 这个是运算器中重要的一个组成,主要负责的就是对数据的处理,从而实现对数据的算术和

上位机图像处理和嵌入式模块部署(mcu和swd接口)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         最近学习mcu的时候,接触了不少调试器,这里面有daplink、st-link v2、j-link v9。虽然模块的形状可能不太一样,但是硬件的连线都差不多,都是mcu上的3.3v、clk、dio和gnd四根连线。出于好奇,今天花了点时间了解了一下debug port、sw