简介:本文将详细介绍如何使用YOLOv5训练自己的数据集,从环境搭建到目标识别,帮助读者理解并实践深度学习在实际问题中的应用。
面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用
随着人工智能技术的不断发展,深度学习在目标识别领域的应用越来越广泛。其中,YOLOv5(You Only Look Once version 5)作为一种高效的实时目标识别算法,受到了广泛关注。本文将引导读者从零开始,通过详细的步骤和生动的实例,介绍如何使用YOLOv5训练自己的数据集,从而实现对目标的有效识别。
一、环境搭建
首先,我们需要配置一个适合YOLOv5训练的环境。这包括安装必要的软件和库,如Python、CUDA、cuDNN和PyTorch等。
conda create -n yolov5 python=3.9
conda activate yolov5
conda install pytorch torchvision torchaudio cudatoolkit=<version> -c pytorch
git clone https://github.com/ultralytics/yolov5.git
二、数据准备
为了训练YOLOv5模型,我们需要准备自己的数据集。数据集应该包含目标物体的图像和对应的标签文件。
# example.yaml
train: images/train/ # 训练集图像路径
val: images/val/ # 验证集图像路径
nc: 1 # 类别数
names: [ 'object' ] # 类别名称列表
三、模型训练
完成数据准备后,我们可以开始训练YOLOv5模型。
models/yolov5s.yaml
的配置文件。我们可以根据需要修改该文件,以调整模型的参数,如输入大小、锚点等。
python train.py --img 640 --batch 16 --epochs 100 --data example.yaml --weights yolov5s.pt --name my_model
其中,--img
指定输入图像的大小,--batch
指定每个批次中的图像数量,--epochs
指定训练的轮数,--data
指定数据集的路径,--weights
指定预训练权重的路径,--name
指定模型保存的名称。
tensorboard --logdir=runs/train/exp
四、目标识别
完成模型训练后,我们可以使用训练好的模型进行目标识别。
import torch
model = torch.load('my_model.pt', map_location=torch.device('cpu'))
model.eval()
```python
import cv2
img = cv2.imread(‘test.jpg’) # 加载待识别的图像
pred = model(img) # 进行预测
results = pred.xyxy[0] # 获取预测结果
for result in results:
x1, y1, x2, y2, conf, cls = result
cv2.rectangle(img, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
cv2.putText(img, f’{model.names[int(cls)]} {conf:.2f}’, (int(x1), int(y