YOLOx 官方数据集训练方法2(COCO)
1.准备工作
下载数据集(这是博主目前找到的最小的数据集文件了,很多数据集都是好几个G,根本没法下载,太大了~):
https://www.kaggle.com/datasets/sagnik1511/thermal-dog-dataset-instance-segmentation
该下载地址需要登录,但是注册比较麻烦,关于注册的问题,可以参考《YOLOv5 官方数据集训练方法》
数据集下载:
链接:https://pan.baidu.com/s/113kJW9LUUi2C3rL058RByg
提取码:lce8

将数据集解压到“YOLOX-main\datasets”目录下

文件含义说明:
| 训练集标签 | 测试集标签 |
目标检测 | instances_train2017.json | instances_val2017.json |
关键点检测 | person_keypoints_train2017.json | person_keypoints_val2017.json |
看图说话 | captions_train2017.json | captions_val2017.json |
来源:https://www.ai2news.com/blog/2950594/#google_vignette
2.修改文件
1、将"datasets/coco annotations/annotations"文件夹,拷贝到“datasets/train”目录下,不然训练会出错。
2、将“datasets/validation/val2017”文件夹,拷贝到“datasets/train”目录下,不然训练会出错。
就像下面这样:

3、第一个需要修改的文件是“YOLOX-main\YOLOX-main\yolox\data\datasets\coco_classes.py”
打开“instances_train2017.json”文件,可以知道,里面涉及到的种类有两种。我们修改如下:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# Copyright (c) Megvii, Inc. and its affiliates.
COCO_CLASSES = (
"Human",
"Dog"
)
4、第二个修改修改的文件是“YOLOX-main\YOLOX-main\exps\example\custom\yolox_s.py”
该文件记录了训练图片的路径,修改如下:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# Copyright (c) Megvii, Inc. and its affiliates.
import os
from yolox.exp import Exp as MyExp
class Exp(MyExp):
def __init__(self):
super(Exp, self).__init__()
self.depth = 0.33
self.width = 0.50
self.exp_name = os.path.split(os.path.realpath(__file__))[1].split(".")[0]
# Define yourself dataset path
self.data_dir = "datasets/train"
self.train_ann = "instances_train2017.json"
self.val_ann = "instances_val2017.json"
# 种类数
self.num_classes = 2
# 训练次数
self.max_epoch = 100
# 线程数,windows下要设置成0
self.data_num_workers = 0
# 每训练10次就进行一次评估
self.eval_interval = 10
2.官方图库训练流程
注意:训练时如果报下面这个错误,则需要配置环境变量。
Command '['where', 'cl']' returned non-zero exit status 1.
参考博客:https://blog.csdn.net/SINPER123/article/details/124920875
主要操作也就是添加下面两个环境变量(需要最新的Visual Studio环境)
1、新建环境变量INCLUDE,添加:(Include可能有多个版本,经验是选择新的)
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\Include; C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\Ucrt; C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\Um; C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared; |
2、新建环境变量LIB, 添加:
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\Lib\X64; C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\Ucrt\X64; C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\Um\X64; |
说明:如果想使用GPU进行训练,请在train.py文件的前面添加下面代码
import os
os.environ['CUDA_VISIBLE_DEVICES']='0'

然后执行训练命令:
python tools/train.py -f exps/example/custom/yolox_s.py -d 1 -b 8 --fp16 -c yolox_s.pth

编译完了就生成下面这些文件了。

然后使用best_ckpt.pth文件去测试我们的图片,命令如下:
python tools/demo.py image -f exps/example/custom/yolox_s.py -c ./YOLOX_outputs/yolox_s/best_ckpt.pth --path assets/me.jpg --conf 0.3 --nms 0.65 --tsize 640 --save_result
识别结果保存在“YOLOX-main\YOLOX_outputs\yolox_s\vis_res\2023_02_09_20_29_18”目录下面:
