文章目录

  • 一、下载YOLOX代码
  • 二、配置文件
    • 修改数据集参数
  • 三、开始训练
    • 报错1:no model named 'yolox'
    • 报错2:No such file or directory: '/ai/pytorch/YOLOX-main/datasets/VOCdevkit/VOC2012/ImageSets/Main/trainval.txt'
  • 四、 使用训练完的模型进行预测
    • 报错:no model named 'yolox'
  • 五、预测效果:
    • yolox-s效果
    • yolox-m效果
    • yolox-l 效果
    • yolox-x效果
    • yolov5-x效果
  • 六、tensorboard可视化
    • 报错:ValueError: Duplicate plugins for name projector

最近想跑一下yolox的代码,但是上网搜了几篇博客后感觉都异常的麻烦,而且跑起来还有各种各样的问题,不如自己写篇总结,把步骤和报错都记录下来。按照我的步骤一步步来,肯定是能跑通的。

一、下载YOLOX代码

https://github.com/Megvii-BaseDetection/YOLOX

二、配置文件

修改数据集参数

首先将自己的数据集放入datasets文件中,注意这里Main下面的文件名,trainval.txt代表训练集,test.txt代表测试集,官方代码中就是这样的,不想改官方代码,这里就跟官方保持一致就行了。

然后修改yolox_voc.py文件(可以使用default中的yolox、yolox_s等,这里默认使用yolox_voc.py做例子)

将num_classes修改为自己数据集的类别总数

之后再修改voc_classes.py文件,修改为自己的类别

三、开始训练

首先自己先创建一个weights文件,存放模型的预训练权重:
yolox_s.pth

在终端输入:
-d 表示使用哪一块GPU,-b 表示bitch_size,-c 表示预训练权重

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

报错1:no model named ‘yolox’


只需将系统路径添加进去即可(这里添加的是你自己的工作路径,我是在服务器上跑的,根目录就是/ai/pytorch)

报错2:No such file or directory: ‘/ai/pytorch/YOLOX-main/datasets/VOCdevkit/VOC2012/ImageSets/Main/trainval.txt’


这里把这个2012删除即可。

四、 使用训练完的模型进行预测

训练完成后,会生成一个YOLOX-outputs文件夹,里面包含了训练后保存的权重和训练时的信息,由于我是在学校服务器上训练的,选择的是300轮里最好的权重,保存到自己创建的weights文件夹里了。

修改yolox/data/datasets/下的init.py文件,添加:from .voc_classes import VOC_CLASSES,之后在toos/demo.py文件中将COCO_CLASSES全部修改为VOC_CLASSES。


在终端中输入:-c 代表训练好的权重,-path 代表你要预测的图片存放的文件夹,
若想进行视频预测,只需将下面的 image 更换为 video;
若想预测整个文件夹,将class01.jpg去掉,只留 --path assets/ 。

python tools/demo.py image -f exps/example/yolox_voc/yolox_voc_s.py -c weights/best_ckpt.pth --path assets/class01.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device [cpu/gpu]

报错:no model named ‘yolox’

还是老问题,需要添加系统路径,我添加的是自己电脑的工作路径:

预测完成后会在YOLOX_outputs下创建存放预测图片的文件夹:

五、预测效果:

yolox-s效果

感觉效果还行吧,毕竟跑的是最小的s,不过网上好多人说实际用起来不如yolov5,等后面跑一下yolox-x和yolox-Darknet53,看看效果怎么样吧。

yolox-m效果

yolox-l 效果

看这效果,貌似不如yolov5,前面的小头直接就检测不出来了,后续跑一下yolox-x,看看效果再做评价吧。

yolox-x效果

跟yolox-l一样,前面的小头没检测出来,但是其他的头概率很高,可能是因为使用了mosaic的原因吧,但总体效果感觉确实没yolov5好,后面再换个小目标数据集试一下。

yolov5-x效果

都是在预训练权重下训练300论的效果,很明显,吹的这么牛的yolox-x实际 用起来还没yolov5-x效果好,yolox-x的FLOPs(G)是281.9, yolov5-xFLOPs(G)217.1,两者差的不多,217.1的FLOPs(G)肯定是可以满足实际需求的,但是两者识别的效果差的太多了,该说不说,人生苦短,我选yolov5-x!(顺便说一下,yolox-x训练完的权重文件大概330mb,yolov5-x的权重文件是166mb)

六、tensorboard可视化

在终端输入:

tensorboard --logdir=YOLOX_outputs/ --bind_all

报错:ValueError: Duplicate plugins for name projector

只需将这个tensorboard-2.8.0.dist.info文件删除就可以了(注意是你当前conda环境下的site-packages,我的环境是pytorch)

