YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)

这篇具有很好参考价值的文章主要介绍了YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 前言
  • 一、什么是YOLOX
  • 二、环境搭建
    • 1、部署本项目时所用环境:
    • 2、LabVIEW工具包下载及安装:
  • 三、模型的获取与转化【推荐方式一】
    • 1、方式一:直接在官网下载yolox的onnx模型
    • 2、方式二:将标准模型pth转化为onnx(较为复杂)
    • 3、获取onnx模型总结
  • 四、LabVIEW实现YOLOX ONNX推理检测
    • 1、LabVIEW调用yolox onnx模型实现目标检测yolox.vi
      • (1)查看模型
      • (2)LabVIEW调用YOLOX源码
      • (3)LabVIEW调用YOLOX实现目标检测结果
    • 2、LabVIEW调用yolox onnx模型实现实时目标检测yolovx_camera.vi
      • (1)LabVIEW调用YOLOX实时目标检测源码
      • (2)LabVIEW调用YOLOX实现实时目标检测结果
  • 五、源码及模型下载
  • 总结

前言

好长一段时间没更博了,没更新博客的这段时间博主都有在努力产出,前段时间好多朋友私信问我说自己的yolov5模型是比较老的版本,使用LabVIEW推理的时候会报错。为各位朋友新老版本都能兼容,博主这段时间做了一个LabVIEW YOLOv5的插件,里面包含了大部分的新旧版本,老版本的朋友们也可以愉快的使用LabVIEW来实现推理了。等后面整理好了分享给大家。今天我们先一起来看一下如何使用LabVIEW实现yolox的目标检测。


一、什么是YOLOX

LabVIEW实现YOLOX目标检测

  • YOLOX官方代码:https://github.com/Megvii-BaseDetection/YOLOX
  • YOLOX论文:https://arxiv.org/abs/2107.08430

YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)
YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)
YOLOX是旷视科技开源的高性能实时目标检测网络,旷视的研究者将解耦头、数据增强、无锚点以及标签分类等目标检测领域的优秀进展与 YOLO 进行了巧妙的集成组合,提出了 YOLOX,不仅实现了超越 YOLOv3、YOLOv4 和 YOLOv5 的 AP,而且取得了极具竞争力的推理速度。如下图:

YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)
YOLOX提供了支持 ONNX、TensorRT、NCNN 和 Openvino 的部署版本。今天我们主要针对YOLOX 的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.12.vip【不使用cuda或者tensorrt加速的话也可以使用:virobotics_lib_onnx_cpu-1.0.0.13.vip】

2、LabVIEW工具包下载及安装:

  • AI视觉工具包下载与安装参考:
    https://blog.csdn.net/virobotics/article/details/123656523
  • onnx工具包下载与安装参考:
    https://blog.csdn.net/virobotics/article/details/124998746

三、模型的获取与转化【推荐方式一】

下面我们来介绍两种模型获取的方式(以yoloxs为例,想要获取其他模型的方式也一样,只需要修改名字即可)

1、方式一:直接在官网下载yolox的onnx模型

下载具体地址如下:https://github.com/Megvii-BaseDetection/YOLOX/tree/main/demo/ONNXRuntime
YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)
下载对应版本模型的weights,点击github即可下载onnx模型。

2、方式二:将标准模型pth转化为onnx(较为复杂)

1、安装YOLOX
在https://github.com/Megvii-BaseDetection/YOLOX中下载yolox源码并解压,在YOLOX-main文件夹中打开cmd,输入以下指令安装需要的库及yolox:

pip3 install -U pip && pip3 install -r requirements.txt
python3 setup.py develop

2、安装pycocotools

pip install pycocotools

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

pip install pycocotools-windows

3、从基准表下载标准预训练模型:https://github.com/Megvii-BaseDetection/YOLOX
YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)
将yolox_s.pth模型放置到如下路径:
YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)
4、将标准模型pth转化为onnx

运行以下指令实现模型的转换

python3 tools/export_onnx.py --output-name yolox_s.onnx -n yolox-s -c yolox_s.pth

