YOLOv5项目搭建

目录

  • 前言
  • 1.资源下载
  • 2.环境配置
    • pycocotools和thop库安装失败
  • 3.运行代码
    • 报错: 'Upsample' object has no attribute 'recompute_scale_factor'
    • 报错:assert img0 is not None, 'Image Not Found ' + path AssertionError
  • 4.结果
  • 总结

前言

前面将pytorch的基础入门之后,继续跟着小土堆学习。本篇内容记录我搭建YOLOv5项目的过程,以及遇到的一些问题与相应的解决方案,方便个人以后查阅,并且希望能够个其他读者带来一些帮助。

1.资源下载

我们先去GitHub中找到YOLOv5的源码,地址:https://github.com/ultralytics/yolov5,我们可以选择不同的版本下载。我是跟这小土堆学习的,选择了与他相同的版本v5.0,小伙伴本也可以下载最新的,好像可以避免一些与你pytorch版本不相符的问题。
YOLOv5项目搭建_第1张图片

2.环境配置

我使用的的是pycharm工具,直接打开我们上面下载好的文件(记得解压缩),记得更改我们的python 解释器,选择pytorch环境下的Python Interpreter,没有pytorch环境的小伙伴需要提前准备一下项目环境(有很多教程)。
YOLOv5项目搭建_第2张图片接下来,我们可以看一看项目的结构目录,找到requirements.txt文件,这里面就是项目所需要的依赖包情况(一般这个文件的项目都是比较好项目,提前告诉我们所需要的依赖情况;如果别的项目没有这个文件,那么就能根据代码爆红的地方一个一个导入,或者直接运行代码,根据代码的报错进行debug)。
接下来我们在终端中运行如下代码,导入相应的依赖包

pip install -r requirements.txt

YOLOv5项目搭建_第3张图片

pycocotools和thop库安装失败

我在这个时候就出现了依赖的库无法下载的情况,报错出现pycocotoolsthop库安装失败,这是一个系列问题,pycocotools安装不下来,所以导致了thop库安装不了,所以才有这系列错误。这个问题小土堆提前发了视频预警,也提供的解决方案:

  • 解决方案一(up主提供的):

我们根据报错信息去官网安装好相应的软件:https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-tools/(我不太喜欢这种方式,因为这个下载的visualstudio软件有8G多),下载好软件之后重新运行安装的指令即可解决(亲自使用有效)

YOLOv5项目搭建_第4张图片

  • 解决方案二(直接把安装包导入进来):
    我们去以下链接中将 pycococtools的安装包下载好,将安装包直接解压,复制其中pycocotools两个文件夹到conda环境…\Lib\site-packages之中,如果没有conda 的环境,那么可以将两个文件夹复制到python的site-packages中,之后再运行命令行就不会出现安装报错的情况。(未亲自实验)

https://pan.baidu.com/s/1nWQdPRtGwNnOO2DkxRuGuA 提取码:i5d7

3.运行代码

依赖环境都准备完成,就可以跑项目了。运行detect.py,下载模型训练好参数权重文件出现了超时(因为有墙所以下载太慢了),我们可以1.挂梯子下载文件,也可以2.配置镜像源下载,还可以选择3.迅雷下载本地,然后将权重文件.pt复制到项目的主目录下。

报错: ‘Upsample’ object has no attribute ‘recompute_scale_factor’

YOLOv5项目搭建_第5张图片这个错误是由于版本问题所导致的,我这里的pytorch版本为2.0,但是YOLOv5 的5.0版本对应的pytorch版本应该为1.0的,所以出现了相应方法参数变化了的情况。

  • 解决方案一:
    选择YOLOv5的最新版本
  • 解决方案二:
    ctrl+鼠标左击报错信息中的路径,进入到upsampling.py文件中,直接forward方法中的参数给删除
    在这里插入图片描述
    蓝色部分就是我们需要删除的代码,大家可以详细参考这篇博文
    YOLOv5项目搭建_第6张图片

报错:assert img0 is not None, 'Image Not Found ’ + path AssertionError

出现这个错误首先去项目中核对了图片的路径是否有问题,图片是真实存在的,仔细看看报错的路径信息就会发现,图片是去绝对路径下面寻找的(这里我也有点不理解为啥绝对路径不可以),然后出现了报错,所以我们要去修改代码。
YOLOv5项目搭建_第7张图片

  • 解决方案
    修改utils/datasets.py,在124行附近,把p = str(Path(path).absolute())改成p = str(Path(path))
    解决方法参考这篇博文

4.结果

项目运行完成后,会将结果保存在 runs\detect\文件目录下

Model Summary: 224 layers, 7266973 parameters, 0 gradients, 17.0 GFLOPS
image 1/2 data\images\bus.jpg: 640x480 4 persons, 1 bus, 1 fire hydrant, Done. (0.381s)
image 2/2 data\images\zidane.jpg: 384x640 2 persons, 2 ties, Done. (0.263s)
Results saved to runs\detect\exp

我们可以查看运行结果:(左:原图 右:目标检测结果)
YOLOv5项目搭建_第8张图片

总结

将代码在本地跑通了还是很开心的,不过对于YOLOv5的学习这才刚刚开始,还需要学会看懂代码的各个模块,以及如何使用其解决自己以后的目标检测的实际需求,这里还有很长的路要走。并且,我是直接使用别人已经训练好的参数权重经行预测的,那么自己训练时,如何根据模型的表现进行相应的调整呢?前路漫漫,还需 努力!

你可能感兴趣的:(深度学习,YOLO,pytorch,深度学习)