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

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

3天内不再提示

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

英特尔物联网 来源:英特尔物联网 2023-05-12 09:08 次阅读

文章作者:

英特尔物联网行业创新大使 杨雪锋博士

01简介

《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO开发套件部署并测评 YOLOv8 的分类模型,本文将介绍在 AI 爱克斯开发板上使用 OpenVINO 加速 YOLOv8 目标检测模型。

请先下载本文的范例代码仓,并搭建好 YOLOv8 的 OpenVINO 推理程序开发环境:

git clone

https://gitee.com/ppov-nuc/yolov8_openvino.git

02导出 YOLOv8 目标检测 OpenVINO IR 模型

YOLOv8 的目标检测模型有5种,在 COCO 数据集完成训练,如下表所示。

0eef6832-f005-11ed-90ce-dac502259ad0.png

首先使用命令:

yoloexport model=yolov8n.pt format=onnx

完成 yolov8n.onnx 模型导出,如下图所示:

0f16fe7e-f005-11ed-90ce-dac502259ad0.png

然后使用命令:

mo -m yolov8n.onnx --compress_to_fp16

优化并导出 FP16 精度的 OpenVINO IR 格式模型,如下图所示:

0f502122-f005-11ed-90ce-dac502259ad0.png

03用 benchmark_app 测试

yolov8 目标检测模型的推理计算性能

benchmark_app 是 OpenVINO 工具套件自带的 AI 模型推理计算性能测试工具,可以指定在不同的计算设备上,在同步或异步模式下,测试出不带前后处理的纯 AI 模型推理计算性能。

使用命令:

benchmark_app -m yolov8n.xml -d GPU

获得 yolov8n.xml 模型在 AI 爱克斯开发板的集成显卡上的异步推理计算性能,如下图所示:

0f75d516-f005-11ed-90ce-dac502259ad0.png

04使用 OpenVINO Python API 编写

YOLOv8 目标检测模型推理程序

用 Netron 打开 yolov8n.onnx ,如下图所示,可以看到模型的输入是形状为[1,3,640,640]的张量,输出是形状为[1,84,8400]的张量,其中“84”的定义为:cx,cy,h,w和80种类别的分数。“8400”是指 YOLOv8 的3个检测头在图像尺寸为640时,有640/8=80, 640/16=40, 640/32=20, 80x80+40x40+20x20=8400个输出单元格。

0f95b502-f005-11ed-90ce-dac502259ad0.png

基于 OpenVINO Python API 的 YOLOv8 目标检测模型的范例程序:

yolov8_od_ov_sync_infer_demo.py

其核心源代码如下所示:

# 实例化Core对象
core = Core() 
# 载入并编译模型
net = core.compile_model(f'{MODEL_NAME}.xml', device_name="AUTO")
# 获得模型输出节点
output_node = net.outputs[0] # yolov8n只有一个输出节点
ir = net.create_infer_request()
cap = cv2.VideoCapture("store-aisle-detection.mp4")


while True:
  start = time.time()
  ret, frame = cap.read()
  if not ret:
    break
  # 图像数据前处理
  [height, width, _] = frame.shape
  length = max((height, width))
  image = np.zeros((length, length, 3), np.uint8)
  image[0:height, 0:width] = frame
  scale = length / 640
  blob = cv2.dnn.blobFromImage(image, scalefactor=1 / 255, size=(640, 640), swapRB=True)
  # 执行推理计算
  outputs = ir.infer(blob)[output_node]
  # 推理结果后处理并显示处理结果
  outputs = np.array([cv2.transpose(outputs[0])])
  ... ...
cv2.imshow('YOLOv8 OpenVINO Infer Demo on AIxBoard', frame)

向右滑动查看完整代码

yolov8_od_ov_sync_infer_demo.py 运行结果,如下图所示:

0fafd41e-f005-11ed-90ce-dac502259ad0.png

05结论

AI 爱克斯开发板借助 N5105 处理器的集成显卡(24个执行单元)和 OpenVINO ,可以在 YOLOv8 的目标检测模型上获得相当不错的性能。通过异步处理和 AsyncInferQueue ,还能进一步提升计算设备的利用率,提高 AI 推理程序的吞吐量。

下一篇将继续介绍在《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8-Seg 实例分割模型》。

审核编辑:汤梓红

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

    关注

    61

    文章

    9953

    浏览量

    171699
  • 物联网
    +关注

    关注

    2909

    文章

    44573

    浏览量

    372843
  • AI
    AI
    +关注

    关注

    87

    文章

    30758

    浏览量

    268903
  • 开发板
    +关注

    关注

    25

    文章

    5033

    浏览量

    97382
  • 模型
    +关注

    关注

    1

    文章

    3229

    浏览量

    48811

原文标题:在AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型 | 开发者实战

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

