WeVisOne-VL:从物体到像素的统一视觉感知¶
原题:WeVisOne-VL: Unified Visual Perception from Objects to Pixels 作者:Tianming Liang, Junyi Pan, Yuxi Li, Canmiao Fu, Zhipeng Huang, Chong Sun, Chen Li, Jing Lyu 机构:微信团队(模型名 WeVisOne 即 WeChat Vision All-in-One;摘要页未列具体机构) 年份:2026(arxiv ID 2610.31329,2026 年 10 月 22 日提交) 分类:cs.CV 链接:https://arxiv.org/abs/2610.31329 精读日期:2026-10-24
阅读须知¶
这篇在领域里的位置¶
这是一篇技术报告,属于「让视觉语言模型做精细感知」这一类工作。视觉语言模型(Vision-Language Model,VLM)是一种同时读图和读文字、再用文字作答的大模型,过去两年在看图问答、看图描述上进步很快。然而,一旦要求它精确地指出「东西在哪里」,比如框出图中每一个人、数清货架上有几瓶水、把一只猫从背景里干净地抠出来,它的表现就明显不如专门训练的检测或分割模型。
围绕这个短板,业界大致走出了几条路:让 VLM 直接用文字输出坐标,给 VLM 外挂一个分割解码器,或者干脆让 VLM 去调用 SAM 之类的专用模型。WeVisOne-VL 的位置在于,它试图用一个小模型、一套统一的输出格式,把检测、指代定位、计数、文字定位、分割和抠图六类任务一并做好,并且特别强调「图里没有就说没有」的拒答能力。
读完能回答什么¶
- 现有 VLM 在精细感知上为什么不可靠,几条主流补救路线各卡在哪里。
- WeVisOne-VL 如何用坐标词元和一个特殊的
<OBJ>词元,把框级输出和像素级输出接到同一个自回归模型上。 - 一个只有 960 万参数的像素解码器,是如何借用大模型的隐状态和视觉特征画出掩码与透明度遮罩的。
- 三阶段课程式监督微调加混合任务强化学习,各自解决了什么问题,奖励函数为什么要把 IoU 取三次方。
- 在「目标根本不存在」的提问上,它的拒答率为什么能比同类模型高出几十个百分点。
阅读前置¶
本文假定读者熟悉 Transformer 和大语言模型的基本训练方式,知道监督微调与强化学习的大意,也大致听说过目标检测里的边界框和 IoU。读者未必做过分割、抠图或视觉定位,相关术语都会先铺垫再展开。
缩写表¶
- VLM(Vision-Language Model,视觉语言模型):同时接收图像与文字输入、以文字输出的模型。
- NTP(Next-Token Prediction,下一个词元预测):大语言模型的标准训练与生成方式,一次预测一个词元。
- SFT(Supervised Fine-Tuning,监督微调):用标注好的输入输出对继续训练模型。
- RL(Reinforcement Learning,强化学习):让模型自己生成答案,根据奖励信号调整。
- GRPO(Group Relative Policy Optimization,组相对策略优化):一种强化学习算法,对同一题采样一组答案,用组内相对好坏作为优势信号,不需要单独的价值网络。
- IoU(Intersection over Union,交并比):预测框与真实框重叠面积除以两者并集面积,衡量定位准确度。
- OCR(Optical Character Recognition,光学字符识别):本文中特指在图上定位文字区域。
- SAM(Segment Anything Model):Meta 提出的通用分割模型,可按点或框提示分割任意物体;文中还提到其后续版本 SAM2、SAM3。
- ViT(Vision Transformer):VLM 中负责把图像切块编码的视觉编码器。
- MAD(Mean Absolute Difference,平均绝对误差):抠图任务的常用指标,越低越好。
- cIoU / gIoU:分割任务的两种 IoU 汇总方式,前者按全体像素累计,后者按样本平均。
- F1:精确率与召回率的调和平均;检测任务里常在 IoU 0.5 等阈值下计算,F1 Mean 是多个阈值的平均。
一、问题¶
为什么这个问题值得做¶
精细感知是很多真实产品的地基。拍照搜同款需要先把商品框出来,修图里的一键抠图需要准确到发丝的透明度遮罩,内容审核需要找出画面角落里不起眼的违规物件,机器人抓取需要知道物体的精确位置。这些场景对「大致看懂这张图」并不满意,它们要的是「这个东西就在这里、边界就到这里」。
问题在于,今天最通用、最好用的模型是 VLM,而 VLM 恰恰在这里不可靠。报告点出了三种典型失误:一是凭空「看见」不存在的物体,二是遇到陌生的描述时误解用户意图,三是在拥挤画面里漏掉不显眼的实例。对一个要上线的系统而言,第一种失误尤其致命:用户问「图里有没有蓝色的车」,模型却框出一辆红车,这比说「没有」更糟糕。
前人路线及其不足¶
为了让 VLM 能指出位置,业界大致走了四条路。
第一条路是让 VLM 直接用文字输出坐标,以 Qwen-VL 系列为代表。模型像写句子一样写出框的四个坐标值,好处是完全复用语言模型的能力,能理解复杂的指代描述;不足是在物体很多的密集场景里召回偏低,而且只能给出框,给不出像素级的形状。
第二条路是专门的开放词表检测器,以 Grounding DINO 为代表。它在密集物体上表现很好,但对长尾类别和复杂的开放描述理解有限,毕竟它背后没有一个大语言模型。
第三条路是在 VLM 上接一个分割模块,以 LISA、GLaMM 为代表。模型输出一个特殊词元,再由一个解码器据此画出掩码。这条路打通了语言与像素,但通常只管分割,没有把检测、计数、文字定位等框级任务统一起来。
第四条路是让 VLM 调用 SAM 之类的专用大模型组成流水线。效果可以很好,可是需要额外部署一个大模型,端到端推理成本高,环节也多。
graph TD
P[让 VLM 精确指出位置] --> A[文字输出坐标<br/>Qwen-VL 等]
P --> B[专用开放词表检测器<br/>Grounding DINO 等]
P --> C[VLM 接分割模块<br/>LISA / GLaMM 等]
P --> D[VLM 调用 SAM 流水线]
A --> A1[不足: 密集场景召回低<br/>只有框没有像素]
B --> B1[不足: 长尾类别与复杂描述弱]
C --> C1[不足: 只管分割<br/>框级任务未统一]
D --> D1[不足: 额外大模型<br/>推理成本高]
A1 --> W[WeVisOne-VL<br/>一个小 VLM + 960 万参数解码器<br/>六类任务统一输出 + 会拒答]
B1 --> W
C1 --> W
D1 --> W
二、方法¶
WeVisOne-VL 的核心想法可以用一句话概括:所有任务都写成「结构化的下一个词元预测」,需要像素级输出时,让模型在框的后面多吐出一个 <OBJ> 词元,再由一个很小的解码器把这个词元「翻译」成掩码或透明度遮罩。
底座与坐标词元¶
模型以 Qwen3-VL 为底座,提供 2B 和 4B 两个规模。为了让坐标表达更省词元,作者新增了从 <0> 到 <1000> 的专用词元,用来表示归一化到 0 到 1000 之间的坐标。于是一个边界框写作四个坐标词元 [x0, y0, x1, y1],一个点写作两个,<box> 之类的结构标签把它们包起来;当目标不存在时,模型直接输出 None。
之所以要专门设坐标词元,原因在于普通文字写数字会被切成好几个词元,一个框可能要十几个词元才写完;改用专用词元后,一个坐标就是一个词元,长序列里写几百个框也不至于把上下文撑爆。
结构化输出的样子¶
以指代检测为例,用户问「左边那辆红车」,模型回答的是一段带结构标签的文字:
需要分割或抠图时,模型在框的四个坐标之后紧跟一个 <OBJ>:
这个 <OBJ> 本身不携带文字含义,它的作用是让模型在这一位置产生一个隐状态。这个隐状态汇集了模型对「这一个实例」的全部理解,随后交给像素解码器。
960 万参数的像素解码器¶
像素解码器要做的事情,是把「一个实例的语义理解」加上「它大致在哪个框里」,变成一张全分辨率的掩码或透明度遮罩。它有三个输入:<OBJ> 词元的隐状态,模型刚预测出的边界框,以及从 Qwen3-VL 视觉编码器中间若干层取出的多层特征。
解码器由三部分串成:
- 视觉特征适配器:从 ViT 中间层取出尚未合并的多层特征,投影到统一维度,再用几层深度可分离卷积和层级嵌入做加工,得到一组多尺度像素特征。
- 框引导的查询解码器:用
<OBJ>的隐状态初始化实例查询,经过 6 个可变形注意力块,在预测框的引导下到多尺度特征上取信息。可变形注意力的好处是只在参考框附近采样少量位置,计算便宜又聚焦。 - 实例条件化的稠密预测:先把多层像素特征自顶向下融合,再由一个小网络根据实例查询生成「动态卷积核」,把核作用在像素特征上得到粗掩码,最后经过三级上采样逐步细化到全分辨率。分割任务输出二值掩码,抠图任务输出 0 到 1 之间的连续透明度。
整个解码器只有 960 万参数,远小于 SAM 系列动辄上亿的规模。它能这么小,是因为最难的「这是哪个东西」已经由大模型想清楚了,解码器只需负责「边界画得准」。
flowchart LR
I[图像] --> V[Qwen3-VL 视觉编码器]
T[用户指令] --> L[Qwen3-VL 语言模型]
V --> L
L --> O[结构化输出<br/>文字 + 坐标词元 + OBJ]
O -->|框坐标| B[预测框]
O -->|OBJ 隐状态| Q
V -->|中间层多尺度特征| A[视觉特征适配器]
subgraph 像素解码器 960 万参数
A --> Q[框引导查询解码器<br/>6 个可变形注意力块]
B --> Q
Q --> K[动态卷积核]
A --> F[多层像素融合]
K --> M[粗掩码]
F --> M
M --> U[三级上采样细化]
end
U --> R1[分割: 二值掩码]
U --> R2[抠图: 透明度遮罩]
训练数据与数据引擎¶
训练用到约一亿张图像、约 36 亿个边界框标注,来源包括 GRIT、CC3M、LAION、SA-1B 和各任务的专门数据集。大部分标注由作者称为数据引擎的自动流水线产出:先借助知识图谱(维基百科、WordNet)发现概念,再用 SAM3 与检测器给出候选框、由 Qwen3-VL 核验;指代描述用 SAM3 Agent 和 Rex-Omni 生成后再做语义整合;掩码由 SAM2 预测并人工抽检;抠图标注由 BiRefNet、MatAnyone2 等专家模型给出。
数据引擎里最值得注意的一环是难例与负例构造。负例指的是「图里没有任何物体同时满足所有条件」的提问,比如图里只有红车却问「蓝色的车」,或者问「穿白衣又穿红短裤的人」而没有人两者兼备。这类负例通过有控制地改动描述条件、以及收集模型实际答错的案例来构造,后面会看到,它们是拒答能力的来源。
三阶段课程式监督微调¶
训练分三个阶段,由易到难,像课程一样排布。
第一阶段:任务对齐。 冻结视觉编码器和视觉语言投影层,只训练语言模型,共 13K 步、9000 万条样本。目的是让模型学会新加的坐标词元、各类任务指令、结构化输出格式,以及在没有目标时说 None。这一阶段每个类别最多给 50 个框或点,视觉词元 16 到 512 个,上下文 4096,原因是一开始就塞几百个框会让模型「输出崩溃」,只会重复。
第二阶段:分辨率与密度扩展。 全部参数解冻,共 9K 步、4000 万条样本。每条回答最多可有 500 个框或点,视觉词元升到 1960 个,上下文扩到 8192。目的在于看清小物体、应付拥挤场景。
第三阶段:词元与像素交替优化。 先用 2.5 亿条分割样本、10 万步预热像素解码器,损失为 20 倍焦点损失加 Dice 损失;再以 1 比 1 交替训练下一个词元预测和像素任务 9K 步,联合损失为下一个词元预测损失加 10 倍分割损失;最后冻结 VLM,用 1.3 亿条抠图样本、10 万步专门微调解码器去做透明度预测,损失由 L1、梯度、拉普拉斯金字塔和难区域四项加权组成。
混合任务强化学习¶
监督微调之后,作者用 GRPO 做混合任务强化学习。GRPO 对同一个「图像加提示」采样一组答案(这里是 8 个),用组内相对好坏当作优势信号来更新模型。
选什么样的题来练。 作者用不确定度挑题:对每道题,看监督微调后的模型多次作答的平均奖励 μ 和奖励的标准差 σ,计算 U = 4·μ·(1−μ)·σ。这个式子在「不太会也不全不会」、且答案波动大的题上取值最高,正是最值得练的那一类。按此筛出约 14 万条,再加上有针对性的样本,强化学习语料共约 17.8 万条。
奖励怎么算。 对一次完整的结构化回答,先在同类语义内用匈牙利算法把预测框与真实框一一配对,再计算 r = 2·Σ IoU³ / (真实框数 + 预测框数)。这个奖励同时惩罚多框和漏框:多预测的框和漏掉的框都会增大分母。IoU 取三次方的用意,是让「框得非常准」比「框得差不多」得到明显更高的回报,把模型往高质量定位上推。分割和抠图任务在强化学习阶段只奖励框,不评价掩码与透明度。负例提问则只有在模型回答「没有」时才得满分。
flowchart TD
S1[阶段一 任务对齐<br/>冻结视觉 只训语言模型<br/>13K 步 9000 万条 每类至多 50 框] --> S2[阶段二 分辨率与密度<br/>全参数 9K 步 4000 万条<br/>每条至多 500 框 1960 视觉词元]
S2 --> S3a[阶段三 预热像素解码器<br/>2.5 亿分割样本 10 万步]
S3a --> S3b[词元与像素 1:1 交替<br/>9K 步]
S3b --> S3c[冻结 VLM 抠图微调<br/>1.3 亿样本 10 万步]
S3c --> RL[混合任务强化学习 GRPO<br/>不确定度选题 约 17.8 万条<br/>奖励 2ΣIoU³ / 框数之和<br/>负例答没有才得分]
三、实验¶
报告在三十多个基准上做了评测,下面挑主要几类列出,对比对象是同量级的开源视觉定位模型。
目标检测¶
| 基准 | 指标 | WeVisOne-2B | WeVisOne-4B | Rex-Omni-3B | LocateAnything-3B |
|---|---|---|---|---|---|
| COCO | F1@0.5 | 72.6 | 74.0 | 72.0 | 70.1 |
| COCO | F1 Mean | 55.2 | 57.1 | 52.9 | 54.7 |
| LVIS | F1 Mean | 53.3 | 55.3 | 46.9 | 50.7 |
| Dense200 | F1 Mean | 61.4 | 71.3 | 58.3 | 58.7 |
| VisDrone | F1 Mean | 40.4 | 44.7 | 35.8 | 39.9 |
在常规的 COCO 上,4B 模型比最强对手只高一两个点;差距拉开的地方在长尾类别(LVIS)和密集场景(Dense200、VisDrone)。Dense200 上 4B 比 2B 高出近 10 个点,说明模型规模对拥挤画面帮助很大。
计数与文字定位¶
| 基准 | WeVisOne-2B | WeVisOne-4B | 对手 |
|---|---|---|---|
| CountQA(完全匹配) | 90.9 | 93.7 | LocateAnything-3B 88.7 |
| PixMo-Count(完全匹配) | 88.1 | 89.6 | LocateAnything-3B 82.8 |
| MixCount(完全匹配) | 32.2 | 40.4 | LocateAnything-3B 15.2 |
| TotalText(F1 Mean) | 42.5 | 52.0 | Rex-Omni-3B 40.6 |
| SROIE(F1 Mean) | 62.1 | 68.1 | Rex-Omni-3B 44.8 |
MixCount 这类混合类别计数,各家都不高,但 4B 模型比对手翻了一倍多。文字定位上,收据类的 SROIE 提升最明显。
指代分割与抠图¶
| 基准 | 指标 | WeVisOne-2B | WeVisOne-4B | 对手 |
|---|---|---|---|---|
| RefCOCO val | cIoU | 79.7 | 81.4 | Youtu-VL-4B 80.7 |
| RefCOCO+ val | cIoU | 73.1 | 76.5 | Youtu-VL-4B 76.2 |
| RefCOCOg val | cIoU | 74.4 | 77.7 | Youtu-VL-4B 76.5 |
| ReasonSeg val | gIoU | 60.9 | 71.2 | UniPixel-7B 60.5 |
| WeRefMat(指代抠图) | MAD↓ | 15.8 | 9.8 | SAM2-Matting 51.9 |
| AM-2K(框提示抠图) | MAD↓ | 5.7 | 5.0 | SAM2-Matting 12.1 |
在 RefCOCO 系列的经典指代分割上,它与同量级对手基本持平,只略高一点;需要推理的 ReasonSeg 上 4B 比 7B 的 UniPixel 高出 10 个点以上。抠图上,误差只有 SAM2 抠图方案的一半左右,按文字指代抠图时差距更大。
最突出的结果:会拒答¶
| 基准 | WeVisOne-2B | WeVisOne-4B | 对手 |
|---|---|---|---|
| RefCOCOg-Rej(拒答率) | 50.2% | 67.4% | LocateAnything-3B 0.6% |
| WeRef-Bench 拒答子集 | 92.9% | 96.4% | LocateAnything-3B 73.0% |
| Ref-ZOM(拒答率) | 62.4% | 86.0% | Youtu-VL-4B 1.3%,UniPixel-7B 0.3% |
这一组数字是整篇报告最有说服力的部分。在「图中根本没有符合描述的目标」的提问上,多数同类模型的拒答率只有百分之零点几到一点几,也就是说它们几乎总会硬框出一个东西;WeVisOne-4B 则在三个基准上分别拒答了 67.4%、96.4% 和 86.0%。这种差别直接来自训练设计:数据引擎专门构造了负例,强化学习又规定只有答「没有」才能得分。报告没有给出逐项消融,所以无法把功劳精确分到监督微调和强化学习各自头上。
反直觉之处¶
有一处值得单独记一笔:在框提示抠图的 P3M-500-NP 和 PPM-100 上,2B 模型的误差(6.6、5.3)反而低于 4B(7.3、6.1)。由于抠图阶段冻结了 VLM、只训解码器,而两个规模用的是同一个 960 万参数的解码器,这个结果并不奇怪:当提示已经是一个框时,抠图质量主要取决于解码器而非底座大小;只有在需要先理解文字指代的 WeRefMat 上,4B 才显出优势(9.8 对 15.8)。
四、局限¶
作者承认的局限¶
作者列了三点。其一,训练里通用数据比例有限,模型的通用对话与理解能力可能比底座 Qwen3-VL 有所下降。其二,模型被训练成直接输出结构化结果,不做链式推理,面对需要多步推理的复杂指令可能吃力。其三,目前只支持单轮预测,不能在对话中逐步澄清。作者还特别指出,基准里的提示都清晰、规范、无歧义,而真实用户的指令往往含糊、犹豫,可靠部署需要更强的意图推理,这也是他们计划接入多轮智能体框架的原因。
读完能看出来的潜在问题¶
第一,消融不足。报告用三阶段课程和强化学习讲了一个完整的故事,但没有给出逐项拆掉某一环后的对照实验,例如不做强化学习、不用坐标专用词元、不用 IoU 三次方,各自会掉多少。于是很难判断哪些设计真正关键,哪些只是工程选择。
第二,大量标注来自其他模型。数据引擎重度依赖 SAM2、SAM3、Rex-Omni、BiRefNet 等专家模型生成标注,人工只做抽检。这样做规模大、成本低,但也可能把这些模型的系统性偏差一并学进来,而评测时的部分基准(尤其是作者自建的 WeRef-Bench、WeRefMat)又可能与训练数据的分布相近,自建基准上的大幅领先需要打一点折扣。
第三,拒答与召回之间的取舍没有讲透。拒答率高固然好,但模型同样可能在「其实有、只是不显眼」的目标上也选择拒答。报告给了拒答率,却没有同时给出在这些拒答基准上的误拒比例,使用者需要自己在业务数据上验证这条边界。
第四,训练成本高、复现门槛高。一亿张图、36 亿个框、几亿条分割与抠图样本,外加多阶段训练,普通团队几乎无法复现训练过程;好在作者开源了模型,下游使用者可以直接拿来微调或评估。
一句话¶
WeVisOne-VL 以坐标词元加 OBJ 词元驱动小解码器,统一检测到抠图六类感知,并靠负例与强化学习学会拒答。