项目简介
本项目基于PyTorch实现了YOLOv3目标检测系统,可在VOC数据集上开展目标检测模型的训练、评估和预测工作,同时支持使用自定义数据集进行训练。
项目的主要特性和功能
- 多数据集支持:可使用VOC07+12数据集训练和评估,也支持自定义的VOC格式数据集。
- 训练功能:提供完整训练流程,涵盖数据集准备、处理与模型训练,训练结果会生成权值文件。
- 预测功能:支持用预训练权重或自训练权重进行图片、视频的目标检测,还能进行fps测试。
- 评估功能:可对训练好的模型在VOC07+12测试集或自定义数据集上评估,评估结果保存至指定文件夹。
安装使用步骤
环境准备
确保torch版本为1.2.0,其他依赖详情查看requirements.txt,该文件有一定兼容性,已测试pytorch1.7和1.7.1可正常运行。
数据和文件下载
- 训练所需的yolo_weights.pth可在百度云下载,链接: https://pan.baidu.com/s/1hCV4kg8NyStkywLiAeEr3g ,提取码: 6da3 ,下载后放入model_data文件夹。
- VOC数据集下载地址:https://pan.baidu.com/s/19Mw2u_df_nBzsC2lg20fQA ,提取码: j5ge ,解压后放在根目录。
训练步骤
训练VOC07+12数据集
- 准备数据集:将下载的VOC07+12数据集解压后放于根目录。
- 处理数据集:修改voc_annotation.py里的annotation_mode=2,运行该文件生成根目录下的2007_train.txt和2007_val.txt。
- 开始训练:直接运行train.py即可开始训练。
- 结果预测:在yolo.py里修改model_path(指向logs文件夹里训练好的权值文件)和classes_path(指向检测类别所对应的txt),修改完成后运行predict.py,输入图片路径即可检测。
训练自己的数据集
- 准备数据集:将标签文件放于VOCdevkit/VOC2007/Annotation中,图片文件放于VOCdevkit/VOC2007/JPEGImages中。
- 处理数据集:修改voc_annotation.py里的classes_path指向自己建立的cls_classes.txt(里面写所需区分的类别),运行该文件生成训练用的2007_train.txt和2007_val.txt。
- 开始训练:修改train.py里的classes_path(与voc_annotation.py里的txt一致),运行train.py开始训练,训练多个epoch后权值会生成在logs文件夹中。
- 结果预测:同训练VOC07+12数据集的预测步骤。
预测步骤
使用预训练权重
- 下载并解压库,将yolo_weights.pth放入model_data,运行predict.py,输入图片路径(如img/street.jpg)。
- 在predict.py里设置可进行fps测试和video视频检测。
使用自己训练的权重
- 按训练步骤完成训练。
- 在yolo.py里修改model_path(对应logs文件夹下的权值文件)和classes_path(是model_path对应分的类)。
- 运行predict.py,输入图片路径。
- 在predict.py里设置可进行fps测试和video视频检测。
评估步骤
评估VOC07+12的测试集
- 无需利用voc_annotation.py生成ImageSets文件夹下的txt。
- 在yolo.py里修改model_path(指向logs文件夹里训练好的权值文件)和classes_path(指向检测类别所对应的txt)。
- 运行get_map.py,评估结果会保存在map_out文件夹中。
评估自己的数据集
- 若训练前运行过voc_annotation.py,代码会自动划分数据集;可修改voc_annotation.py里的trainval_percent和train_percent调整测试集比例。
- 利用voc_annotation.py划分测试集后,修改get_map.py里的classes_path(与训练时的txt一致)。
- 在yolo.py里修改model_path和classes_path。
- 运行get_map.py,评估结果会保存在map_out文件夹中。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】