Skip to content

LAE: Locate Anything on Earth — Advancing Open-Vocabulary Object Detection for Remote Sensing

  • 来源: https://arxiv.org/abs/2408.09110
  • 本地Markdown: ../raw/2024-08-17-lae.md
  • 本地LaTeX: ../raw/2024-08-17-lae-latex/
  • 日期: 2024-08-17
  • 标签: open-vocabulary detection, remote sensing, DINO, data engine, dynamic vocabulary
  • 研究方向: 2D Object Detection → 开放词汇检测 → 遥感目标检测
  • 作者: Jiancheng Pan, Yanxing Liu, Yuqian Fu, Muyuan Ma, Jiahao Li, Danda Pani Paudel, Luc Van Gool, Xiaomeng Huang
  • 代码: https://github.com/jaychempan/LAE-DINO
  • 引用: 49

摘要

问题: 遥感领域缺乏大规模多样化标注数据,现有 OVD 方法都在自然图像上训练/测试,直接迁移到遥感存在巨大域差距。

方案: LAE(Locate Anything on Earth),从数据+模型两方面推进遥感 OVD:

  • LAE-Label Engine: 统一 10 个遥感数据集构建 LAE-1M(100 万标注实例,~1600 词汇量)
  • LAE-DINO: DINO-based 检测器,含两个新模块:
    • DVC(Dynamic Vocabulary Construction):动态选择每 batch 的正负词汇
    • VisGT(Visual-Guided Text Prompt Learning):用视觉场景特征引导文本特征

验证: 用 LAE-1M 训练后,在三个 benchmark 上直接测试(零样本迁移,无 fine-tune):

  • DIOR(20 类,已有公开数据集):AP50 85.5
  • DOTAv2.0(已有公开数据集):mAP 46.8
  • LAE-80C(作者自建,80 类):mAP 20.2——构建方式:先保留 DIOR test set 的 20 类图像,再从 DOTAv2.0 test set 补 DIOR 没有的类,再从 FAIR1M/Xview/Condensing-Tower 的 test/val set 补更多类,合并成 80 类评测集。图像和类别都来自各源数据集,LAE-80C 与 DIOR/DOTAv2.0 评测集有图像级重合(DIOR test set 的图同时出现在 DIOR 评测和 LAE-80C 评测中)

1. Introduction

背景:

  • OVD 允许检测任意新类别,但当前 SOTA 方法都在自然图像上验证
  • 遥感图像分辨率高、风格特殊、语义类别不同,直接迁移非平凡

挑战:

  • 遥感缺乏多样化标注数据
  • 现有 OVD 检测器(GroundingDINO 等)的词汇构建和图文交互不适用于遥感场景

贡献:

  1. 提出 LAE 任务定位,构建 LAE-1M 数据集(首个大规模遥感 OVD 数据集,100 万实例)
  2. LAE-DINO 检测器:DVC 解决大词汇量问题,VisGT 增强图文交互
  3. 开集+闭集全面实验验证

2.1 遥感通用目标检测

  • 检测方法论发展:单阶段(YOLO,直接在 anchor 上分类+回归)→ 两阶段(Faster R-CNN,先生成 proposal 再精修,更准但更慢)→ Transformer-based(DINO,平衡精度与计算)
  • 遥感基础模型:RingMo/SatMAE/Scale-MAE 等(自监督/无监督,从大量无标注遥感图学习基础视觉表征)→ 下游检测 fine-tune
  • 多模态融合:CALNet 等融合可见光+红外提升检测
  • 共同局限:都是闭集检测——只能检测训练时见过的类别,无法检测新类别

2.2 从少样本学习到开放词汇检测

  • FSOD(Few-Shot Object Detection):用少量标注检测新类,分为微调式和元学习式。CD-FSOD 探索跨域(自然→遥感),但仅依赖视觉,对新词汇支持有限
  • OVD(Open-Vocabulary Detection):更实用的范式,构建开放视觉-语义空间
    • OVR-CNN:首次用 image-caption 预训练获取语言知识
    • RegionCLIP / GLIP:统一为 image-text matching 任务,扩大视觉-语义空间
    • GroundingDINO:更强检测器结构 + 细粒度多模态融合
    • CastDet:半监督 + OVD 结合做航空检测
  • 局限:域标注数据不足,开集检测能力弱(CastDet 在闭集上还行但开集弱)

3. LAE Task

3.1 任务定义:Locate Anything on Earth

  • LAE 源自 OVD 但专为遥感设计:给定遥感图像 + 文本提示,检测任意类别的目标
  • 训练集 D_base = {I, (b, y)_r},其中 I ∈ R^{H×W×C},b ∈ R^4 为框坐标,y ∈ V_base 为类别
  • V_base 为训练词汇集(~1600 类),V_Ω 为全语言词汇,V_test 为测试词汇
  • 关键设定:V_test 可以是 V_Ω 的任意子集——即测试类别无约束(与 OVD 一致)
  • 训练目标:从 D_base 学习,在 D_test 上根据文本提示 T 正确定位和分类

