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

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
YOLOv5是一种基于深度学习的目标检测算法,可以快速准确地检测图像中的不同目标。OpenCV是一个流行的计算机视觉库,提供了丰富的图像处理和分析功能。Java是一种常用的编程语言,可以用于开发各种应用程序。 如果想在Java上使用YOLOv5来进行印章识别,首先需要安装配置OpenCVYOLOv5的相关环境。可以使用JavaCV库来方便地在Java中调用OpenCV的功能,同时也可以使用TensorFlow Java API来加载和使用YOLOv5的模型。 准备工作完成后,我们可以通过以下步骤进行印章识别: 1. 加载和初始化YOLOv5的模型。这包括加载模型文件、配置文件和权重文件,并根据需要进行参数设置。 2. 使用OpenCV读取待识别的图像,并进行预处理。预处理可以包括图像的缩放、归一化等操作,以便符合模型的输入要求。 3. 将预处理后的图像输入到YOLOv5模型中进行目标检测。模型将输出图像中检测到的印章的位置、类别和置信度等信息。 4. 根据模型的输出结果,可以根据置信度进行筛选和过滤,以得到最可信的印章检测结果。 5. 可以使用OpenCV的绘图功能,在原始图像上标注出检测到的印章位置和类别等信息,以便进行可视化展示或进一步的后续处理。 通过以上步骤,我们就可以实现在Java环境下使用YOLOv5OpenCV进行印章识别。当然,具体实现的细节还需要根据实际情况进行调整和完善,比如模型的训练和优化等。此外,还需要考虑算法的性能和效果等因素,以便得到更好的印章识别结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值