0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

英特尔物联网 来源:英特尔物联网 2023-08-25 11:08 次阅读

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

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

38d3b184-425e-11ee-a2ef-92fbcf53809c.png

本文将继续介绍使用 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 将模型转为 OpenVINOIR 格式:

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

审核编辑:汤梓红

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

    关注

    60

    文章

    9421

    浏览量

    168825
  • 显卡
    +关注

    关注

    16

    文章

    2357

    浏览量

    65852
  • AI
    AI
    +关注

    关注

    87

    文章

    26443

    浏览量

    264044
  • 模型
    +关注

    关注

    1

    文章

    2704

    浏览量

    47685
  • OpenVINO
    +关注

    关注

    0

    文章

    59

    浏览量

    91

原文标题:英特尔锐炫™ 显卡 + oneAPI 和 OpenVINO™ 实现视频 AI 计算盒训推一体:下篇 | 开发者实战

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    YOLOV7网络架构解读

    继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7
    的头像 发表于 11-29 10:00 923次阅读
    <b class='flag-5'>YOLOV7</b>网络架构解读

    【大联大世平Intel®神经计算棒NCS2试用申请】在树莓派上联合调试Intel®神经计算棒NCS2部署OpenVINO

    ),CentOS7.4(64位)操作系统内核开发3,计算棒集成Intel最新的视觉处理单元(VPU),进行全面评估、4,全名评估OpenVINO™,搭建计算机视觉和深度学习视觉应用的软件平台。5,使用OpenVINO工具包中的推理引擎示运行
    发表于 06-30 16:06

    怎样使用PyTorch Hub去加载YOLOv5模型

    PyTorch Hub 加载预训练YOLOv5s 模型,model传递图像进行推理。'yolov5s'是最轻最快的
    发表于 07-22 16:02

    yolov7 onnx模型在NPU上太慢了怎么解决?

    我将 yolov7tiny.pt(yolov7-tiny 模型)转换为具有 uint8 权重的 yolov7tiny.onnx,然后在 i.MX 8M Plus NPU 上运行
    发表于 04-04 06:13

    无法使用MYRIAD在OpenVINO trade中运行YOLOv7自定义模型怎么解决?

    无法确定如何将 YOLOv7 模型的重量(.pt 文件)转换为OpenVINO™中间表示 (IR) 推断有 MYRIAD 的 IR。 分辨率 转换使用此 GitHub* 存储库
    发表于 08-15 08:29

    深度解析YOLOv7的网络结构

    最近,Scaled-YOLOv4的作者(也是后来的YOLOR的作者)和YOLOv4的作者AB大佬再次联手推出了YOLOv7,目前来看,这一版的YOLOv7是一个比较正统的YOLO续作,
    的头像 发表于 09-14 11:16 6620次阅读

    在C++中使用OpenVINO工具包部署YOLOv5模型

    下载并转换YOLOv5预训练模型的详细步骤,请参考:《基于OpenVINO™2022.2和蝰蛇峡谷优化
    的头像 发表于 02-15 16:53 2172次阅读

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8分类模型

    本系列文章将在 AI 爱克斯开发板上使用 OpenVINO 开发套件依次部署并测评 YOLOv8 的分类模型、目标检测模型、实例分割
    的头像 发表于 05-05 11:47 598次阅读
    在AI爱克斯开发板上用<b class='flag-5'>OpenVINO</b>™加速<b class='flag-5'>YOLOv</b>8分类<b class='flag-5'>模型</b>

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署
    的头像 发表于 05-12 09:08 844次阅读
    在AI爱克斯开发板上用<b class='flag-5'>OpenVINO</b>™加速<b class='flag-5'>YOLOv</b>8目标检测<b class='flag-5'>模型</b>

    训练Pytorch模型使用OpenVINO优化部署在AI爱克斯开发板

    本文章将依次介绍如何将 Pytorch 自训练模型经过一系列变换变成 OpenVINO IR 模型形式,而后使用 OpenVINO Pyth
    的头像 发表于 05-26 10:23 624次阅读
    自<b class='flag-5'>训练</b>Pytorch<b class='flag-5'>模型</b>使用<b class='flag-5'>OpenVINO</b>™<b class='flag-5'>优化</b>并<b class='flag-5'>部署</b>在AI爱克斯开发板

    AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型

    《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型》介绍了在AI爱克斯开发板上使用OpenVINO 开发套件部署并测评
    的头像 发表于 05-26 11:03 717次阅读
    AI爱克斯开发板上使用<b class='flag-5'>OpenVINO</b>加速<b class='flag-5'>YOLOv</b>8目标检测<b class='flag-5'>模型</b>

    YOLOv7训练自己的数据集包括哪些

      YOLOv7训练自己的数据集整个过程主要包括:环境安装—制作数据集—模型训练模型测试—模型
    的头像 发表于 05-29 15:18 622次阅读
    <b class='flag-5'>YOLOv7</b><b class='flag-5'>训练</b>自己的数据集包括哪些

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8-seg实例分割模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 目标检测模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署
    的头像 发表于 06-05 11:52 602次阅读
    在AI爱克斯开发板上用<b class='flag-5'>OpenVINO</b>™加速<b class='flag-5'>YOLOv</b>8-seg实例分割<b class='flag-5'>模型</b>

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8-seg实例分割模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 目标检测模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署
    的头像 发表于 06-30 10:43 449次阅读
    在AI爱克斯开发板上用<b class='flag-5'>OpenVINO</b>™加速<b class='flag-5'>YOLOv</b>8-seg实例分割<b class='flag-5'>模型</b>

    三种主流模型部署框架YOLOv8推理演示

    深度学习模型部署OpenVINO、ONNXRUNTIME、TensorRT三个主流框架,均支持Python与C++的SDK使用。对YOLOv5~Y
    的头像 发表于 08-06 11:39 1839次阅读