第一步下载anaconda配置python的虚拟环境
下载完以后,选择安装路径,点下一步,一下步完成安装

然后点开始菜单中的Anaconda Powershell Prompt启动anacoda
更改数据源为国内源
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.timeout 6000
python -m pip install --upgrade pip
创建虚拟环境
conda create -n yolo python==3.10
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install -r requirements.txt
第二步:准备自定义数据集
2.1 数据集标注
首先,需要对你的数据进行标注。常用的标注工具有LabelImg
https://github.com/tzutalin/labelImg
在标注过程中,每张图片上的目标对象都需要被标注为一个边界框,并对应一个类别标签。
YOLOv5使用的是COCO格式或YOLO格式的标注文件。YOLO格式的每个标注文件都是一个与图片同名的`.txt`文件,格式如下:
```
class_id x_center y_center width height
```
其中:
- `<class_id>` 是目标类别的编号。
- `<x_center>` 和 `<y_center>` 是边界框中心点相对于图片宽高的归一化坐标(值在0到1之间)。
- `<width>` 和 `<height>` 是边界框的宽度和高度,相对于图片宽高的归一化值。
2.2 数据集结构
将标注好的数据按照以下结构组织:
```
/path/to/dataset
/images
/train
image1.jpg
image2.jpg
...
/val
image1.jpg
image2.jpg
...
/labels
/train
image1.txt
image2.txt
...
/val
image1.txt
image2.txt
...
```
第三步. 配置YOLOv5训练
3.1 修改配置文件
在`data`文件夹中创建一个新的`.yaml`配置文件,例如`my_dataset.yaml`:
train: /path/to/dataset/images/train
val: /path/to/dataset/images/val
nc: 2 # 类别数量
names: ['class1', 'class2'] # 类别名称
3.2 模型选择
在`models`文件夹中选择一个适合你任务的模型配置文件(例如`yolov5s.yaml`),可以根据需要进行调整,例如修改`nc`参数以匹配你的类别数量。
第四步 开始训练
一切准备就绪后,可以开始训练模型。运行以下命令:
python train.py --img 640 --batch 16 --epochs 50 --data data/my_dataset.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt --name my_yolov5_model
参数解释:
- `--img 640` 指定训练时的图像尺寸为640x640。
- `--batch 16` 指定每批次处理的图片数量为16。
- `--epochs 50` 设置训练的轮数为50。
- `--data data/my_dataset.yaml` 使用我们刚才配置的数据集文件。
- `--cfg models/yolov5s.yaml` 使用YOLOv5s模型配置。
- `--weights yolov5s.pt` 使用预训练权重。
- `--name my_yolov5_model` 为训练的模型命名。
第五步. 评估与推理
5.1 模型评估
训练完成后,模型会自动保存到`runs/train/my_yolov5_model/weights/`目录下。你可以使用以下命令进行评估:
python val.py --data data/my_dataset.yaml --weights runs/train/my_yolov5_model/weights/best.pt --img 640
5.2 模型推理
使用训练好的模型进行推理非常简单,运行以下命令即可:
python detect.py --weights runs/train/my_yolov5_model/weights/best.pt --img 640 --source /path/to/your/test/images
```
推理结果将保存在`runs/detect/exp/`目录下。
总结
本文介绍了如何使用YOLOv5训练自定义数据集,包括数据准备、配置文件修改、模型训练和推理的全过程。希望这篇文章能帮助你在自己的项目中更好地应用YOLOv5。如果有任何问题或建议,欢迎在下方留言讨论。
本文视频教程可以访问yolov5训练自己的数据集_哔哩哔哩_bilibili
1580





