蚂蚁集团旗下Robbyant开源LingBot-Vision:1B参数边界中心视觉基础模型,用于密集空间感知
阅读原文· marktechpost.com在视觉基础模型里把边界当作核心信号,这个思路很反常识,1B模型在深度估计上超过7B的DINOv3,做机器人的可以认真看看。
蚂蚁集团旗下具身智能公司Robbyant开源LingBot-Vision,一套自监督视觉Transformer家族,专为密集空间感知设计。旗舰ViT-g/16参数约1.1B,采用掩膜边界建模训练,将边界作为原生预训练信号。在密集空间任务中,该1B模型匹配或超越参数规模高达7倍的大模型(如7B DINOv3)。模型以Apache-2.0许可证在Hugging Face开源,提供ViT-g、ViT-L(300M)、ViT-B(86M)、ViT-S四个规模。
蚂蚁集团旗下的具身AI公司Robbyant已开源LingBot-Vision,这是一个基于自监督视觉Transformer(Vision Transformer)构建的模型系列,专为密集空间感知而设计。模型权重以Apache-2.0许可协议发布在Hugging Face上,提供四个尺寸——ViT-giant、ViT-large、ViT-base和ViT-small,同时附带技术报告和推理代码。
大多数视觉基础模型都针对语义不变性进行训练:它们学会回答图像中有什么,却恰恰丢弃了机器人及其他物理具身系统所依赖的细粒度空间结构——物体边界、轮廓、深度不连续性。LingBot-Vision颠覆了这种优先级。它将边界视为原生预训练信号而非下游输出,成果是一个拥有10亿参数的骨干网络,在密集空间任务上达到甚至超越比它大7倍的模型,包括70亿参数的DINOv3。
什么是LingBot-Vision?
LingBot-Vision是一个用于空间结构下游任务的自监督预训练编码器。其旗舰模型ViT-g/16拥有约11亿参数,采用一种名为掩码边界建模的新目标函数进行训练,使用的语料库从20亿网络图片中精选出约1.61亿张——不含人类标注、不依赖外部边缘检测器,也不需要预训练骨干网络作引导。训练过程还特别经济:语料库比DINOv3的LVD-1689M小一个数量级,且模型消耗的训练样本不到DINOv3的三分之一。
编码器输出密集的patch-token特征,供冻结读取头使用。在预算有限的部署场景下,旗舰模型被蒸馏为ViT-L(3亿参数)、ViT-B(8600万参数)和ViT-S(小尺寸)的学生模型,这些模型在其各自尺寸类别中均领先密集预测性能。
掩码边界建模的工作原理
该方法建立在DINO/iBOT自蒸馏范式之上:教师网络——即学生网络的指数移动平均副本——生成在线目标,学生网络则从被掩码的视图中恢复这些目标。
标准掩码图像建模会随机隐藏图像块,而不考虑每个图像块描绘的内容。平坦的内部图像块可以轻松从相邻块恢复;而跨越物体边界的图像块携带的结构是仅凭上下文无法补全的。边界是图像中冗余最少、信息最丰富的区域——但随机掩码却将其与其他区域一视同仁。
LingBot-Vision 通过两个思路弥补了这一差距。
边界强制。教师网络在线预测一个稠密边界场,并识别出包含边界的 token B。这些 token 被强制纳入学生的掩码集合中,叠加在随机掩码 M 之上,形成组合掩码 M⁺ = M ∪ B。随后,被掩码的 token 按几何特征进行路由:边界 token 除了语义自蒸馏目标外,还会接收一个显式的几何目标;而内部被掩码的 token 则仅保留标准的语义目标。这种路由方式之所以重要,是因为语义目标在两个区域交界处本身就具有歧义——而几何目标恰恰在传统掩码建模最薄弱的区域是良定义的,这使得语义表示与几何表示能够协同涌现而非相互竞争。
分类边界场。边界被建模为升维至稠密场的线段:每个邻近像素存储一个属性向量 a(p) = (d, θ, φ¹, φ²),记录其到最近线段的距离以及三个定位角度。在教师-学生循环中直接回归该场会导致崩溃。解决方案是将每个通道离散化为 K = 32 个分箱,将边界预测重新定义为逐像素分类——这使得边界分支能够继承现代自蒸馏中用于稳定训练的同一种中心化与锐化机制。
分类形式有一个优雅的附带效果。在经典的“无结构”反原假设下,边界方向是均匀分布的——而该原假设现在恰好就是各区间上的均匀分布。偏离均匀性则表明了真实边界的存在,因此一种无参数的虚警数(NFA)检验可以零额外成本地验证每一个解码出的分段。教师模型在每次迭代中都利用这一点:它从自身的场预测中解码候选分段,仅保留通过NFA验证的分段,并将它们重新渲染到目标场中——这样,无支持的结构永远不会成为教学信号。
完整目标函数由四项之和构成:
L = L_DINO + λᵢ · L_iBOT + λᵦ · L_bnd + λₖ · L_KoLeo
基准测试与性能
以下所有密集结果均使用冻结的视觉特征,仅加一个线性层,因此性能归因于表征本身,而非解码器。
| 模型 | 参数 | NYUv2 RMSE ↓ | KITTI RMSE ↓ | ADE20K mIoU | Cityscapes mIoU | VOC mIoU |
| LingBot-Vision ViT-g | 1B/16 | 0.296 | 2.552 | 53.5 | 79.6 | 87.5 |
| DINOv3 | 7B/16 | 0.309 | 2.346 | 55.9 | 81.1 | 86.6 |
| V-JEPA 2.1 ViT-G | 2B/16 | 0.307 | 2.461 | 47.9 | 73.5 | 85.0 |
| AM-RADIOv2.5 | 1B/14 | 0.340 | 2.918 | 53.0 | 78.4 | 85.4 |
| DINOv2 | 1B/14 | 0.372 | 2.624 | 49.5 | 75.6 | 83.1 |
| SigLIP 2 | 1B/16 | 0.494 | 3.273 | 42.7 | 64.8 | 72.7 |
在NYU-Depth v2上,LingBot-Vision取得了整个对比中的最佳RMSE(0.296),领先于7B的DINOv3(0.309),而参数量仅为后者的约1/7,也领先于2B的V-JEPA 2.1(0.307)。在KITTI上,它是2B以下参数中性能最好的模型。在语义分割上,它与经过蒸馏的DINOv3 ViT-H+相当——在ADE20K上落后1.3 mIoU,在Cityscapes上持平,在VOC12上领先;同时相对同尺寸的DINOv2,在三个基准上均提升了4+ mIoU;唯一剩余的差距是相对于DINOv3系列本身(在ADE20K上落后7B模型2.4 mIoU),DINOv3的密集优势源于蒸馏和专门的密集特征目标。
视频目标分割利用免训练的标签传播机制,基于冻结特征实现。LingBot-Vision 在 DAVIS-2017 上达到 70.0 的 J&F 分数,在 YouTube-VOS 上达到 73.5 —— 与 DINOv3 ViT-H+(71.1 / 74.0)以及 7B 规模的 DINOv3(71.1 / 74.1)相当,并且是所有其他规模模型中表现最好的。边界 token 本身足够稳定,可以通过视频中冻结特征的简单余弦相似度进行跟踪,无需任何时序监督。
代价在于图像级识别能力:ImageNet-1K 线性探测达到 86.32,k-NN 达到 83.39,落后于 DINOv3-7B(后者将模型容量用于图像级不变性)。这些优势在知识蒸馏后依然保持 —— 0.3B 的 ViT-L 学生模型在 NYUv2 深度估计任务上与 7B 的 DINOv3 表现相当(0.310 vs. 0.309),而参数量仅为后者的约 1/23。
使用场景与加载方式
冻结的 patch token 可直接服务于多种密集任务:深度估计从特征中直接读取几何信息,语义分割受益于恰好落在物体轮廓上的特征过渡,视频目标分割则通过余弦相似度 token 匹配实现。该编码器还可作为下游深度补全训练的初始化权重。
加载主干网络的操作请参考官方仓库:
git clone https://github.com/robbyant/lingbot-vision.git
cd lingbot-vision
conda create -n lingbot-vision python=3.10 -y
conda activate lingbot-vision
python -m pip install -r requirements.txt
python -m pip install -e .
import torch
from lingbot_vision import load_pretrained_backbone, extract_patch_tokens, load_image
device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.bfloat16 if device == "cuda" else torch.float32
# Downloads model.pt from Hugging Face on first use.
backbone, embed_dim = load_pretrained_backbone(
variant="small", # giant | large | base | small; defaults to large
device=device,
dtype=dtype,
)
img_norm, _, _ = load_image(
"examples/example.png",
size=512,
patch_size=backbone.patch_size,
mode="square",
)
patch_tokens, patch_grid = extract_patch_tokens(backbone, img_norm, device, dtype)
print(patch_tokens.shape, patch_grid, embed_dim)
# torch.Size([1, 1024, 384]) (32, 32) 384
variant 参数用于选择模型大小,默认为 large。输出 patch_tokens 的形状为 [B, H*W, C]。运行环境要求 Python ≥ 3.10 和 PyTorch ≥ 2.0,对于较大的主干网络建议使用 GPU。
LingBot-Depth 2.0:下游任务的实际回报
为了展示空间感知原生编码器能为下游任务带来什么,该团队将其深度补全系统升级为 LingBot-Depth 2.0。掩码深度建模的配方与 1.0 版本保持一致;仅有两点变化:编码器初始化从 DINOv2 切换为 LingBot-Vision(ViT-L 和 ViT-g 变体),同时精心整理的训练数据从公开的 300 万样本扩展至 1.5 亿样本。
这两项改动在涵盖块掩码、稀疏和真实传感器场景的14个深度补全基准测试中取得了领先结果。在块掩码DIODE-Indoor上,RMSE从0.132降至0.062,降低了一半。该系统在透明物体ClearGrasp数据集上表现最强(0.010/0.012 RMSE)——这是主动深度感知的经典失败场景。
值得注意的是,这两项改动是叠加而非抵消效应:当训练数据从300万增至1.5亿时,DINOv2初始化的曲线在超过2000万样本后趋于饱和,而LingBot-Vision曲线持续改善。更多数据放大了更好初始点的优势,而非抹平这一优势。
关键要点
- LingBot-Vision将边界作为原生预训练信号,从原始图像中自举得到,无需标注、边缘检测器或预训练骨干网络。
- 边界强制加上分类边界字段使得几何与语义共同涌现——同时免费获得了无参数的NFA验证测试。
- 10亿参数的骨干网络在其对比中取得了最佳NYU-Depth v2 RMSE,领先于70亿参数的DINOv3,同时训练语料库小了一个数量级。
- 优势在蒸馏后依然保持:3亿参数的ViT-L在NYUv2上与70亿参数的DINOv3持平,参数量减少约23倍。
- 仅替换编码器并扩展数据,LingBot-Depth 2.0就在14个深度补全基准测试中取得领先结果,并且该编码器的优势随数据量增加而扩大。
- 模型权重以Apache-2.0协议发布,提供ViT-g/L/B/S尺寸,适配各种部署预算。