收藏 人收藏

    评论

    相关推荐

    【爱芯派 Pro 开发板试用体验】yolov8模型转换

    通过开发板预制的ax_run_model 工具,测试模型速度和精度。 示例都是yolov5的,没有yolov8
    发表于 11-20 12:19

    使用YOLOv8目标检测和实例分割的演示

    YOLOv8是来自Ultralytics的最新的基于YOLO的对象检测模型系列,提供最先进的性能。
    的头像 发表于 02-06 10:11 7465次阅读

    AI爱克斯开发板OpenVINO加速YOLOv8分类模型

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

    YOLOv8版本升级支持小目标检测与高分辨率图像输入

    YOLOv8版本最近版本又更新了,除了支持姿态评估以外,通过模型结构的修改还支持了小目标检测与高分辨率图像检测。原始的
    的头像 发表于 05-16 11:14 1.2w次阅读
    <b class='flag-5'>YOLOv8</b>版本升级支持小<b class='flag-5'>目标</b><b class='flag-5'>检测</b>与高分辨率图像输入

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

    benchmark_app是OpenVINOTM工具套件自带的AI模型推理计算性能测试工具,可以指定在不同的计算设备同步或异步模式下,测试出不带前后处理的纯
    的头像 发表于 05-24 11:19 634次阅读
    ​<b class='flag-5'>在</b><b class='flag-5'>AI</b><b class='flag-5'>爱克斯</b><b class='flag-5'>开发板</b><b class='flag-5'>上</b><b class='flag-5'>用</b><b class='flag-5'>OpenVINO</b><b class='flag-5'>加速</b><b class='flag-5'>YOLOv8</b>-seg实例分割<b class='flag-5'>模型</b>

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

    AI爱克斯开发板OpenVINO
    的头像 发表于 05-26 11:03 1241次阅读
    <b class='flag-5'>AI</b><b class='flag-5'>爱克斯</b><b class='flag-5'>开发板</b><b class='flag-5'>上</b>使用<b class='flag-5'>OpenVINO</b><b class='flag-5'>加速</b><b class='flag-5'>YOLOv8</b><b class='flag-5'>目标</b><b class='flag-5'>检测</b><b class='flag-5'>模型</b>

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

    AI 爱克斯开发板 OpenVINO
    的头像 发表于 06-05 11:52 1003次阅读
    <b class='flag-5'>在</b><b class='flag-5'>AI</b><b class='flag-5'>爱克斯</b><b class='flag-5'>开发板</b><b class='flag-5'>上</b><b class='flag-5'>用</b><b class='flag-5'>OpenVINO</b>™<b class='flag-5'>加速</b><b class='flag-5'>YOLOv8</b>-seg实例分割<b class='flag-5'>模型</b>

    教你如何用两行代码搞定YOLOv8各种模型推理

    大家好,YOLOv8 框架本身提供的API函数是可以两行代码实现 YOLOv8 模型推理,这次我把这段代码封装成了一个类,只有40行代码左右,可以同时支持YOLOv8对象
    的头像 发表于 06-18 11:50 3059次阅读
    教你如何用两行代码搞定<b class='flag-5'>YOLOv8</b>各种<b class='flag-5'>模型</b>推理

    目标检测算法再升级!YOLOv8保姆级教程一键体验

    YOLO作为一种基于图像全局信息进行预测的目标检测系统,始终保持着极高的迭代更新率,从YOLOv5到YOLOv8,本次升级主要包括结构算法、命令行界面、PythonAPI等。具体到
    的头像 发表于 02-28 11:16 2684次阅读
    <b class='flag-5'>目标</b><b class='flag-5'>检测</b>算法再升级!<b class='flag-5'>YOLOv8</b>保姆级教程一键体验

    OpenVINO™ C++ API编写YOLOv8-Seg实例分割模型推理程序

    本文章将介绍使用 OpenVINO 2023.0 C++ API 开发YOLOv8-Seg 实例分割(Instance Segmentation)模型
    的头像 发表于 06-25 16:09 1583次阅读
    <b class='flag-5'>用</b><b class='flag-5'>OpenVINO</b>™ C++ API编写<b class='flag-5'>YOLOv8</b>-Seg实例分割<b class='flag-5'>模型</b>推理程序

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

    AI 爱克斯开发板 OpenVINO
    的头像 发表于 06-30 10:43 905次阅读
    <b class='flag-5'>在</b><b class='flag-5'>AI</b><b class='flag-5'>爱克斯</b><b class='flag-5'>开发板</b><b class='flag-5'>上</b><b class='flag-5'>用</b><b class='flag-5'>OpenVINO</b>™<b class='flag-5'>加速</b><b class='flag-5'>YOLOv8</b>-seg实例分割<b class='flag-5'>模型</b>

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

    部署。这里以YOLOv8为例,演示了YOLOv8对象检测模型OpenVINO、ONNXRUNT
    的头像 发表于 08-06 11:39 2735次阅读

    基于YOLOv8的自定义医学图像分割

    YOLOv8是一种令人惊叹的分割模型;它易于训练、测试和部署。本教程中,我们将学习如何在自定义数据集使用YOLOv8。但在此之前,我想告
    的头像 发表于 12-20 10:51 771次阅读
    基于<b class='flag-5'>YOLOv8</b>的自定义医学图像分割

    OpenVINO C# APIintel平台部署YOLOv10目标检测模型

    模型设计策略,从效率和精度两个角度对YOLOs的各个组成部分进行了全面优化,大大降低了计算开销,增强了性能。本文中,我们将结合OpenVINO C# API使用最新发布的OpenVINO
    的头像 发表于 06-21 09:23 1020次阅读
    <b class='flag-5'>用</b><b class='flag-5'>OpenVINO</b> C# API<b class='flag-5'>在</b>intel平台部署<b class='flag-5'>YOLOv</b>10<b class='flag-5'>目标</b><b class='flag-5'>检测</b><b class='flag-5'>模型</b>

    基于哪吒开发板部署YOLOv8模型

    开发板的推理性能,同时测试所推出的 OpenVINO C# API (https://github.com/guojin-yan/OpenVINO-CSharp-API) 项目能否应用到该
    的头像 发表于 11-15 14:13 225次阅读
    基于哪吒<b class='flag-5'>开发板</b>部署<b class='flag-5'>YOLOv8</b><b class='flag-5'>模型</b>