YOLOV5运用
源码下载
ultralytics团队贡献源码,以及官方帮助文档.
- 下载
1 | $ git clone https://github.com/ultralytics/yolov5.git |
- 依赖安装
1 | $ pip install -r requirements.txt |
检测方式
提供从Pytorch Hub进行检测和本地py文件检测方式。
- Pytorch Hub检测:
1 | import torch |
- 本地检测:
1 | $ python detect.py --source 0 # webcam |
注意调节命令行argparse参数。
目录结构
- data/:主要作用为存放各类数据集中的yaml配置文件,coco128.yaml示例如下,主要配置其中的path(数据集根目录)、train/val/test(path下的训练集、验证集、测试集,测试集可省略)。根据自己的需要定制nc(目标种类数量)以及names(物体名称)。
1 | # YOLOv5 🚀 by Ultralytics, GPL-3.0 license |
- models/:文件夹中主要存放模型结构配置文件yolov5s.yaml如下所示,主要更改其中的nc参数。
1 | # YOLOv5 🚀 by Ultralytics, GPL-3.0 license |
- utils/:主要的函数源码
其他
运行train.py或者detect.py后将会生成runs文件夹,其中存放训练的权重、过程参数以及检测的结果。以训练次数递增。
自建数据集
数据集结构:
- myDatasets
- annotations
- images
- xxxx.jpg
- ......
- labels
- xxxx.txt
- ......
训练集和测试集隔离:
- myDatasets
- annotations
- images
- train
- xxxx.jpg
- ......
- val
- xxxx.jpg
- ......
- train
- labels
- train
- xxxx.txt
- ......
- val
- xxxx.jpg
- ......
- train
annotations中存放源图像的xml标注格式。使用如下脚本将xml格式转换为txt格式,并将结果存放在labels文件夹中:
1 | """ |
训练模型:
根据需要自定义参数:
1 | python train.py --img 640 --batch 16 --epochs 100 --data ./data/coco128.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt |