跳转至

MutDet: Mutually Optimizing Pre-training for Remote Sensing Object Detection

会议: ECCV 2024
arXiv: 2407.09920
代码:
领域: 目标检测(遥感旋转目标检测)
关键词: 检测预训练, 旋转目标检测, 遥感, DETR, 对比学习

一句话总结

提出 MutDet,一种面向遥感旋转目标检测的互优化预训练框架,通过双向交叉注意力融合 object embeddings 与 encoder 特征、对比对齐损失、以及辅助孪生头,系统性地缓解了检测预训练中 object embeddings 与 detector features 之间的特征差异问题。

研究背景与动机

问题引入

DETR 系列检测器近年来在遥感图像旋转目标检测中取得成功,但 DETR 的训练和优化具有挑战性,需要大规模标注数据集。遥感图像中目标密集分布、方向任意,标注成本极高,因此难以获取大规模标注数据集。检测预训练(detection pre-training)通过使用伪标签对检测模块进行无监督预训练,是解决该问题的有效途径。

现有方法的局限

现有的检测预训练方法主要分为两类:

预测性方法(如 UP-DETR、DETReg):通过让检测器对齐从预训练 backbone 裁剪提取的 object embeddings 来实现预训练。但 object embeddings 与 detector features 之间存在显著的特征差异(feature discrepancy),因为两者的特征提取方式不同——检测器利用图像特征和 DETR decoder 预测 embeddings,而 object embeddings 是通过整个 backbone 从裁剪图像中提取的。遥感图像复杂环境和密集目标分布进一步加剧了这种差异。

自监督学习方法(如 AlignDet、PreSoCo):通过约束不同视角下实例特征的一致性来实现自训练,但错过了预训练 backbone 中蕴含的宝贵视觉知识。

核心动机

MutDet 的核心动机是:不是简单地让检测器去拟合 object embeddings,而是让两者互相优化。通过双向融合拉近两类特征的分布距离,使检测器能更有效地从预训练 backbone 学习视觉知识,同时使用对比学习防止特征坍缩。

方法详解

整体框架

给定输入图像 \(I\),首先通过离线方式生成伪标签(使用 SAM 生成旋转边界框,预训练 backbone 提取 object embeddings \(O\),PCA 降维至 256 维,k-means 聚类为 256 类)。图像经过冻结的 backbone 和 DETR encoder 得到 encoder 特征 \(F\),然后 \(F\)\(O\) 送入 互增强模块 得到增强后的 \(F_{enh}\)\(O_{enh}\)\(F_{enh}\) 送入 DETR decoder 预测 embeddings \(\hat{Z}_{dec}\),同时通过 辅助孪生头(使用原始 \(F\))预测 \(\hat{Z}_{aux}\)。最终通过 对比对齐损失 完成多路径的对齐优化。

关键设计

1. 互增强模块(Mutual Enhancement Module)

功能:双向融合 object embeddings \(O \in \mathbb{R}^{M \times C}\) 和 encoder 特征 \(F \in \mathbb{R}^{K \times C}\),缓解两者之间的特征差异。

核心思路:使用 3 层增强层,每层包含双向交叉注意力:

\[O' = \text{LN}(\text{MHSA}(O_i) + O_i), \quad O'' = \text{LN}(\text{MHCA}(O', F_i) + O')$$ $$O_{i+1} = \text{LN}(\text{MLP}(O'') + O''), \quad F_{i+1} = \text{LN}(\text{MHCA}(F_i, O_{i+1}) + F_i)\]

其中 \(O\) 先通过自注意力和对 \(F\) 的交叉注意力进行更新,然后 \(F\) 通过对更新后的 \(O\) 的交叉注意力进行增强。

设计动机:从反向传播角度看,DETReg 只能通过单一路径接收来自 object embeddings 的监督信号。而 MutDet 的互增强模块在前向传播中将 object embeddings 与 encoder 特征充分融合,使监督信号能通过多条路径影响检测器的各个模块,从而更有效地学习预训练 backbone 中的视觉知识。

2. 对比对齐损失(Contrastive Alignment Loss)

功能:对增强后的 embeddings \(O_{enh}\) 与预测 embeddings 进行对齐。

核心思路:采用双向对比学习损失:

\[\mathcal{L}_{ca}(Z,O) = -\frac{2\tau}{M}\sum_{i=1}^{M}\left[\log\frac{\exp(\mathbf{z}_i \cdot \mathbf{o}_i / \tau)}{\sum_{k=1}^{M}\exp(\mathbf{z}_i \cdot \mathbf{o}_k / \tau)} + \log\frac{\exp(\mathbf{o}_i \cdot \mathbf{z}_i / \tau)}{\sum_{k=1}^{M}\exp(\mathbf{o}_i \cdot \mathbf{z}_k / \tau)}\right]\]

检测器总对齐损失同时作用于 encoder 和 decoder 预测:

\[\mathcal{L}_{ca}^{det} = \mathcal{L}_{ca}(\hat{Z}_{enc}^+, O_{enh}) + \mathcal{L}_{ca}(\hat{Z}_{dec}^+, O_{enh})\]

设计动机:(1)实例级对比对齐等价于最大化 object embeddings 与 predicted embeddings 分布间的互信息;(2)由于增强后的 object embeddings 变为可学习的,直接使用蒸馏损失会导致特征坍缩,而对比学习中的负样本有效解决了这个问题。

3. 辅助孪生头(Auxiliary Siamese Head)

功能:缓解互增强模块引入的预训练与微调之间的任务差距(task gap)。

核心思路:引入一个与 DETR decoder 共享参数的辅助头,接收原始未增强的 encoder 特征 \(F\)(而非增强后的 \(F_{enh}\))作为输入,使用伪标签直接监督其输出:

\[\mathcal{L}_{det}^{aux} = \mathcal{L}_{ca}^{aux} + \mathcal{L}_{cls}^{aux} + \mathcal{L}_{reg}^{aux} + \mathcal{L}_{ang}^{aux}\]

设计动机:微调时 object embeddings 不可用,因此互增强模块无法使用,这会导致预训练和微调之间的任务差距。辅助孪生头让 decoder 同时适应原始特征 \(F\) 的分布,同时共享参数作为隐式约束引导 \(F\)\(F_{enh}\) 靠近。与 encoder 特征蒸馏(+0.2 AP50)和 decoder 交叉蒸馏(+0.5 AP50)相比,辅助孪生头效果最好(+1.3 AP50)。

损失函数 / 训练策略

总损失为:\(\mathcal{L}_{mut} = \mathcal{L}_{det} + \mathcal{L}_{det}^{aux}\)

其中 \(\mathcal{L}_{det} = \mathcal{L}_{ca}^{det} + \mathcal{L}_{cls} + \mathcal{L}_{reg} + \mathcal{L}_{ang}\),包含对比对齐、focal loss 分类、GIoU+L1 回归、角度分类损失。

  • 预训练:冻结 backbone(ImageNet 预训练),在 DOTA-v1.0 上训练 36 epochs,AdamW 优化器,lr=1e-4
  • 微调:使用预训练权重初始化,在下游数据集上训练 36 epochs

实验关键数据

主实验

DIOR-R 数据集(20 类遥感旋转检测)

方法 AP50 AP75 对比 pre-training free
Pre-training free 65.7 45.7 -
UP-DETR 67.1 48.4 +1.4 / +2.7
AlignDet 65.8 45.8 +0.1 / +0.1
DETReg 67.9 49.1 +2.2 / +3.4
MutDet (Ours) 70.7 51.2 +5.0 / +5.5

DOTA-v1.0 数据集(15 类)

方法 AP50 AP75
Pre-training free 72.9 49.6
DETReg 72.6 49.4
MutDet (Ours) 74.5 51.6

注:DOTA 同时用作预训练和微调,其他方法出现负迁移,而 MutDet 仍能提升 1.6%。

消融实验

组件消融(DIOR-R, 12/24/36 epoch AP50)

配置 12 ep 24 ep 36 ep 说明
DETReg baseline 62.1 65.1 67.9 基线
+ 对比损失 62.6 65.8 68.5 +0.6
+ 增强 embedding 62.8 65.9 68.7 +0.8
+ 增强 feature 65.5 67.0 69.5 核心提升 +1.6
+ encoder 损失 + 孪生头 66.9 69.8 70.7 完整 MutDet +2.8

低数据量场景(DIOR-R, k% 标注数据)

数据比例 Pre-training free DETReg MutDet MutDet 提升
10% 37.9 50.8 56.9 +19.0 / +6.1 vs DETReg
25% 51.1 58.4 62.9 +11.8 / +4.5 vs DETReg
50% 58.8 63.1 66.7 +7.9 / +3.6 vs DETReg
100% 65.7 67.9 70.7 +5.0 / +2.8 vs DETReg

关键发现

  1. 数据越少,预训练增益越大:使用 10% 数据时 MutDet 比 DETReg 高 6.1% AP50;使用 50% 数据即可匹配无预训练的 100% 数据性能
  2. MutDet 是唯一在 DOTA 同数据集预训练+微调下仍能获得正向增益的方法,其他方法均出现负迁移
  3. 互增强模块中的 enhanced feature 是性能提升的核心(12 epoch 直接提升 3.4%)
  4. 辅助孪生头优于 encoder 蒸馏和 decoder 交叉蒸馏策略

亮点与洞察

  • 首个遥感领域的检测预训练方法,系统性地将自然场景的预训练范式迁移到遥感
  • 互优化的思路巧妙:不是单向蒸馏/对齐,而是让 object embeddings 和 detector features 双向融合后再对齐,从根本上缓解了特征差异
  • 利用 SAM 生成高质量遥感伪标签(旋转框),替代传统的 Selective Search
  • 辅助孪生头的设计简洁但有效,通过共享参数隐式约束原始特征向增强特征靠近

局限与展望

  • 预训练阶段仍依赖较大的计算资源(4 GPU、36 epochs),缩短预训练时间是值得探索的方向
  • 仅在 ARS-DETR 上验证,是否适用于其他 DETR 变体(如 RT-DETR)或非 DETR 检测器有待验证
  • 互增强模块在微调阶段被完全丢弃,能否设计轻量级替代品保留部分增益
  • 目前伪标签质量受 SAM 性能影响,对于极小目标可能不够准确

相关工作与启发

  • DETReg / UP-DETR:本文的直接 baseline,MutDet 在其基础上系统性改进了对齐方式
  • AlignDet / ProSeCo:指出了特征差异问题但采用自监督方式规避,错失 backbone 知识
  • SAM:在遥感领域替代 Selective Search 生成伪标签的有效工具
  • 对比学习在检测预训练中的应用值得进一步探索

评分

  • 新颖性: ⭐⭐⭐⭐ — 互优化的预训练范式是新的,系统性地解决了特征差异问题
  • 实验充分度: ⭐⭐⭐⭐⭐ — 3 个数据集、多个训练设定(低数据/少 epoch)、详细消融
  • 写作质量: ⭐⭐⭐⭐ — 结构清晰,动机和方法阐述到位
  • 价值: ⭐⭐⭐⭐ — 遥感检测预训练的开创性工作,低数据场景下提升显著

相关论文