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

相关文章

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C