开的第一帖,就记录一下yolox+ByteTrack 自定义数据集训练吧!因为网上可找到的攻略太少!
顺便加一句,我也是刚入坑的菜鸟,为了弄明白自定义训练集训练废了不少劲!有什么出错的地方多多包涵!
言归正传
我的数据集是用labelimg做的voc数据集,因为ByteTrack是需要用coco数据集训练。
所以我将voc格式转到了coco格式
mot_101 随便起的,但是下面的子文件的名最好还是按照图中的来,不然的话要改好多代码,费劲!train 跟 val 放的都是做标签用的图片。
这是我xx.json文件里的信息,事先一定要搞清楚json文件里边包含了什么信息!
因为不同数据格式包含的信息不同,转成coco后的 json 包含的信息也不同
很重要,因为后边改代码要用到
然后进入 **..**\ByteTrack-main\exps\example\mot 文件下 找到 yolox_x_ch.py (别的文件也可以,应该...)
复制,粘贴一下,改成你自己文件名
需要改的参数就是
self.num_classes self.depth self.width self.train_ann self.val_ann 这几项
其余的参数根据需要自己定就行
接下来是修改该文件下的 get_data_loader get_eval_loader 两个函数内的代码
很明显就是文件名
接下来重点来了
找到 D:....\ByteTrack-main\yolox\data\datasets\mot.py 文件
代码60行:从我上边数据的截图中可以看出,我数据中的 frame_id 就是 id 所以做出了修改
这要根据不同的数距命名来修改成对应的名字
代码61行:我的数据中没有 video_id 所以就注释掉了
如果你有的话,还是改成json中 对应的名字
代码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
我这水平就只能到这了,要继续去看源码了
版权归原作者 Ddddd4431 所有, 如有侵权,请联系我们删除。