OVD 能检测 V_base 之外类别的原因

  1. 文本编码器(BERT)在大规模语料上预训练,能编码任意文本到语义空间——即使 "T junction" 不在 V_base 中,BERT 也知道它的语义
  2. 模型学到的是视觉特征 ↔ 文本语义的对齐关系,不是死记 1600 个类
  3. 语义相近的词共享相似的文本嵌入("helipad" ≈ "helicopter" + "airport"),对齐可以泛化
  4. 但实际评测中,DIOR/DOTAv2.0/LAE-80C 的测试类别大部分都在 V_base 中(因为 DIOR/DOTA/FAIR1M/Xview 就是训练数据),真正 novel 的类只在 HRRSD few-shot 实验中测了 3 个(T junction, crossroad, parking lot)。所以主评测的"open-set"更准确说是"no fine-tune"而非"novel category"。

3.2 LAE-Label Engine(数据引擎)

问题:(1) 人工标注数据集规模小、格式不统一 (2) 大规模无标注数据缺乏目标级标注

3.2.1 LAE-FOD(Fine-grained,细粒度)

  • 输入:7 个已有标注数据集(DOTA/DIOR/FAIR1M/NWPU VHR-10/RSOD/Xview/HRSC2016/Condensing-Tower)
  • 流程
    1. 格式统一:所有标注转为 COCO 格式
    2. 图像切片:大分辨率图(DOTA/FAIR1M/Xview)切为 1024×1024 子图
      • DOTA/FAIR1M:直接使用 MTP(Multi-Task Pretraining, Wang et al. 2024)论文已处理好的切片数据和标注——MTP 在做遥感基础模型时已经把这些大图切好了,LAE 直接复用
      • Xview:用 SAHI(Slicing Aided Hyper Inference, Akyon et al. 2022)开源工具切片到 1024——Xview 没有现成切片,需自己处理
    3. 采样:合并所有数据集
  • 结果
    • 图片数:切片后约 135k 张图片(大图切片大幅扩充:DOTA 2,806→17,480,FAIR1M 15,266→64,147,Xview 1,129→26,543;不需切的小图约 27k)
    • 实例:~139 万,标注质量高(人工标注),但类别有限

3.2.2 LAE-COD(Coarse-grained,粗粒度)

  • 输入:4 个无/弱标注数据集
    • 低分辨率场景分类数据(不需切片):AID(31,500 图,28,906 实例)、NWPU-RESISC45(31,500 图,28,906 实例)
    • 高分辨率 Google Earth 图像(需切片到 1024):EMS(102 图→2,605 切片,39,013 实例)、SLM(22 图→152 切片,106 实例)
  • 半自动标注流程(三步):
    1. SAM 提取 RoI:对每张图随机取 32 个点作为 SAM prompt → SAM 生成分割掩码 → 保留面积最大的 top-K 个 RoI(1024 分辨率图取 top-10,256 小图取 top-5)。SAM-ViT-H 过滤标准:predicted IoU > 0.86(SAM 的 IoU 预测头直接输出),stability score > 0.92(AMG 管线中后计算——在不同阈值下对 mask logits 二值化,比较所得掩码的 IoU 来衡量一致性)。每张图产生多个 RoI(即多个目标标注)
      • 缺陷:只保留面积最大的 top-K,小目标会被丢弃——面积小排不进 top-K → 没标注 → LAE-COD 训练数据偏向大目标,小目标类别缺失
    2. InternVL 分类:对每个 RoI 的裁剪区域用 InternVL-1.5 零样本识别类别。输入 SAM 裁剪的 RoI 图像 + 特定 prompt,要求输出类别名(引号包围)+ 置信度(0-1)+ 推理过程。例:输入 RoI → InternVL 输出 "Road" with a likelihood of 0.9. The image shows a paved surface... → 提取类别="Road"、置信度=0.9。不认识则输出 "Unrecognized"。论文发现让 LVLM 输出推理过程能提高分类准确性(CoT 效果),这是 LAE-COD 词汇量能到 ~1600 的原因——InternVL 想出什么类就是什么类,不受人工预定义限制
    3. 规则过滤:删除单调图像、"Unrecognized"类别、低置信度预测、冗余同质类别
  • 结果:~102k 实例,类别丰富但标注质量较低。用户评分调查(1-5 分)显示:类别得分高于框得分——InternVL 识别"这是什么"还行,但 SAM 生成的框经常不够紧(太松/偏移/切掉部分目标)

