Skip to content

Rex-Omni: Detect Anything via Next Point Prediction


推文解读

3DCV 公众号对 Rex-Omni 的推介。方法细节、实验数值请阅读论文原文后补充。

摘要

问题: 传统检测器(YOLO、DETR、Grounding DINO)定位强但语言理解弱;MLLM 理解力强但面临召回率低、重复预测、坐标对齐不准确等挑战。

方案: Rex-Omni,30亿参数 MLLM,通过三项关键设计实现业界领先的零样本检测性能:

  1. 任务建模: 用特殊标记表示 0-999 的量化坐标,降低学习难度
  2. 数据引擎: 构建多个数据引擎生成高质量定位/指代/指向数据
  3. 训练流程: 2200万数据 SFT + GRPO 强化学习,用几何感知奖励弥合离散-连续坐标差距

关键创新:

  • 统一视觉感知任务为"Next Point Prediction"
  • 量化坐标 + 特殊标记的坐标表示方案
  • GRPO 后训练纠正 SFT 的重复预测等不良行为

验证: COCO、LVIS 等基准上零样本性能与 DINO、Grounding DINO 相当或更优

背景

传统回归检测器(YOLO/DETR/DINO)与 MLLM 各有优劣,MLLM 在检测精度上一直难以匹敌传统方法。Rex-Omni 试图弥合这一差距。

支持的任务

目标检测、指代检测、指向、视觉提示、GUI 定位、空间指代、OCR、关键点检测


论文原文解读

按论文原文 Section 顺序记录核心内容。

1. Introduction

背景 & 动机:

  • 目标检测已从 CNN(YOLO、Faster R-CNN)演进到 Transformer(DETR、DINO)再到开集检测(Grounding DINO、DINO-X)
  • 开集检测依赖文本编码器(BERT/CLIP)表示物体类别,语义理解能力有限(例:输入"红苹果",Grounding DINO 检测出所有苹果)
  • MLLM 有强大语言理解能力,但现有 MLLM 检测方法在 COCO 等基准上很少能与回归检测器匹敌
  • 即使先进 MLLM(如 Qwen2.5-VL)也面临:召回率低、坐标漂移、重复预测

两个核心挑战(图2):

  1. 离散坐标预测 vs 连续几何损失: MLLM 将坐标预测视为离散分类,用交叉熵损失;回归模型受益于连续几何感知损失(L1、GIoU)。离散坐标中微小像素偏移可能导致不成比例的大交叉熵损失
  2. SFT 的教师强制不匹配: SFT 期间模型始终以真实前缀为条件(teacher forcing),从未接触自身不完美预测。自由推理时无法规范输出结构,导致重复预测或遗漏

本文贡献:

  1. 任务公式化: 将视觉感知统一为坐标预测框架,检测用 2 点,多边形用 4+ 点,关键点输出多个语义点。采用 0-999 量化坐标表示,降低学习难度
  2. 数据引擎: 为 grounding、referring、pointing 设计多个专门数据引擎,生成高质量语义丰富的视觉监督
  3. 训练流程: 两阶段——2200万数据 SFT + GRPO 强化学习。RL 阶段用三种几何感知奖励函数,提高精度、减少重复预测

验证: COCO 零样本下 F1 优于回归模型和其他 MLLM;在长尾检测、指代、GUI 定位、OCR 等也都进行了评测


2.1 基于回归的检测方法(Regression-based)

  • 从 anchor-based CNN(YOLO, SSD, Faster R-CNN)→ anchor-free(CornerNet, CenterNet, FCOS)→ Transformer-based(DETR, Deformable DETR, DINO)
  • 持续改进:FPN、Focal Loss、MixUp/Mosaic 数据增强
  • 累计了大量渐进式创新才达到当前高性能水平

2.2 开集检测方法(Open-set)

  • Text-prompted OVOD:用 CLIP/BERT 做文本-视觉对齐(Grounding DINO, DINO-X),零样本识别能力强,但复杂语义描述理解有限
  • Visual-prompted:用框/点等视觉示例识别物体,适合稀有或难以文字描述的物体,但不如文本提示通用
  • 混合方法(T-Rex2):结合文本+视觉提示,用对比学习融合两者优势
  • 核心瓶颈:这些方法都只是类别级别的开集泛化(category-level open-set generalization),即用 CLIP/BERT 做"名词匹配",模型并没有真正理解语言。输入"红苹果"只会检测出所有苹果(当成一个类别名),不能做属性+关系组合推理

