当前位置: 首页 > article >正文

【OpenVINO™】在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 (上篇)

在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 (上篇)
项目介绍

YOLOv5 是革命性的 "单阶段"对象检测模型的第五次迭代,旨在实时提供高速、高精度的结果,是世界上最受欢迎的视觉人工智能模型,代表了Ultralytics对未来视觉人工智能方法的开源研究,融合了数千小时研发中积累的经验教训和最佳实践。同时官方发布的模型已经支持 OpenVINO™ 部署工具加速模型推理,因此在该项目中,我们将结合之前开发的 OpenVINO™ C# API 部署 YOLOv5 DET 模型实现物体对象检测。

项目链接为:

https://github.com/guojin-yan/OpenVINO-CSharp-API

项目源码链接为:

https://github.com/guojin-yan/OpenVINO-CSharp-API-Samples/tree/master/model_samples/yolov5/yolov5_det_opencvsharp
https://github.com/guojin-yan/OpenVINO-CSharp-API-Samples/tree/master/model_samples/yolov5/yolov5_det_emgucv

文章目录

    • 1. 前言
      • 1.1 OpenVINO™ C# API
      • 1.2 YOLOv5
    • 2. 模型下载与转换
      • 2.1 环境安装
      • 2.2 Yolov5 模型下载
      • 2.3 转换IR模型

1. 前言

1.1 OpenVINO™ C# API

英特尔发行版 OpenVINO™ 工具套件基于 oneAPI 而开发,可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,适用于从边缘到云的各种英特尔平台上,帮助用户更快地将更准确的真实世界结果部署到生产系统中。通过简化的开发工作流程,OpenVINO™ 可赋能开发者在现实世界中部署高性能应用程序和算法。

OpenVINO™ 2023.2 于 2023 年 11 月 16 日发布,该工具包带来了挖掘生成人工智能全部潜力的新功能。更多的生成式 AI 覆盖和框架集成,以最大限度地减少代码更改,并且扩展了对直接 PyTorch 模型转换的模型支持。支持更多新的模型,包括 LLaVA、chatGLM、Bark 和 LCM 等著名模型。支持更广泛的大型语言模型(LLM)和更多模型压缩技术,支持运行时推理支持以下 Int4 模型压缩格式,通过神经网络压缩框架(NNCF) 进行本机 Int4 压缩等一系列新的功能。

OpenVINO™ C# API 是一个 OpenVINO™ 的 .Net wrapper,应用最新的 OpenVINO™ 库开发,通过 OpenVINO™ C API 实现 .Net 对 OpenVINO™ Runtime 调用,使用习惯与 OpenVINO™ C++ API 一致。OpenVINO™ C# API 由于是基于 OpenVINO™ 开发,所支持的平台与 OpenVINO™ 完全一致,具体信息可以参考 OpenVINO™。通过使用 OpenVINO™ C# API,可以在 .NET、.NET Framework等框架下使用 C# 语言实现深度学习模型在指定平台推理加速。

1.2 YOLOv5

​ YOLOv5 是革命性的 "单阶段"对象检测模型的第五次迭代,旨在实时提供高速、高精度的结果,是世界上最受欢迎的视觉人工智能模型,代表了Ultralytics对未来视觉人工智能方法的开源研究,融合了数千小时研发中积累的经验教训和最佳实践。

2. 模型下载与转换

2.1 环境安装

首先创建Yolov5模型下载与转换环境,此处为了更好的管理环境,使用Anaconda创建一个虚拟环境用于安装Yolov5模型下载与转换环境,首先使用conda创建一个虚拟环境,在命令行中依次输入以下指令:

conda create -n yolo python=3.10
conda activate yolo

接下来安装Yolov5模型下载与转换环境,基础的Yolov5模型下载需要通过克隆官方源码实现,在命令行中依次输入以下指令实现环境的安装与配置即可:

git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt
pip install --upgrade openvino-nightly

2.2 Yolov5 模型下载

Yolov5 官方提供了模型导出与转换的方式,用户只需要调用该接口便可以,在命令行中输入以下指令便可以直接导出Yolov5模型:

cd yolov5
python export.py --weights yolov5s.pt --include onnx

结果输出如下图所示:

使用Netron工具打开模型文件,查看模型结构,如下图所示:

官方预训练模型是在COCO数据集上训练的,因此导出的模型可以识别80种物体。模型输入节点为images,输入为归一化后的图像数据,其输入大小为640×640;模型的输出节点为output0,输出大小为25200×85,其中25200(640÷8=80,640÷16=40,640÷32=20,3×80×80+3×40×40+3×20×20=25200)表示识别结果个数,85表示[cx, cy, w, h, confidence, score0, ···,score79],分别为识别框信息、识别结果中最大置信度以及80中类别结果的分数。

2.3 转换IR模型

接下来直接使用 OpenVINO™ 工具直接进行模型转换,在CMD中输入以下指令即可:

ovc yolov5s.onnx

http://www.kler.cn/a/233385.html

相关文章:

  • Unity3D实现视频和模型融合效果
  • 如何从头开始构建神经网络?(附教程)
  • flink sql + kafka + mysql 如何构建实时数仓
  • idea 解决缓存损坏问题
  • ❤React-JSX语法认识和使用
  • Spark 的容错机制:保障数据处理的稳定性与高效性
  • uni-app x,一个纯原生的Android App开发工具
  • 【力扣】复写零,栈 + 双指针法
  • 张楠辞任抖音集团CEO;东方甄选将开服饰号;小红书新增“附近”一级入口;华为分红770亿元
  • Vue3中路由配置Catch all routes (“*“) must .....问题
  • 通过Harbor构建docker私服仓库
  • 前端使用pdf.js进行pdf文件预览的第二种方式:Viewer.html
  • Quartus工程的qsf配置约束文件介绍
  • 【C语言】一道相当有难度的指针某大厂笔试真题(超详解)
  • 106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode)
  • RTE2023第九届实时互联网大会:揭秘未来互联网趋势,PPT分享引领行业新思考
  • Python基础篇_修饰符(Decorators)【下】
  • 常用的正则表达式
  • 一条 SQL 查询语句是如何执行的
  • 探索Spring Validation:优雅实现后端数据验证的艺术
  • 数据结构-->线性表-->单链表
  • JAVA面试题12
  • 信号——block+pending+handler表
  • C语言常见面试题:什么是常量?C语言中有哪些类型的常量?
  • Python 小白的 Leetcode Daily Challenge 刷题计划 - 20240209(除夕)
  • 初识文件包含漏洞