3.2.3 LAE-1M 合并

  • LAE-FOD + LAE-COD = 100 万标注实例,~1600 词汇量
  • LAE-COD 贡献词汇多样性(word cloud 显示 COD 类别密集),LAE-FOD 贡献标注质量
  • 消融:加 LAE-COD 后 DOTAv2.0 mAP +2.3%
  • 总图片数:LAE-FOD ~135k + LAE-COD ~65.8k(AID 31,500 + NWPU-RESISC45 31,500 + EMS 切片 2,605 + SLM 切片 152)≈ ~201k 张图

数据统计

子集数据集实例数
LAE-CODAID34,214
NWPU-RESISC4528,906
SLM106
EMS39,013
LAE-FODDOTA188,282
DIOR192,472
FAIR1M~1.02M
NWPU VHR-103,651
RSOD6,950
Xview~1M
HRSC20162,976
Condensing-Tower2,382

4. LAE-DINO

4.1 DINO-based 检测器基础

  • Backbone: Swin Transformer(图像)+ BERT-base(文本,~110M,12 层 12 头)
  • 与 GroundingDINO 共享基础架构,训练方式也一致
  • BERT 参与训练(非冻结)——与 CLIP 范式不同:CLIP 冻结文本编码器只做 image-level 对齐;检测需要 region-level 对齐,BERT 端到端训练才能调整文本特征匹配视觉特征
  • 类别编码方式:沿用 GroundingDINO 的做法,将所有类别名拼接成一条长文本(原文:"concatenate all categories into a extremely long text")送入 BERT 编码,输出后按类别提取文本特征 F_T^P = [F̃_T1, ..., F̃_Tp] ∈ R^{n_Tp × d}(每类一个 d 维向量,具体提取方式论文未详述)
  • DVC 的动机(原文逻辑):BERT 最大 256 token,LAE-1M 约 1600 个类别拼接后远超此上限
  • DVC 的方案:每 batch 动态选 N_DV=60 个类别——当前图出现的正类别全部包含,剩余位置从 V_base 随机采样负类别填充。对比 APE 的方案(每个类别独立编码,丢失类别间关联——原文:"discarding the correlation among vocabularies"),DVC 保留多类别在同一次编码中的关联
  • 训练流程:图像/文本特征 → Transformer Encoder 融合 → Query Selection 初始化查询 → Transformer Decoder → 检测头输出 (box, class)

4.2 Dynamic Vocabulary Construction (DVC)

  • 问题:训练数据含 ~1600 词汇,不可能每个 batch 都放全部词汇
  • 方案:每个 batch 动态选择正词汇(当前图中出现的类)+ 负词汇(采样未出现的类)
  • 负词汇数量 N_DV = 60

4.3 Visual-Guided Text Prompt Learning (VisGT)

动机:一张图中稀少的几个类别名无法充分表达图像内容。例如图中同时有"飞机"和"车辆",这两个类别共同暗示了"机场"场景——这种场景级信息单靠文本类别名表达不了,需要视觉信息来补充

核心思想:不是 object-level 对齐,而是 image-level 对齐——用视觉特征构造场景表示,映射到语义空间,再反过来增强文本特征

流程(三步):

  1. 构造文本侧场景特征 s(作为 GT):将当前图所有正类别的文本特征加权平均——s = (1/n_Tp) * Σ(L_i × F̃_Ti),其中 L_i 是第 i 个类别名经 BERT 分词后的 token 数(如 "airplane"=1, "baseball diamond"≈3)。因为 F̃_Ti 是该类别 token 特征的平均,所以 L_i × F̃_Ti 等于该类别所有 token 特征的总和。整体效果:把所有正类别的 token 特征全部加起来再除以类别数,名字长的类别(token 多)贡献更大
  2. 构造视觉侧场景特征 s_hat(作为预测):将图像视觉特征映射到语义空间
    • 第 1 层:对图像所有 token 取平均 → s_hat^1
    • 第 2~l 层:MDSA(多尺度可变形自注意力) + FFN 逐层精炼 → s_hat^l
    • 最终得到 S_v2t(visual-to-text 的映射特征),表示"从视觉空间转移到文本空间"的特征
  3. 用 S_v2t 增强文本特征:将 S_v2t 加到 F_T 上(逐元素相加,得到场景增强的文本特征),再和图像特征 F_I 拼成一个 token 序列 [F_T+S_v2t, F_I],送入 Transformer Encoder E_TE 做图文融合
    • 为什么有效:原始 F_T 是"图像无关"的——同一类别名在任何图里文本特征都一样,没有当前图像的场景上下文。加上 S_v2t 后,每个类别的文本特征都获得了当前图像的场景信息。例如 F_T("vehicle") + S_v2t("机场场景") → "vehicle" 的文本特征现在蕴含"机场中的车辆"上下文,区别于"公路上的车辆"

