1 环境部署
YOLOv5是基于pytorch实现的, 需要的运行环境已经在requirements.txt文件里面列出。
# base ----------------------------------------
Cython
matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.2
pillow
PyYAML>=5.3
scipy>=1.4.1
tensorboard>=2.2
torch>=1.6.0
torchvision>=0.7.0
tqdm>=4.41.0
因此可以直接使用pip进行安装:
pip install -U -r requirements.txt
2 准备数据
YOLOv5的数据集格式和之前的YOLOv3一致。每张图片都有自己的目标的txt文件
例如:
datasets/score/images/train/00b5fefed.jpg # image
datasets/score/lables/train/00b5fefed.txt # lable
这里我们使用之前kaggle的小麦头检测的比赛为例,讲解数据准备的流程。
这里值得注意的是,Yolov5的开源许可是GPL-3.0 License不满足Kaggle比赛的要求,因此不能在Kaggle比赛中使用,本文只是为了做个训练示范。
2.1、创建数据集的配置文件dataset.yaml
训练COCO数据集或者是VOC数据集,可以直接使用已经配置好的coco.yaml 和 voc.yaml文件。如果训练别的数据集,则需要模仿coco.yaml 文件写一个自己的wheat.yaml文件保存在data文件夹下。
# train and val datasets (image directory or *.txt file with image paths)
train: ./datasets/wheat/images/train/
val: ./datasets/wheat/images/val/
# number of classes
nc: 1
# class names
names: ['wheat']
2.2、创建标注文件
如果是自己制作的数据集可以使用LabelImg工具,需要注意的是选择YOLO格式生成标注文件。
如果是已经有的数据集,像是kaggle的wheat数据集,则需要进行转换数据格式成yolo的格式。
我们先来看一下yolo的lable文件里面的格式 00b5fefed.txt
数据