YOLO 教程
这是一个讲解YOLO的入门教程的代码。在这个项目中,我们继承了YOLOv1-YOLOv4的中心思想,并做了适当的改进,然后重新设计了新的YOLOv1-YOLOv4。我们希望通过初学者可以通过学习流行的YOLO检测器顺利入门目标检测领域。
书籍链接:与本项目代码配套的技术书籍正在被校阅中,请耐心等待。
首先,我们建议使用Anaconda来创建一个conda的虚拟环境
conda create -n yolo python=3.6
然后, 请激活已创建的虚拟环境
conda activate yolo
接着,配置环境:
pip install -r requirements.txt
项目作者所使用的环境配置:
为了能够正常运行该项目的代码,请确保您的torch版本为1.x系列。
| 配置 | |
|---|---|
| 单个GPU上的batch size | 16 |
| 初始学习率 | 0.01 |
| Warnmup策略 | 线性warmup策略 |
| 学习率策略 | 线性学习了衰减策略 |
| 训练优化器 | SGD |
| 多尺度训练 | True |
下载 VOC.
cd <PyTorch_YOLO_Tutorial>
cd dataset/scripts/
sh VOC2007.sh
sh VOC2012.sh
检查 VOC
cd <PyTorch_YOLO_Tutorial>
python dataset/voc.py
使用 VOC 训练模型
For example:
python train.py --cuda -d voc --root path/to/VOC -v yolov1 -bs 16 --max_epoch 150 --wp_epoch 1 --eval_epoch 10 --fp16 --ema --multi_scale
P5-Model on COCO:
| Model | Backbone | Scale | IP | Epoch | AP50 | FPS3090 FP32-bs1 | FLOPs (G) | Params (M) | Weight |
|---|---|---|---|---|---|---|---|---|---|
| YOLOv1 | ResNet-18 | 640 | √ | 150 | 76.7 | 37.8 | 21.3 | ckpt | |
| YOLOv2 | DarkNet-19 | 640 | √ | 150 | 79.8 | 53.9 | 30.9 | ckpt | |
| YOLOv3 | DarkNet-53 | 640 | √ | 150 | 82.0 | 167.4 | 54.9 | ckpt | |
| YOLOv4 | CSPDarkNet-53 | 640 | √ | 150 | 83.6 | 162.7 | 61.5 | ckpt | |
| YOLOv5 | CSPDarkNet-L | 640 | √ | 150 | |||||
| YOLOX | CSPDarkNet-L | 640 | √ | 150 | |||||
| YOLOv7 | ELANNet | 640 | √ | 150 |
| Model | Backbone | Scale | IP | Epoch | APval 0.5:0.95 | APtest 50 | Weight |
|---|---|---|---|---|---|---|---|
| YOLOv1 | ResNet-18 | 640 | √ | 150 | 27.9 | 47.5 | ckpt |
| YOLOv2 | DarkNet-19 | 640 | √ | 150 | 32.7 | 50.9 | ckpt |
| YOLOv3 | DarkNet-53 | 640 | √ | 250 | |||
| YOLOv4 | CSPDarkNet-53 | 640 | √ | 250 | |||
| YOLOv5 | CSPDarkNet-L | 640 | √ | 250 | |||
| YOLOX | CSPDarkNet-L | 640 | √ | 250 | |||
| YOLOv7 | ELANNet | 640 | √ | 250 |