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

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

3天内不再提示

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

英特尔物联网 来源:英特尔物联网 2023-06-05 11:52 次阅读

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

01简介

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

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

git clone

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

02导出 YOLOv8-seg 实例分割

OpenVINO IR 模型

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

b01927d6-0200-11ee-90ce-dac502259ad0.png

首先使用命令:

yoloexport model=yolov8n-seg.pt format=onnx

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

b043e4bc-0200-11ee-90ce-dac502259ad0.png

然后使用命令:

mo -m yolov8n-seg.onnx --compress_to_fp16

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

b0587ac6-0200-11ee-90ce-dac502259ad0.png

03用 benchmark_app 测试

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

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

使用命令:

benchmark_app -m yolov8n-seg.xml -d GPU

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

b09c8036-0200-11ee-90ce-dac502259ad0.png

04使用 OpenVINO Python 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 的数据做矩阵乘法后得到的结果,即为对应目标的掩膜数据。

b0b12f86-0200-11ee-90ce-dac502259ad0.png

基于 OpenVINO Python 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

向右滑动查看完整代码

运行结果,如下图所示:

b0bf963e-0200-11ee-90ce-dac502259ad0.pngb13d1dca-0200-11ee-90ce-dac502259ad0.png

向右滑动查看完整图片

05结论

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

通过异步处理和AsyncInferQueue,还能进一步提升计算设备的利用率,提高 AI 推理程序的吞吐量。下一篇将继续介绍在《在 AI 爱克斯开发板上用 OpenVINO加速 YOLOv8-pose 姿态检测模型》。

审核编辑:汤梓红

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

    关注

    61

    文章

    9957

    浏览量

    171716
  • AI
    AI
    +关注

    关注

    87

    文章

    30818

    浏览量

    268975
  • 开发板
    +关注

    关注

    25

    文章

    5040

    浏览量

    97407
  • 模型
    +关注

    关注

    1

    文章

    3236

    浏览量

    48823
  • 目标检测
    +关注

    关注

    0

    文章

    209

    浏览量

    15606

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    【爱芯派 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 4085次阅读

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

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

    TensorRT 8.6 C++开发环境配置与YOLOv8实例分割推理演示

    YOLOv8实例分割TensorRT 推理代码已经完成C++类封装,三行代码即可实现YOLOv8对象检测与实例
    的头像 发表于 04-25 10:49 5794次阅读
    TensorRT 8.6 C++<b class='flag-5'>开发</b>环境配置与<b class='flag-5'>YOLOv8</b><b class='flag-5'>实例</b><b class='flag-5'>分割</b>推理演示

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

    本系列文章将在 AI 爱克斯开发板使用 OpenVINO 开发套件依次部署并测评
    的头像 发表于 05-05 11:47 1055次阅读
    <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>

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

    AI 爱克斯开发板 OpenVINO
    的头像 发表于 05-12 09:08 1316次阅读
    <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>

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

    benchmark_app是OpenVINOTM工具套件自带的AI模型推理计算性能测试工具,可以指定在不同的计算设备同步或异步模式下,测试出不带前后处理的纯
    的头像 发表于 05-24 11:19 637次阅读
    ​<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-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 930次阅读
    自训练Pytorch<b class='flag-5'>模型</b>使用<b class='flag-5'>OpenVINO</b>™优化并部署<b class='flag-5'>在</b><b class='flag-5'>AI</b><b class='flag-5'>爱克斯</b><b class='flag-5'>开发板</b>

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

    AI爱克斯开发板OpenVINO
    的头像 发表于 05-26 11:03 1245次阅读
    <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>

    英特尔开发者套件OpenVINO™ 2023.0加速YOLOv8-Pose姿态估计模型

    benchmark_app 是 OpenVINO 工具套件自带的 AI 模型推理计算性能测试工具,可以指定在不同的计算设备同步或异步模
    的头像 发表于 06-15 17:41 1027次阅读
    <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>™ 2023.0<b class='flag-5'>加速</b><b class='flag-5'>YOLOv8</b>-Pose姿态估计<b class='flag-5'>模型</b>

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

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

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

    AI 爱克斯开发板 OpenVINO
    的头像 发表于 06-30 10:43 910次阅读
    <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-seg</b><b class='flag-5'>实例</b><b class='flag-5'>分割</b><b class='flag-5'>模型</b>

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

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

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

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