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

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

3天内不再提示

百度飞桨PP-YOLOE ONNX 在LabVIEW中的部署推理(含源码)

LabVIEW深度学习实战 来源: LabVIEW深度学习实战 作者: LabVIEW深度学习实 2023-05-26 14:01 次阅读

前言

PP-YOLOE是百度基于其之前的PP-YOLOv2所改进的卓越的单阶段Anchor-free模型,超越了多种流行的YOLO模型。如何使用python进行该模型的部署,官网已经介绍的很清楚了,但是对于如何在LabVIEW中实现该模型的部署,笔者目前还没有看到相关介绍文章,所以笔者在实现PP-YOLOE ONNX 在LabVIEW中的部署推理后,决定和各位读者分享一下如何使用LabVIEW实现PP-YOLOE的目标检测


一、什么是PP-YOLO

在这里插入图片描述
PP-YOLOE是百度基于其之前的PP-YOLOv2所改进的卓越的单阶段Anchor-free模型,超越了多种流行的YOLO模型。PP-YOLOE,有更高的检测精度且部署友好。
PP-YOLOE基于anchor-free的架构,使用强大的backbone和neck,引入了CSPRepResStage,ET-head 和动态标签分配算法TAL。针对不同应用场景,提供了不同大小的模型。即s/m/l/x,可以通过width multiplier和depth multiplier配置。PP-YOLOE避免了使用诸如Deformable Convolution或者Matrix NMS之类的特殊算子,以使其能轻松地部署在多种多样的硬件上。
在这里插入图片描述
PP-YOLOE-l在COCO test-dev2017达到了51.6的mAP, 同时其速度在Tesla V100上达到了78.1 FPS。
PP-YOLOE提供了一键转出 ONNX 格式,可顺畅对接 ONNX 生态。本文主要实现百度PP-YOLOE ONNX 在LabVIEW上的部署推理。


二、环境搭建

1、部署本项目时所用环境

  • 操作系统:Windows10
  • python:3.6及以上
  • LabVIEW:2018及以上 64位版本
  • AI视觉工具包:techforce_lib_opencv_cpu-1.0.0.73.vip
  • onnx工具包:virobotics_lib_onnx_cuda_tensorrt-1.0.0.16.vip【1.0.0.16及以上版本】

2、LabVIEW工具包下载及安装


三、模型的获取与转化

注意:本教程已经为大家提供了PP-YOLOE的模型,可跳过本步骤,直接进行步骤四-推理。若是想要了解PP-YOLO的onnx模型如何获取,则可继续阅读本部分内容。

PP-YOLOE并没有直接提供onnx模型,但是我们可以通过paddle2onnx实现onnx模型的导出。

1、安装paddle

  • PPYOLO需要使用百度paddle框架,我们打开百度飞桨官网:https://www.paddlepaddle.org.cn/,在下方的快速安装选择适合自己版本的paddlepaddle

在这里插入图片描述

  • cmd中执行以下命令安装:
python -m pip install paddlepaddle-gpu==2.3.1.post112 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html

2、安装依赖的库

  • 从github上下载PaddleDetection并解压到目录,下载地址:https://github.com/PaddlePaddle/PaddleDetection ,将paddledetection根目录添加到环境变量。
  • 在PaddleDetection-release-2.4文件夹中打开cmd,输入以下指令安装需要的库
pip3 install -U pip && pip3 install -r requirements.txt

3、安装pycocotools

pip install pycocotools

若安装pycocotools时遇到ERROR: Could not build wheels for pycocotools ……,则可以使用以下指令来安装:

pip install pycocotools-windows

4、导出onnx模型

(1)导出推理模型

python tools/export_model.py -c configs/ppyoloe/ppyoloe_crn_l_300e_coco.yml --output_dir=output_inference -o weights=https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams

(2) 安装paddle2onnx

pip install paddle2onnx

(3) 转换成onnx格式

paddle2onnx --model_dir output_inference/ppyoloe_crn_l_300e_coco --model_filename model.pdmodel --params_filename model.pdiparams --opset_version 11 --save_file ppyoloe_crn_l_300e_coco.onnx

至此已成功导出PP-YOLOE ONNX模型

注意: ONNX模型目前只支持batch_size=1


四、在LabVIEW实现PP-YOLOE的部署推理

本项目整体的文件结构如下图所示,各位读者可在文章末尾链接处下载整个项目源码。如您想要探讨更多关于LabVIEW与人工智能技术,欢迎加入我们:705637299
在这里插入图片描述

1、LabVIEW调用PP-YOLOE实现目标检测pp-yolox_main.vi

