使用yolov5实现图片分类

该文指导如何利用Yolov5框架训练一个垃圾分类的模型。首先克隆Yolov5仓库,安装依赖,然后下载数据集并创建配置文件。使用预训练的yolov5s-cls.pt模型开始训练,经过一定周期后得到最佳模型best.pt。最后,使用训练好的模型对图像进行分类预测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在这里插入图片描述

开始之前

你应当先克隆这个仓库

git clone https://github.com/ultralytics/yolov5 # clone

下载完毕后,进入克隆的仓库目录

cd yolov5

下载依赖

pip install -r requirements.txt # install

数据集下载

这里我准备了一份数据集,为了方便下载,数据集数据并不是很多,末尾我会共享几个数据集下载地址

垃圾分类数据集下载
提取码:nr5i

解压后,你会看到这几个文件夹:

请添加图片描述
随机查看部分内容
请添加图片描述
我这里解压到了一个 mydata 目录。这不是必须的,但一会你需要可以找到你的数据集目录。

新建配置文件

其中各个文件的含义大体如下:

  0: cardboard #纸板
  1: glass #玻璃
  2: metal #金属
  3: paper #纸
  4: plastic #塑料
  5: trash #垃圾

执行训练

开始之前,请预先下载 yolov5s-cls.pt 模型,记住这个位置,因为下面开始训练钱你需要用到它。

点击下载yolov5s-cls.pt模型

python classify/train.py --model yolov5s-cls.pt --data mydata --epochs 5 --img 224 --batch 128

模型选择

执行训练的时候使用了 --model yolov5s-cls.pt ,这是一种模型,你可以参考下图具体选择,如我们选择 yolov5x ,就可以使用 --model yolov5x-cls.pt ,推荐使用 yolov5s,除非你要求的准确度非常高,不然你需要花费非常长的时间和足够的硬件支持来训练它。

在这里插入图片描述

训练完成

那个 best.pt 就是训练好的模型,它在 runs/ 目录下

在这里插入图片描述

测试模型进行预测

选择一张图片进行测试:

在这里插入图片描述

python classify/predict.py --weights runs/train-cls/exp9/weights/best.pt --source metal4.jpg

在这里插入图片描述

恭喜你,成功的训练了一个简单的分类模型。

自定义模型下载

如果你不想进行从头训练模型,可以下载这个已经训练好的模型进行上一步的 测试模型进行预测

分类模型下载

提取码:jycq

数据集下载地址分享

1:数据集下载地址1

2:数据集下载地址2

问题

如果运行当中出现问题,欢迎咨询。

### YOLOV5-cls 使用说明 YOLOV5-cls 是由 Ultralytics 发布的 YOLOv5 系列中的分类模型分支。该模型继承了 YOLOv5 家族高效快速的特点,在图像分类任务中表现出色[^1]。 #### 安装依赖库 为了使用 YOLOV5-cls,需先安装必要的 Python 库: ```bash pip install -r requirements.txt ``` 这一步骤会自动下载并配置好所有必需的软件包来支持 YOLOV5-cls 的运行环境。 #### 下载预训练权重文件 官方提供了不同规模版本的预训练权重供用户选择,包括但不限于 yolov5s-cls.pt, yolov5m-cls.pt 等。这些预训练好的权重可以帮助加速收敛过程以及提高最终效果。 可以通过如下命令获取指定型号的预训练参数: ```python from utils.google_utils import attempt_download attempt_download('yolov5s-cls.pt') # 自动从云端加载对应版本的预训练权值 ``` #### 数据准备 对于自定义数据集的应用场景下,建议按照 COCO 或者 ImageNet 类似的结构整理图片路径,并准备好相应的标签文件。如果采用 PyTorch Lightning 进行开发,则可以利用内置的数据模块轻松完成这一工作流程。 #### 训练新模型 启动训练之前要确保已经设置了合适的超参设置,比如批次大小(batch size),初始学习率(initial learning rate)等重要选项。具体操作可通过修改 `train.py` 中的相关变量实现。 执行下面这条指令即可开始训练新的分类器实例: ```bash python train.py --img 640 --batch 16 --epochs 100 --data custom_dataset.yaml --weights '' --cfg models/yolov5s-cls.yaml ``` 此处假设使用的是默认的小型网络架构(`models/yolov5s-cls.yaml`)来进行实验;而 `custom_dataset.yaml` 则指代用户自己编写的描述目标数据分布情况的 YAML 文件。 --- ### YOLOV5-cls 特性概述 - **高效的推理效率**:得益于轻量化设计思路,即使是在资源受限设备上也能保持较高的处理帧数。 - **强大的泛化能力**:通过大规模公开数据集上的充分验证,证明了其良好的迁移适应性和鲁棒性表现。 - **易于扩展定制**:允许开发者根据实际需求调整骨干网路层深浅度、特征提取方式等方面的内容,从而满足特定应用场景下的精度与时效平衡考量。 - **丰富的接口支持**:除了基础 API 外还额外开放了一些高级功能入口,方便集成到第三方应用程序当中去。 --- ### 常见问题解决方案 当遇到无法正常导入模型或预测结果偏差较大等问题时,可尝试以下几种方法加以排查修复: - 检查输入尺寸是否匹配所选模型的要求; - 对于 GPU 用户来说确认显卡驱动程序已更新至最新稳定版; - 尝试降低 batch-size 参数看能否缓解 OOM (Out Of Memory) 错误提示; - 如果怀疑是数据质量问题则重新审视标注一致性及清洗策略的有效性。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一拖再拖 一拖再拖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值