- 第一步:阅读与下载源码
权重:https://pan.baidu.com/s/1teB8xXtUpFisCVkPu1fCJg
提取码: drpa
以下是 我自己的全部代码,仅供参考。
https://github.com/Eric3911/ScaledYOLOv4
- 第二步:环境配置
由于模型比较新,github上显示2020.11.16日,因此建议使用python3.7 、pytorch>1.6, 更好的建议是建个虚拟环境运行保障不同环境之间隔离实现代码运行安全。相关命令如下:
conda create -n P7 python=3.7
source activate P7
pip install -r requirements.txt
(如果出现报错可能是网络原因,修改pip源为清华或者豆瓣)
-
第三步:定义自己的数据集
首先采用完善的VOC格式的数据集
mkdir images文件夹
cp -r JPEGImages images
修改voc_txt.py里面的路径生成ImageSets: train、test、val 等文件夹路径文件
修改voc_labels.py里面路径生成data:2020_train、2020_test、2020_val的txt文件
修改coco.names 类别为自己的类别
修改coco.yaml的datasets自己文件的路径、nc为自己类别、cls names为自己类别名称 -
第四步:在model文件夹下
修改yolov4-csp.cfg中的filters=3*(cls+5)
修改classes为自己的类别数 -
第五步:下载mish-cuda
https://github.com/thomasbrandon/mish-cuda
cd mish-cuda
python setup.py install
(这里如果出现问题需要先配置好pytorch就行) -
第六步:修改train.py文件中的370行
修改372行、 传入的初始化参数 default=‘weihgts/yolov4-csp.weights’ 迁移学习的权重文件
修改374行、 传入的初始化参数 default=’‘models/yolov4-csp.cfg’’
修改376行、 传入的初始化参数 default=‘data/coco.yaml’
修改378行、 传入的初始化参数 default=1000 epoch轮次
修改380行、 传入的初始化参数 default=12 batch批次
修改393行、 传入的初始化参数 default=‘0’ 这个为调用第一块显卡,cpu的直接写cpu
训练过程远程使用shell命令时候要对utils里面的general文件中的可视化过程1143、1209、1210、1236、1237、1238行注释,理由远程会启动tensorborard监控训练中断。方便调试。
- 第七步:测试与结果分析
准确率确实不错,专门用了很少的数据测试一下。
- 第八步:分布式训练测试
这个时间不够用了暂时没搞,最近搞芯片加速。如果有兴趣可以互相学习交流实现。