腾讯开源 WeVisOne-VL:一个 4B 模型同时干检测、计数、OCR、分割和抠图,Apache 2.0
做电商图、做封面、做批量素材的人,手上通常是这么一条流水线:一个检测模型出框,再挂一个 SAM 出掩码,需要透明背景还得再来一个抠图模型。三套权重、三次对齐、三份环境。WeVisOne-VL 想干的事就是把这三步压成一个模型。
它是什么
基座是 Qwen3-VL,后面接一个 9.6M 参数的像素解码器——对比动辄几亿参数的 SAM 系列,这个「小尾巴」只有一张 YOLOv8n 的量级。它复用 Qwen3-VL 视觉编码器的多层特征,把语言模型输出的每个框变成掩码,再细化成带透明度的 Alpha 抠图。
任务统一成结构化的 next-token prediction,一个 predict() 接口切 7 类:
| task | query | 输出 |
|---|---|---|
| detection | 类别列表(支持中文) | 框 |
| referring | 自然语言描述 | 框,或 None |
| point | 类别 / 表达式 | 点 |
| count_box / count_point | 类别 / 表达式 | 框 / 点 + 数量 |
| ocr / ocr_grounding | 无 / 待查文本 | 文本 + 框 |
| segmentation | 类别 / 表达式 | 框 + 二值掩码 |
| matting | 类别 / 表达式 | 框 + Alpha 抠图 |
坐标用 0 到 1000 的专用 token 表示,省 token 也更好定位。
官方给的数字(4B 对最强开源基线)
| 任务 | 基准 | 基线 | 2B | 4B |
|---|---|---|---|---|
| 检测 | LVIS F1 | 50.7 | 53.3 | 55.3 |
| 密集检测 | Dense200 F1 | 58.7 | 61.4 | 71.3 |
| 指代定位 | RefCOCOg F1 | 77.6 | 78.2 | 81.8 |
| 拒识 | WeRef-Bench | 73.0 | 92.9 | 96.4 |
| 计数 | PixMo-Count | 82.8 | 88.1 | 89.6 |
| OCR | TotalText F1 | 43.3 | 42.5 | 52.0 |
| 指代分割 | ReasonSeg gIoU | 65.0 | 60.9 | 71.2 |
| 框提示抠图 | P3M-500-NP MAD(越低越好) | 15.4 | 6.6 | 7.3 |
| 文本提示抠图 | WeRefMat MAD | 22.4 | 15.8 | 9.8 |
拒识那一行是我觉得最该看的一行。开放集检测器最烦人的毛病是「图里没有大象也要给你框一个最像的」——你必须在下游再写一遍置信度过滤,且永远调不准。WeVisOne-VL 是从机制上解决:目标不在图里就输出 None,不是靠卡阈值。
怎么跑起来
git clone https://github.com/Tencent/WeVisOne-VL.git
conda create -n wevisone-vl python=3.10 -y && conda activate wevisone-vl
pip install -r requirements.txt && pip install -v -e .
from wevisone_vl import WeVisOneVL
from wevisone_vl.visualization import save_result
model = WeVisOneVL("tencent/WeVisOne-VL-4B", backend="transformers")
result = model.predict(image, task="matting", query="person")
save_result("outputs/matting", image, result)
device 支持 "auto" / "cuda:0" / "npu:0" / "cpu",backend 可选 transformers 或 vLLM。官方还放了两个 Gradio 在线 demo(2B / 4B),可以先不下载权重试效果。
多少钱:模型本身开源免费,Apache 2.0,商用前按惯例读一遍许可证与依赖条款。真正的成本是显卡和硬盘——权重是 fp32 存储,4B 要下 19.3GB、2B 约 9.8GB;加载时转 bf16,实测显存 4B 约 9.07GB、2B 约 4.57GB。国内直连 Hugging Face 单线程很慢,19.3GB 能拖十几个小时,得自己想办法并行下。
第三方在 RTX 5060 Ti 16GB 上的实测均值:4B 检测 4.19 秒、分割 2.00 秒、抠图 1.04 秒、OCR(13 个词条)10.09 秒;2B 分别是 3.08 / 1.53 / 0.84 / 6.94 秒。14 个用例上 2B 与 4B 结果几乎一致,只有 OCR 少认了一个符号。
泼冷水
- 所有榜单都是腾讯自报的。 而且 WeRef-Bench、WeRefMat 这两个带「We」前缀的基准是团队自己建的,等独立复现。
- OCR 慢是硬伤。 一张 13 个词条的招牌要 10 秒,文字越多越慢,因为输出 token 线性增长。大批量 OCR 还是专用引擎划算,别拿它顶替。
- 多人抠图只出一个。 一张公交站照片里 7 个人,query 写
person只抠最显著的一个。要全抠得先用 count 或 detection 出框再逐个查——这是「文本提示」范式跟 SAM 那种「点选」范式的本质差别,别指望它像 SAM 一样点谁抠谁。 - fp32 权重体积骗人。 名字叫 4B,下载是 19.3GB。磁盘紧张的先留好空间,或者直接从 2B 开始。
- 它是感知专才,不是通才。 论文自己承认,因为通用数据占比有限,开放闲聊等通用能力可能弱于原版 Qwen3-VL。别拿它当聊天模型。
- Gradio demo 和微调代码还在 TODO 里没发。 想改它适配自己的品类,现在还没官方路径。
具体建议
- 先用官方的在线 Gradio demo 拿你自己的 10 张真实图试,别下载 19.3GB 之前就下结论。
- 显卡在 8GB 以下、或者要跑吞吐,直接选 2B。14 个用例上它跟 4B 几乎打平,速度快一档、显存只要一半。
- 如果你现在的流水线是「检测 + SAM + 抠图」,先量一下三段各自的耗时和出错率,再决定要不要换。省下的主要不是推理时间,是三套环境的维护。
- 拒识能力单独测一遍:拿 5 张确定不含目标的图问,看它是不是真的返回 None。这个能力决定你要不要在下游再写过滤逻辑。
- 商用前确认许可证。腾讯自研代码是 Apache 2.0,第三方组件保留各自许可,打包分发时要带上声明。
原文与仓库:https://github.com/Tencent/WeVisOne-VL (权重 tencent/WeVisOne-VL-2B 与 tencent/WeVisOne-VL-4B)