使用yolox训练自己的数据集并测试

该文详细介绍了如何下载并使用Yolox模型,包括从GitHub获取源码,通过百度网盘链接下载预训练模型,修改训练配置如数据集和类别,处理训练时的库冲突问题,以及训练后模型的测试和应用到图像或摄像头视频上。
该文章已生成可运行项目,

1.首先给出yolox原模型的下载地址:

​​​​​​https://github.com/bubbliiiing/yolox-pytorch

百度网盘链接给出自己完整的模型(包括数据集以及权重文件):

链接:https://pan.baidu.com/s/1JNjB42u9eGNhRjr1SfD_Tw 
提取码:otq0

2.训练模型:修改模型里面的数据集以及一些参数

1.选择配置好的深度学习环境

2.修改train.py里面的classes_path,将自己想要分类的类别填充进去

 3.修改权重文件

如果使用yolox_m作为初始权重来训练,需要将phi的值修改为m

4.修改冻结阶段和非冻结阶段的epoch 和batch_size,不启用冻结阶段

batch_size设置为8,因为设置为16之后发现爆显存了

epoch设置为600

5.划分训练集和测试集

为了省去不必要的麻烦,将自己的数据集名称改为VOC2007,放在VOCdevkit文件夹下面

 然后运行voc_annotation.py

会生成这些文件

里面是图片的路径,以及标注框的坐标

 6.在训练中遇到报错:Initializing libiomp5md.dll, but found libiomp5md.dll already

解决办法:

在训练代码的开头加上这一行代码:

import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"

 7.运行train.py,开始训练

 8.得到训练结果和权重文件

2.将训练好的模型来进行测试

1.在yolo.py里面修改分类路径以及损失最小的模型权重文件的路径

2.如果在训练的时候修改了phi,比如说训练使用的是yolox_m权重,那么测试的时候也要修改成对应的phi

 3.遇到报错:No module named 'onnx',有包没有导入 

直接点这个Install package onnx 

导入成功,报错解决 

4.运行predict.py,输入图片路径来进行测试

hat1.jpg

 得到测试结果

 hat2.jpg

得到测试结果

也可以使用摄像头或者视频来进行识别:修改一下mode的值

 看的出来,效果还是很好的。 

本文章已经生成可运行项目
### 如何使用训练好的YOLO模型进行测试 对于已训练完毕的YOLO模型,在执行测试之前,确保拥有配置文件(如`.yaml`)、权重文件(通常是`.pt`格式),以及待测图像或视频的数据路径。为了简化操作提高效率,Ultralytics提供了便捷的方法来加载预训练模型对新样本实施推理。 #### 加载预训练模型 利用Python脚本可以轻松调用官方库函数实现这一过程: ```python from ultralytics import YOLO model = YOLO('path/to/best.pt') # 载入最佳权重文件 ``` 此处`best.pt`代表保存的最佳性能模型参数;需替换为实际存储位置[^3]。 #### 执行预测任务 一旦成功加载了模型,则可通过简单命令对指定图片或视频流开展实时检测工作: ```python results = model.predict(source='0', save=True, show=True) # source可设置成摄像头编号(整数),本地文件路径(String), 或者URL链接(String) # 设置save=True表示将结果保存到disk,默认存放在runs/detect/exp目录下; # 同时show=True可以在屏幕上显示处理后的帧画面。 ``` 上述代码片段展示了如何针对不同类型的输入源启动对象识别程序,且能够自动记录输出以便后续分析[^4]。 #### 结果解析与可视化 每次调用predict方法后都会返回一个Result对象列表,其中包含了每张图对应的边界框坐标、类别标签及其置信度得分等重要信息。这些属性可以直接访问用于进一步定制化展示效果或是与其他应用程序集成交互。 ```python for r in results: boxes = r.boxes.cpu().numpy() # 获取所有预测框的位置信息 scores = r.scores.cpu().numpy() # 对应于各个box的概率分数 labels = r.names # 类别名称映射表 print(f'共发现{len(boxes)}个物体') ``` 此部分代码示范了怎样提取出每一次推断的结果细节,方便开发者依据需求做更深层次的应用开发[^1]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值