YOLOv5 5.0版本 + OpenCV 4.5.2 部署

这篇具有很好参考价值的文章主要介绍了YOLOv5 5.0版本 + OpenCV 4.5.2 部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

版本一定要和我的一致,不然不保证能run起来!!!


一、YOLOv5 5.0

该任务我们选择YOLOv5 5.0 版本。在https://github.com/ultralytics/yolov5中,可以选择对应的版本下载。由于GitHub上 v5 5.0 版本的C++代码居多,故选择 v5 5.0。(后期流程和部署代码熟练了可以试一下v5 7.0 版本的部署)

1、下载代码

这里直接打开上述链接应该是这样的页面, 是v5 7.0 的代码
opencv yolov5,YOLOv5部署,YOLO,opencv,python

我们要选择 v5 5.0 版本,那么我们要在master中选择Tags,里面有对应的各个版本
opencv yolov5,YOLOv5部署,YOLO,opencv,python
这才是v5 5.0 的代码,如下图所示
opencv yolov5,YOLOv5部署,YOLO,opencv,python
然后,我们将代码的zip压缩包下载下来(也可以使用 git clone 的方式将代码直接copy到本地)
opencv yolov5,YOLOv5部署,YOLO,opencv,python
解压到自己的文件夹下
opencv yolov5,YOLOv5部署,YOLO,opencv,python

2、调试训练代码

2.1、配置环境

在PyCharm中打开文件夹。
首先,配置需要的环境,requirement.txt中有各种包需要的最低版本,在PyCharm的Terminal中复制 pip install -r requirement.txt ,开始配置环境。(建议为yolov5 5.0 版本新建一个虚拟环境,避免在同一个环境在别的代码中需要更新环境。)
opencv yolov5,YOLOv5部署,YOLO,opencv,python
Anaconda Prompt中可以查看我们环境中的各种包,我记得numpy和onnx版本不能太高,会有问题,按照我这个版本按照就可以了。(中间遇到其他的版本问题百度一下,大部分都可以解决)
opencv yolov5,YOLOv5部署,YOLO,opencv,python

2.2、训练

打开 train.py 文件,在 if name == ‘main’: 中,“–cfg"中添加默认值 models/yolov5s.yaml ,这个是yolov5s模型的yaml文件,会在之后按照这个yaml文件中的设定去构建网络结构,并下载yolov5s.pt文件。(可以设置别的模型,路径名写对就可以了)
opencv yolov5,YOLOv5部署,YOLO,opencv,python
右键train,可以看到下面在下载 yolov5s.pt 文件,但是仔细观察可以看到是在下载v7.0版本的,我们要的是5.0版本的。并且我们在下载完成之后会看到有报错,报错原因就是因为我们的 .pt 文件下载错误,因此我们需要从官网找一下对应的文件。
opencv yolov5,YOLOv5部署,YOLO,opencv,python
opencv yolov5,YOLOv5部署,YOLO,opencv,python
回到我们GitHub上的官网地址,在右侧有一个releases
opencv yolov5,YOLOv5部署,YOLO,opencv,python
往下翻会找到5.0版本的链接,点击进入
opencv yolov5,YOLOv5部署,YOLO,opencv,python
在最下方会有yolov5 5.0 版本的 yolov5s.pt,下载下来,放在刚才的文件夹下。opencv yolov5,YOLOv5部署,YOLO,opencv,python
这个时候我们点击train还是会报错,可以看到是因为路径问题,下载下来的 coco128.zip 没有解压(不清楚是代码写错了,还是我的问题)。
opencv yolov5,YOLOv5部署,YOLO,opencv,python
由于train.py中,”–data"的默认值是data/coco128.yaml,我们打开coco128.yaml看一下。发现train和val指向的都是上一级目录的coco128文件夹,那我们手动解压一下,把路径修改成绝对路径。
opencv yolov5,YOLOv5部署,YOLO,opencv,python
再点击train,还是会报错
opencv yolov5,YOLOv5部署,YOLO,opencv,python
在loss中修改这一行
opencv yolov5,YOLOv5部署,YOLO,opencv,python
同时,要把数据集中的labels文件夹下的.cache缓存文件删掉
opencv yolov5,YOLOv5部署,YOLO,opencv,python
再train就可以run起来了!!!
opencv yolov5,YOLOv5部署,YOLO,opencv,python
训练结束后,会生成 best.pt 和 last.pt 文件
opencv yolov5,YOLOv5部署,YOLO,opencv,python

3、导出 .onnx 文件

打开在 models 文件夹下的 export.py 文件,修改"–weights"的默认值,修改成训练好之后的 best.pt 路径,然后就可以导出了。会在 best.pt 文件夹下生成对应的 .onnx 文件
opencv yolov5,YOLOv5部署,YOLO,opencv,python

二、C++部署

这里我是直接GitHub上找的C++代码,直接贴链接https://github.com/xiaojunjun65/YOLOv5-onnx,这个作者的教程在https://blog.csdn.net/xiaojunjun200211/article/details/121784214,可自行参考
C++代码中主要是把class_name的值、.onnx文件路径和图片路径修改一下就可以运行了。


总结

建议没有过部署经验的同学可以先按照这个流程先部署一下 5.0 版本,或者找GitHub上的代码时一定要按照作者要求的 YOLOv5 版本做部署,熟练之后再部署其他版本。主要问题在于版本和作者不一致之后会出现检测框无法展示出来,.onnx 节点报错等问题,我是初学,还不清楚是什么原因,后面再学学可以尝试一下高版本的部署。

