WildDet3D:可提示的开放世界单目 3D 检测 WildDet3D: Scaling Promptable 3D Detection in the Wild
用单一架构统一文本/点/框三种提示并接纳可选深度信号,在百万级真实世界 13.5K 类数据上训练,把单目 3D 检测推到开放词汇场景。
前置知识
单目 3D 目标检测
从单张 RGB 图像直接估计物体的 3D 位置、尺寸与朝向。其本质是一个病态问题——单张图像无法确定绝对尺度,因此算法必须借助场景先验、几何约束或附加传感器信号(如 LiDAR、深度图)来辅助定位。该任务在自动驾驶、室内 AR、机器人抓取等场景中至关重要。
本文正是为这一任务而设计,是 WildDet3D 的核心应用场景,理解它的难点(尺度模糊、遮挡、单目深度估计误差)才能看懂作者为什么必须设计深度融合与旋转归一化。
开放词汇与提示式视觉模型
受 SAM 3 与 CLIP 等视觉-语言基础模型启发,模型不再固定输出封闭集合内的类别,而是接受自由形式的文本(例如“咖啡杯”)、2D 点点击或 2D 框作为查询条件,预测任意类别的目标。代表性工作包括 SAM 的多提示分割、Grounding DINO 与 OWL-ViT 的开放词汇检测。
WildDet3D 的核心思路是把 2D 提示式感知的能力延伸到 3D:同一个模型同时处理文本、点、框三类提示。若读者不熟悉提示式范式,难以理解作者为何提出 per-prompt batching 与多种提示编码器。
深度估计与 RGB-D 融合
单目深度估计网络(如 DINOv2、MoGe-2、LingBot-Depth)从 RGB 预测稠密深度图;RGB-D 编码器则在输入额外深度信号时输出几何特征。本文采用 ControlNet 风格的残差注入:$V' = V + \text{Conv}_{1\times1}(\text{LN}(Z_d^{\uparrow}))$,把深度潜变量加到视觉特征上而不破坏预训练分布。
深度融合模块是 WildDet3D 把 RGB 模式与几何模式统一起来的核心组件,缺失此模块则无法解释为什么加入稀疏深度就能把 AP 从 22.6 推到 41.6。
3D 框参数化与旋转模糊
3D 框一般由中心 $(c_x, c_y, c_z)$、尺寸 $(w, h, l)$ 与旋转 $R \in SO(3)$ 描述,但因对称、yaw 周期性等存在表示歧义。本文用对数深度、对数尺寸加连续 6D 旋转表示(Zhou et al.)并引入无歧义旋转归一化:强制 $w \leq l$、把 yaw 折进 $[0, \pi)$,把 4 重模糊压成一一映射。
若不理解 6D 旋转表示与无歧义归一化的作用,就无法体会 3D head 设计为什么在收敛速度与定位精度上都明显占优。
研究动机
现有单目 3D 检测方法存在三类系统性短板。第一,开放词汇能力薄弱:主流方法如 Cube R-CNN、Uni-MODE 只在封闭集(约 100 类)下工作,根本无法应对真实世界中长尾乃至未训练过的新类别,而 3D-MOOD 等虽尝试文本查询,在 WildDet3D-Bench 上仅得 2.3 AP。第二,输入模态单一:早期方法仅接文本查询,DetAny3D、SAM-3D-Track 等则只接受 2D 框,几乎没有系统能同时统一文本、点点击、框三种交互方式,导致在机器人、AR、VLM 推理等场景下需要维护多套独立模型。第三,几何信号利用不充分:单目深度估计天然受尺度与遮挡歧义影响,而当存在 LiDAR、ToF 或双目等几何信号时,多数方法又无法在推理时无缝融合这些额外输入,仍然退化成纯 RGB 模式,例如 Omni3D 仅用单 RGB 时 KITTI 仅 32.6 AP。第四,3D 训练数据规模与覆盖范围严重不足:Omni3D 仅 234K 图像、98 类,难以承载真正的开放词汇学习,而 3D 标注需要度量深度与相机标定,规模化标注成本远高于 2D。
本文的目标是本文的目标分模型与数据两端来表述。模型端,提出一个统一的、几何感知的单目 3D 检测器 WildDet3D,要求在同一套权重内同时支持文本、2D 点、2D 框(oracle)、exemplar 四种提示,并对可选深度信号(LiDAR、双目、ToF)做到有了就用、没有就退化为单目,在 WildDet3D-Bench、Omni3D、Argoverse 2、ScanNet、Stereo4D 五个基准上同时建立新的 SOTA。数据端,构建至今最大的开放 3D 检测数据集 WildDet3D-Data:超过 1M 张图像、3.7M 条 3D 标注、13.5K 类,相对 Omni3D 类别数扩大 138 倍,覆盖室内 52%、城市 32%、自然 15% 三类场景,并通过多模型候选 + VLM 过滤 + 人工校验三阶段流水线保证标注质量。
与已有工作不同的是,与已有工作相比,WildDet3D 的独特切入角度是模型 + 数据双轮驱动,而非只改其中一端。先看模型侧:以往工作要么专门服务文本查询(如 3D-MOOD),要么仅处理 2D 框作为几何先验(如 DetAny3D),即便个别工作引入深度也只是固定输入;WildDet3D 把多个 encoder 拆开(SAM3 负责语义/分割、DINOv2 负责几何)再用 ControlNet 风格融合,做到深度可选且不影响单目性能,异构 backbone 也比单一 backbone 在语义与几何间不必互相妥协。再看数据侧:传统做法要么靠人工从头标注(Omni3D 类)、要么完全靠单模型合成(LabelAny3D 的 COCO-3D),WildDet3D 创造性地把 5 个互补的 3D 候选生成模型(3D-MOOD/DetAny3D/SAM-3D/RANSAC-PCA/LabelAny3D)的输出叠加,再用 GPT-4.1-mini 估算每类典型尺寸做几何过滤、用微调的 Molmo2 做 6 维 VLM 评分、最后让人工挑出最佳候选——把模型协同、人工监督、VLM 评分三股力量协同起来,使得用 2D 标注免费得到 3D 标注的规模上限被大幅推高。
核心方法
WildDet3D 的整体思路可以一句话总结为:用异构的双视觉编码器分别负责识别与定位和度量几何,再用提示式解码器把任意一种用户提示(文本/点/框)转成 2D 查询,最终把这些查询连同深度潜变量、相机射线一起交给一个级联 3D 检测头去回归带有度量信息的 3D 框。直觉上,当用户说 detect cars 时,他想要的是系统识别图像里所有汽车,并把每辆车的中心、尺寸、朝向准确放在 3D 空间中——这意味着模型既要看懂(语义)又要测量(几何)。传统单 backbone 强制让一个网络同时学会这两件事,往往顾此失彼;WildDet3D 干脆拆开:SAM3 ViT-H 提供密集语义特征并附带分割先验,DINOv2 ViT-L(来自 LingBot-Depth)独立处理 4 通道 RGBD 输入并吐出深度潜变量。当外部没有深度时,RGBD 编码器用零填充的深度通道退化到纯 RGB,但仍输出有意义的深度潜变量;外部若给 LiDAR/ToF 深度,则该编码器吸收真值。两者经由一个 ControlNet 风格的融合模块相加,得到既懂语义又带几何的视觉查询,再被提示编码器(文本 BPE + 几何编码)后传入 2D/3D 解码头。
核心创新点有四点。其一,深度可选的双编码器架构:图像分支 (ViT-H, SAM3 初始化) 与 RGBD 分支 (ViT-L, LingBot-Depth 初始化) 用残差相加融合,允许在训练时随机切换 70% 单目/20% 块遮挡深度/10% 全深度,推理时无需架构改动即可使用 LiDAR;其二,单一架构支持 4 种提示(文本/点/框/exemplar),通过 per-prompt batching 把同一类别的所有图像聚成一个 batch,多模态共享解码路径;其三,3D head 中提出的无歧义旋转归一化通过两步把 4 重对称模糊折叠成唯一表示,监督信号不再一多对应;其四,深度聚焦的 3D 置信度头 $q^*=0.7\cdot q_{\text{depth}}+0.3\cdot\text{IoU}_{3D}$ 与 $s=s_{2D}+0.5 s_{3D}$ 的加性评分机制,使 3D 几何质量能直接重排检测结果。
方法步骤详情
完整流程可拆为六步。第一步是输入编码:RGB 图像缩放到 $1008\times1008$,双 encoder 输出 $V \in \mathbb{R}^{C\times H_v\times W_v}$ 与 $Z_d \in \mathbb{R}^{C_d \times 49\times 49}$,前者由 SimpleFPN 把 ViT-H 的 32 块中前 28 块冻结、最后 4 块微调得到,后者仅微调 DINOv2 最后 3 块。第二步是深度融合:按 $V'=V+\text{Conv}_{1\times1}(\text{LN}(Z_d^{\uparrow}))$,$1\times1$ 卷积零初始化保证起点为恒等映射;外部深度可用时填入 RGBD encoder 第四通道,否则填零。第三步是提示编码:文本经 BPE 与 24 层 causal Transformer(宽 1024,16 heads)映射到 $d=256$;点/框经坐标线性投影 + ROI/grid 采样特征 + 正弦位置编码 + 3 层 Transformer 交叉注意四件套编码,并加入正负标签嵌入;exemplar 复用框编码并配以特殊 visual 文本 token 与多目标匹配策略。第四步是 per-prompt batching 与 one-to-many 匹配:同一类别的图像合成独立 batch,每个 GT 与 top-4 预测配对,提供密集梯度。第五步是 2D + 3D head 级联:2D head 输出 2D 框与对象性,3D head 在 $L$ 层解码器中先用相机射线 $\phi(r)=\text{RSH}_8(r/\|r\|)$ 经 cross-attention 注入几何,再用深度潜变量 $Z_d$ 注入,每层由独立参数权重监督;最后通过 MLP 输出 12 维 3D 编码 $(\Delta c_x, \Delta c_y, \log\hat d, \log\hat w,\log\hat h,\log\hat l, r_1,\ldots,r_6)$。第六步是无歧义归一化:维度顺序保证 $w\leq l$,yaw 折进 $[0,\pi)$,从 3D 旋转前两行用 Gram-Schmidt 还原 $R$,中心由 $c=c_{2D}+(K^{-1}\cdot [u,v,1]^\top)\cdot \exp(\hat d/s_d)$ 回投,得到度量级 3D 框。多任务损失 $\mathcal{L}=\mathcal{L}_{3D}+\mathcal{L}_{conf}+\mathcal{L}_{geom}+\mathcal{L}_{2D}$ 同时监督 3D 回归、置信度、深度+射线几何、2D 检测与 O2M。
技术新颖性
技术新颖性体现在三方面。第一,异构双 backbone + 零初始化 Conv1×1 残差融合,比单纯多任务联合训练更不互相干扰,因为语义几何本来就是目标不同;事实上 4.4 节实验证明,在 Argoverse 2、ScanNet 零样本下 ODS 分别领先 3D-MOOD Swin-B 16.5 与 17.4,说明这种解耦对跨域泛化尤为关键。第二,per-prompt batching 与 one-to-many (k=4) 组合,让开放词汇学习的监督粒度从每张图细化到每类每张图,再加 O2M 时域共识,比单匹配快 2.5 AP。第三,无歧义旋转归一化表面上只是预处理技巧,实际上把 4-fold 模糊压缩成单射,使 12 维 3D 编码在监督时只有一个目标,配合连续 6D 旋转让模型在 12 训练 epoch(相对基线 80–120 epoch)内即可达到 SOTA。最后,深度可选结构使模型在保持 monocular 模式可用的同时,一旦有 LiDAR 即可无缝接入,整体框架等同于单目 3D 检测通用底座 + 几何增强插件,这是该论文与 DetAny3D/SAM-3D-Track 等专业 3D 检测器的本质区别。
实验结果
WildDet3D 在五大基准均刷新 SOTA:在自建的 WildDet3D-Bench(700+ 类、人审 3D 标注)上文本提示达 22.6 AP、框提示 24.8 AP,分别比 3D-MOOD(2.3 AP)和 OVMono3D-LIFT(7.7 AP)大幅领先,加入 GT 深度后进一步抬升至 41.6 AP/47.2 AP,几乎翻倍;在 Omni3D 上文本 34.2 AP、oracle 36.4 AP,文本超过 3D-MOOD Swin-B 4.2 AP、oracle 超过 DetAny3D 2.0 AP,而训练 epoch 仅 12 个(基线 80–120);零样本到 Argoverse 2 得 40.3 ODS、ScanNet 得 48.9 ODS,比 3D-MOOD Swin-B 分别高 16.5 与 17.4,AP 维度甚至达到 43.4 vs 14.8、56.5 vs 28.8;在 Stereo4D 这种真实深度基准上,无深度时 7.5 AP 与 DetAny3D 持平(OVMono3D-LIFT 9.9 略高),给真实双目深度后跃升到 27.7 AP,相对后者 2.8 倍提升。可看出三大规律:(1) 数据规模收益显著,在 WildDet3D-Bench 上 Omni3D→+Others+WildDet3D-Data 把 APrare 从 9.0 推到 28.3,类别覆盖扩大 138 倍直接换到罕见类 +19 AP;(2) 在 monocular 模式已较饱和时,深度信号是新的性能鸿沟,给 GT 深度常额外带来 +13.9—+20.7 AP;(3) 训练效率高 10 倍,主要因为 SAM3+DINOv2 的预训练已经把语义几何先验固化,WildDet3D 只需少量微调(最后 4/3 块 backbone + head)。消融方面,4.6 节证明去掉 2D head 单独做 3D 会从 30.2 AP 跌至 11.1 AP(尤其室内如 SUNRGBD 33.9→5.1、Objectron 56.8→10.9),证明 2D 锚定对 3D 回归至关紧要;去 O2M 掉 2.5、去深度几何损失掉 1.7、去 3D 置信度掉 0.8,均小而稳健。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| WildDet3D-Bench(700+ 类真实场景) | AP3D(center-distance matching,11 阈值) | 文本 22.6 / box 24.8;+深度后 41.6/47.2 | 3D-MOOD 2.3;OVMono3D-LIFT 7.7 | +20.3 AP(文本)/ +17.1 AP(box) |
| Omni3D 统一基准(6 子集、98 类) | AP3D(3D IoU, 10 阈值) | 文本 34.2 / box 36.4;+sparse depth 41.6/45.8 | 3D-MOOD Swin-B 30.0 / DetAny3D 34.4 | +4.2 / +2.0 AP;训练 epoch 12 vs 80–120 |
| Argoverse 2 零样本(26 类室外) | ODS = (3AP + (1-mATE)+(1-mAOE)+(1-mASE))/6 | 40.3 ODS(AP 43.4,mATE 0.714,mAOE 0.526) | 3D-MOOD Swin-B 23.8 ODS(AP 14.7) | +16.5 ODS;AP +28.7 |
| ScanNet 零样本(18 类室内) | ODS | 48.9 ODS(AP 56.5,mAOE 0.437) | 3D-MOOD Swin-B 31.5 ODS(AP 28.8) | +17.4 ODS;AP +27.7 |
| Stereo4D 真实深度(78 类、383 图) | AP3D(center-distance matching) | 无深度 7.5;+真深度 27.7 | OVMono3D-LIFT 9.9 / DetAny3D 7.1 | +2.8 倍 相对 OVMono3D-LIFT |
局限与改进
作者明确承认 5 方面局限:相机内参预测不够准,导致无标定场景下深度与尺寸误差偏大;单目 3D 检测本身固有的远处或严重遮挡物体仍有距离上限;旋转估计是最弱一环,对近似对称物体(圆桌、方盒子)误差显著;双 backbone 计算成本高,难以在端侧实时跑(故 iPhone demo 走 client-server 架构);长尾类表现远落后于频繁类。叠加我自己的观察,还有三点隐性短板:(1) 22.6 AP 看似风光,但 WildDet3D-Bench 的中心距离阈值匹配比 Omni3D 的 3D IoU 宽松,因此跨基准比较 AP 时要注意同样 22.6 不等于同难度;(2) 文本提示 34.2 vs. 框提示 36.4 的差距只有 2.2 AP,远小于许多 2D 开放词汇检测器的 5+ AP 差距,说明 text embedding 在 3D 几何中尚未充分利用,作者也指出 2D 检测仍是瓶颈;(3) 数据集筛选严重依赖 VLM + GPT-4 估算尺寸,对罕见或文化性强的类别(如埃及文物、民族服饰)容易误过滤;附录 D 显示工人 86% 集中在 US/UK/CA,文化偏差会在标注判断中带入。
独立分析的弱点
独立分析可见三处弱点。弱点一:双 backbone 体量过大:ViT-H + DINOv2-ViT-L 并行需要约 50 GB GPU 显存,推理一张 1008×1008 的图在 A100 上约 250 ms,距离实时(<30 ms)差一个数量级;改进方向包括把 ViT-H 蒸馏到 ViT-S、用共享早期层 + 任务特定 LoRA 替换独立 backbone、并对几何潜变量做 INT8 量化。弱点二:旋转估计弱:4.6 节消融未单独提,但表 5 显示 mAOE 仍比 mATE 大很多,说明旋转相对已是短板;近对称物体(圆桌、方盒子、柜子)yaw 预测易出现 ±45 度偏差,可引入 canonical surface normal 预测头或显式 surface-aware loss。弱点三:VLM 评分与人工选优仍非闭环:Molmo2 选出的高分候选仍有 16.7% 人工拒收率,且极度依赖 GPT-4 对类别尺寸的估计,罕见的医学器械、少数民族物品容易全被过滤;改进路径是用更强的多视角 VLM 取代单图 Molmo2,并对过滤掉的类做主动学习补标。
未来方向
作者提出的方向包括:把相机内参预测精度进一步提升、扩展到视频时序 3D 跟踪、应对超长尾的零样本类别;以及面向端侧部署做模型蒸馏/量化。我自己可延伸的思路有三:(1) 跨模态协同——把 WildDet3D 与 VLM 推理更紧耦合,让文本 prompt 直接进入 3D head 而非只走 prompt encoder,例如把 LLM 输出的 6-DoF 语言先验当作额外 ray embedding,提升对小、远、罕见目标的检索能力;(2) 增量学习——目前一训就固定,遇到新场景需要重新 stage 2,可以引入 LoRA + 测试时 adaptation,让机器人在新工作空间即插即用;(3) 多帧几何——3D box 检测可以从视频或双图中获益,可把当前 RGBD 编码器扩展为 Temporal DINOv2,用相邻帧的位姿推理先验 depth,从而将本文 +depth 的红利拓展到没有 LiDAR 的手机端 RGB-only 视频场景。
复现评估
复现评估整体偏正面。资源方面:官方公开了完整代码 github.com/allenai/WildDet3D、模型权重 Hugging Face Space demo、iPhone App、Unity Meta Quest 3 集成代码,技术网站与博客一应俱全。训练算力方面:4 节点 32 GPU(每卡 batch 4,effective 128),stage 1+2+3 共计 12+12+3=27 epoch,单阶段约 2–3 天 A100,要完整复现需 8 块 H100 级别,单卡即便 80GB 也困难。数据方面:WildDet3D-Data 已发布 1,003,886 张图、3.7M 标注、13,499 类,其中 102K 是 Prolific 人工标注(带质量评分),其余 896K 由 VLM 自动过滤;坐标系与相机参数统一为 Omni3D 兼容格式。复现难度中等偏上,难点在于:(a) Stage 2 引入 7 个数据集的复杂混合采样比例(Omni3D 40%, CA-1M 10%, Waymo 5%, 3EED-det/ref 各 2.5%, FoundationPose 20%, WildDet3D-Data 20%),数据下载与预处理繁琐;(b) LingBot-Depth 与 SAM3 主干虽然开源,但其预训练权重需另外申请,第三方难以独立验证;(c) 评测时 GT depth 注入对结果影响巨大(动辄 +13 AP),复现时若没有 LiDAR 注入会与论文数字错位。综合看,主干结构与训练流程开源程度较高,但完整 SOTA 复现需较大算力预算与多源数据集成。
论文图表
对比 LiDAR-based(无高度、6-DoF 旋转不全)、纯 RGB(尺度模糊、遮挡模糊)、RGB + 可选深度(既保留语义又缓解尺度)三种输入模态的优劣。
直接论证作者为何选择 RGB + 可选深度作为输入范式,是动机章节的关键证据。