yolov5
[TOC]
yolov5下载与常见报错解决
一、下载源码
这个开源的项目通过大家的不断的完善和修复已经有了很多分支,因此我们选择第五个版本来实验,首先点击左上角的master这个图标来选择项目的第5个分支,如下图所示,然后将版本选择好以后,点击右上角的code那个按键,将代码下载下来。至此整个项目就已经准备好了。
文件结构与内容
data:主要是存放一些超参数的配置文件(这些文件(yaml文件)是用来配置训练集和测试集还有验证集的路径的,其中还包括目标检测的种类数和种类的名称);还有一些官方提供测试的图片。如果是训练自己的数据集的话,那么就需要修改其中的yaml文件。但是自己的数据集不建议放在这个路径下面,而是建议把数据集放到yolov5项目的同级目录下面。
models:里面主要是一些网络构建的配置文件和函数,其中包含了该项目的四个不同的版本,分别为是s、m、l、x。从名字就可以看出,这几个版本的大小。他们的检测测度分别都是从快到慢,但是精确度分别是从低到高。这就是所谓的鱼和熊掌不可兼得。如果训练自己的数据集的话,就需要修改这里面相对应的yaml文件来训练自己模型。
utils:存放的是工具类的函数,里面有loss函数,metrics函数,plots函数等等。
weights:放置训练好的权重参数。
detect.py:利用训练好的权重参数进行目标检测,可以进行图像、视频和摄像头的检测。
train.py:训练自己的数据集的函数。
test.py:测试训练的结果的函数。
requirements.txt:这是一个文本文件,里面写着使用yolov5项目的环境依赖包的一些版本,可以利用该文本导入相应版本的包。
以上就是yolov5项目代码的整体介绍。我们训练和测试自己的数据集基本就是利用到如上的代码。
安装依赖包
pip install -r requirements.txt
按照对应版本安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 # pip install -r requirements.txt
# base ----------------------------------------
matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.2
Pillow
PyYAML>=5.3.1
scipy>=1.4.1
torch>=1.7.0
torchvision>=0.8.1
tqdm>=4.41.0
# logging -------------------------------------
tensorboard>=2.4.1
# wandb
# plotting ------------------------------------
seaborn>=0.11.0
pandas
# export --------------------------------------
# coremltools>=4.1
# onnx>=1.8.1
# scikit-learn==0.19.2 # for coreml quantization
# extras --------------------------------------
thop # FLOPS computation
pycocotools>=2.0 # COCO mAP
二、运行detect报错
1、由于学习安装的是yolov5 模型的5.0版本,(目前最新的是6.1版本)
1、报错内容
AttributeError: Can’t get attribute ‘SPPF’ on <module ‘models.common’ from ‘C:\Users\Administrator\Desktop\yolov5\yolov5-5.0\models\common.py’>
2、报错原因
应该是我安装的是yolov5 模型的5.0版本,运行detect下载的的是6.1版本,5.0版本中缺少`SPPF这个类。
3、解决方案
去Github网站,找到最yolov5 最新版本,去common.py里面去找到这个SPPF的类,把它复制到我们下载的yolov5 文件的 model/common.py里面。
1 | import warnings |
2、Upsample报错
1、报错内容
AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘
2、解决方案
打开usampling.py,找到第155行附近,删除蓝框内代码。
3、RuntimeError报错
1、报错内容
RuntimeError: The size of tensor a (60) must match the size of tensor b (56) at non-singleton dimension 3
2、报错原因
yolov5s.pt模型版本不匹配
3、解决方案
点击下载下面的yolov5s.pt模型文件替换原文件中的文件
三、运行detect
运行成功
![微信图片_20220913205224](C:\Users\lee\Documents\Tencent Files\1372954073\FileRecv\微信图片_20220913205224.jpg)
识别结果