》》参考:
- 超详细!手把手教你使用YOLOX进行物体检测(附数据集)
- 训练AP为0情况解决
》》目录:
一、 概述
1.1 大概步骤
二、 具体描述
2.1 数据集处理
2.2 设置训练参数、训练
2.3 处理结果
2.4 使用训练得到的结果批量预测 测试数据
2.3 遇到的问题
描述:YOLOX环境安装完成后,就可以尝试训练自己的数据集了。
1.1 大概步骤:- 处理数据集成标准格式
- 修改训练参数、训练
- 处理训练logtxt成csv文件得到ap图、损失率图
- 使用训练得到的结果批量预测 测试数据
图2.1 : 数据集树形结构图
描述:数据集格式采用VOC2007格式数据集,如果是其他类型的数据集,或者是补充了一些数据集,需要转化成上述格式,其中最重要的是红框标出内容。
- Annotations:存储标注图片标注框等信息的xml 文件;
- ImageSets:
- Main
- test.txt: 训练集图片名称集合文本
- Trainval.txt: 测试集图片名称集合文本
- JPEGImages:保存了源图片,格式为JPEG
- Main
图2.2: xml 部分截图 红框重要
- 位置:以下几个脚本的位置
/YOLOX-main/data/VOCdevkit/
-
findPicturebyTxt2dictory.py :
功能:通过txt划分出图片到指定目录,用来根据test.txt来找到测试图片的 -
partionDataSet.py
功能:根据voc格式中xml文件,自动划分出数据集、验证集和测试集txt,用来训练的 -
mergeSmokeFire.py
功能:合并数据集中相同图片的不同标注xml文件,进行图片降重,减少background对于结果的影响 -
enhanceImage.py
功能:对烟雾图像进行直方图增强
- 使用labelimg 进行查看或标注:
- 安装教程:pip install labelimg
- 使用教程:terminal终端输入 labelimg后使用
- 查看标注图片数据集
- 注意:修改下列文件后,需要执行 python set.py install 重装,因为yolox安装本质是替换了build中的相应文件
- 具体安装位置 使用:pip show yolox查看
- 修改以下三处位置,类别数量,训练、test文件路径,本数据集是火焰、烟雾检测,所以设置类别为2
#位置:
exps/example/yolox_voc/yolox_voc_s.py
- 修改类别名称:注意末尾最好加上逗号
#位置:
yolox/data/datasets/voc_classes.py
- 去掉 %s(最好去掉)
#位置:
yolox/data/datasets/voc.py
- 修改后,重装yolox 需要执行 python set.py install 重装
#执行:
python set.py install
- 开始训练:
注意:需要有GPU才能训练
#执行:
python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 16 --fp16 -c yolox_s.pth
# -d GPU数量
# -b 单次iter训练的图片量,设置越大,训练时间越短
# --fp16 混合精度
# -c 模型名称
2.3 处理结果
- 将训练logtxt成csv文件得到ap图、损失率图
- 注意:手写一些python脚本进行文件处理,提取train_log.txt关键信息绘制图片, 官方训练过程中AP信息没有保存下来,所以自行记录并画图
#位置:
YOLOX-main/YOLOX-outputs/yolox_voc_s
2.3.1 处理AP
- processLog.py:
- 功能:从官方自带的训练log(train_log.txt)读取关键信息:如训练过程中的各种损失率,并输出到csv文件
- processAP.py:
- 功能:从自建的训练记录log(train_evacuate_log.txt)中读取AP信息(官方log中没有),并输出到csv文件
图2.5 损失率关键信息
图2.6 训练过程中得到的AP图
2.4 使用训练得到的结果批量预测 测试数据参考以下链接,预测部分
https://blog.csdn.net/weixin_40920183/article/details/120387381
2.5 遇到的问题:
a. 重新训练模型,需要删除缓存,不然下一次训练可能报错
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)