作者:武卓博士 英特尔 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 resultimage.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 mofrom openvino.runtime import serializemodel = mo.convert_model('model_trained/best.onnx')# serialize model for saving irserialize(model, 'model_trained/best.xml')
向右滑动查看完整代码
利用 openvino runtime
在独立显卡上运行推理
使用以下命令在英特尔 gpu上使用 openvino runtime 运行推理,因为我的机器上有一个集成 gpu,所以 openvino 的运行时设备名称需要设置为“gpu.1”。
from openvino.runtime import corecore = core()# read converted modelmodel = core.read_model('model_trained/best.xml')# load model on cpu devicecompiled_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
默认连接器的UML图和流程分析
详解PDCA
电子万年历设计方案(6)
小米6最新消息:雷军隐瞒的杀手锏,小米6中国红版将上市!
消防应急灯能照明多久
使用OpenVINO优化并部署训练好的YOLOv7模型
人工智能算法框架是可以被科学家掌控的
常见网络拓扑结构
与交流异步电机相比,永磁同步电机有哪些优点?
数据能“喂养”出真正的人工智能吗?(含2019年1-7月数据服务企业融资分析)
AD9361数据路径在低电压差分信号(LVDS)模式下运行
工业RFID应用之技术篇(五):基于CANopen网络的RFID低频读写器通信实例
亿纬锂能46系大圆柱意向订单约472.31GWh
BOSCH在中国第二个生产基地青岛开建
EMUI11其实就是鸿蒙吗?有什么区别吗
航天电器获评贵州企业百强第50名、贵州制造业企业百强第21名
IMEC开发出最新的硅衬底芯片
博敏电子与广东工业大学签订产学研合作协议
如何设计高效的逆变器?——揭示逆变器设计的核心秘密
自制红外线自动门控制器电路制作方案