YifanXu74 / MQ-Det

Official PyTorch implementation of "Multi-modal Queried Object Detection in the Wild" (accepted by NeurIPS 2023)
Apache License 2.0
258 stars 12 forks source link

Finetuning-free eval COCO datasets #21

Closed Qia98 closed 11 months ago

Qia98 commented 11 months ago

作者你好,我按照readme.md整理了coco数据集,并做了如下更改: 1、configs/pretrain/mq-glip-t_coco.yaml:将69,70行改为对应的train和val路径

2、执行了以下命令来Vision Query Extraction

python tools/extract_vision_query.py \
        --config_file configs/pretrain/mq-glip-t_coco.yaml \
        --dataset coco \
        --num_vision_queries 5 --add_name tiny

得到结果如下,并生成了MODEL/coco_query_5000_sel_tiny.pth文件,看上去没有问题

image

3、执行了以下命令来进行Finetuning-free Evaluation

python -m torch.distributed.launch --nproc_per_node=4 \
    tools/test_grounding_net.py \
    --config-file configs/pretrain/mq-glip-t_coco.yaml \
    --additional_model_config configs/vision_query_5shot/coco.yaml \
    VISION_QUERY.QUERY_BANK_PATH MODEL/coco_query_5000_sel_tiny.pth \
    MODEL.WEIGHT MODEL/groundingdino_swint_ogc.pth \
    TEST.IMS_PER_BATCH 4

处理时间约15分钟,输出结果如下

image

请问为什么所有的AP和AR结果均为0?

YifanXu74 commented 11 months ago

嗨, 可以确认一下下面这几项吗:

  1. 加载权重是否正确:1)你的命令中加载权重是MODEL/groundingdino_swint_ogc.pth,这是groundingdino原始权重,没有vision query的能力,相当于模型中的GCP还是随机初始化的状态,直接拿来测试肯定有问题;
  2. config文件和权重是否正确:这里使用的config文件是mq-glip-t_coco.yaml,是应该调用了glip-t模型,但是却加载了groundingdino的权重
  3. vision query提取:在做finetuning-free 测试时不需要抽取5000个vision query,这样会增加测试的随机性,因为在config文件里默认是测试时每个类别用5个vision query,见这里。可以在预训练时提5000个,在测试时重新提取5个。
  4. 在测试时,可以参考lvis_minival.yaml对config文件对应部分进行修改。

另外,我会在近期空闲的时候更新一版在自定义数据集下的finetuning-free和finetuning的指引,可以关注下哈