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

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

3天内不再提示

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

OpenCV学堂 来源:英特尔物联网 2023-06-30 10:43 次阅读

以下文章来源于英特尔物联网,作者杨雪锋

01简介

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

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

02导出 YOLOv8-seg 实例分割

OpenVINOIR 模型

YOLOv8-seg 的实例分割模型有5种,在COCO数据集完成训练,如下表所示。

fdfce1b0-1680-11ee-962d-dac502259ad0.png

首先使用命令:

yoloexport model=yolov8n-seg.pt format=onnx

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

fe22ca10-1680-11ee-962d-dac502259ad0.png

然后使用命令:

mo -m yolov8n-seg.onnx --compress_to_fp16

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

fe4f1c78-1680-11ee-962d-dac502259ad0.png

03用 benchmark_app 测试

YOLOv8-seg 实例分割模型的推理计算性能

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

使用命令:

benchmark_app -m yolov8n-seg.xml -d GPU

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

fe7306e2-1680-11ee-962d-dac502259ad0.png

04使用 OpenVINOPython API 编写

YOLOv8-seg 实例分割模型推理程序

用 Netron 打开 yolov8n-seg.onnx 可以看到模型的输入和输出,跟YOLOv5-seg模型的输入输出定义很类似:

输入节点名字:“images”;

数据:float32[1,3,640,640]

输出节点 1 的名字:“output0”;

数据:float32[1,116,8400]。其中 116 的前 84 个字段跟 YOLOv8 目标检测模型输出定义完全一致,即cx,cy,w,h 和 80 类的分数;后 32 个字段用于计算掩膜数据。

输出节点 2 的名字:“output1”;

数据:float32[1,32,160,160]。output0 后 32 个字段与 output1 的数据做矩阵乘法后得到的结果,即为对应目标的掩膜数据。

fe8acd72-1680-11ee-962d-dac502259ad0.png

基于 OpenVINOPython API 的 YOLOv8-seg 实例分割模型范例程序 yolov8_seg_ov_sync_infer_demo.py 的核心源代码,如下所示:

# Initialize the VideoCapture
cap = cv2.VideoCapture("store-aisle-detection.mp4")
# Initialize YOLOv5 Instance Segmentator
model_path = "yolov8n-seg.xml"
device_name = "GPU"
yoloseg = YOLOSeg(model_path, device_name, conf_thres=0.3, iou_thres=0.3)
while cap.isOpened():
  # Read frame from the video
  ret, frame = cap.read()
  if not ret:
    break
  # Update object localizer
  start = time.time()
  boxes, scores, class_ids, masks = yoloseg(frame)
  # postprocess and draw masks
  combined_img = yoloseg.draw_masks(frame)
  end = time.time()
  # show FPS
  fps = (1 / (end - start)) 
  fps_label = "Throughput: %.2f FPS" % fps
  cv2.putText(combined_img, fps_label, (10, 25), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
  # show ALL
  cv2.imshow("YOLOv8 Segmentation OpenVINO inference Demo", combined_img)
  # Press Any key stop
  if cv2.waitKey(1) > -1:
    print("finished by user")
    break

向右滑动查看完整代码

运行结果,如下图所示:

fefb2252-1680-11ee-962d-dac502259ad0.png

向右滑动查看完整图片

05结论

AI 爱克斯开发板借助 N5105 处理器的集成显卡(24个执行单元)和 OpenVINO,可以在 YOLOv8-seg 的实例分割模型上获得相当不错的性能。

通过异步处理和AsyncInferQueue,还能进一步提升计算设备的利用率,提高 AI 推理程序的吞吐量。

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

    关注

    60

    文章

    9430

    浏览量

    168992
  • AI
    AI
    +关注

    关注

    87

    文章

    26485

    浏览量

    264118
  • 开发板
    +关注

    关注

    25

    文章

    4441

    浏览量

    94121
  • 模型
    +关注

    关注

    1

    文章

    2709

    浏览量

    47716

原文标题:开发者实战 | 在AI爱克斯开发板上用OpenVINO™加速YOLOv8-seg实例分割模型

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

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

    YOLOv5兼具速度和精度,工程化做的特别好,Git clone到本地即可在自己的数据集上实现目标检测任务的训练和推理,在产业界中应用广泛。开源社区对YOLOv5支持实例分割的呼声高涨
    的头像 发表于 12-21 10:17 1104次阅读
    在C++中使用<b class='flag-5'>OpenVINO</b>工具包部署<b class='flag-5'>YOLOv5-Seg</b><b class='flag-5'>模型</b>

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

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

    【爱芯派 Pro 开发板试用体验】使用yolov5s模型(官方)

    【爱芯派 Pro 开发板试用体验】+使用yolov5s模型(官方) 配置好基本环境 如果没有连接上网络的,可以看博主写的一篇怎么连接网络 apt update apt instal
    发表于 11-13 11:04

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

    yolov8nsim.onnx --output_dir output --config config.json, 将会得到output/compiled.axmodel文件。 开发板运行
    发表于 11-20 12:19

    在英特尔独立显卡上部署YOLOv5 v7.0版实时实例分割模型

    本文将介绍在基于 OpenVINO 在英特尔独立显卡上部署 YOLOv5 实时实例分割模型的全流程,并提供完整范例代码供读者使用。
    的头像 发表于 12-20 11:32 3061次阅读

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

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

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

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

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

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类
    的头像 发表于 05-12 09:08 853次阅读
    在<b class='flag-5'>AI</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'>YOLOv</b>8目标检测<b class='flag-5'>模型</b>

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

    benchmark_app是OpenVINOTM工具套件自带的AI模型推理计算性能测试工具,可以指定在不同的计算设备上,在同步或异步模式下,测试出不带前后处理的纯AI模型推理计算性能。
    的头像 发表于 05-24 11:19 419次阅读
    ​在<b class='flag-5'>AI</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-seg</b><b class='flag-5'>实例</b><b class='flag-5'>分割</b><b class='flag-5'>模型</b>

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

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

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

    《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类
    的头像 发表于 05-26 11:03 723次阅读
    <b class='flag-5'>AI</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'>YOLOv</b>8目标检测<b class='flag-5'>模型</b>

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

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 目标检测
    的头像 发表于 06-05 11:52 606次阅读
    在<b class='flag-5'>AI</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-seg</b><b class='flag-5'>实例</b><b class='flag-5'>分割</b><b class='flag-5'>模型</b>

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

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

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

    在《英特尔锐炫 显卡+ oneAPI 和 OpenVINO 实现英特尔 视频 AI 计算盒训推一体-上篇》一文中,我们详细介绍基于英特尔 独立显卡搭建 YOLOv7 模型的训练环境,并
    的头像 发表于 08-25 11:08 931次阅读
    使用<b class='flag-5'>OpenVINO</b>优化并部署训练好的<b class='flag-5'>YOLOv</b>7<b class='flag-5'>模型</b>

    基于OpenVINO在英特尔开发套件上实现眼部追踪

    本文将以训练一个眼部追踪 AI模型为背景,介绍从 Pytorch 自定义网络模型,到使用 OpenVINO NNCF 量化工具优化模型
    的头像 发表于 09-18 10:11 441次阅读