栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

windows10搭建YOLOx环境 训练+测试+评估

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

windows10搭建YOLOx环境 训练+测试+评估

文章目录
  • 前言
  • 1、必要环境
  • 2、安装
    • 2.1 创建python3.7虚拟环境
    • 2.2 下载pytorch (pytorch版本>=1.7)
    • 2.3 配置YOLOx环境
    • 2.4 测试效果
      • 注意:图片和视频路径要放在当前文件夹下!!!!
    • 3、训练自己的VOC数据集
    • 4、测试
    • 5、模型评估:
    • 6、根据README.md流程走可能会出现的报错
      • 6.1 编码报错 UnicodeDecodeError:gbk xxxxx
      • 6.2 根据readme文档安装apex时报错 Removed build tracker:xxxxxxx
      • 6.3 doesn’t contains class named ‘Exp’
      • 6.4 File ended prematurely 文件过早结束
      • 6.5 测试时目标框显示的类别不对
      • 6.6 测试COCO模型时IndexError: tuple index out of range
      • 6.7 加载预训练模型的时候 RuntimeError: Error(s) in loading state_dict for YOLOX
      • 6.8 训练了10次进行模型评估的时候报错[Errno 2] No such file or directory: 'xxx.xml'
  • 总结


前言

YOLOX踩坑记录,基于VOC数据集,本文将详细介绍训练+测试+模型评估的过程和个人遇到的所有报错


1、必要环境

Windows10+python3.7+CUDA10.1+CUDNN7.6.5

2、安装 2.1 创建python3.7虚拟环境
  1. conda create -n yolo_x python=3.7
  2. activate yolo_x
2.2 下载pytorch (pytorch版本>=1.7)
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.1 -c pytorch

测试是否安装成功

  1. python
  2. import torch
  3. print(torch.cuda.is_available())

    出现如上界面则证明安装成功
2.3 配置YOLOx环境
  1. 进入github官网下载源码:yolox源码地址
  2. 安装依赖包:pip install -r requirements.txt
  3. 安装yolox: python setup.py install
  4. 到官网下载apex,解压到项目文件夹内 地址:apex源码
  5. cd到apex文件夹内 cd apex-maste
  6. 安装apex python setup.py install
  7. 安装pycocotools pip install pycocotools
  8. 下载预训练模型 地址:模型地址
2.4 测试效果

1 测试图片

python tools/demo.py image -f exps/default/yolox_s.py -c ./yolox_s.pth.tar --path assets/dog.jpg --conf 0.3 --nms 0.65 --tsize 640 --save_result --device gpu

效果:

2 测试视频

python tools/demo.py video -f exps/default/yolox_s.py -c ./yolox_s.pth.tar --path ./cut2.mkv --conf 0.3 --nms 0.65 --tsize 640 --save_result --device gpu

效果:

注意:图片和视频路径要放在当前文件夹下!!!! 3、训练自己的VOC数据集

voc数据集的制作参考我前面的博客 地址:windows10搭建PaddleDetection2.0

1 将VOCdevkit目录拷贝到datasets/VOC目录下:

ln -s D:/data/firesmoke/VOCdevkit/VOC2007/11  ./datasets/VOC

D:/data/firesmoke/VOCdevkit/VOC2007/11是VOCdevkit文件所在的路径

./datasets/VOC是要复制到的路径

2 修改 yolox/data/dataloading.py 如下:

在YOLO-main路径下执行python setup.py install 更新yolox

3 修改exps/example/yolox_voc/yolox_voc_s.py如下:

如下修改num_classes改为自己的类别数量

4 修改yolox/data/datasets/voc_classes.py为自己的类别

执行python setup.py install 更新yolox

5 修改yolox/evaluators/voc_eval.py 如下

在18行filename前加上Annotations文件夹的路径
执行python setup.py install 更新yolox

6 运行如下代码开始训练

python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 4 --fp16 -o -c yolox_s.pth.tar
-d 使用显卡个数
-b 批次大小
–fp16 是否开启半精度训练
-c 加载预训练模型

如果出现CUDA out of memory内存溢出,将–fp16 -o去掉,代码改为如下

python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 4 -c yolox_s.pth.tar

效果如下

7 继续上一批次恢复训练的话,改成如下形式

将—resume改为True,-c后面跟接要继续训练的权重文件
代码如下:

python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 4 -c YOLOX_outputs/yolox_voc_s/latest_ckpt.pth.tar
4、测试

1 测试前修改demo.py如下

2 修改demo.py 85行左右的cls_name为VOC_CLASSES,还有265行左右的第三个参数


3 测试

python tools/demo.py video -f exps/example/yolox_voc/yolox_voc_s.py -c YOLOX_outputs/yolox_voc_s/latest_ckpt.pth.tar --path ./bb2.mp4 --conf 0.3 --nms 0.65 --tsize 640 --save_result --device gpu

测试效果

5、模型评估:

1 输入如下代码进行模型评估

python tools/eval.py -f exps/example/yolox_voc/yolox_voc_s.py -c YOLOX_outputs/yolox_voc_s/latest_ckpt.pth.tar -d 1 -b 4 --conf 0.001 --fp16 --fuse
--fuse 融合Conv层与BN层(减少运算量,加速推理的一个东西)

效果:(只训练了一批次map怪低的)

6、根据README.md流程走可能会出现的报错 6.1 编码报错 UnicodeDecodeError:gbk xxxxx

解决方案:

修改50行 加上encoding=”utf-8”

6.2 根据readme文档安装apex时报错 Removed build tracker:xxxxxxx


解决方案:

将以上代码修改成如下,记得一定要cd到apex-master文件夹内执行

python setup.py install
6.3 doesn’t contains class named ‘Exp’

解决方案:

  1. 拿yolox_s举例:
    将 -n yolox-s 改为 -f exps/default/yolox_s.py

  2. 如果是在pycharm里面运行代码,将相对路径改为绝对路径,如下所示:

6.4 File ended prematurely 文件过早结束

这该死的报错耗了我大半个小时
解决方案:



改为

将–path 视频绝对路径改为相对路径!!!!!!!!!!!

6.5 测试时目标框显示的类别不对

解决方案:
参考 4、测试 的1,2步 运行python setup.py install更新yolox

6.6 测试COCO模型时IndexError: tuple index out of range

解决方案:
在toolsdemo.py中把VOC_CLASSES 换回 COCO_CLASSES,修改85,256行左右的代码~

6.7 加载预训练模型的时候 RuntimeError: Error(s) in loading state_dict for YOLOX

解决方案:
将train文件中44行左右—resume 改成False

6.8 训练了10次进行模型评估的时候报错[Errno 2] No such file or directory: ‘xxx.xml’

解决方案:

总结

代码跑通了,开心

如有问题,欢迎评论区交流!

学习交流群:995760755

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/269169.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号