也可使用如下指令转化自己的模型:

#通过 -f 转换标准 YOLOX 模型。使用 -f 时,上述命令等价于:
python3 tools/export_onnx.py --output-name yolox_s.onnx -f exps/default/yolox_s.py -c yolox_s.pth
# 要转换您的自定义模型,请使用 -f:
python3 tools/export_onnx.py --output-name your_yolox.onnx -f exps/your_dir/your_yolox.py -c your_yolox.pth

输出如下,得到yolox_s.onnx
YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)

3、获取onnx模型总结

通过对比我们会发现,先下载标准模型,再转换为onnx模型比较麻烦,需要配置很多环境,如果只是想要实现YOLOX的推理,则可以使用方式一,直接在官网下载对应的模型即可。但是如果想要转换自己训练好的onnx模型,则可采用第二种方式,将训练好的pth转化为onnx。


四、LabVIEW实现YOLOX ONNX推理检测

将我们的onnx模型放置到model文件夹中,修改程序中加载的模型,本项目中已经下载好了yolox_s.onnx和yolox_m.onnx两种模型,如需其他模型,读者也可自行放置到model文件夹下,实现模型的加载。
YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)

1、LabVIEW调用yolox onnx模型实现目标检测yolox.vi

本例中使用LabvVIEW ONNX工具包中的Create_Session.vi载入onnx模型,可选择使用cpu,cuda,tensorRT进行推理加速。【若安装的是onnx cpu版,则只可使用cpu推理加速】

(1)查看模型

我们可以使用netron 查看yolov5m.onnx的网络结构,浏览器中输入链接:https://netron.app/,点击Open Model,打开相应的网络模型文件即可。
YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)
如下图所示是转换之后的yolox_s.onnx的属性:
YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)
可以看到图片输入大小为640640
输出为1
8400*85

(2)LabVIEW调用YOLOX源码

如下图所示,加载模型及图片实现目标检测
YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)

(3)LabVIEW调用YOLOX实现目标检测结果

本程序运行时,加载模型为:yolox_s.onnx,实际运行时需要修改图片路径为实际路径,否则会报错
YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)
运行结果如下:
YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)
大家也可以检测其他图片来测试检测效果。

2、LabVIEW调用yolox onnx模型实现实时目标检测yolovx_camera.vi

实时检测过程,我们可以选择使用CUDA或者tensorRT实现推理加速,我们发现相同环境下,yolox的实时检测速度和精度都比其他的yolo模型要更好。

(1)LabVIEW调用YOLOX实时目标检测源码

YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)

(2)LabVIEW调用YOLOX实现实时目标检测结果

YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)
可以看到使用CUDA进行推理加速,速度还是很快的。大家也可以使用tensorRT进行推理加速。


五、源码及模型下载

链接:https://pan.baidu.com/s/1FMRH1F3DSKTQBiuB3Ofe3Q?pwd=8cnf

总结

以上就是今天要给大家分享的内容。大家可根据链接下载相关源码与模型。

如果有问题可以在评论区里讨论,提问前请先点赞支持一下博主哦,如您想要探讨更多关于LabVIEW与人工智能技术,欢迎加入我们的705637299。

**如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏文章来源地址https://www.toymoban.com/news/detail-554354.html

