Scaled-YOLOv4 开始
Scaled-YOLOv4#
- 代码: https://github.com/WongKinYiu/ScaledYOLOv4
- 论文: https://arxiv.org/abs/2011.08036
- 文章: https://alexeyab84.medium.com/scaled-yolo-v4-is-the-best-neural-network-for-object-detection-on-ms-coco-dataset-39dfa22fa982
环境准备#
基础环境#
- Nvidia 显卡的主机
- Ubuntu 18.04
- 系统安装,可见 制作 USB 启动盘,及系统安装
- Nvidia Driver
- 驱动安装,可见 Ubuntu 初始配置 - Nvidia 驱动
开发环境#
下载并安装 Anaconda ,之后于 Terminal 执行:
注意:
pytorch等版本请对照表 torch, torchvision, pythoncudatoolkit版本请对照表 CUDA Toolkit and Compatible Driver Versionsconda下载过慢,可尝试配置国内镜像源
下载 CUDA Toolkit ,其版本也注意对应 Nvidia 驱动版本。下一步需要。命令参考:
注意:安装时,请手动取消驱动安装选项。
下载 mish-cuda 并安装:
脚本依赖#
模型准备#
下载官方的 yolov4-p5.pt, yolov4-p6.pt, yolov4-p7.pt 权重文件到 ScaledYOLOv4/weights/ 目录。
现有模型测试#
准备 COCO 数据集#
下载 COCO 数据集,
转成 YOLOv5 数据集结构,
如下:
coco2017_yolov5 软链到 ScaledYOLOv4/ 目录,并添加 ScaledYOLOv4/data/coco2017_yolov5.yaml 文件,描述数据集:
测试 YOLOv4-P5#
结果如下:
进行推断,
结果如下,

测试 YOLOv4-P7#
结果如下:
进行推断,
结果如下,

自定义数据集训练#
准备数据集#
这里从 COCO 数据集拿出一个子集,作为自定义数据集的演示:
coco2017_yolov5_subset 软链到 ScaledYOLOv4/ 目录,并添加 ScaledYOLOv4/data/coco2017_yolov5_subset.yaml 文件,描述数据集:
准备参数文件#
这里以
YOLOv4-P6为例,P5,P7一样。
复制 ScaledYOLOv4/models/yolov4-p6.yaml 到 ScaledYOLOv4/models/coco2017_yolov5_subset/yolov4-p6.yaml 文件,修改 nc 参数:
训练模型#
参数,
训练,
信息如下:

如要恢复训练:
错误 RuntimeError: main thread is not in main loop#
如果发生此错误,可于 train.py __main__ 修改 GUI 的 backend:
训练指标#
训练完成后,内容如下:
labels.png: 标注分布图results.png: 训练过程图results.txt: 训练过程日志
results.png 要训练完成后才有,如果训练过程中要查看,可用 tensorboard:
打开 http://localhost:6006/ 可见:

测试模型#
进行推断,