2.3 基于 MLLM 的检测方法

  • 核心思路:将检测转化为语言建模任务(Pix2Seq 范式),框坐标表示为离散量化 token,通过 next-token prediction 生成
  • 代表工作:Kosmos-2, Shikra, Ferret, CogVLM
  • 现存问题:召回率低、坐标漂移、重复预测
  • 根因:① 交叉熵损失难以从离散 token 精确映射到连续像素空间;② SFT 的 teacher forcing 导致自回归推理时行为缺陷
  • Rex-Omni 的设计动机就是系统性地解决这两个问题

3. Task Formulation

3.1 Coordinate Formulation

三种坐标预测范式(图3a):

  1. Direct Coordinate Prediction(Pix2Seq 范式): 将坐标值作为离散 token 在 LLM 词汇表中表示
  2. Quantized Relative Coordinate(Rex-Omni 采用):
    • 将 0-999 的量化坐标值映射到 1000 个特殊 token
    • 相对坐标(相对于图像长宽),不依赖绝对像素值
    • 4 个 token 即可表示一个边界框(vs 无此方案需 15 个原子 token)
    • 显著提高 token 效率和推理速度,尤其密集场景

优势: 将坐标学习从 1000 x 图像宽度的搜索空间降为 1000 类分类,大幅降低学习难度

3.2 Input Format

统一文本接口,每个任务表示为自然语言查询。多目标时用逗号连接。

输出格式示例:

<object_ref_start>person<object_ref_end><box_start><12><42><512><612>

3.3 Model Architecture

基于 Qwen2.5-VL-3B-Instruct,最小架构修改:

  • 原始 Qwen2.5-VL 用绝对坐标编码,Rex-Omni 调整为相对坐标表示
  • 复用词汇表中最后 1000 个 token 作为坐标特殊 token
  • 保留 Qwen2.5-VL 的 <object_ref_start><box_start> 等原有特殊 token

4. Training Data

数据规模: 总计 2200 万高质量标注图像(公开数据集 + 自动引擎生成)

4.1 公开数据集(~890 万)

覆盖 10 个任务:Detection、Referring、Visual Prompting、OCR、Layout Grounding、GUI Grounding、Pointing、Affordance、Spatial Referring、Keypointing。每个任务预定义 question template 构造 QA 对。

4.2 数据引擎(三个核心引擎)

Grounding Data Engine(检测/定位数据,~300万张):

  1. Image Captioning — Qwen2.5-VL-7B 生成描述
  2. Phrase Extraction — SpaCy 提取名词短语
  3. Phrase Filtering(关键改进):剔除带属性描述的短语(如 "green lemon" 丢弃,保留 "lemon")。原因是 grounding 模型无法准确理解修饰词,保留会引入标签噪声
  4. Phrase Grounding — DINO-X 生成框
  • 数据源:COYO + SA-1B

Referring Data Engine(指代数据,~300万张,全自动):

  1. Expression Generation — Qwen2.5-VL-7B 看图+类别标签生成指代表达
  2. Pointing — Molmo 预测指代对应的空间点
  3. Mask Generation — SAM 生成 GT 框 mask
  4. Point-to-Box Association — 点落在 mask 内则关联框和指代表达
  • 数据源:O365 + OpenImages + Grounding 引擎产出

Pointing Data Engine(~500万点样本):

  • SAM 获取 mask → 最小外接旋转矩形 → 对角线交点作为候选点
  • 从现有检测数据集 + 引擎产出转化

OCR Data Engine(~200万样本):

  • PaddleOCR 标注文本图像,多边形+转录

5. Training Pipelines

两阶段训练策略(图5)

5.1 Stage 1: Supervised Fine-Tuning (2200万样本)

目标: 让模型学会将 0-999 的量化坐标 token 准确映射到连续像素空间(1000 路分类问题)

在线数据构建策略:

  • Conversation Templates: GPT-4o 为每个任务构造多个问题模板,含 PHRASE 占位符
  • Multi-Phrase Queries: 若图中有 N 个标注短语,随机采样 1~N 个构成训练查询
  • Visual Prompting Training: 对每个类别随机采样 1~N 个框作为视觉提示,让模型检测同类所有物体

训练配置:

  • 8 节点 x 8 A100 GPU,训练约 8 天
  • 标准交叉熵损失
  • 不同组件独立学习率:视觉编码器 2e-6,投影层 + LLM 2e-5
  • AdamW 优化器,3% warmup,weight decay 0.01
  • 原生分辨率 ViT,像素限制 16 x 28 x 28 ~ 2560 x 28 x 28(即 16~2560 个图像 token)

5.2 SFT 阶段的两大局限

几何离散化问题:

  • 交叉熵损失对离散坐标分类:预测 <32> vs GT <33> 被完全惩罚(尽管像素差异极小);
  • 但预测 <0><0><100><1000> vs GT <0><0><100><100> 仅错 1 个 token 但几何误差巨大,CE 损失却很小
  • CE 损失与几何质量严重失调

