论文链接:http://export.arxiv.org/pdf/2307.12612
代码链接:https://github.com/huawei-noah/noah-research
1.动机
本文主要针对的是DETR类方法过高的计算复杂度问题,具体而言是encoder中所有的位置都作为key带来的高计算代价。针对该问题,目前已经有像sparse detr一类的方法,通过不同的稀疏策略选择小部分更具有信息量的token参与计算,从而降低计算复杂度。但作者认为这类方法过于依赖不可靠的模型统计结果,且简单的减少token的数目会很大程度影响检测的精度。
这么评价sparse detr 是否有失偏颇呢?
sparse detr
Sparse detr的动机是注意到在deformable detr方法中,即使encoder中只有部分token被更新,也不会导致指标出现明显掉点,因此sparse detr选择在encoder中只更新那些在decoder中更可能被访问到的token,从而降低计算量。
Sparse detr的结构如下:
从sparse detr的结构上来看,scoring network的监督gt来自于decoder输出,虽然保证了和最终decoder的显式关联,但在训练初期没有收敛的情况下确实会出现DAM不稳定的情况。
2. 方法
针对于sparse detr scoring network 监督不够稳定的问题,自然而然的选择了更直接的gt方式,其结构如下:
其中top-down score modulation,是利用高语义层提供区域权重辅助低语义层更好的区分前背景。该模块根据尺度信息将gt分配给不同层的token监督。
除此之外,作者还在encoder中额外引入了一个类别置信度预测模块,其动机是认为细粒度的类别信息能够进一步筛选更强的细粒度token。(这部分好像没有监督)
整个encoder的计算流程如下, 监督loss右图所示,这里使用了denoising loss,文中没有提到这部分,应该和dino类似的方式,作用在decoder中。
关于计算复杂度分析有点乱,主要结论就是说 细粒度token增强过程引入的额外计算开销微乎其微。
3. 结果
3.1 训练
ImageNet 上预训练的ResNet-50作为backbone
AdamW 优化器,backbone 初始学习率1e-5, transformer 学习率1e-4, wd 1e-4. bs=16
3.2 消融实验
Foreground token selection过程,监督提升1个点,自顶向下置信度调制能再增加0.4个点
Cascade 表示encoder layer 送进去的fore ground逐层递减,目的是在开始的时候可以有更大的容错率;
作者认为dual attention能引入语义信息?
还对比了foreground token 的裁剪率的影响,从实验选择的参数来看,保留的越多整体指标越高
3.3 对比实验
-
思考
- 这一系列其实还是在强化显著特征,通过encoder中不断更新decoder ref_pts需要访问的区域,使模型模型更好,在e2e 中因为ref_pts 是由第一阶段确定的,其实可以类似的强化ref_pts 周围特征的鉴别性。