yolo快速上手

本文介绍了如何使用YOLO进行计算机视觉项目,包括环境设置(如下载源码、安装依赖)、数据集的准备(图片和标签文件)、以及在训练过程中可能遇到的常见问题及其解决方法,如异常处理和版本兼容性问题。
摘要由CSDN通过智能技术生成

YOLO 介绍

YOLO 是一个关于计算机视觉的深度学习模型,开发较为成熟。我们可以用它训练出属于自己的 AI 模型,而不用从无到有搭建一个框架,十分方便可靠。

1. 初步环境准备

YOLO 是一个大文件,我们要在 Githup 上下载他的源码
YOLO 有很多版本,我们以6.0版本为例子。
​​​​​​​​在这里插入图片描述

  1. 根据提示选择版本,点击右边绿色按钮 code,下载模型的源码

在这里插入图片描述
2. 文件解压缩后,在 vs code 中打开整个文件夹,文件结构如上
在这里插入图片描述

  1. 用 vs code 打开终端(或者用文件资源管理器打开文件夹,在空白处按 Shift+鼠标右键,选择打开 Power shell,输入命令:
    pip install -r requirements. txt,后等待环境安装。部分库可能会出现下载缓慢的情况,可以在网上换源单独下载(注:需下载 requirements. txt 中要求的版本)。
    在这里插入图片描述

2. 数据集的准备

要把 YOLO 训练成你的形状,数据是必不可少的。
YOLO 的数据集分为两部分:原始图片(. jpg)和标签集(. txt),
其中,原始图片需要根据你的项目需求进行专门的收集(如果要识别火焰就收集一些带有火焰的图片),而标签数据分别储存在.txt 文件,文件名的前缀对应原始图片的前缀,如下:
在这里插入图片描述

每行有 5 个数据,新手不需要知道具体含义,感兴趣的小伙伴自行查阅
这些文件通常需要使用工具进行人工标注得到,这里推荐的工具是 make sense(Make Sense)。

进入 make sense 后点击右下角的 Get Started 按钮

在这里插入图片描述
将你收集的图片集文件拖入下图黑框中,或点击黑框,选中图片集文件,再点击 object detection 进入
在这里插入图片描述

准备一个 txt 文件再里面逐行写下你要识别的物品的标签

在这里插入图片描述

写好后点击红框按钮,将标签文件放入其中
在这里插入图片描述
在这里插入图片描述

标注图片后需要在右边选择标签名。当你标注完所有图片后,点击 Actions,选择 Export,并选择 yolo 格式导出,得到的压缩包就是图片标注数据,解压后得到. \txt 文件。每个. \txt 文件名的前缀对应原始图片文件名的前缀。

(注:只有标注过的图片才有对应的.\txt 文件,没有标注的图片没有对应的. \txt 文件)

(注:框与框之间尽量避免重叠)

调节参数

参考 快速上手YOLOv5:新手教程-CSDN博客

调节完参数后,试着跑你的程序
然后,由于版本的更新换代,你会遇到许多的error

问题:那些 error

问题 1

Exception: Dataset not found

意思是你放 dataset 文件的地方与你标注的路径不符合,程序在你标注的位置找不到对应 datase 文件
打开 data 文件夹中的 coco128.yaml,确定路径 path 为./datasets/coco,确定 datasets 文件放在 YOLOV5-6.0 文件下

AttributeError: module ‘numpy’ has no attribute ‘int’.

这是因为你的 numpy 太高级!!!
再 yolo 自带的 requierment.txt 文件中,要求 numpy 的版本至少在 1.18.5 之上,当你执行 pip install -r requirements.txt 命令时,他默认安装为1.24,但是再 numpy 版本更新时 numpy.int 在 NumPy 1.20中已弃用,在 NumPy 1.24中已删除。
不建议改用低版本的 numpy,有概率遇到新的 error,直接找到所有 np.int 改为 np.int_
在这里插入图片描述

打开报错文件,ctrl+f 查找所有 np.int,有两个文件,大概 5 、6 个
多跑两次就都找到了

问题 3

RuntimeError: result type Float can’t be cast to the desired output type __int 64

将 loss. Py 中 gain = torch.Ones (7, device=targets. Device)改为 gain = torch.Ones (7, device=targets. Device). Long ()即可。原因是新版本的 torch 无法自动执行此转换,旧版本 torch 可以。\n\nloss. Py 在 utils 文件夹下,ctrl+f 搜索 gain,找到 gain = torch.ones (7, device=targets. Device),将其修改为 gain = torch.Ones (7, device=targets. Device).Long(),问题就解决了

问题 4

AttributeError: ‘FreeTypeFont’ object has no attribute ‘getsize’

因为新版本的 pillow10 去除了 getsize 方法而用 getbbox 或 getlength 代替。

  1. 要么降级 pillow
    pip install Pillow==9.5.0

  2. 要么将报错的地方的 getsize 改为 getbbox,但二者返回值是不一样的
    getsize返回宽和高两个值,而getbbox返回上下左右四个值(left,right,top,bottle)
    写成
    left, top, right, bottom= self.font.getbbox(text) # text width, height
    w=right - left
    h=bottom - top
    就可以了

问题 5

当你改用GPU跑程序的时候,会报错,这大概是因为你的torchvision版本不对
因为torch在安装同时安装的torchvision不是cuda版本(用pip查看一下就知道了),你要上torch官网自己安装对应版本

本文还有诸多不足,如果你还是不幸得遇到了依照本文无法解决的问题,祝你查的愉快

参考资料

  1. AttributeError: module numpy has no attribute int .报错解决方案_attributeerror: module ‘numpy’ has no attribute 'i-CSDN博客
  2. 解决yolov5错误:RuntimeError: result type Float can‘t be cast to the desired output type __int64_yolov5_utils.py result type float can’t be cast to-CSDN博客
  3. 运行yolov5训练时遇到Exception: Dataset not found ❌_dataset not found , missing paths-CSDN博客
  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值