使用OpenVINO优化并部署训练好的YOLOv7模型

描述

作者:武卓博士  英特尔 AI 布道师

 

在《英特尔锐炫 显卡+ oneAPI 和 OpenVINO 实现英特尔 视频 AI 计算盒训推一体-上篇》一文中,我们详细介绍基于英特尔 独立显卡搭建 YOLOv7 模型的训练环境,并完成了 YOLOv7 模型训练,获得了最佳精度的模型权重:

模型

本文将继续介绍使用 OpenVINO 优化并部署已训练好的 YOLOv7 模型。

 

 

使用 OpenVINO 优化并部署

训练好的YOLOv7 模型

我们可以进一步使用 OpenVINO 来优化经过训练的 YOLOv7 模型,并将其部署到多个英特尔 硬件平台,包括英特尔 CPU、集成显卡和独立显卡等。整个部署过程可以通过以下步骤来实现:

检查来自训练模型的推理结果

训练好的模型,推理效果究竟如何?可使用如下命令查看推理效果:

 

python -W ignore detect.py --weights ./ runs/train/yolov7_tiny_pothole_fixed_res/weights/best.pt --conf 0.25 --img-size 640 --source ../pothole_dataset/images/test/G0026953.jpg

 

向右滑动查看完整代码

同时,可以利用如下命令打印出推理结果图:

 

from PIL import Image
# visualize prediction result
Image.open('runs/detect/exp5/G0026953.jpg')

 

向右滑动查看完整代码

推理结果如下图所示:

将模型导出为 ONNX 格式

使用如下命令将训练好的模型导出为 ONNX 格式:

 

python -W ignore export.py --weights ./ runs/train/yolov7_tiny_pothole_fixed_res/weights/best.pt --grid

 

向右滑动查看完整代码

将模型转换为 OpenVINO IR 格式

使用 model conversion API 将模型转为 OpenVINO IR 格式:

 

from openvino.tools import mo
from openvino.runtime import serialize


model = mo.convert_model('model_trained/best.onnx')
# serialize model for saving IR
serialize(model, 'model_trained/best.xml')

 

向右滑动查看完整代码

利用 OpenVINO runtime 

在独立显卡上运行推理

使用以下命令在英特尔 GPU上使用 OpenVINO Runtime 运行推理,因为我的机器上有一个集成 GPU,所以 OpenVINO 的运行时设备名称需要设置为“GPU.1”。

 

from openvino.runtime import Core
core = Core()
# read converted model
model = core.read_model('model_trained/best.xml')
# load model on CPU device
compiled_model = core.compile_model(model, 'GPU.1')

 

向右滑动查看完整代码

利用 226-yolov7-optimization 中定义的前处理及后处理函数,我们可以将 OpenVINO 推理结果可视化,如下图所示:

 

完整的YOLOv7推理代码已开源到(请复制链接到浏览器):

https://github.com/openvinotoolkit/openvino_notebooks/notebooks/226-yolov7-optimization.ipynb

欢迎开发者自行下载使用。

 

总结

到此,基于英特尔 视频 AI 计算盒打造一个从模型训练到优化部署的 AI 训推一体流水线(Train & Inference pipeline)的完整过程已介绍完毕,所有代码已开源到(请复制链接到浏览器):

https://github.com/zhuo-yoyowz/training-deployment-dGPU

欢迎大家将上述代码克隆到本机并使用,遇到问题也欢迎到我的 GitHub Repo 上留言。

关于英特尔 OpenVINO 开源工具套件的详细资料,包括其中我们提供的三百多个经验证并优化的预训练模型的详细资料。

除此之外,为了方便大家了解并快速掌握 OpenVINO 的使用,我们还提供了一系列开源的 Jupyter notebook demo。运行这些 notebook,就能快速了解在不同场景下如何利用 OpenVINO 实现一系列、包括计算机视觉、语音及自然语言处理任务。OpenVINO notebooks 的资源可以在 Github 这里下载安装(请复制链接到浏览器):

https://github.com/openvinotoolkit/openvino_notebooks

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分