当前位置:   article > 正文

yolov5下载与常见报错解决_yolov5 train: warning: yolov5_obb/dataset/datapers

yolov5 train: warning: yolov5_obb/dataset/dataperson/image/train/0020_backwa

yolov5下载与常见报错解决

一、下载源码

GitHub官方地址

这个开源的项目通过大家的不断的完善和修复已经有了很多分支,因此我们选择第五个版本来实验,首先点击左上角的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

按照对应版本安装

# 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
  • 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

二、运行detect报错

1、由于学习安装的是yolov5 模型的5.0版本

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里面。

import warnings

class SPPF(nn.Module):
    # Spatial Pyramid Pooling - Fast (SPPF) layer for YOLOv5 by Glenn Jocher
    def __init__(self, c1, c2, k=5):  # equivalent to SPP(k=(5, 9, 13))
        super().__init__()
        c_ = c1 // 2  # hidden channels
        self.cv1 = Conv(c1, c_, 1, 1)
        self.cv2 = Conv(c_ * 4, c2, 1, 1)
        self.m = nn.MaxPool2d(kernel_size=k, stride=1, padding=k // 2)

    def forward(self, x):
        x = self.cv1(x)
        with warnings.catch_warnings():
            warnings.simplefilter('ignore')  # suppress torch 1.9.0 max_pool2d() warning
            y1 = self.m(x)
            y2 = self.m(y1)
            return self.cv2(torch.cat([x, y1, y2, self.m(y2)], 1))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

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模型文件替换原文件中的文件

yolov5s.pt

三、运行detect

运行成功

在这里插入图片描述

识别结果
在这里插入图片描述

在这里插入图片描述
大功告成

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/83567
推荐阅读
相关标签
  

闽ICP备14008679号