行为调节缺陷:

  • Teacher forcing 固定了预测框数量 = GT 框数量,模型从未学习自主决定输出多少个物体
  • 推理时出现两种典型错误:①漏检(预测太少);②重复检测(相同或微移坐标的冗余框)

5.3 Stage 2: GRPO 强化后训练

核心思路: GRPO 让模型自探索输出空间,通过分组奖励优化

  • 对每组采样 G 个完整响应 {o1,...,oG},计算标量奖励 ri,组内归一化得优势值 Ai
  • 使用 clipped policy gradient + KL 正则化防止偏离 SFT 模型太远

天然解决了两个问题:

  1. 奖励函数可以是几何感知的(IoU/L1),直接优化空间对齐而非 token 级正确
  2. 允许变长输出,重复/冗余预测获得低奖励,学会输出数量自调节

5.4 三种几何感知奖励函数

Box IoU Reward(检测/指代/OCR 等出框任务):

  • 对每个 GT 框,找与之 IoU 最大的预测框,类别匹配则奖励=IoU,否则=0
  • 整合 Precision/Recall → F1-style reward,同时惩罚错配和过度/不足预测

Point-in-Mask Reward(点预测任务):

  • 对每个 GT 框用 SAM 生成 mask,预测点落在 mask 内且类别匹配则奖励=1
  • 同公式计算 Precision/Recall/F1

Point-in-Box Reward(GUI Grounding):

  • 预测点落在 GT 框内则奖励=1,否则=0

5.5 实现细节

  • 从 SFT 数据中采样 66K 用于 GRPO 阶段
  • 8 A100 GPU,训练约 24 小时
  • Rollout size=8, KL penalty beta=0.01, batch size=64
  • 全部参数更新

6. Benchmark Results (Section 5)

核心评估设置:

  • 由于 MLLM 缺乏可靠置信度估计,不使用 AP,改用 Recall / Precision / F1(跨置信度阈值 0~1 取最佳 F1)
  • Rex-Omni 评估时 temperature=0,零样本设置(未在 COCO 上训练)
  • 对闭集模型:只保留与 GT 类别匹配的框;对 MLLM:逐类查询(单类别策略)
  • Rex-Omni 和 SEED1.5-VL 除外,支持多类别同时查询

6.1 通用目标检测 (COCO)

方法F1@0.5F1@mIoU零样本
Grounding DINO-SwinT69.856.6Yes
Qwen2.5-VL-3B64.747.6UNK
SEED1.5-VL71.351.4Yes
Rex-Omni-SFT68.250.4Yes
Rex-Omni72.052.9Yes
  • Rex-Omni 零样本下超越所有 MLLM,@0.5 超越 Grounding DINO 和 DINO-R50
  • @0.95 仅略优于 DAB-DETR(回归模型在极高紧密度要求下仍有优势)
  • GRPO 相比 SFT-only 提升显著

6.2 长尾检测 (LVIS, 1203类)

  • MLLM 整体优于 Grounding DINO(大模型的强语言推理有助于低频类别泛化)
  • Rex-Omni F1@0.5=64.3,仅次于 SEED1.5-VL(更大模型);mIoU 上实现 SOTA

6.3 密集小目标检测 (Dense200, VisDrone)

  • 最难的任务:MLLM 整体表现差,缺乏多尺度特征机制
  • Rex-Omni Dense200 F1@0.5=78.4,VisDrone F1@0.5=61.6,均为最高
  • SFT 阶段的关键失败模式:①大框覆盖多个物体;②结构化的重复预测(微移坐标的冗余框)
  • GRPO 后这些重复预测基本消失

6.4~6.11 其他任务概览

任务数据集Rex-Omni 表现
Referring (REC)HumanRef, RefCOCOg仅次于 SEED1.5-VL,说明 3B 语言理解足够强
Visual PromptingFSC147, COCO, LVIS, Dense200不如 T-Rex2,但密集场景和长尾表现好
Object Pointing7 个数据集全部 SOTA (80.5/70.8/82.5/58.9/83.8/84.7/85.1)
GUI GroundingScreenSpot-V2/Pro3B 参数模型中最高(88.4% / 36.8%)
Layout GroundingDocLayNet, M6Doc大幅领先其他 MLLM (F1@0.5=89.5/76.3)
OCR4 个数据集BBOX 格式超越 SEED1.5-VL,接近专用 PaddleOCR
Spatial PointingRefSpatial大幅超越专有模型 Gemini-2.5-Pro + 指代专家模型
KeypointCOCO, AP10K不如 X-Pose(人类)但跨域泛化更好(动物)

7. In-depth Analysis of Rex-Omni

7.1 GRPO 为什么有效

