前言
YOLOv6 是美团视觉智能部研发的一款目标检测框架,致力于工业应用。如何使用python进行该模型的部署,官网已经介绍的很清楚了,但是对于如何在LabVIEW中实现该模型的部署,笔者目前还没有看到相关介绍文章,所以笔者在实现YOLOv6 ONNX 在LabVIEW中的部署推理后,决定和各位读者分享一下如何使用LabVIEW实现YOLOv6的目标检测。
一、什么是YOLOv6
- YOLOV6官方代码:https://github.com/meituan/YOLOv6
YOLOv6 是美团视觉智能部研发的一款目标检测框架,致力于工业应用。本框架同时专注于检测的精度和推理效率,在工业界常用的尺寸模型中:YOLOv6-nano 在 COCO 上精度可达 35.0% AP,在 T4 上推理速度可达 1242 FPS;YOLOv6-s 在 COCO 上精度可达 43.1% AP,在 T4 上推理速度可达 520 FPS。在部署方面,YOLOv6 支持 GPU(TensorRT)、CPU(OPENVINO)、ARM(MNN、TNN、NCNN)等不同平台的部署,极大地简化工程部署时的适配工作。
从模型性能对比图来看,YOLOv6的性能也是再创新高。YOLOv6-s在COCO上精度达到了43.1%AP,在T4上推理速度也高达520FPS!
YOLOv6提供了支持 ONNX、TensorRT、NCNN 和 Openvino 的部署版本。今天我们一起来看一下如何在LabVIEW中部署YOLOv6 ONNX。
二、环境搭建
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工具包下载及安装
- AI视觉工具包下载与安装参考:
https://blog.csdn.net/virobotics/article/details/123656523 - onnx工具包下载与安装参考:
https://blog.csdn.net/virobotics/article/details/124998746
三、模型的获取与转化
注意:本教程已经为大家提供了YOLOV6的模型,可跳过本步骤,直接进行步骤四-推理。若是想要了解YOLOV6的onnx模型如何获取,则可继续阅读本部分内容。
下面我们来介绍两种模型获取的方式(以yolov6s为例,想要获取其他模型的方式也一样,只需要修改名字即可)
1、方式一:直接在官网下载yolov6s的onnx模型
具体地址如下:https://github.com/meituan/YOLOv6/tree/main/deploy/ONNX
单击YOLOv6-s,可直接下载yolov6s.onnx
2、方式二:将标准模型pt转化为onnx(较为复杂)
1、下载并安装YOLOv6所依赖的库
在https://github.com/meituan/YOLOv6中下载YOLOv6源码并解压
在YOLOv6-main文件夹中打开cmd,输入以下指令安装需要的库:
pip3 install -U pip && pip3 install -r requirements.txt
注意:YOLOv6比V5多了一个addict库,如果之前已经安装过了YOLOv5的相关库,也可以只下载一个addict
2、安装pycocotools
pip install pycocotools
!!!注:若安装pycocotools时遇到ERROR: Could not build wheels for pycocotools ……,则使用以下指令来安装:
pip install pycocotools-windows
3、从基准表下载标准预训练模型
https://github.com/meituan/YOLOv6
将模型放置到如下路径”YOLOv6-main”
4、将标准模型pt转化为onnx
切换到YOLOv6-main文件夹路径下,运行以下指令实现模型的转换
python ./deploy/ONNX/export_onnx.py --weights yolov6s.pt --img 640 --batch 1
输出如下,得到yolov6s.onnx
四、在LabVIEW实现YOLOV6的部署推理
本项目整体的文件结构如下图所示,各位读者可在文章末尾链接处下载整个项目源码。
本例中使用LabVIEW ONNX工具包中的Create_Session.vi载入onnx模型,可选择使用cpu,cuda进行推理加速。
1、查看模型
我们可以使用netron 查看ppyoloe_crn_s_300e_coco.onnx的网络结构,浏览器中输入链接:https://netron.app/,点击Open Model,打开相应的网络模型文件即可。
查看模型属性,可看到模型的输入输出如下图所示:
我们发现,该模型输出和YOLOx输出一直,均为1x8400x85
2、项目运行
将我们已经转化好的onnx模型放置到model文件夹中,打开yolov6_onnx_camera.vi,在前面板中修改程序中加载的模型路径为实际模型路径,本项目中已经将YOLOV6 onnx模型【yolov6s.onnx】放置到了model文件夹中,如需其他模型,读者也可自行放置到model文件及下,实现模型的加载。运行程序,可得到目标检测的结果。
-
主程序源码如下(可以选择使用CUDA或者TensorRT进行推理加速):
-
运行结果如下:
五、完整项目下载链接
链接:https://blog.csdn.net/virobotics/article/details/126356929?spm=1001.2014.3001.5501
总结
以上就是今天要给大家分享的内容。大家可根据链接下载相关源码与模型。
如果有问题可以在评论区里讨论,提问前请先点赞支持一下博主哦,如您想要探讨更多关于LabVIEW与人工智能技术,欢迎加入我们的技术交流群:705637299。进群请备注:LabVIEW机器学习
**如果文章对你有帮助,欢迎✌关注、
内容来源于网络如有侵权请私信删除文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!