AILab-CVC / YOLO-World

[CVPR 2024] Real-Time Open-Vocabulary Object Detection
https://www.yoloworld.cc
GNU General Public License v3.0
4.71k stars 456 forks source link

使用自定义数据集进行微调 #459

Open wenqiuL opened 3 months ago

wenqiuL commented 3 months ago

作者你好,我想请问使用yolo-world对自己的数据集进行微调并保证开放词汇的效果,应该怎么做,使用config/fine_tuning还是config/pretrain里的config文件呢?另外我观察到可能还需要使用自己的数据集与GQA数据集进行混合之后才能保留zero-shot能力的基础之上对自己的数据集达到更好的检测效果,如果要保留zero-shot能力,我应该用config/pretrain文件夹下的配置文件吗? 我目前使用的是自己的数据集,配置文件为configs/finetune_coco/yolo_world_v2_x_vlpan_bn_2e-4_80e_8gpus_mask-refine_finetune_coco.py,进行训练,这样做达到了还不错的mAP效果,但是我不太清楚这样做是否能保留zero-shot能力以及是否正确。

xyl3902596 commented 3 months ago

请问你达到了还不错的效果是指比pretrain权重mAP高几个点呢

wenqiuL commented 3 months ago

@xyl3902596 我使用的是我自己方向的数据集,没有与作者提供的表格里的权重mAP作比较。与方向数据相比,大概与目前的SOTA相当且个别数据集超过SOTA。 另外,请问你是否知道对自定义数据集进行微调如何保证开放词汇的效果呢?

xyl3902596 commented 3 months ago

你可以帮忙测一下么,我ft以后精度并不比pretrain高....感觉不太对。这个我觉得就直接用他的concat dataset一起加进来训? dataset=dict(delete=True, type='ConcatDataset', datasets=[ obj365v1_train_dataset, flickr_train_dataset, mg_train_dataset ], ignore_keys=['classes', 'palette']))

wenqiuL commented 3 months ago

请问你使用的config文件是config/fine_tuning还是config/pretrain里的呢?如果是pretrain里的,或许你可以参考一下[#299]的最后进行修改,通过自定义数据集和GQA进行混合训练。至于精度这方面我不太清楚,抱歉

wenqiuL commented 3 months ago

@xyl3902596 另外你是否有关于GQA的 final_mixed_train_no_coco.json文件呢,作者提供的链接似乎已经失效了

tm924222 commented 3 months ago

楼主你好,我想请问一下你训练的时候加权重了吗?

wenqiuL commented 3 months ago

@tm924222 加了,保留了config文件原本的权重没变

tm924222 commented 3 months ago

@tm924222 加了,保留了config文件原本的权重没变 好的,感谢

qiiiiiiiiiiiiiiiii commented 1 month ago

请问,你现在解决了微调后,zero-shot消失的问题吗?

wenqiuL commented 1 month ago

@qiiiiiiiiiiiiiiiii 没有解决