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/
可见:
#
测试模型进行推断,