YOLOv5训练和推理

本文详细介绍了如何在Python环境中搭建YOLOv5开发环境,包括conda虚拟环境创建、PyTorch和YOLOv5的安装,以及如何进行推理测试和自定义模型的标注与训练。同时列出了在实践中遇到的常见问题及解决方法。
摘要由CSDN通过智能技术生成

YOLOv5训练和推理


前言

在这里插入图片描述

前面记录了YOLOX的使用,本节继续探讨YOLO系类之YOLOv5。


一、搭建YOLOv5环境

1.官网下载YOLOv5稳定版本

[Github官网YOLOv5的zip包](https://github.com/ultralytics/yolov5/tree/v6.2)
zip包解压后进入当前目录

2.创建conda虚拟环境

conda create -n yolov5 python=3.8
conda activate yolov5

3.pytorch环境安装

为自己的显卡选择合适的pytorch版本

conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.3 -c pytorch
pip show torch

在这里插入图片描述

4.YOLOv5环境安装

pip install -r requirements.txt

二、使用步骤

1.推理测试

从官网下载一个模型比如最小模型yolov5s.pt

python detect.py --weights yolov5s.pt --source data/images/zidane.jpg

结果保存在runs/detect/exp
在这里插入图片描述
使用自己的模型推理

python detect.py --weights runs/train/exp11/weights/best.pt --source datasets/pig_coco/images/val2017/0020.jpg --data data/pig_coco.yaml

2.onnx模型测试

安装onnx环境

pip install -r requirements.txt onnx onnx-simplifier onnxruntime-gpu

yolov5.pt导出为yolov5.onnx

python export.py --weights yolov5s.pt --include onnx

自己训练的模型导出

python export.py --weights runs/train/exp16/weights/best.pt --include torchscript onnx --data data/pig_coco.yaml

onnx推理测试

python detect.py --weights yolov5s.onnx --source data/images/zidane.jpg

三、标注训练自己的模型

1.标注数据

推荐使用labelImg标注yolo数据集格式
在这里插入图片描述

2.推理测试

使用默认的coco128数据训练

python train.py --img 640 --batch-size 16 --epochs 10 --data data/coco128.yaml --weights yolov5s.pt --device '0'

使用自己的数据训练,根据coco128.yaml编辑自己的yaml(仿造coco128制作自己的数据集)
在这里插入图片描述

训练自己的三个类别模型

python train.py --img 640 --batch-size 32 --epochs 100 --data data/pig_coco.yaml --weights yolov5s.pt --device '0'

推理

python detect.py --weights runs/train/exp11/weights/best.pt --source datasets/pig_coco/images/val2017/0020.jpg --data data/pig_coco.yaml

在这里插入图片描述

四、遇到的问题

1.问题1

现象:AttributeError: module ‘numpy‘ has no attribute ‘int‘.
原因:numpy版本不匹配,降低版本会影响其他库,只能修改源码
比如:utils/dataloaders.py里面的np.int改为np.int_

2.问题2

现象:coco格式转yolo格式数据集出现“TypeError: must be real number, not NoneType”
原因:背景类没有标签。修改代码跳过这个背景标签,再出错行上面
修改:

在这里插入图片描述

使用早期标注的coco数据集格式转yolo时出现,后面使用labelImg直接标注YOLO格式数据集就可以了。

3.问题3

现象:AttributeError: ‘FreeTypeFont’ object has no attribute ‘getsize’
原因:高版本因pip install tf-models-official删除了该getsize 功能
解决:

pip install Pillow==9.5

4.问题4

现象:handleNode DNN/ONNX: ERROR during processing node with 1 inputs and 1 outputs: [Identity]:(onnx::Reshape_475)
原因:torch1.12.x以上的版本要改成False,导出onnx的时候就可以正常使用了
解决:

在这里插入图片描述


总结

本文仅作为在YOLOv5学习过程中的笔记记录,有问题欢迎交流~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值