约束损失 L_VisGT:对比学习,训练 S_v2t 的映射能力。每个 batch 有 n 张图,每张图有文本侧场景特征 s(GT)和视觉侧场景特征 ŝ(预测)。目标是让同一张图的 ŝ 和 s 靠近,不同图的远离。 这是 image-level 的 loss,不是 instance-level 的。它不约束具体某个框的检测,而是约束"视觉侧能正确推断出这张图是什么场景"。场景推断对了 → S_v2t 质量好 → 加到 F_T 上能提供正确的场景上下文 → 下游检测更准。

举例:一个 batch 有 4 张图——图1(机场)、图2(港口)、图3(住宅)、图4(农田)

  • 文本侧 GT:s_1(=airplane+vehicle的特征)、s_2(=ship+harbor的特征)、s_3(=building+road的特征)、s_4(=farmland+vegetation的特征)
  • 视觉侧预测:ŝ_1(从图1视觉特征映射来)、ŝ_2(从图2来)、ŝ_3(从图3来)、ŝ_4(从图4来)
  • 对每一对 (ŝ_i, s_j) 计算相似度 φ_i,j = ŝ_i^T · s_j,得到 4×4 相似度矩阵
  • 损失 = softmax 形式:对第 i 张图,L_i = exp(φ_i,i/τ) / Σ_j exp(φ_i,j/τ)
    • 理想情况:对角线(ŝ_1↔s_1, ŝ_2↔s_2, ...)相似度最高,非对角线低
    • 即 ŝ_1 应该和 s_1(机场) 最像,和 s_2(港口)、s_3(住宅) 最不像

总损失:L = L_cls + α·L_loc + β·L_VisGT,其中 α=1, β=10(β 大说明 VisGT 约束很重要)

4.4 总损失

L = L_cls + α·L_loc + β·L_VisGT,其中 α=1, β=10


5. Experiments

开集检测

方法训练数据DIOR AP50DOTAv2.0 mAPLAE-80C mAP
GLIP + DVCLAE-1M82.843.016.5
GroundingDINO + DVCLAE-1M83.646.017.7
LAE-DINOLAE-1M85.546.820.2
  • 自然场景 OVD 方法在遥感上几乎不工作,验证了域差距
  • LAE-DINO 在三个 benchmark 上均优于 GroundingDINO

闭集检测

  • LAE-DINO 在 DIOR 上 AP50 92.2(fine-tune 全量数据)
  • 仅用一半数据 fine-tune 就能达到 AP50 89.1

消融

VisGT 消融(Table 5,DIOR test set):

设置方法DIOR AP50
开集(LAE-1M 预训练后直接测,无 fine-tune)PT-baseline(无 VisGT)83.6
开集+VisGT85.5(+1.9)
闭集(在 DIOR 训练集上 fine-tune 后测)FT-baseline(无 VisGT)89.9
闭集+VisGT(无 LAE-1M 预训练)92.0(+2.1)
闭集+VisGT(有 LAE-1M 预训练)92.2(+2.3)

PT-baseline = Pre-Training baseline,FT-baseline = Fine-Tuning baseline

VisGT 在开集和闭集上都有提升。闭集场景下,LAE-1M 预训练 + VisGT 的组合效果最好

LAE-1M 消融:加 LAE-COD 后 DOTAv2.0 mAP +2.3%


6. Conclusion

  • LAE 任务 + LAE-1M 数据集 + LAE-DINO 模型
  • DVC 解决大词汇量训练问题
  • VisGT 用场景级视觉特征增强文本特征
  • 开集+闭集均 SOTA

与 DisDop 的关系

LAE-DINO 是 DisDop 的直接基座(backbone):

  • DisDop 保留 LAE-DINO 的检测头架构,只替换 backbone 为蒸馏后的 Swin-T
  • DisDop 在 LAE-1M 数据集上训练
  • LAE-DINO 的 DVC 和 VisGT 被 DisDop 继承
  • DisDop 额外加入视觉/文本/上下文先验蒸馏,在 LAE-DINO 基础上进一步提升

演进路径: CastDet(首个航空 OVD)→ LAE-DINO(大规模数据+新模型)→ DisDop(域先验蒸馏)


个人评价

核心价值: 遥感 OVD 的奠基性工作。LAE-1M 数据集是目前最大规模的遥感 OVD 数据,DVC 和 VisGT 是实用的技术贡献。

可借鉴点:

  • LAE-Label Engine 的半自动标注流水线(SAM + VL 模型 + 规则过滤)
  • DVC 动态词汇构建:大词汇量 OVD 训练的实用方案
  • VisGT 的场景特征思想:同一图像中目标共同定义场景,用场景级特征桥接视觉和文本

局限性:

  • VisGT 的场景特征是简单平均,信息损失较大
  • 未利用遥感基础模型(RemoteCLIP/DINOv3)的域先验
  • LAE-1M 标注质量参差不齐(半自动标注)