yolox+ByteTrack 自定义数据集训练

开的第一帖,就记录一下yolox+ByteTrack 自定义数据集训练吧!因为网上可找到的攻略太少!

顺便加一句,我也是刚入坑的菜鸟,为了弄明白自定义训练集训练废了不少劲!有什么出错的地方多多包涵!

言归正传

我的数据集是用labelimg做的voc数据集,因为ByteTrack是需要用coco数据集训练。

所以我将voc格式转到了coco格式

yolox+ByteTrack 自定义数据集训练_第1张图片

 mot_101 随便起的,但是下面的子文件的名最好还是按照图中的来,不然的话要改好多代码,费劲!train 跟 val 放的都是做标签用的图片。

 这是我xx.json文件里的信息,事先一定要搞清楚json文件里边包含了什么信息!

因为不同数据格式包含的信息不同,转成coco后的 json 包含的信息也不同

很重要,因为后边改代码要用到

 然后进入  ..\ByteTrack-main\exps\example\mot   文件下  找到   yolox_x_ch.py    (别的文件也可以,应该...

复制,粘贴一下,改成你自己文件名

 yolox+ByteTrack 自定义数据集训练_第2张图片

 需要改的参数就是  

self.num_classes self.depth self.width self.train_ann self.val_ann  这几项

其余的参数根据需要自己定就行

接下来是修改该文件下的 get_data_loader   get_eval_loader   两个函数内的代码

yolox+ByteTrack 自定义数据集训练_第3张图片

yolox+ByteTrack 自定义数据集训练_第4张图片

 很明显就是文件名

接下来重点来了

找到 D:\....\ByteTrack-main\yolox\data\datasets\mot.py 文件

yolox+ByteTrack 自定义数据集训练_第5张图片

代码60行:从我上边数据的截图中可以看出,我数据中的  frame_id  就是 id   所以做出了修改

这要根据不同的数距命名来修改成对应的名字

代码61行:我的数据中没有 video_id  所以就注释掉了

如果你有的话,还是改成json中 对应的名字

yolox+ByteTrack 自定义数据集训练_第6张图片

 代码81行:同样道理,我的json文件中没有 track_id 信息 ,所以也注释掉

代码84行:同上,去掉 video_id  直接复制

到目前为止,所有的修改工作就完成了(反正我的到这就可以 train 了)!

然后就下载预训练权重 我的是 yolox_m.pth  和 修改的 your_exp_file.py

python tools/train.py -f exps/example/mot/your_exp_file.py -d 8 -b 48 --fp16 -o -c pretrained/yolox_m.pth

 yolox+ByteTrack 自定义数据集训练_第7张图片

我这水平就只能到这了,要继续去看源码了

 

你可能感兴趣的:(深度学习,人工智能,python)