YOLOv5-Paddle
YOLOv5
- 支持AutoBatch
- 支持AutoAnchor
- 支持GPU Memory
快速开始
使用AIStudio高性能环境快速构建YOLOv5训练(PaddlePaddle2.2.0-gpu version)
需要安装额外模块
pip install gputil==1.4.0
pip install pycocotools
COCO数据集
数据集已挂载至aistudio项目中,如果需要本地训练可以从这里下载数据集,和标签文件
Data
|-- coco
| |-- annotions
| |-- images
| |-- train2017
| |-- val2017
| |-- test2017
| |-- labels
| |-- train2017
| |-- val2017
| |-- train2017.cache(初始解压可删除,训练时会自动生成)
| |-- val2017.cache(初始解压可删除,训练时会自动生成)
| |-- test-dev2017.txt
| |-- val2017.txt
| |-- train2017.txt
` `-- validation
修改data/coco.yaml
配置自己的coco路径,你可能需要修改path
变量
path: /home/aistudio/Data/coco # dataset root dir
训练
-
考虑到AIStudio对于github的访问速度,预先提供了
Arial.ttf
-
AIStudio后端不支持绘图,部分可视乎在AIStudio仓库被注释
training scratch for coco
mkdir /home/aistudio/.config/QuanhaoGuo/
cp /home/aistudio/Arial.ttf /home/aistudio/.config/QuanhaoGuo/
cd YOLOv5-Paddle
python train.py --img 896 --batch 8 --epochs 300 --data ./data/coco.yaml --cfg yolov5s.yaml --weights ''
验证
python val.py --img 640 --data ./data/coco.yaml --weights ./weights/yolov5s.pdparams --cfg yolov5s.yaml
通过--task [val/test]
控制验证集和测试集
所有提供的模型验证精度如下,本仓库的所有资源文件包括预训练模型均可在百度云盘下载code:dng9
Model | size (pixels) |
mAPval 0.5:0.95 |
mAPval 0.5 |
params (M) |
FLOPs @640 (B) |
mAPtest 0.5:0.95 |
mAPtest 0.5 |
---|---|---|---|---|---|---|---|
YOLOv5n | 640 | 28.4 | 46.5 | 1.9 | 4.5 | 28.1 | 46.2 |
YOLOv5s | 640 | 37.2 | 56.4 | 7.2 | 16.5 | 37.1 | 56.1 |
YOLOv5m | 640 | 45.1 | 64.2 | 21.2 | 49.0 | 45.4 | 64.3 |
YOLOv5l | 640 | 48.6 | 67.4 | 46.5 | 109.1 | 48.9 | 67.5 |
YOLOv5x | 640 | 50.6 | 69.1 | 86.7 | 205.7 | 0.507 | 0.690 |
YOLOv5n6 | 1280 | 34.0 | 51.1 | 3.2 | 4.6 | 34.3 | 51.7 |
YOLOv5s6 | 1280 | 44.5 | 63.4 | 16.8 | 12.6 | 44.3 | 63.0 |
YOLOv5m6 | 1280 | 50.9 | 69.4 | 35.7 | 50.0 | 51.1 | 69.5 |
YOLOv5l6 | 1280 | 53.5 | 71.8 | 76.8 | 111.4 | 53.7 | 71.8 |
YOLOv5x6 + [TTA][TTA] |
1280 1536 |
54.6 55.2 |
72.6 73.0 |
140.7 - |
209.8 - |
55.0 55.8 |
73.0 73.5 |
使用本地环境快速构建YOLOv5训练(PaddlePaddle2.2.0-gpu version)
git clone https://github.com/GuoQuanhao/YOLOv5-Paddle
然后按照使用AIStudio高性能环境快速构建YOLOv5训练执行
训练Custom Data
这里以一个类别的光栅数据集为例,数据集已上传至AIStudio
其组织结构如下:
Data
|-- guangshan
| |-- images
| |-- train
| |-- val
| |-- labels
| |-- train
| |-- val
| |-- val.txt
| |-- train.txt
另外你需要构建data/guangshan.yaml
,相关文件已放入相关目录,主要用于指定数据集读取路径和模型配置。
# YOLOv5 reproduction 🚀 by GuoQuanhao
train: /home/aistudio/guangshan/images/train # 118287 images
val: /home/aistudio/guangshan/images/val # 5000 images
# number of classes
nc: 1
# class names
names: ['spectrum']
训练
python train.py --img 640 --batch 16 --epochs 100 --data ./data/guangshan.yaml --cfg yolov5s.yaml --weights ./weights/yolov5s.pdparams
Starting training for 100 epochs...
Epoch gpu_mem box obj cls labels img_size
0/99 4.19G 0.1039 0.04733 0 29 640: 100%|████████████████████████████████████████████████████████████████████| 9/9 [01:43<00:00, 11.50s/it]
Class Images Labels P R [email protected] [email protected]:.95: 100%|████████████████████████████████████████████████████| 1/1 [00:06<00:00, 6.64s/it]
all 16 29 0.266 0.379 0.226 0.0468
Epoch gpu_mem box obj cls labels img_size
1/99 4.41G 0.08177 0.0289 0 37 640: 100%|████████████████████████████████████████████████████████████████████| 9/9 [01:40<00:00, 11.20s/it]
Class Images Labels P R [email protected] [email protected]:.95: 100%|████████████████████████████████████████████████████| 1/1 [00:05<00:00, 5.49s/it]
all 16 29 0.462 0.445 0.398 0.109
......
完整的训练日志存在data/training.txt
利用VisualDL可视化训练过程
visualdl --logdir ./runs/train/exp
验证
python val.py --img 640 --data ./data/guangshan.yaml --cfg yolov5s.yaml --weights ./runs/train/exp/weights/best.pdparams
推理
python detect.py --weights ./runs/train/exp/weights/best.pdparams --cfg yolov5s.yaml --data ./data/guangshan.yaml --source ./data/images/guangshan.jpg
TODO
- Multi-GPU Training
☘️ - PaddleLite inference
🌟 - Model to ONNX
⭐
关于作者
姓名 | 郭权浩 |
---|---|
学校 | 电子科技大学研2020级 |
研究方向 | 计算机视觉 |
主页 | Deep Hao的主页 |
github | Deep Hao的github |
如有错误,请及时留言纠正,非常蟹蟹! | |
后续会有更多论文复现系列推出,欢迎大家有问题留言交流学习,共同进步成长! |