yolov5的openvino部署

本文档详细介绍了如何在Ubuntu 18.04上安装OpenVINO 2020.3.341,包括下载、解压、安装和测试过程。此外,还展示了如何将YOLOv5的.pt模型转换为ONNX格式,然后进一步转换为IR(Intermediate Representation),以便在OpenVINO环境下运行。最后,使用C++编写测试程序验证了模型转换和部署的正确性。
摘要由CSDN通过智能技术生成

软硬件环境

  • ubuntu 18.04 64bit

  • openvino_2020.3.341

  • yolov5 4.0

openvino是什么

openvino是一个用于解决在intel硬件平台上进行深度学习部署的方案,支持windowslinuxmacOS

openvino环境搭建

下载地址:https://software.intel.com/content/www/us/en/develop/tools/openvino-toolkit/download.html

下载后解压并进入目录

tar xvf l_openvino_toolkit_p_2020.3.341.tgz
cd l_openvino_toolkit_p_2020.3.341

执行脚本开始按提示安装

# 或者使用带GUI界面的安装脚本sudo ./install_GUI.sh
sudo ./install.sh

openvino_onnx_yolov5

按回车键继续

openvino_onnx_yolov5

选2,不同意收集我的信息

openvino_onnx_yolov5

按回车键继续

openvino_onnx_yolov5

同意并开始安装

openvino_onnx_yolov5

按回车键继续

openvino_onnx_yolov5

至此,安装结束

接下来测试下安装是否成功

cd /opt/intel/openvino/deployment_tools/demo
./demo_security_barrier_camera.sh
./demo_security_barrier_camera.sh -d GPU(测试gpu环境)

openvino_onnx_yolov5

这就说明,openvino的环境安装成功了。

这里需要注意下,由于,在安装过程中,脚本已经帮我们设置了相关的环境,所以我们去测试时无需做任何设置。但是如果下次开机,或者打开新的terminal,我们就需要重新来设置环境,执行

source /opt/intel/openvino/bin/setupvars.sh

或者直接将上述命令写入~/.bashrc中,就不用每次手动敲了。

目录/opt/intel下有openvinoopenvino_2020.3.3412个目录,其实它们是同一个东西,openvino是个软链接文件。

pt转onnx

首先准备依赖

pip install onnx coremltools networkx defusedxml

由于目前openvino的版本对onnx opset 11 版本后的支持有问题,因此需要修改文件model/export.py,将原来opset_version由12改为10,如下

torch.onnx.export(model, img, f, verbose=False, opset_version=10, input_names=['images'],
                    output_names=['classes', 'boxes'] if y is None else ['output'])

接下来就可以将yolov5pt模型转换成onnx格式了,这里使用其自带的yolov5s.pt模型进行测试

python models/export.py --weights weights/yolov5s.pt --img-size 640 --batch-size 1

openvino_onnx_yolov5

转换结束后,就会在weights文件夹下生成yolov5s.onnx

onnx转ir

irIntermediate Representationopenvino的模型优化器(Model Optimizer)会将给定的模型转化为标准的ir格式,并对其进行优化。

使用openvino自带的脚本,就可以完成从.onnx.bin.xml的转换,命令如下

mo.py --input_model weights/yolov5s.onnx

openvino_onnx_yolov5

可以看到在当前目前生成了yolov5s.binyolov5s.xml

openvino测试

这里使用c++语言编写测试程序,下载地址:https://github.com/fb029ed/yolov5_cpp_openvino,非常感谢作者fb029ed的分享

cd yolov5_cpp_openvino/demo
mkdir build
cmake ..
make
./detect_test

需要将前面生成的yolov5s.binyolov5s.xml和一张测试图片拷贝到res目录下,图片重命名为bus.jpg

openvino_onnx_yolov5

参考资料

  • https://software.intel.com/content/www/us/en/develop/tools/openvino-toolkit.html

  • https://github.com/violet17/yolov5_demo

  • https://github.com/fb029ed/yolov5_cpp_openvino

### 回答1: YOLOv5是一种基于深度学习的目标检测算法,而OpenVINO是英特尔开发的用于神经网络模型优化和部署的工具集。 首先,YOLOv5可以在训练过程中生成模型权重,这些权重包含了检测目标的特征信息。然后,使用OpenVINO可以将YOLOv5训练得到的模型进行优化和部署。 在YOLOv5 c OpenVINO部署过程中,首先需要将YOLOv5的模型转换为OpenVINO支持的IR(Intermediate Representation)格式。这可以通过OpenVINO提供的Model Optimizer工具来完成,该工具可以将YOLOv5模型的权重和配置文件转换为OpenVINO可用的中间表示格式。 转换完成后,就可以使用OpenVINO进行模型的部署OpenVINO提供了一系列可以用于优化和加速神经网络的计算库和工具。例如,可以使用OpenVINO的Inference Engine库来加载和运行转换后的模型,并利用英特尔的硬件加速功能提高推理速度和效率。 此外,OpenVINO还提供了一些用于适配不同硬件平台的示例代码和优化技术。例如,可以使用OpenVINO的Hardware-Aware Optimizations工具来针对特定的硬件平台进行优化,以实现更好的性能表现。 总结来说,YOLOv5 c OpenVINO部署是将基于深度学习的目标检测算法YOLOv5转换为OpenVINO支持的中间表示格式,并使用OpenVINO进行模型的优化和部署。通过利用OpenVINO提供的硬件加速和优化技术,可以提高模型的推理速度和效率。 ### 回答2: YOLOv5是一个用于目标检测的深度学习模型,而OpenVINO是一种用于模型部署和优化的开源工具包。将YOLOv5模型部署OpenVINO中,可以提高模型的推理性能并适应不同的硬件环境。 首先,要将YOLOv5模型转换为OpenVINO支持的IR格式。IR(中间表示)格式是一种中间表达,能够将深度学习模型转换为可在不同硬件上执行的优化形式。可以使用OpenVINO提供的Model Optimizer工具来进行模型转换。该工具将根据模型的结构和权重生成IR文件。 接下来,在部署模型之前,需要选择适当的推理引擎。OpenVINO提供了多种推理引擎,例如CPU、GPU、VPU等。根据硬件环境的特性选择最优的推理引擎。 在进行实际的部署前,需要编写一个推理脚本来加载IR文件并执行推理操作。脚本需要指定输入图像、处理结果以及模型的基本参数,例如置信度阈值、IOU阈值等。可以使用OpenVINO提供的Python API来编写推理脚本。 最后,可以在硬件设备上运行推理脚本来进行目标检测。通过OpenVINO的优化,模型的推理速度可以得到明显的提升,并且可以在不同硬件环境中进行部署,如服务器、边缘设备等。 总之,将YOLOv5模型部署OpenVINO需要进行模型转换、选择推理引擎、编写推理脚本等步骤。这样可以提高模型的推理性能,并使其适应不同的硬件环境。 ### 回答3: YOLOv5是一个流行的目标检测算法,其在计算机视觉领域具有广泛的应用。OpenVINO是英特尔开发的一个工具套件,用于优化和部署深度学习模型。 YOLOv5-C是YOLOv5系列中的一个变种,其相对较小而轻量化,适合在资源受限的设备上进行部署OpenVINO可以用于将训练好的YOLOv5-C模型进行加速和优化,并将其部署到不同的设备上。 在使用OpenVINO部署YOLOv5-C模型时,首先需要使用OpenVINO的Model Optimizer工具将模型转换为OpenVINO可识别的格式。这个工具可以自动进行网络层级别的优化和压缩,以减少模型的大小和计算量。 转换完成后,可以使用OpenVINO的Inference Engine进行模型推理。Inference Engine是一个优化的推理引擎,可以在各种硬件设备上高效地运行深度学习模型。它提供了API和示例代码,使得在不同平台上进行部署变得更加简单和便捷。 通过使用OpenVINO部署YOLOv5-C模型,可以获得更高的推理性能和更低的延迟。这对于一些应用场景,如实时目标检测和视频分析,非常重要。此外,OpenVINO还支持边缘设备、嵌入式系统和云计算平台,使得模型可以在多种场景下灵活部署和应用。 总而言之,使用OpenVINO部署YOLOv5-C模型可以实现对模型的优化和加速,使得在各种设备上实现高效的目标检测应用成为可能。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迷途小书童的Note

请博主喝矿泉书!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值