YOLOX训练自己的VOC数据集相关推荐

  1. 【学习记录】win10搭建YOLOX训练自己的VOC数据集

    我是目录: 前言: 1.yolox的训练配置 2.yolox源码 3.必要的环境 配置yolox所需环境 1.安装依赖库 2.安装yolox 3.安装apex 4.下载预训练模型 4.准备自己的数据集 ...

  2. (详细版Win10+Pycharm)YOLOX——训练自己的VOC2007数据集,以NWPU VHR-10 dataset为例

    目录 一.搭建YOLOX环境 二.训练自己的VOC数据集 1.打开Pycharm配置Anaconda已创建好的yolo_x虚拟环境 2.在Pycharm中设置Git环境 3.修改配置文件 (1)修改Y ...

  3. mmdetection训练自己的VOC数据集及常见问题

    训练自己的COCO数据集及常见问题见下文: mmdetection训练自己的COCO数据集及常见问题_不瘦8斤的妥球球饼的博客-CSDN博客 目录 一.环境安装 二.训练测试步骤 三.常见问题 bat ...

  4. mmdetectionV2.x版本 训练自己的VOC数据集

    mmdetectionV2.x版本 训练自己的VOC数据集 1 首先根据规范的VOC数据集导入到项目目录下,如下图所示: mmdetection ----mmdet ----tools ----con ...

  5. mmdetection的安装并训练自己的VOC数据集

    mmdetection的安装并训练自己的VOC数据集 mmdetection的安装与VOC数据集的训练 一. mmdetection的安装 1.使用conda创建虚拟环境 2.安装Cython 3.安 ...

  6. 在服务器上利用mmdetection来训练自己的voc数据集

    在服务器上利用mmdetection来训练自己的voc数据集 服务器上配置mmdetection环境 在服务器上用anaconda配置自己的环境 进入自己的虚拟环境,开始配置mmdetection 跑 ...

  7. yolov5-7.0训练自己的VOC数据集

    yolov5-7.0训练自己的VOC数据集 这个笔记可能只适用于7.0版本的,写这个笔记主要是给工作室伙伴参考的,大佬请绕行 有错误之处欢迎指出 一.下载 yolov5的GitHub仓库地址:Rele ...

  8. YOLOX训练自己标注的数据集

    参考原作者:YOLOX训练自己的数据集(超详细)_AI小白一枚的博客-CSDN博客_yolox训练自己的数据集 YOLOX是旷视提出来的,研究者将解耦头.数据增强.无锚点以及标签分类等目标检测领域的优 ...

  9. 【mmdetection】SSD训练自己的VOC数据集注意事项

    一.修改voc.py和class_names.py ./mmdet/datasets/voc.py  此处代码改为自己数据集的类别,以及./mmdet/core/evaluation/class_na ...

最新文章

  1. php url 安全性,在php中获取url内容的安全性
  2. SAP Varient Configuration Type SAP变量配置类型
  3. Red hat下使用automake自动配置wxWidgets的makefile
  4. python copy 文件,图片等..
  5. 干支纪年法简便算法_民间玄学:那些年我理解的何谓“天干”,“地支”,“干支”...
  6. pycharm 调试模式下命令行参数的传递
  7. 如何在AI工程实践中选择合适的算法?
  8. 软件反破解的几个思路
  9. 全志V853开发板硬件框图及各模块原理图【内附PDF版本】
  10. chromecast 协议_如何更改您的Chromecast的设备名称
  11. 深入剖析线程同步工具CountDownLatch原理
  12. 网上找的更具纬度经度算计两点之间的距离,得到的结果不准确, 小程序获取用户位置信息返回的纬度经度与实际位置不正确。
  13. 记录微信分享图标不显示的问题
  14. uni-app控制台显示项目编译成功,但模拟器没有反应
  15. 5分钟了解赴港上市公司CEO薪酬
  16. PHP汉字转拼音第三方类库
  17. 作业十一:安装关系型数据库MySQL
  18. CAT的Server初始化
  19. 【学渣无能狂怒】今天也是为了学习落泪的一天--每天一遍Java再见
  20. 2.4、PHP数组与数组结构

热门文章

  1. 总结前端好用的ui框架,做开发非常的奈斯,总有一款你喜欢。
  2. jieba.cut 和jieba.posseg
  3. mysql 如何时间分组,mysql如何按时间分组查询
  4. 理解LSTMs (Long Short Term Memory Networks)
  5. mybatic动态SQL及结果处理
  6. [相机选型] 普通网络摄像头或小型摄像头和工业相机的区别
  7. 【微软Visual Studio面世20周年巨制】全宇宙功能最强大IDE Visual Studio 2017 正式版发布
  8. Java中你最擅长什么_你最擅长的领域是什么
  9. DOS窗口中使用的命令行
  10. scanf(%*s)