目录
一.实验环境搭建
- 下载Anoconda管理相关环境,将pytorch环境搭建在Anoconda上,经过多次实验,由于python用的3.6版本,最终较为兼容的版本是torch1.4.0和torchvision0.5.0
- 安装Visual Studio,再安装Cudnn和CUDA
- Pytorch环境中其他库的安装, qscipy==1.2.1 numpy==1.17.0 matplotlib==3.1.2opencv_python==4.1.2.30tqdm==4.60.0 Pillow==8.2.0 h5py==2.10.0
二.Yolov4大致结构
三.训练模型
- 数据集准备:利用VOC数据集进行训练
如图所示,Annotation中存放标签文件,JPEGImages存放图片文件。
2.利用github上yolo4相关仓库,打开对应文件夹
利用VScode编辑器打开文件夹如图所示:
3.处理数据集
如图所示,打开voc_annotation.py将annotation_mode设置为2,目的是获得训练用2007_train.txt以及2007_val.txt。此文件中的classes_path需要指向检测类别对应的文件,本实验用的VOC数据集,路径为根目录下model_data中voc_classes.txt文件,如果是训练自己建立的数据集,可以在model_data中建立一个新的txt文件并将classes_path指向其路径即可。
4.开始训练
打开train.py文件,如图所示:
此文件中的classes.path需要对应voc_annotation.py中的classes.path,再将预权重文件放入model_data中,设置好后开始训练,如图所示
训练多个Epoch后,权值文件会生成到根目录中的logs里。
5.训练结果预测
训练结果预测需要先打开根目录下的yolo.py文件设置相关路径,如图所示:
将model_path和classes_path路径设置为对应logs中在上一步骤训练生成的权值文件和model_data中的txt文件。然后运行根目录下的predict.py文件,结果如下图所示:
输入图片路径结果如下图:
四.实验总结
实验运行报错非常多,大致总结为以下几个原因:
- python版本和库中numpy版本不兼容,尝试互降版本兼容。
- Classes_path路径错误,导致训练报错。
- CUDA安装失败,原因为未提前安装Visual Studio。
- Future未安装,安装即解决。
- 未载入预权值文件。