YOLOv5训练和推理

2023-12-13 05:14:31

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学习过程中的笔记记录,有问题欢迎交流~~~

文章来源:https://blog.csdn.net/yinqinggong/article/details/134804737
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。