使用yolov5模型训练自定义数据
时间: 2025-05-11 21:57:42 浏览: 20
### 使用 YOLOv5 训练自定义数据集
YOLOv5 是一种高效的实时目标检测框架,支持多种硬件设备上的快速推理。为了使用 YOLOv5 对自定义数据集进行训练,以下是详细的说明。
#### 数据准备
在开始之前,需要准备好标注好的数据并将其转换为 YOLO 格式。YOLO 的标签文件是一个 `.txt` 文件,每行表示一个边界框,格式如下:
```
<class_id> <x_center> <y_center> <width> <height>
```
其中 `<class_id>` 是类别的索引号,而其他四个参数是以相对图像尺寸的比例给出的中心坐标和宽高[^1]。
#### 安装依赖项
首先克隆官方仓库到本地环境,并安装必要的 Python 库:
```bash
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install -r requirements.txt
```
#### 配置数据集
创建一个新的 YAML 文件来描述数据结构。该文件应包含以下几个部分:路径、类别名称以及训练验证集合的位置。例如 `custom_dataset.yaml` 可能看起来像这样:
```yaml
train: ../path/to/train/images/
val: ../path/to/validation/images/
nc: 2 # 类别数量
names: ['cat', 'dog'] # 类别名列表
```
#### 修改超参数 (可选)
如果希望调整默认设置,则可以编辑位于 `data/hyps/` 下面的一个现有配置文件或者新建一个专属版本。这些选项控制学习率衰减策略、优化器选择等方面的内容[^2]。
#### 开始训练过程
运行下面命令即可启动基于 GPU 或 CPU 上完成整个流程的工作流:
```python
python train.py --img 640 --batch 16 --epochs 50 --data custom_dataset.yaml --weights yolov5s.pt
```
这里指定了输入分辨率大小 (`--img`) ,批次规模(`--batch`) , 总共迭代次数(`--epoch`) 和预加载权重地址(`--weight`). 如果不想从头学起而是继续先前保存下来的断点的话, 就把最后那个参数替换成具体 ckpt 路径.
以上就是利用 YOLOv5 进行定制化项目开发的主要步骤概述[^3].
```python
import torch
from IPython.display import Image # for displaying images in Jupyter notebooks
# Load pre-trained model weights.
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
# Inference on an image file.
Image(filename='zidane.jpg')
results = model(['https://ultralytics.com/images/zidane.jpg'])
results.print() # Print results to console.
```
阅读全文
相关推荐


















