YOLOX实践—烟雾火焰检测 02 训练过程

YOLOX实践—烟雾火焰检测 02 训练过程,第1张

YOLOX实践——烟雾火焰检测 02 训练过程

》》参考:

  1. 超详细!手把手教你使用YOLOX进行物体检测(附数据集)
  2. 训练AP为0情况解决

》》目录:

一、 概述
    1.1 大概步骤
二、 具体描述
    2.1 数据集处理
    2.2 设置训练参数、训练
    2.3 处理结果
    2.4 使用训练得到的结果批量预测 测试数据
    2.3 遇到的问题

一、 概述:

描述:YOLOX环境安装完成后,就可以尝试训练自己的数据集了。

1.1 大概步骤:
  1. 处理数据集成标准格式
  2. 修改训练参数、训练
  3. 处理训练logtxt成csv文件得到ap图、损失率图
  4. 使用训练得到的结果批量预测 测试数据
二、 具体描述: 2.1 数据集处理: 2.1.1. 在YOLOX-main/data/VOCdevkit 中维持下图结构


图2.1 : 数据集树形结构图

描述:数据集格式采用VOC2007格式数据集,如果是其他类型的数据集,或者是补充了一些数据集,需要转化成上述格式,其中最重要的是红框标出内容。

  • Annotations:存储标注图片标注框等信息的xml 文件;
  • ImageSets:
    • Main
      • test.txt: 训练集图片名称集合文本
      • Trainval.txt: 测试集图片名称集合文本
    • JPEGImages:保存了源图片,格式为JPEG


图2.2: xml 部分截图 红框重要

2.2.2. 数据处理过程:
  • 位置:以下几个脚本的位置
/YOLOX-main/data/VOCdevkit/
  1. findPicturebyTxt2dictory.py :
    功能:通过txt划分出图片到指定目录,用来根据test.txt来找到测试图片的

  2. partionDataSet.py
    功能:根据voc格式中xml文件,自动划分出数据集、验证集和测试集txt,用来训练的

  3. mergeSmokeFire.py
    功能:合并数据集中相同图片的不同标注xml文件,进行图片降重,减少background对于结果的影响

  4. enhanceImage.py
    功能:对烟雾图像进行直方图增强

2. 如何查看、新增标注图片?
  • 使用labelimg 进行查看或标注:
  • 安装教程:pip install labelimg
  • 使用教程:terminal终端输入 labelimg后使用
    • 查看标注图片数据集
2.2 设置训练参数、训练
  • 注意:修改下列文件后,需要执行 python set.py install 重装,因为yolox安装本质是替换了build中的相应文件
  • 具体安装位置 使用:pip show yolox查看
  1. 修改以下三处位置,类别数量,训练、test文件路径,本数据集是火焰、烟雾检测,所以设置类别为2
#位置: 
exps/example/yolox_voc/yolox_voc_s.py
  1. 修改类别名称:注意末尾最好加上逗号
#位置: 
yolox/data/datasets/voc_classes.py
  1. 去掉 %s(最好去掉)
#位置: 
yolox/data/datasets/voc.py
  1. 修改后,重装yolox 需要执行 python set.py install 重装
#执行: 
python set.py install
  1. 开始训练:
    注意:需要有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
  1. processLog.py:
  • 功能:从官方自带的训练log(train_log.txt)读取关键信息:如训练过程中的各种损失率,并输出到csv文件
2.3.2 提取损失信息
  1. 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. 重新训练模型,需要删除缓存,不然下一次训练可能报错

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/725021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存