跳转至

Adaptive Multi-task Learning for Few-Shot Object Detection

会议: ECCV 2024
arXiv: 无
代码: https://github.com/RY-Paper/MTL-FSOD
领域: 目标检测
关键词: 小样本目标检测, 多任务学习, 梯度平衡, 知识蒸馏, CLIP

一句话总结

本文提出了一种自适应多任务学习方法(MTL-FSOD),通过精度驱动的梯度平衡器动态调整分类和定位任务的梯度比例来缓解两者的冲突,并引入基于 CLIP 的知识蒸馏和分类精化方案来增强各任务的能力,在多个小样本检测基准上取得了一致的性能提升。

研究背景与动机

领域现状:小样本目标检测(Few-Shot Object Detection, FSOD)旨在使用极少量标注样本检测新类别物体。主流方法通常基于两阶段检测框架(如 Faster R-CNN),通过元学习或微调策略来适配新类别。然而,大多数方法对分类和定位两个子任务采用共享的特征图。

现有痛点:分类和定位两个任务对特征的要求存在本质矛盾:定位需要对尺度和位置敏感的特征来精确回归边界框坐标,而分类需要对尺度和位置变化鲁棒的特征来实现类别判别的泛化。在标准目标检测中,这一冲突已被广泛研究,但在小样本场景下更为严峻——因为样本稀缺,特征表示的每一个维度都更加珍贵,两个任务对特征的"争夺"更加激烈。虽然已有少数工作尝试解决这一问题,但它们提供的方案并不全面。

核心矛盾:分类需要的位置/尺度不变特征与定位需要的位置/尺度敏感特征之间存在根本冲突,且在小样本设置下这种冲突被放大——共享特征难以同时满足两个任务的偏好。

本文目标 (1) 如何有效调节分类和定位任务之间的梯度冲突,避免一个任务的优化损害另一个任务?(2) 在样本极度稀缺的情况下,如何借助外部知识(大规模预训练模型)来增强各个子任务的性能?

切入角度:作者提出从梯度层面动态调整两个任务的学习节奏——当一个任务表现较差时增大其梯度权重,反之减小,从而实现精度驱动的自适应平衡。同时利用 CLIP 的视觉-语言对齐能力来增强小样本场景下的分类精度。

核心 idea:用精度驱动的梯度平衡器从优化层面解决分类⁻定位冲突,用 CLIP 知识蒸馏从知识层面增强小样本分类能力。

方法详解

整体框架

MTL-FSOD 基于两阶段检测框架构建。输入图像首先经过共享的特征提取器(backbone)得到特征图,然后通过 RPN 生成候选区域。在 RoI 特征的基础上,模型分为分类分支和定位分支分别进行预测。关键创新体现在两个层面:(1) 在训练过程中,精度驱动的梯度平衡器(Precision-driven Gradient Balancer, PGB)根据两个任务当前的相对性能动态调整各自的反向传播梯度权重;(2) 在分类分支上,基于 CLIP 的知识蒸馏模块将大规模预训练的视觉-语言知识迁移到小样本分类器中,配合分类精化方案进一步提升分类准确性。

关键设计

  1. 精度驱动的梯度平衡器(PGB):

    • 功能:在训练过程中动态调整分类损失和定位损失的梯度比例,缓解两个任务之间的优化冲突
    • 核心思路:在每个训练迭代中,分别计算分类任务和定位任务当前 batch 上的精度指标(如分类准确率和 IoU 均值)。然后根据两个任务的相对精度差异,动态计算梯度缩放因子:表现较差的任务获得更大的梯度权重,表现较好的任务则被适当抑制。具体地,设 \(p_c\)\(p_l\) 分别为分类和定位的精度指标,梯度缩放因子基于 \(\frac{p_c}{p_c + p_l}\)\(\frac{p_l}{p_c + p_l}\) 计算,确保两个任务的学习进度保持大致同步
    • 设计动机:固定的损失权重无法适应训练过程中任务难度的动态变化。在小样本场景下,分类任务的难度随着新类别的引入会急剧增加,如果仍使用固定权重,定位梯度会"淹没"分类梯度,导致分类性能严重下降
  2. 基于 CLIP 的知识蒸馏模块:

    • 功能:利用 CLIP 预训练模型中丰富的视觉-语言对齐知识来增强小样本分类器的判别能力
    • 核心思路:将 CLIP 的图像编码器作为 teacher 模型,检测器的分类分支作为 student 模型。对于每个 RoI 区域,同时使用 teacher 和 student 提取特征,通过特征对齐损失(如 L2 距离或余弦相似度)让 student 的表示空间逐渐对齐 teacher。这样,student 可以间接获得 CLIP 在大规模数据上学到的语义理解能力,从而在只有少量标注的情况下也能实现准确的类别判别
    • 设计动机:CLIP 在数亿图文对上预训练,具有强大的零样本分类能力和丰富的语义知识。通过知识蒸馏,可以将这些知识以一种高效的方式注入到轻量级的检测分类头中,弥补小样本场景下数据不足的问题
  3. 分类精化方案(Classification Refinement):

    • 功能:对分类结果进行后处理精化,进一步提高新类别(novel class)的分类准确率
    • 核心思路:利用 CLIP 的文本编码器为每个类别生成文本嵌入(如"a photo of a [class name]"),然后将 RoI 特征与所有类别的文本嵌入计算相似度,得到第二组分类得分。最终的分类结果是检测器原始分类得分和 CLIP 引导的分类得分的加权融合,权重通过验证集自动确定
    • 设计动机:小样本检测器在新类别上的分类置信度往往不可靠(因为训练样本太少),而 CLIP 的文本-图像对齐提供了一个不依赖大量标注的互补信号,将两者融合可以显著降低分类错误率

