YOLOX官方代码的训练预测评估个人总结

记录贴

yolox代码实在是比较难用,写个帖子记录一下,忘了好几次了,每次都要慢慢调。

官方代码下载

下载地址:https://github.com/Megvii-BaseDetection/YOLOX
这里直接下载zip格式了,下载到本地电脑解压。

终端训练评估代码

pycharm打开配置环境

使用pycharm打开代码,然后选择虚拟环境,将数据集放到datasets文件夹下,这里使用VOC格式数据集。
在这里插入图片描述

修改部分参数

修改exps/example/yolox_voc/yolox_voc_s.py文件,这里使用的是yolox-s的网络参数,如果使用其他网络,可以修改深度和宽度系数。修改Exp类self.num_classes = 1修改为自己的数据集类别,这里我的为1。删除image_sets里的2012,用的是VOC2007格式的数据集。

在这里插入图片描述
修改yolox/data/datasets/voc_classes.py 里面的VOC_CLASSES为自己的数据集类别名称。

在这里插入图片描述

开始训练模型

在终端输入命令训练网络
-f:VOC模型
-d:设备,gpu
-b:batch size

python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 0 -b 1

error 处理

1.No modul named “yolox”
在tools/train.py 最上方加入以下代码,系统参数加入项目绝对路径地址
在这里插入图片描述
2.IndexError: list index out of range
参考官方issue:https://github.com/Megvii-BaseDetection/YOLOX/issues/1645
将 YOLOX-main/yolox/data/datasets/voc.py 文件的 (self._imgpath % self.ids[i]).split(self.root + “/”)[1] 修改为 (self._imgpath % self .ids[i]).split(self.root + “\”)[1]
在这里插入图片描述
3.OMP error
在tools/train.py 最上方加入以下代码

import os
os.environ[“KMP_DUPLICATE_LIB_OK”]=“TRUE”

4.训练时第10轮 eval 报错,FileNotFoundError: [Errno 2] No such file or directory: ‘xxx.xml’
修改报错的yolox/evaluators/voc_eval.py文件,在文件名的前半部分加入xml文件路径
在这里插入图片描述
在exps/example/yolox_voc/yolox_voc_s.py 将评估轮次改为1次,跑一轮看下是否有问题
在这里插入图片描述

5.训练时 eval 报错, ValueError: invalid literal for int() with base 10: ‘35.0’
这是因为标签文件里的标注是小数,修改报错的yolox/evaluators/voc_eval.py文件,先转成float类型在转成int
在这里插入图片描述

预测图片

首先修改tools/demo.py文件,导入VOC_CLASSES, 将所有的COCO_CLASSES替换为VOC_CLASSES
在这里插入图片描述

终端输入以下命令:
image:预测图片
-f:模型文件
-c:权重文件
–path:预测图片

python tools/demo.py image -f exps/example/yolox_voc/yolox_voc_s.py 
-c YOLOX_outputs/yolox_voc_s/best_ckpt.pth 
--path assets/2f9755f66.jpg --conf 0.25 
--nms 0.45 --tsize 1024 --save_result --device gpu

评估模型

在命令行输入以下命令:

python tools/eval.py -f exps/example/yolox_voc/yolox_voc_s.py 
-c YOLOX_outputs/yolox_voc_s/best_ckpt.pth -b 1 -d 1 --conf 0.001

pycharm右键运行训练评估代码

训练模型

修改parser参数,代码文件都在tools文件夹下,如果路径出现报错相对路径都指向上级目录就好了,结果文件在tools文件夹下tools/YOLOX_outputs
在这里插入图片描述

预测图片

修改parser参数
在这里插入图片描述
在这里插入图片描述

评估模型

在这里插入图片描述
测试这种训练方式结果很差,后面找下原因?

tensorboard可视化训练过程

终端输入命令:

tensorboard --logdir=tools/YOLOX_outputs/yolox_voc_s/tensorboard/

在这里插入图片描述

附录

在exps/example/yolox_voc/yolox_voc_s.py 文件中,代码读取的是trainval.txt和test.txt,也就是说把训练集+验证集用于训练,测试集用于验证。当然如果生成trainval.txt文件就只是训练集,test.txt文件是验证集,那就没有问题。
在这里插入图片描述
不过我的文件格式是这样的,所以这里也要改一下。
在这里插入图片描述
完结!又忙活了一次,没有下次了

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MySunshine456

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值