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

  • Post author:
  • Post category:其他





前言


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

解决方案:

在tools\demo.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



版权声明:本文为Dora_blank原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。