项目简介
本项目基于Python和Keras框架实现了YOLOv4目标检测模型,主要用于机场保障节点的简单检测。它包含了模型训练、预测和评估等完整流程,支持使用预训练权重和自定义数据集训练,可对图片和视频进行目标检测。
项目的主要特性和功能
- 网络结构:采用CSPDarkNet53作为主干特征提取网络,结合SPP、PAN特征金字塔结构。
- 训练技巧:运用Mosaic数据增强、Label Smoothing平滑、CIOU和学习率余弦退火衰减等训练技巧。
- 激活函数:使用Mish激活函数。
- 功能多样:支持使用预训练权重和自定义训练的权重进行图片和视频检测,还能进行fps测试;可对VOC07+12数据集和自定义数据集进行训练、预测和评估。
安装使用步骤
所需环境
安装tensorflow-gpu==1.13.1
和keras==2.1.5
。
训练步骤
训练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
并输入图片路径进行检测。
训练自己的数据集
- 制作VOC格式的数据集,将标签文件放在
VOCdevkit/VOC2007/Annotation
,图片文件放在VOCdevkit/VOC2007/JPEGImages
。 - 修改
voc_annotation.py
里的classes_path
指向自己建立的包含检测类别的txt文件,运行该文件生成训练用的txt文件。 - 修改
train.py
里的classes_path
,运行该文件开始训练,权值会生成在logs
文件夹中。 - 同训练VOC07+12数据集的第4步进行训练结果预测。
预测步骤
使用预训练权重
- 下载
yolo_weights.pth
放入model_data
,运行predict.py
并输入图片路径。 - 在
predict.py
里设置可进行fps测试和video视频检测。
使用自己训练的权重
- 按上述训练步骤完成训练。
- 在
yolo.py
里修改model_path
和classes_path
对应训练好的文件。 - 运行
predict.py
并输入图片路径。 - 在
predict.py
里设置可进行fps测试和video视频检测。
评估步骤
评估VOC07+12的测试集
- 因VOC07+12已划分好测试集,无需用
voc_annotation.py
生成ImageSets
下的txt。 - 在
yolo.py
里修改model_path
和classes_path
。 - 运行
get_map.py
,评估结果保存在map_out
文件夹中。
评估自己的数据集
- 确保使用VOC格式。
- 若训练前运行过
voc_annotation.py
,可修改其里的trainval_percent
和train_percent
调整测试集比例。 - 修改
get_map.py
里的classes_path
。 - 在
yolo.py
里修改model_path
和classes_path
。 - 运行
get_map.py
,评估结果保存在map_out
文件夹中。
注意事项
- 代码中的
yolo4_weights.h5
基于608x608图片训练,默认图片大小为416x416,可按需修改。 - 不要使用中文标签,文件夹中不要有空格。
- 训练前在
model_data
下新建txt文档输入分类,在train.py
中将classes_path
指向该文件。
文件下载
- 训练所需的
yolo4_weights.h5
(coco数据集权重)和yolo4_voc_weights.h5
(voc数据集权重)可在百度网盘下载。yolo4_weights.h5
链接: https://pan.baidu.com/s/1zAChN3AdrjbnGoJMXdgEYA ,提取码: 3zwjyolo4_voc_weights.h5
见项目文档
- VOC数据集下载链接: https://pan.baidu.com/s/19Mw2u_df_nBzsC2lg20fQA ,提取码: j5ge
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】