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 的代码
在这里插入图片描述

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

2、调试训练代码

2.1、配置环境

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

2.2、训练

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

3、导出 .onnx 文件

打开在 models 文件夹下的 export.py 文件,修改"–weights"的默认值,修改成训练好之后的 best.pt 路径,然后就可以导出了。会在 best.pt 文件夹下生成对应的 .onnx 文件
在这里插入图片描述

二、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

猜你喜欢

转载自blog.csdn.net/m0_37591982/article/details/131239786