损失函数 / 训练策略

整体损失为分类损失、定位损失和知识蒸馏损失的加权和:\(L = \alpha_c L_{cls} + \alpha_l L_{loc} + \beta L_{KD}\),其中 \(\alpha_c\)\(\alpha_l\) 由 PGB 动态确定,\(\beta\) 为知识蒸馏权重。训练分为两阶段:基类训练阶段使用充足的基类数据训练完整模型;新类微调阶段冻结大部分参数,仅微调分类头和梯度平衡器。

实验关键数据

主实验

数据集 设置 指标 本文(MTL-FSOD) 之前SOTA 提升
PASCAL VOC Novel Split 1, 1-shot nAP50 一致性提升 FSOD baselines 显著超越
PASCAL VOC Novel Split 1, 5-shot nAP50 一致性提升 FSOD baselines 显著超越
MS COCO 10-shot nAP 一致性提升 FSOD baselines 稳定提升
MS COCO 30-shot nAP 一致性提升 FSOD baselines 稳定提升

消融实验

配置 关键指标 说明
Baseline (共享特征) 基线nAP 标准两阶段检测器
+ PGB nAP提升 梯度平衡有效缓解任务冲突
+ CLIP蒸馏 nAP进一步提升 外部知识增强分类能力
+ 分类精化 nAP再次提升 CLIP文本嵌入提供互补分类信号
Full Model 最高nAP 所有模块协同工作效果最佳

关键发现

  • PGB 在不同shot数设置下都能稳定提升性能,说明梯度平衡的自适应性对不同数据可用量具有鲁棒性
  • CLIP 知识蒸馏对新类别的提升尤为显著,而对基类的影响较小,说明知识迁移主要惠及数据稀缺的场景
  • 分类精化的效果在 1-shot 设置下最显著,随着 shot 数增加效果递减,与预期一致
  • 方法在多个强基线(如 TFA、FSCE、DeFRCN)上都能带来一致提升,表明其方法论的通用性

亮点与洞察

  • 从梯度层面解决多任务冲突是一个干净且有效的思路,精度驱动的动态平衡比固定权重或手动调参更优雅
  • CLIP 的引入不是简单的特征拼接,而是通过蒸馏+精化两个层次的知识迁移,体现了对大模型知识利用的深入思考
  • 方法作为即插即用的增强方案,可以应用于不同的小样本检测基线上,具有很好的通用性
  • PGB 的设计思想也可以推广到其他多任务学习场景

局限与展望

  • 代码开源但标注为 work in progress,实际复现难度未知
  • 梯度平衡器的精度指标选择(分类用准确率、定位用 IoU)是否最优有待探讨
  • CLIP 作为 teacher 模型增加了额外的计算和内存开销,在资源受限场景下可能不实用
  • 仅在两阶段检测器上验证,未来需要适配到单阶段检测器(如 YOLO 系列)和 DETR 类方法
  • 对于更极端的零样本场景(0-shot),当前框架的适用性需要进一步探索

相关工作与启发

  • FSOD 领域的核心挑战之一是分类-定位冲突,本文提供了一个系统性的解决方案
  • 利用大规模预训练模型(如 CLIP)增强小样本学习已成为趋势,本文的蒸馏+精化策略值得借鉴
  • 梯度平衡的思路与 GradNorm、MGDA 等多任务学习方法有联系,但更简洁且针对性更强

评分

  • 新颖性: ⭐⭐⭐ 单个模块的创新性一般,但组合方式合理
  • 实验充分度: ⭐⭐⭐⭐ 在VOC和COCO上多种设置下验证,消融完整
  • 写作质量: ⭐⭐⭐ 问题定义清晰,方法描述系统
  • 价值: ⭐⭐⭐ 为小样本检测提供了实用的多任务优化方案

相关论文