当前位置:网站首页>yolo x 跑起来,详细的不行,且内含800错误解决办法
yolo x 跑起来,详细的不行,且内含800错误解决办法
2022-08-04 08:08:00 【思艺妄为】
我已经自认为掌握了yolo v5,以为可以跟配环境啥的说再见,现实很残酷哈哈哈,要把之前用的yolo v5换掉换成yolo x ,没想到啊没想到,可以用世事无常来形容了,于是一届菜鸡又开始搞yolo x 。在此十分感谢大佬给予巨大帮助!
win10+pytorch1.9+yolox模型训练_Mr曲末寒的博客-CSDN博客
YOLOX训练自己的VOC数据集_RooKiChen的博客-CSDN博客_yolox训练voc数据集
1.准备环境
官方代码:https://github.com/Megvii-BaseDetection/YOLOX
#我直接复制了一个yolov5的环境,改名成yolo x
#激活环境
conda activate yolox
#进入你下载文件的位置
D:
#进入文件夹
cd D:\DATA\xxx\YOLOX-main
#下载需要的包,这个语句我没下下来,总是timeout,放弃了,一个一个下
pip install -r requirements.txt
#加个清华源挨个下
pip install loguru -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install ninja -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install tabulate -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnx==1.8.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnxruntime==1.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnx-simplifier==0.3.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
2.搞自己的数据集
先建立文件夹,datasets文件下建立VOCdevkit文件夹, VOCdevkit文件夹下建立VOC2007文件夹,VOC2007文件夹下建立Annotations,ImageSets,JPEGImages三个文件夹加一个名为make_voc_data的py文件。ImageSets文件夹下建立main文件夹。
完事之后,在make_voc_data.py文件中,运行此代码后会出现两个.txt文件。
import os
import random
trainval_percent = 0.3
train_percent = 0.7
xmlfilepath = r'D:\DATA\xxx\YOLOX-main\datasets\VOCdevkit\VOC2007\Annotations' # 自己标签文件地址
txtsavepath = r'D:\DATA\xxx\YOLOX-main\datasets\VOCdevkit\VOC2007\ImageSets'
total_xml = os.listdir(xmlfilepath)
num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)
ftest = open(r'D:\DATA\xxx\YOLOX-main\datasets\VOCdevkit\VOC2007\ImageSets\Main\test.txt', 'w') # 生成两个文件保存地址
ftrain = open(r'D:\DATA\xxx\YOLOX-main\datasets\VOCdevkit\VOC2007\ImageSets\Main\trainval.txt', 'w')
for i in list:
name = total_xml[i][:-4] + '\n'
if i in trainval:
ftest.write(name)
else:
ftrain.write(name)
ftrain.close()
ftest.close()
3.训练
3.1改exps/example/yolox_voc/yolox_voc_s.py
有几个类别就改几个,我只有一个
3.2改yolox/data/datasets/voc_classes.py为自己的类别
就一个fish,按照源代码给的那个形式,改的类别,他报错了,就变成了图中的写法,现在想起来还是十分感谢文章开头的博主哈哈哈,对我这种真是啥也不会的人给予帮助!
3.3运行
找到Terminal,如下图,输入下面这个,报错了就改。
python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 1 -c weights/yolox_s.pth
运行一下!
3.4改错
错误1:No module named 'yolox'
改正:最开始train.py中加上import sys,sys.path..append(当前项目的绝对路径,我的是r'D:\DATA\xxx\YOLOX-main'),如图
错误2:DataLoader worker (pid(s) 1500,2504,5580,4160) exited unexpectedly
改正:exps/example/yolox_voc_s.py中添加第18行
错误3:找不到voc2012啥啥的,直接去掉就行
改正:exps/example/yolox_voc_s.py中47行注释那个改成图中48行那个
错误4:An error has been caught in function 'launch',process 'Mainprocess' (19114),thread 'Mainthread' (27692)
改正:/yolox/data/datasets/voc.py文件中的316行改成317行
这个错误就很迷,我感觉改不改可能没啥感觉,改完那个还是有,但是改完下面这个吧,他也就没了。
错误5:[Errno 2] No such file or directory: 'D:\\code\\Anaconda\\envs\\yolox\\lib\\....
就别人都遇不到的问题,我能遇到,别人遇到的问题,我都没遇到,也不知道咋回事哎呀呀,这个错误很长,简单说就是他要找我的txt文件,他不在dataset里找,居然去我环境里了,当然找不到了,我迷啊我,最后不得不求助大佬!辛苦大佬给我改了哈哈哈,今天又是佩服大哥的一天!
改正:exps/example/yolox_voc_s.py中46行,105行,如图
3.5成功撒花
AP=86很厉害的样子
4.测试
把你要预测的图片放到assets里,把YOLOX_outputs/yolox_voc_s中的最好的权重best_ckpt.pth放到weights里,在tools/demo.py文件中将COCO_CLASSES全部修改为VOC_CLASSES,其中15行变红了,加上前面那个,就ok了。
这个时候,我名副其实的bug王不可能成功,没错我又bug了,五花八门的bug啊,因为我训练的就一个东西,所以可能跟别人不太一样,建议只想跑一下下的就整个3个类别,肯定不会遇到我这么多问题。经过九九八十一难,自己解决不了再次求救过后,成功了!
命令:
python tools/demo.py image -f exps/example/yolox_voc/yolox_voc_s.py -c ./weights/best_ckpt.pth --path assets/ --conf 0.25 --nms 0.45 --tsize 640 --save_result -
-device [cpu/gpu]
结果:
接下来还有接下来的代码要整,bug王可预测的还会出现各种各样的bug,仅以此来记录菜鸡学习过程中遇到的所有种种,学习路上磕磕绊绊还好有很多很多陌生人热情的帮助,真的很感谢呀!
边栏推荐
- Convert callback function to Flow
- 分布式计算实验4 随机信号分析系统
- 金仓数据库KingbaseES客户端编程接口指南-JDBC(10. JDBC 读写分离最佳实践)
- 在安装GBase 8c数据库的时候,报错显示“Host ips belong to different cluster”。这是为什么呢?有什么解决办法?
- 线程安全问题
- ConstraintSet of animation of ContrstrainLayout
- Distributed Computing Experiment 2 Thread Pool
- 【STM32】STM32F103系列名称与封装、内存
- 解决:Hbuilder工具点击发行打包,一直报尚未完成社区身份验证,请点击链接xxxxx,项目xxx发布H5失败的错误。
- 金仓数据库的单节点如何转集群?
猜你喜欢
随机推荐
IDEA引入类报错:“The file size (2.59 MB) exceeds the configured limit (2.56MB)
中职网络安全竞赛C模块MS17-010批量扫描
Lightweight Backbone VGNetG Achieves "No Choice, All" Lightweight Backbone Network
怎么写专利更容易通过?
分布式计算实验2 线程池
[Paper Notes] - Low Illumination Image Enhancement - Supervised - RetinexNet - 2018-BMVC
高等代数_证明_对称矩阵一定能够相似对角化
Distributed Computing Experiment 1 Load Balancing
给Unity Behavior Designer(Unity行为树) 的Can See Object 画圆锥辅助图
data:image/jpg; base64 format data is converted to image
分布式计算MapReduce | Spark实验
金仓数据库 KDTS 迁移工具使用指南 (4. BS 版使用说明)
YOLOv5应用轻量级通用上采样算子CARAFE
C# 实用的第三方库
字符流与字节流的区别
【NOI模拟赛】纸老虎博弈(博弈论SG函数,长链剖分)
第一次用postgreSQL,想装主从,用的12.7 tar.gz版本。安装好后没在 share目录下找到样例配置recovery.conf.sample,是安装方式不对,还是路径不对?
The sorting algorithm including selection, bubble, and insertion
Distributed Computing MapReduce | Spark Experiment
大家好,请教一个问题啊,我们通过flinkcdc把Oracle数据同步到doris,目前的问题是,只