前言

上一篇博客给大家介绍了使用opencv加载YOLOv5的onnx模型,但我们发现使用CPU进行推理检测确实有些慢,那难道在CPU上就不能愉快地进行物体识别了吗?当然可以啦,这不LabVIEW和OpenVINO就来了嘛!今天就和大家一起看一下如何在CPU上也能感受丝滑的实时物体识别。

一、OpenVINO是什么

OpenVINO是英特尔针对自家硬件平台开发的一套深度学习工具库,用于快速部署应用和解决方案,包含推断库,模型优化等等一系列与深度学习模型部署相关的功能。

特点:

  1. 在边缘启用基于CNN的深度学习推理

  2. 支持通过英特尔MovidiusVPU在英特尔CPU,英特尔集成显卡,英特尔神经计算棒2和英特尔视觉加速器设计之间进行异构执行

  3. 通过易于使用的计算机视觉功能库和预先优化的内核加快上市时间

  4. 包括对计算机视觉标准(包括OpenCV *和OpenCL)的优化调用

  5. 通俗易懂点说想要在intel-cpu或者嵌入式上部署深度学习模型,可以考虑考虑openvino

二、LabVIEW视觉工具包下载与配置

1、视觉工具包的下载安装

可在如下链接中下载并安装工具包:https://www.cnblogs.com/virobotics/p/16527821.html

2、OpenVINO toolkit下载安装

下载地址:英特尔 Distribution of OpenVINO 工具套件 1)点击Dev Tools

2)选择版本,选择如下版本,并DownLoad:

3)下载后,运行安装即可!

4)可以选择安装路径,具体安装可以参考官方文档:https://docs.openvino.ai/cn/latest/openvino_docs_install_guides_installing_openvino_windows.html

三、模型获取

openvino工作流程,和其他的部署工具都差不多,训练好模型,解析成openvino专用的.xml和.bin,随后传入Inference Engine中进行推理。这里和上一篇博客一样可以使用export.py导出openvino模型:python export.py --weights yolov5s.pt --include openvino 当然这里已经为大家转换好了模型,大家可以直接下载,下载链接:YOLOv5 OpenVINO IR模型

四、LabVIEW+OpenVINO调用Yolov5进行实时物体识别

1、实现过程

  • dnn模块调用IR模型(模型优化器)

  • 设置计算后台与计算目标设备(推理引擎加速)

  • 获取输出端的LayerName

  • 图像预处理

  • 推理

  • 后处理

  • 绘制检测出的对象

2、程序源码

3、识别结果

CPU模式下,使用openvino进行推理加速,实时检测推理用时仅95ms/frame,是之前加载速度的三分之一

注意:readNetFromModelOptimizer.vi中IR模型路径不可以包含中文

附加说明:计算机环境

  • 操作系统:Windows10

  • python:3.6及以上

  • LabVIEW:2018及以上 64位版本

  • 视觉工具包:techforce_lib_opencv_cpu-1.0.0.73.vip

  • OpenVINO:2021.4.2

总结

以上就是今天要给大家分享的内容。

如需源码,请关注微信公众号VIRobotics,回复关键词:yolov5_openvino。

如您想要探讨更多关于LabVIEW与人工智能技术,欢迎加入我们的技术交流群:705637299,进群请备注暗号:LabVIEW机器学习