到了这里,关于YOLOX目标检测实战:LabVIEW+YOLOX ONNX模型实现推理检测(含源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 目标检测-One Stage-YOLOx

    根据前文CenterNet、YOLOv4等可以看出学界和工业界都在积极探索使用各种tricks(anchor-free、各种组件、数据增强技术等等)来改进One Stage网络的表现,2021年旷视科技结合先进的改进技巧,产出了多种改进模型,在多种情况下达到速度和精度的SOTA。 值得一提的是,YOLOx使得YOLO系

    2024年01月23日
    浏览(27)
  • 目标检测笔记(十五): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)

    目标检测(Object Detection)是计算机视觉领域的一项重要技术,旨在识别图像或视频中的特定目标并确定其位置。通过训练深度学习模型,如卷积神经网络(CNN),可以实现对各种目标的精确检测。常见的目标检测任务包括:人脸检测、行人检测、车辆检测等。目标检测在安防

    2024年02月09日
    浏览(34)
  • python使用onnx模型进行推理

    我们可以看到基于YoloV7训练的cfg有两种yaml文件,一个是training文件夹,一个是deploy文件夹,这两种文件夹有啥不一样呢??? 大家可以看下下面别人的issuse,,记住这个很关键,就是你选择哪个yaml训练对你后面导出的onnx是很关键的,后面我们会说到。 1、training中的yaml文件

    2024年02月12日
    浏览(40)
  • 基于onnx模型和onnx runtime推理stable diffusion

    直接用diffusers的pipeline: 在pipeline_onnx_stable_diffusion的基础上修改得到的直接调用onnx模型版本,可以用于其他推理引擎推理参考: pipe_onnx_simple.py onnx_utils_simple.py 生成1张512x512图的shape信息

    2024年02月11日
    浏览(30)
  • opencv dnn模块 示例(19) 目标检测 object_detection 之 yolox

    YOLOX是旷视科技在2021年发表,对标YOLO v5。YOLOX中引入了当年的黑科技主要有三点,decoupled head、anchor-free以及advanced label assigning strategy(SimOTA)。YOLOX的性能如何呢,可以参考原论文图一如下图所示。YOLOX比当年的YOLO v5略好一点,并且利用YOLOX获得当年的Streaming Perception Challenge第一

    2024年02月06日
    浏览(35)
  • VS c++ onnxruntime 环境配置、onnx教程、部署推理模型、sklearn pkl模型转onnx、问题汇总

    目录 一、初步认识ONNX 二、pkl转ONNX+可视化模型 三、ONNX Runtime运行时 3.1 相关介绍(了解此运行时): 3.2 VS、c++部署onnxruntime 3.3 头文件引用的一些问题 四、问题汇总: 1. 类没有成员 2. 版本兼容问题 3. 3.“GetInputName“: 不是 “Ort::Session“ 的成员 官网: ONNX Runtime | Home GitHub

    2024年04月09日
    浏览(32)
  • [C++]使用yolov8的onnx模型仅用opencv和bytetrack实现目标追踪

    【官方框架地址】 yolov8: https://github.com/ultralytics/ultralytics bytetrack: https://github.com/ifzhang/ByteTrack 【算法介绍】 随着人工智能技术的不断发展,目标追踪已成为计算机视觉领域的重要研究方向。Yolov8和ByTetrack作为当前先进的算法,当它们结合使用时,能够显著提升目标追踪的准

    2024年01月24日
    浏览(35)
  • onnx模型转engine并进行推理全过程解析

    深度学习模型在训练好以后,下一步就是部署到不同的设备进行测试,不同设备之间的转换一般可以通过中间件ONNX进行转换,以达到不同平台的通用。本文以模型转为ONNX为起点,分析介绍ONNX转为TensorRT Engine并进行推理的整个流程链路。 ONNX序列化为TRT模型的整个流程可以用

    2024年02月06日
    浏览(27)
  • 使用Tools for AI封装onnx模型并推理

    进行这一步之前,请确保已正确安装配置了Visual Studio 2017 和 Microsoft Visual Studio Tools for AI环境。 项目的代码也可以在这里找到,下面的步骤是带着大家从头到尾做一遍。 创建Windows窗体应用(.NET Framework)项目,这里给项目起名ClassifyBear。 注意,项目路径不要包含中文。 在解决

    2024年02月20日
    浏览(33)
  • Windows 上使用LabVIEW AI 工具包 for OpenVINO™部署YOLOv9实现实时目标检测

    作者: 英特尔边缘计算创新大使 王立奇 YOLOv9 引入了可编程梯度信息 (PGI) 和广义高效层聚合网络 (GELAN) 等开创性技术,不仅增强了模型的学习能力,还确保了在整个检测过程中保留关键信息,从而实现了卓越的准确性和性能。该模型在效率、准确性和适应性方面都有显著提

    2024年04月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包