训练动态(图15):

  • SFT 阶段:性能平稳渐进提升,训练到后期趋于饱和
  • GRPO 阶段:少量步数内性能快速跳跃,说明 SFT 已具备强大潜伏能力但未被充分利用
  • GRPO 通过奖励引导释放了 SFT 未能激活的潜力

行为纠正:重复预测(表13):

  • SFT-only 在 VisDrone 上有 15.3% 的重复预测;GRPO 后降至 0.1%
  • 去除重复后 SFT vs GRPO 差距大幅缩小(说明重复预测是 GRPO 提升的重要因素)

行为纠正:大框预测(表14):

  • SFT 模型 20.5% 的预测是超大框(覆盖 >95% 图像区域)
  • GRPO 后仅 3.5%

坐标精度提升有限(表15):

  • 控制变量后 GRPO 对坐标精度提升很小(COCO mIoU 63.0→63.5)
  • SFT 已经能学到足够好的坐标映射
  • GRPO 的主要优势在于纠正行为缺陷而非提升原始坐标精度

采样概率提升(表16):

  • COCO 上 SFT-Sampling-Vote(8 次采样选最佳)=72.6 > GRPO 72.0,说明简单场景 SFT 已有潜力
  • LVIS 和 Dense200 上 GRPO 大幅领先采样策略,说明复杂场景 GRPO 从根本上提升预测质量

7.2 推理效率与速度

token 效率(表17):

  • Rex-Omni: 7.6 tokens/box vs SEED1.5-VL: 148.8 tokens/box(缩减 20x)
  • COCO 图像平均输出:45.3 vs 631.0 tokens
  • 核心原因:特殊 token 方案(一个 token 表示一个量化坐标)

推理速度(图17):

  • 检测 0-29 个物体 < 2 秒
  • 检测 410-419 个物体 > 16 秒
  • 与物体数量线性增长,目前比传统检测器慢
  • 可以通过量化/蒸馏等加速方案缓解

8. Conclusion

总结: Rex-Omni 系统性解决了基于 MLLM 的目标检测面临的定位精度和行为缺陷问题。通过特殊 token 的高效坐标标记化、自定义引擎的大规模数据生成、SFT+GRPO 两阶段训练,弥合了精确定位与深度语言理解之间的差距。

关键发现: SFT 提供基础能力,GRPO 后训练对纠正重复预测和过大框等行为缺陷至关重要。

局限性: 推理速度较慢,需要模型加速和高级奖励引导采样方面的后续工作。


个人评价

核心价值: Rex-Omni 证明了 MLLM 在目标检测上可以匹敌传统的回归检测器(DINO、Grounding DINO),这是之前 MLLM 方案未能做到的。核心贡献不是架构创新,而是系统性地诊断并解决了 MLLM-based detection 的两个根本问题:离散坐标的几何不匹配 + SFT 的行为缺陷。

最值得借鉴的方法:

  1. Phrase Filtering 策略(Grounding Data Engine 中的关键改进):剔除带属性的短语避免标签噪声。这个简单但有效的 trick 很少在其他工作中强调
  2. 量化坐标 + 特殊 token 方案:把 1000 x 图像宽度的搜索空间压缩为 1000 类分类,同时大幅提升 token 效率
  3. GRPO 用于行为纠正而非精度提升:认知很重要——SFT 已经能学到好的坐标映射,RL 的价值是规范输出行为(数量自调节、消除重复)

局限性:

  1. 推理速度慢(>400 框需 16+ 秒),离实时部署有距离
  2. @0.95 IoU 上仍落后回归模型,极高精度场景不适合
  3. 3B 参数在 LVIS 上不如更大的 SEED1.5-VL,模型规模仍有红利
  4. 密集场景的重复预测虽有改善但未完全消除

对 MLLM-based detection 方向的启示: GRPO 的"行为纠正 > 精度提升"结论对后续 MLLM 检测方案的设计有重要指导意义——不要只追求更好的坐标表示,更要解决自回归生成中的行为控制问题。


疑问解答 (Q&A)

待与猴哥讨论后补充

Q1: 什么叫类别级别的开集泛化?

: 类别级别的开集泛化(category-level open-set generalization)指模型能检测训练时没见过的类别名称,但仅限于——你给一个类别名词(如 "truck"、"elephant"),它去图中找到属于该类别的物体。典型代表是 Grounding DINO、DINO-X,输入 "红苹果" 会检测出所有苹果(因为 CLIP/BERT 把 "红苹果" 当成一个类别名嵌入)。本质上是"名词匹配",模型没有真正理解语言的组合语义(属性+关系+状态推理)。

而 MLLM 方案(如 Rex-Omni)能做的是语言级别的泛化:输入"桌上那个红色的杯子"能理解带关系和属性约束的指代,只检测符合描述的物体。前者只能做名词匹配,后者能做属性、空间关系、状态的组合推理。