本例中使用LabvVIEW ONNX工具包中的Create_Session.vi载入onnx模型,可选择使用cpu,cuda进行推理加速。

(1)查看模型

我们可以使用netron 查看ppyoloe_crn_s_300e_coco.onnx的网络结构,浏览器中输入链接:https://netron.app/,点击Open Model,打开相应的网络模型文件即可。
在这里插入图片描述
查看模型属性,可看到模型的输入输出如下图所示:
在这里插入图片描述
我们发现,该模型有两个输入和两个输出,所以推理时候需要有两个输入,需要用到我们的多输入处理vi,run.vi

  • 可以看到图片输入大小为640x640
  • 第一个输出为8400x6[6分别为classese_id,cofidence,框]

(2)实现过程

  • 读取图片并进行图像预处理(-1到1的归一化)
    在这里插入图片描述
  • 初始化一个Vector_Value,新增两个输入tensor(图片及scal_factor)
    在这里插入图片描述
  • 加载模型并选择加速类型(cpu、CUDA、tensorRt)
    在这里插入图片描述
  • 实现多输入推理
    在这里插入图片描述
  • 获取第一层的输出
    在这里插入图片描述
  • 进行后处理
    在这里插入图片描述
  • 绘制检测出的目标及及置信度
    在这里插入图片描述

(3)项目运行

配置本项目所需环境。在文章末尾链接处下载整个项目源码,将我们已经转化好的onnx模型放置到model文件夹中,打开pp_yolo_main.vi,在前面板中修改程序中加载的模型路径为实际模型路径,本项目中已经将PP-YOLOE onnx模型【ppyoloe_crn_s_300e_coco.onnx】放置到了model文件夹中,如需其他模型,读者也可自行放置到model文件及下,实现模型的加载。修改检测图片的路径为实际图片路径,运行程序,可得到目标检测的结果。

  • 主程序源码如下:
    在这里插入图片描述
  • 运行结果如下:
    1.png
    大家也可以检测其他图片来测试检测效果。

2、LabVIEW调用PP-YOLOE实现实时目标检测ppyolo_camera.vi

实时检测过程,我们可以选择使用CUDA实现推理加速,整个程序的实现过程和加载图片进行检测基本一致。

(1)LabVIEW调用PP-YOLOE实时目标检测源码

在这里插入图片描述

(2)LabVIEW调用PP-YOLOE实现实时目标检测结果

1.png

可以看到使用CUDA进行推理加速,速度还是很快的。


五、完整项目下载链接

链接:https://blog.csdn.net/virobotics/article/details/126231434?spm=1001.2014.3001.5501

总结

以上就是今天要给大家分享的内容,希望对大家有用。如果有问题可以在评论区里讨论,提问前请先点赞支持一下博主哦。

**如果文章对你有帮助,欢迎✌关注、

审核编辑 黄宇

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

    关注

    1977

    文章

    3658

    浏览量

    326217
  • 目标检测
    +关注

    关注

    0

    文章

    211

    浏览量

    15680
收藏 人收藏

    评论

    相关推荐

    Graphcore携手百度 共建全球软硬AI生态

    2022年5月20日,中国北京——今日,Graphcore®(拟未)Wave Summit 2022深度学习开发者峰会上正式宣布加入硬件生态共创计划。Graphcore和百度将基
    的头像 发表于 05-23 11:24 1696次阅读
    Graphcore携手<b class='flag-5'>百度</b><b class='flag-5'>飞</b><b class='flag-5'>桨</b> 共建全球软硬AI生态

    【米尔RK3576开发板评测】+项目名称百度PP-YOLOE

    一、简介 PP-YOLOE百度基于其之前的PP-YOLOv2所改进的卓越的单阶段Anchor-free模型,超越了多种流行的YOLO模型。PP-YOLOE,有更高的检测精度且
    发表于 02-15 17:14

    不是“重复”造轮子,百度框架2.0如何俘获人心 精选资料分享

    ,不断更新升级。2021 年 3 月,百度正式推出框架 2.0 正式版,实现了一次跨时代的升级。如今,...
    发表于 07-23 07:36

    芯微AI芯片加持百度,携手加速AI应用落地

    瑞芯微Rockchip正式宣布,旗下AI芯片RK1808、RK1806适配百度(PaddlePaddle)开源深度学习平台,充分兼容
    发表于 07-06 16:01 696次阅读

    Imagination和百度宣布全球人工智能(AI)生态系统方面开展合作

    Imagination和百度(PaddlePaddle)的合作,其IMGDNN API已集成到Paddle Lite
    发表于 02-01 15:08 876次阅读

    百度Graphcore IPU上实现训练与推理全面支持

    百度是中国领先的产业级深度学习平台,目前累计开发者数量超过406万,服务企业数量15.7万家,创建了超过47.6万个模型,为中国AI社区的繁荣做出巨大贡献。
    发表于 12-13 11:26 535次阅读
    <b class='flag-5'>百度</b><b class='flag-5'>飞</b><b class='flag-5'>桨</b><b class='flag-5'>在</b>Graphcore IPU上实现训练与<b class='flag-5'>推理</b>全面支持

    NVIDIA携手百度 共创多元AI开发生态

    百度所举办的 Wave Summit 2022 深度学习开发者峰会圆满落幕, NVIDIA 作为百度的全球合作伙伴之一也出席了这场盛大的线上峰会。本次的主题演讲, NVIDIA
    的头像 发表于 05-27 09:41 1980次阅读

    天数智芯携手百度助力产业智能化转型

    “新势力”参会。会上,天数智芯正式宣布加入百度硬件生态共创计划,利用自身产品技术优势与百度
    的头像 发表于 05-27 16:04 1584次阅读

    百度承办的WAVE SUMMIT+2022深度学习开发者峰会即将开启

    近日,二十多家硬件厂商纷纷官方公众号发文,集体“拍了拍”百度,引发了近年来软硬件企业间最受关注的联动。 11月16日-17日,20多家硬件厂商集体“拍了拍”
    的头像 发表于 11-22 17:01 1310次阅读
    <b class='flag-5'>百度</b><b class='flag-5'>飞</b><b class='flag-5'>桨</b>承办的WAVE SUMMIT+2022深度学习开发者峰会即将开启

    Imagination人工智能 IP 与完成 I 级兼容性测试 致力于AI产业化落地

    近日, Imagination 公司的人工智能 IP PowerVR NNA 系列与百度完成 I 级兼容性测试(基于 TVM )。测试结果显示,双方兼容性表现良好,整体运行稳定。 产品兼容 性
    的头像 发表于 11-23 09:40 766次阅读

    图为科技联合百度、英伟达共同推出AI软硬一体快速部署方案

    基于图为科技边缘计算机系列产品,仅用三行代码就能搞定百度AI算法的部署;让AI算法部署变得简单便捷,帮助企业加速AI方案落地进程。
    的头像 发表于 12-20 11:01 1317次阅读
    图为科技联合<b class='flag-5'>百度</b><b class='flag-5'>飞</b><b class='flag-5'>桨</b>、英伟达共同推出AI软硬一体快速<b class='flag-5'>部署</b>方案

    YOLOv6LabVIEW推理部署源码

    相关介绍文章,所以笔者实现YOLOv6 ONNX LabVIEW部署
    的头像 发表于 11-06 16:07 440次阅读
    YOLOv6<b class='flag-5'>在</b><b class='flag-5'>LabVIEW</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'>源码</b>)

    Imagination+百度模型部署实战 Workshop 邀您参加

    尽管人工智能、深度学习等词汇早已被大众熟知,但在产业落地的过程仍面临着不少挑战,例如硬件芯片多,算法模型多、应用场景多,而Imagination与百度的合作则希望通过软硬件协同,
    的头像 发表于 09-23 14:23 838次阅读
    Imagination+<b class='flag-5'>百度</b><b class='flag-5'>飞</b><b class='flag-5'>桨</b>模型<b class='flag-5'>部署</b>实战 Workshop 邀您参加

    【报名有奖】Imagination+百度模型部署实战 Workshop 邀您参加

    举办线上Workshop,现已开放注册报名。在此次的Workshop,您将学习“端到端Imagination硬件上部署模型的工作流程
    的头像 发表于 09-28 10:20 614次阅读
    【报名有奖】Imagination+<b class='flag-5'>百度</b><b class='flag-5'>飞</b><b class='flag-5'>桨</b>模型<b class='flag-5'>部署</b>实战 Workshop 邀您参加

    Imagination人工智能 IP 与完成 I 级兼容性测试 致力于AI产业化落地

    近日,Imagination公司的人工智能IPPowerVRNNA系列与百度完成I级兼容性测试(基于TVM)。测试结果显示,双方兼容性表现良好,整体运行稳定。产品兼容性证明本次I级兼容性测试
    的头像 发表于 11-24 17:23 511次阅读
    Imagination人工智能 IP 与<b class='flag-5'>飞</b><b class='flag-5'>桨</b>完成 I 级兼容性测试 致力于AI产业化落地