1、下载YOLOv5代码并安装环境
git clone https://gitee.com/monkeycc/yolov5.git
cd yolov5
pip install -r requirements.txt # install
2、下载完yolov5之后在和yolov5同级的目录下创建一个叫datasets的目录 目录结构如下:
3、准备数据集:
3.1 数据集目录结构如下:
目录解读:
old_money是自己的数据集目录,这个目录要放在datasets目录下,
- old_money下的images目录用来存放图片
- images下存放的train表示的是训练集,train下存放的就是一个一个的图片即xxx.jpg(没别的内容,只有图片),
- val,test同理,其下都是存放的图片
- labels用来存放目标框的.txt文件。其下的train和val 名称要和images中的对应一样
- label 下的train、val下存放的都是xxx.txt
这里边需要注意的是:
- 1、labels下的train下的xxx.txt名称要和images下的train下的xxx.jpg一一对应,名称要一样哦
- 2、labels 下的xxx.txt中的内容为:class box_x_center box_y_center box_width box_height中间用空格隔开 分别对其一一说明:
- class 是类别,即你的目标框所属的类别,注意必须是数字而不是类别名,这个数字是在[0, 类别总数-1]之间
- box_x_center:即目标框的中心点的x轴坐标 注意是归一化之后的值,也就是拿着这个中心点坐标除以图片的宽度
- box_y_center : 即目标框的中心点的y轴坐标 注意是归一化之后的值,也就是拿着这个中心点坐标除以图片的高度
- box_width : 即目标框的宽 注意是归一化之后的值,也就是拿着这个框的宽度除以图片的宽度
- box_height: 目标框的高 注意是归一化之后的值,也就是拿着这个框的高度除以图片的高度
具体如下:
特别强调一下,image中的train 和val中的图片名要和labels中的train和val 图片名要意义对应切train 和val名称也要对应,test目录在label中不需要label所以只需要test目录下存放图片即可
4、在yolov5目录下的data下创建一个名为old_money.yaml其内容如下:
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
# COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Example usage: python train.py --data coco128.yaml
# parent
# ├── yolov5
# └── datasets
# └── coco128 ← downloads here (7 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/old_money # dataset root dir 就是你的数据集的最大层的那个目录
train: images/train # train images (relative to 'path') 128 images 和上边的path拼接在一起组成训练目录
val: images/val # val images (relative to 'path') 128 images 和上边的path拼接在一起组成验证目录
test: images/test # test images (optional) 和上边的path拼接在一起组成测试目录
# Classes
names:
0: money # 你项目的类别从零开始左边是数字,右边是名字,多个可以参考coco128.yaml
## Download script/URL (optional)
#download: https://ultralytics.com/assets/coco128.zip
5、训练:在yolov5目录下打开一个中断,运行如下命令即可
python train.py --data old_money.yaml