跳到主要内容

YOLOv5 使用和训练指南

1. 环境准备

安装依赖

首先,需要安装 Python 和必要的库。推荐使用 Python 3.8 或更高版本。

# 克隆 YOLOv5 仓库
git clone https://github.com/ultralytics/yolov5.git

1️⃣ 创建虚拟环境

python3 -m venv yolov5-venv

2️⃣ 激活虚拟环境

source yolov5-venv/bin/activate

进入目录

cd yolov5

3️⃣ 安装依赖

pip install -r requirements.txt

4️⃣ 推理基本使用方法(包含下载模型)

python detect.py --source data/images --weights yolov5s.pt
参数说明:
--weights yolov5x.pt:使用 yolov5x 预训练模型。
--source data/images:检测 data/images 文件夹中的图片,可以是单张图片、视频、摄像头(0)。
--imgsz 640:输入图片大小,YOLOv5 默认 640x640。
• --conf-thres 0.25:置信度阈值(默认 0.25)。
• --iou-thres 0.45:IoU 阈值(默认 0.45)。
--device 0:使用 GPU(0)或 CPU(cpu)。
• --save-txt:保存检测结果(文本)。
• --save-crop:保存裁剪出的目标图像。

5️⃣ 退出虚拟环境

deactivate

查看是否支持GPU

python -c "import torch; print(torch.cuda.is_available())"

2. 准备数据集

YOLOv5 支持 COCO 数据集格式 或自定义数据集。自定义数据集需包含:

  • images/ 文件夹:存放训练和测试图片。
  • labels/ 文件夹:存放与图片对应的 .txt 标签文件。

数据集目录结构

dataset/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
└── labels/
├── train/
├── val/
└── test/

标签文件格式

每行一个标注:

<class_id> <x_center> <y_center> <width> <height>
  • 坐标和尺寸均为相对值(0~1 之间)。

3. 配置数据集

data/ 目录下创建 custom.yaml,内容如下:

train: dataset/images/train
val: dataset/images/val

nc: 3 # 类别数量
names: ['cat', 'dog', 'person'] # 类别名称

4. 训练模型

运行以下命令开始训练:

python train.py --data data/custom.yaml --cfg models/yolov5s.yaml --epochs 50 --batch-size 16 --img 640

参数说明:

  • --data: 指定数据集配置文件。
  • --cfg: 指定模型配置文件,yolov5s.yaml 是较小的模型。
  • --epochs: 训练轮数。
  • --batch-size: 每批次数据大小。
  • --img: 输入图片尺寸。

5. 评估模型

训练完成后,可用 val.py 评估模型性能:

python val.py --weights runs/train/exp/weights/best.pt --data data/custom.yaml --img 640

6. 推理(检测图片/视频)

检测单张图片

python detect.py --weights runs/train/exp/weights/best.pt --source data/images/test.jpg

检测视频

python detect.py --weights runs/train/exp/weights/best.pt --source video.mp4

7. 导出模型

YOLOv5 支持导出为 ONNX、TensorRT 等格式:

python export.py --weights runs/train/exp/weights/best.pt --include onnx