欢迎有小伙伴交流和指教,感谢!!!
感谢:https://blog.csdn.net/xiaojunjun200211/article/details/121784214文章来源地址https://www.toymoban.com/news/detail-694143.html

到了这里,关于YOLOv5 5.0版本 + OpenCV 4.5.2 部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • YOLOv5 实例分割 用 OPenCV DNN C++ 部署

    如果之前从没接触过实例分割,建议先了解一下实例分割的输出是什么。 实例分割两个关键输出是:mask系数、mask原型 本文参考自该项目(这么优秀的代码当然要给star!):GitHub - UNeedCryDear/yolov5-seg-opencv-onnxruntime-cpp: yolov5 segmentation with onnxruntime and opencv 目录 Pre: 一、代码总结

    2024年02月12日
    浏览(26)
  • C++模型部署:qt+yolov5/6+onnxruntime+opencv

    作者平时主要是写 c++ 库的,界面方面了解不多,也没有发现“美”的眼镜,界面有点丑,大家多包涵。 本次介绍的项目主要是通过 cmake 构建一个 基于 c++ 语言的,以 qt 为框架的,包含 opencv 第三方库在内的,跨平台的,使用 ONNX RUNTIME 进行前向推理的 yolov5/6 演示平台。文章

    2024年02月05日
    浏览(37)
  • 【精选】OpenCV&YOLOv5的车流量统计系统(源码&部署教程)

    随着城市化进程的加快和交通工具的普及,车辆数量的快速增长给城市交通管理带来了巨大的挑战。车流量检测是交通管理的重要组成部分,它可以提供实时的交通状况信息,帮助交通管理部门制定合理的交通策略,优化交通流量,提高道路利用效率,减少交通拥堵和事故发

    2024年02月20日
    浏览(38)
  • Opencv C++实现yolov5部署onnx模型完成目标检测

    头文件 命名空间 结构体 Net_config 里面存了三个阈值和模型地址,其中 置信度 ,顾名思义,看检测出来的物体的精准度。以测量值为中心,在一定范围内,真值出现在该范围内的几率。 endsWith()函数 判断sub是不是s的子串 anchors_640图像接收数组 根据图像大小,选择相应长度的

    2024年02月13日
    浏览(29)
  • YOLOV5(二):将pt转为onnx模型并用opencv部署

    yolov5s 6.0自带export.py程序可将.pt转为.onnx等,只需配置需要的环境即可。 1. 安装环境 报错:NVIDIA-tensorrt安装失败! 解决:从源码安装TensorRt: ①安装CUDNN和CudaToolKit等GPU配置 ②从官网下载需要的rt版本:https://developer.nvidia.com/nvidia-tensorrt-8x-download ③解压后,将lib文件夹添加到

    2024年02月10日
    浏览(33)
  • 模型实战(11)之win10下Opencv+CUDA部署yolov5、yolov8算法

    测试环境:AMDRH7000+RTX3050+win10+vs2-10+opencv455+cuda11.7 关于opencv470+contrib+cuda的编译,可以详见:Win10下Opencv+CUDA联合编译详细教程 本文代码同时支持 yolov5 、 yolov8 两个模型,详细过程将在文中给出, 完整代码仓库最后给出 其中,yolov8在opencv-DNN + CUDA下的效果如下: 新建VS项目,名

    2024年02月16日
    浏览(32)
  • yolov5分割+检测c++ qt 中部署,以opencv方式(详细代码(全)+复制可用)

    1:版本说明: qt 5.12.10 opencv 4.5.3 (yolov5模型部署要求opencv4.5.0) 2:检测的代码 yolo.h yolo.cpp 检测的调用代码测试案例 这段调用的例子,只要把frame 改成你们自己的图片即可 4:分割的主要代码 YoloSeg.h YoloSeg.cpp yolov5_seg_utils.h  yolov5_seg_utils.cpp 分割的调用代码测试案例  分割的

    2024年02月03日
    浏览(28)
  • 基于树莓派Qt+opencv+yolov5-Lite+C++部署深度学习推理

            本文是基于 qt和opencv的dnn 深度学习推理模块,在树莓派上部署YOLO系列推理,适用于yolov5-6.1以及yolov5-Lite,相比直接用python的onnxruntime,用基于opencv的dnn模块,利用训练生成的onnx模型,即可快速部署,不需要在树莓派上额外安装深度学习的一系列环境,因为我们知道

    2024年04月16日
    浏览(53)
  • 36、RK3399Pro 环境搭建和Yolov5 c++调用opencv进行RKNN模型部署和使用

    基本思想:记录rk3399 pro配置环境和c++ npu开发记录,主要想搞一份c++代码和其它图像算法结合一下,好进行部署,淘宝链接见附录  需要的python3.7对应的aarch64的whl包:包含opencv-whl 、h5py-whl包: 链接: https://pan.baidu.com/s/1cvCAmHBa_4KgEjrcFIYnig 提取码: 5ui4 链接: https://pan.baidu.com/s/1hrc

    2024年02月07日
    浏览(30)
  • OpenCV之YOLOv5目标检测

    💂 个人主页: 风间琉璃 🤟 版权:  本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助、 欢迎关注、 点赞、 收藏(一键三连) 和 订阅专栏 哦 目录 前言 一、YOLOv5简介 二、预处理 1.获取分类名 2.获取输出层名称 3.图像尺度变换 三、模型加载

    2024年01月20日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包