YOLOv5】LabVIEW+OpenVINO让你的YOLOv5在CPU上飞起来的更多相关文章

  1. LabVIEW+OpenVINO在CPU上部署新冠肺炎检测模型实战

    前言 之前博客:[YOLOv5]LabVIEW+OpenVINO让你的YOLOv5在CPU上飞起来给大家介绍了在LabVIEW上使用openvino加速推理,在CPU上也能感受丝滑的实时物体识别.那我 ...

  2. 【YOLOv5】手把手教你使用LabVIEW ONNX Runtime部署 TensorRT加速,实现YOLOv5实时物体识别(含源码)

    前言 上一篇博客给大家介绍了LabVIEW开放神经网络交互工具包[ONNX],今天我们就一起来看一下如何使用LabVIEW开放神经网络交互工具包实现TensorRT加速YOLOv5. 以下是YOLOv ...

  3. YOLO系列梳理(三)YOLOv5

    ​  前言 YOLOv5 是在 YOLOv4 出来之后没多久就横空出世了.今天笔者介绍一下 YOLOv5 的相关知识.目前 YOLOv5 发布了新的版本,6.0版本.在这里,YOLOv5 也在5.0基 ...

  4. YOLOv4没交棒,但YOLOv5来了!

    YOLOv4没交棒,但YOLOv5来了! 前言 4月24日,YOLOv4来了! 5月30日,"YOLOv5"来了! 这里的 "YOLOv5" 是带有引号的,因为 ...

  5. GitHub上YOLOv5开源代码的训练数据定义

    GitHub上YOLOv5开源代码的训练数据定义 代码地址:https://github.com/ultralytics/YOLOv5 训练数据定义地址:https://github.com/ultr ...

  6. yolov5训练自定义数据集

    yolov5训练自定义数据 step1:参考文献及代码 博客 https://blog.csdn.net/weixin_41868104/article/details/107339535 githu ...

  7. 使用LabVIEW如何生成应用程序(exe)和安装程序(installer)

    主要软件:   LabVIEW Development Systems>>LabVIEW Professional Development System主要软件版本:   2012主要软件 ...

  8. 【LabVIEW技巧】LabVIEW OOP怎么学

    前言 有很多人对LabVIEW OOP存在比较极端的看法,大致分为两类: 1. 绝对否定派认为LabVIEW OOP只不过是LabVIEW为了追求时髦,在面向过程的基础上用簇做了一些特性,实际上完全不 ...

  9. 【翻译】如何使用 OpenVINO 来优化 OpenCV

    本文翻译自 Vishwesh Shrimali 的  "Using OpenVINO with OpenCV" 原文链接: https://www.learnopencv.com/ ...

随机推荐

  1. Logo小变动,心境大不同,SVG矢量动画格式网站Logo图片制作与实践教程(Python3)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_207 曾几何时,SVG(Scalable Vector Graphics)矢量动画图被坊间称之为一种被浏览器诅咒的技术,只因为糟糕 ...

  2. Odoo 14 升级模块后为什么template不生效?

    # 升级模块后为什么template不生效? # 直接原因是因为你在record标签的父级data标签标签中设置了noupdate为true.这就导致你后面无论你怎么修改data下面的子标签内容,都不 ...

  3. Redis 16 哨兵模式

    参考源 https://www.bilibili.com/video/BV1S54y1R7SB?spm_id_from=333.999.0.0 版本 本文章基于 Redis 6.2.6 概述 主从切换 ...

  4. Git 03 理论

    参考源 https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.999.0.0 版本 本文章基于 Git 2.35.1.2 四个区域 G ...

  5. java学习第一天.day06

    方法 方法的优点 1. 使程序变得更简短而清晰. 2. 有利于程序维护. 3. 可以提高程序开发的效率. 4. 提高了代码的重用性. static的作用 static在方法中如果没有添加就只能用对象调 ...

  6. 这次我设计了一款TPS百万级别的分布式、高性能、可扩展的RPC框架

    作者:冰河 博客地址:https://binghe001.github.io 大家好,我是冰河~~ 没错,这次冰河又要搞事情了,这次准备下手的是RPC框架项目.为什么要对RPC框架项目下手呢,因为在如 ...

  7. with function 语法支持

    通过with子句,我们可以把很多原本需要存储过程来实现的复杂逻辑用一句SQL来进行表达.KingbaseES 从V008R006C004B0021 版本开始,支持 with function 语法.例 ...

  8. Sentinel 源码分析-限流原理

    1. git clone senetinel 源码到本地,切换到release1.8分支 2. 找到FlowQpsDemo.java, 根据sentinel自带的案例来学习sentinel的原理 3. ...

  9. springboot拦截器总结

    Springboot 拦截器总结 拦截器大体分为两类 : handlerInterceptor 和 methodInterceptor 而methodInterceptor 又有XML 配置方法 和A ...

  10. 通过VS下载的NuGet包,如何修改其下载存放路径?

    一.了解NuGet包的默认存放路径 我们通过NuGet包管理器下载的引用包,默认是存放在C盘的,存储路径一般是: C:\Users\{系统用户名}\.nuget\packages 我们都知道,C盘的存 ...