Atten4Vis / MS-DETR

[CVPR 2024] The official implementation for "MS-DETR: Efficient DETR Training with Mixed Supervision"
Apache License 2.0
64 stars 3 forks source link

Predictor复用问题 #7

Closed Peterande closed 2 months ago

Peterande commented 2 months ago

根据代码,self.class_embed和self.box_embed并没有像文章中描述的是独立于o2o的新检测头。似乎是共用的?

ZhaoChuyang commented 2 months ago

你好,在 implementation (c) 中 one-to-one 和 one-to-many 的 class_embed 和 box_embed 是共用的,因为它们用于预测的特征来自不同 attention layer 的特征,共用 predictor 的效果更好。消融实验的 Table 6 有关于共享 predictor 权重的结果。 对于 implementation (a) impl_a 这两个分支的 predictor 是不一样的,您可以参考这部分的代码。

Peterande commented 2 months ago

谢谢您的回答,我看到了相关的描述,想再请问一下merge indices在impl(c)中是默认开启的吗?

ZhaoChuyang commented 2 months ago

merge indices 在用 300 queries 训练时没有用,在使用 900 queries 训练时会增加 0.1~0.2 mAP,但是提升不是很稳定,而且会增加一定的复杂度。它对性能的影响很小,为了简单起见,在训练时可以不用这个,目前只有 900 queries 的实验用了它。

Peterande commented 2 months ago

好的,谢谢您。