写在前面
【从零走向AGI 】旨在深入了解通用人工智能(AGI)的发展路径,从最基础的概念起,逐步构建完整的知识体系。
项目地址🔗:https://ai-mzq.github.io/From-Zero-to-AGI/
〔更多精彩AI内容,尽在 「魔方AI空间 」 ,引领AIGC科技时代〕
本文作者:猫先生
导读
LingBot-Depth 2.0 的提升,先要从 LingBot-Vision 这套视觉预训练框架说起。问题很直接:视觉模型如果最后要给机器人、深度补全和物理世界理解用,预训练阶段就不能只把类别和语义学稳,还得学会空间结构。
LingBot-Vision 的回答是 boundary-centric masked modeling。传统视觉自监督预训练常常随机遮挡 patch,再让模型恢复语义 token 或图像内容;LingBot-Vision 改成由教师模型在线发现边界,再把含有边界的 token 强制加入 mask,让学生恢复这些最不冗余、最有几何信息的位置。边界 token 不只做语义自蒸馏,还要学习一个离散化的边界场目标。
到 LingBot-Depth 2.0,改动反而很克制:depth completion 的主流程基本保留,编码器从 DINOv2 换成 LingBot-Vision,训练数据从 3M 扩展到 150M RGB-D 样本。结果显示,空间感知更强的预训练初始化会在深度补全里持续放大优势,尤其是在透明、反光、深度空洞和物体边界附近。
猫先生认为 ,这篇论文的关键价值在于把边界从下游检测目标提前到了预训练阶段。具身智能需要的视觉表征,不只要认出物体,也要稳定表达表面、遮挡、深度突变和可行动几何结构。
- 论文标题:Vision Pretraining for Dense Spatial Perception
- 论文地址:https://arxiv.org/abs/2607.05247
- 项目主页:https://technology.robbyant.com/lingbot-vision
- GitHub:https://github.com/robbyant/lingbot-vision
- HuggingFace:https://huggingface.co/collections/robbyant/lingbot-vision

图 1:原论文 Figure 1 展示了 LingBot-Vision 的核心现象:冻结特征不仅能形成语义分组,还能在边界 token 上呈现稳定的几何响应。它是整篇论文的入口图。
原文脉络
原文开场围绕"空间结构"展开:现有视觉基础模型强在语义不变性,但对具身智能所需的稠密空间结构不够敏感。相关工作随后回到两条研究线:自监督视觉表征和边界建模。这个铺垫把 LingBot-Vision 的定位说清楚了:它不是单独做边缘检测,而是在尝试把边界变成预训练信号。
第 3 节是全文技术核心,提出 Boundary-centric Masked Representation Modeling。它先回顾 DINO/iBOT 式 teacher-student 自蒸馏,再引入 boundary-forcing mask、边界场离散化、在线边界目标生成和完整训练目标。第 4 节讲如何把这套方法扩展成 1B 参数的 LingBot-Vision,包括数据、系统效率和训练细节。
第 5 节用 frozen feature probing 证明 LingBot-Vision 的空间表征强度:深度估计、语义分割、视频目标传播、蒸馏模型都给出证据。第 6 节才进入 LingBot-Depth 2.0:用 LingBot-Vision 作为 depth completion 的空间感知初始化,再配合更大 RGB-D 数据,推动实际深度补全效果。第 7 节总结:边界建模可以成为一种可扩展的视觉预训练原则。
1-2. 背景与相关工作:空间结构为什么要进入预训练
开头的判断很直接:视觉智能不只是识别图像里有什么,还要恢复物理世界中可测量、可导航、可行动的空间结构。分割、深度、运动、布局这些任务都离不开边界和形状不连续性。物体 mask 划出实体,深度突变暴露几何,运动轮廓区分动态区域,遮挡边界组织可见表面。
问题在于,很多现代视觉基础模型的目标函数并不天然偏向这些结构。DINO 系列强调自蒸馏和语义一致性,CLIP/SigLIP 强调图文对齐,MAE 类方法强调重建。它们可能间接学到一些边界,但边界更多是副产物,而不是训练目标。DINOv3 还需要 Gram anchoring 来保护长训练中的 dense feature,这也说明稠密空间质量不是自动稳定出现的。
相关工作服务于一个判断:边界不该只留给下游任务。一边是视觉自监督学习,从 contrastive learning、masked image modeling 到 DINO/iBOT/DINOv2/DINOv3;另一边是边界结构建模,从 Sobel、Canny、LSD 到 attraction field / boundary field。过去边界场通常用于检测线段或 wireframe,LingBot-Vision 则把它用作自监督预训练的学习媒介。
猫先生认为 ,前两节服务于一个技术矛盾:语义自蒸馏越追求不变性,越可能抹掉细粒度边界;但具身智能恰恰需要边界。 第 3 节的方法就是围绕这个矛盾展开。
3. 方法与核心架构:边界中心 masked modeling
3.1 从 DINO/iBOT 出发:保留自蒸馏骨架
方法没有另起炉灶,而是从现有 teacher-student 自蒸馏框架出发。学生网络 fθf_\thetafθ 学习 EMA 教师 fθˉf_{\bar{\theta}}fθˉ 的输出,教师权重按指数滑动平均更新。class token 走 DINO 式图像级蒸馏,patch token 走 iBOT 式 masked token 蒸馏。
这套基础设置给边界分支留了一个稳的位置:LingBot-Vision 并不是把视觉预训练改造成边缘检测任务。它保留语义自蒸馏,让模型仍然学全局语义;新增的几何分支只负责补上随机 mask 和语义 codeword 在边界处的短板。
传统 iBOT 的 masked set 是随机采样的。随机采样的问题很朴素:平坦墙面、天空、桌面内部这些 patch 很容易从邻居推出来;难度更高、信息密度更大的位置,往往在物体轮廓、遮挡边界和深度突变附近。随机遮挡会把不少训练预算花在低信息密度区域。
3.2 Boundary-forcing mask:把边界 token 强制遮住
LingBot-Vision 的第一步改动,是让教师预测的边界决定哪些 token 必须被遮住。具体说,教师在线生成一个边界图;如果某条边界穿过一个 P×PP \times PP×P patch,这个 patch 就被标记为 boundary token。设边界 token 集合为 BBB,随机 mask 集合为 MMM,最终学生看到的 mask 是:
M+=M∪B M^+ = M \cup B M+=M∪B
边界 token 不再靠运气进入 mask,而是被强制加入训练难题里。更关键的是,这些 token 接受双重监督:所有 masked token 继续走 iBOT 语义蒸馏,边界 token 额外接受边界场目标 LbndL_{\mathrm{bnd}}Lbnd。

图 2:原论文 Figure 2 用玩具立方体说明 boundary-forcing 的动机。随机 mask 往往遮住很多平坦区域,而边界强制遮挡会把结构本身变成学生必须恢复的对象。
猫先生认为 ,这一节最重要的一句话是:mask 决定模型在哪里面对难题,目标函数决定模型在那里学什么。 只把边界 token 遮住还不够;如果仍然只用语义目标恢复,收益并不明显。收益来自"边界位置 + 几何目标"同时成立。
3.3 边界场:从 edge map 转向可验证线段场
边界目标没有选简单 edge map,而是采用 boundary field / attraction field 的思想。边界被表示为线段集合,每个线段附近的像素都存储一组属性:
a(p)=(dp,θp,ϕp1,ϕp2) a(p) = (d_p,\theta_p,\phi^1_p,\phi^2_p) a(p)=(dp,θp,ϕp1,ϕp2)
其中 dpd_pdp 是像素到线段的距离,θp\theta_pθp 是方向,ϕp1,ϕp2\phi^1_p,\phi^2_pϕp1,ϕp2 表示从该像素看线段两个端点的角度。这个表示有点绕,但它的好处很明确:稀疏线段被提升成稠密学习目标,每个支持区域里的像素都能为同一条线段投票。

图 3:原论文 Figure 4 展示了 boundary field 的表示方式。它不是逐像素判断"是不是边缘",而是让附近像素共同编码一条线段的位置、方向和端点。
为什么不用 edge map?理由很现实:edge pixel 是孤立响应,阈值一调就会受纹理影响;线段则是一个由许多支持像素共同支撑的假设,可以用 a-contrario 检验判断它是否不像随机结构。这对自监督尤其重要,因为教师预测会变成学生目标。如果教师的伪边界很脏,训练就会把噪声放大。
3.4 Categorical reparameterization:把连续边界场变成分类目标
边界场本来是连续向量。如果直接做 ℓ1\ell_1ℓ1 或 ℓ2\ell_2ℓ2 回归,在 EMA teacher-student 循环中很容易漂移甚至塌缩。LingBot-Vision 把每个边界场通道离散成 KKK 个 bin,用分类分布来表示连续值。
教师给出的边界场值 ac(p)a_c(p)ac(p) 会被编码成一个窄的软标签,学生边界头输出对应通道的离散分布,边界损失就是边界位置上的 cross-entropy:
Lbnd=−1∣B∣∑p∈B∑cyˉc(p)⊤logy^c(p) L_{\mathrm{bnd}}=-\frac{1}{|B|}\sum_{p\in B}\sum_c \bar{y}^c(p)^\top \log \hat{y}^c(p) Lbnd=−∣B∣1p∈B∑c∑yˉc(p)⊤logy^c(p)
把连续边界场改成分类分布,看起来只是换了损失形式,实际解决的是训练稳定性问题。第一,边界目标可以继承 DINO/iBOT 中 centering、sharpening 这类稳定训练机制。第二,"没有结构"的情况自然变成均匀分布,正好对应 a-contrario 检验里的无结构零假设。
猫先生认为 ,这一节比 boundary-forcing 本身还关键。没有离散化,边界分支很难接上 DINO/iBOT 那套稳定训练机制;有了它,几何目标才变成可以规模化自蒸馏的目标。
3.5 在线生成边界目标:教师自举,但不盲信教师
难点在自举:模型从随机初始化开始,教师一开始也不懂边界,边界目标从哪里来?办法是先用轻量角点检测器提供稀疏 anchors,再让边界场通过投票生成候选线段,最后用 a-contrario 检验过滤掉不可靠线段。
具体流程是四步:教师预测 dense boundary field;用冻结的 single-block ViT 定位 sparse corner points;结合角点和边界场,通过 vote aggregation 解码候选线段;再用 a-contrario test 丢掉不显著的候选,把剩下线段重新渲染成干净的目标场。

图 4:原论文 Figure 5 展示在线目标生成过程。早期教师预测可以很噪,但角点锚定、投票聚合和 a-contrario 验证会把伪边界变成更干净的训练目标。
在线目标生成的重点是"自举但不盲信"。教师并不是把原始预测直接喂给学生,而是要经过线段解码和统计验证。没有这层过滤,自监督边界学习很容易把纹理、噪声和幻觉结构当成真目标。
3.6 训练目标与小规模消融:收益来自几何目标
完整目标由四部分组成:
L=LDINO+λiLiBOT+λbLbnd+λkLKoLeo L = L_{\mathrm{DINO}}+\lambda_i L_{\mathrm{iBOT}}+\lambda_b L_{\mathrm{bnd}}+\lambda_k L_{\mathrm{KoLeo}} L=LDINO+λiLiBOT+λbLbnd+λkLKoLeo
class token 学 DINO,masked patch 学 iBOT,边界位置额外学 boundary field,KoLeo 用于展开 batch 内特征。所有教师目标都 stop-gradient,学生更新后再 EMA 到教师。

图 5:原论文 Table 1 说明,带来 dense geometry 提升的关键是 categorical boundary target。只做 boundary forcing、但仍用语义目标恢复,反而略低于 baseline。
表 1 的信息很关键。DINO+iBOT baseline 在 NYUv2 depth linear probe 上 RMSE 为 0.474;加入 categorical boundary target 后降到 0.446;加入 dual supervision 后到 0.443;最终 recipe 到 0.440。相反,boundary forcing + semantic target only 的 RMSE 是 0.481。
猫先生认为 ,这组消融让主张更站得住:它不是靠"多加一个任务"碰巧涨点,而是在证明一个具体机制链条。边界 token 要被遮住,也必须用几何目标恢复,语义和几何才会共生。
4. LingBot-Vision:把边界中心预训练扩展到 1B 规模
扩展到 LingBot-Vision 后,方法主体保持不变,主要变化来自规模。训练数据从约 2B 张 web images 出发,用公开数据集做种子,通过 DINOv2 ViT-B 特征检索相似图像,最终得到 160.75M 图像。这个规模和 DINOv2 的 LVD-142M 接近,但远小于 DINOv3 的 LVD-1689M。
工程上最麻烦的是边界分支太贵。边界 head 不在所有 token 上密集运行,只在少量 boundary tokens 上展开到 sub-token resolution;标签构造和 cross-entropy 被融合成 custom kernels;教师侧的线段解码、角点配对、a-contrario 检验、重渲染也被做成 batched CUDA work。这篇工作不只是提出目标函数,还认真处理了它能不能大规模跑起来。
训练分三段:300k iterations 自蒸馏预训练,100k Gram anchoring,100k 512px 高分辨率适配。主模型是约 1.1B 参数的 ViT-g/16,之后再蒸馏到 ViT-L、ViT-B、ViT-S。这个结构基本继承 DINOv2/DINOv3 的规模化经验,但把边界分支嵌入整个流程。
5. 实验结果:空间表征的证据
结果部分从 frozen patch feature 的 PCA 展开。这个可视化主要观察特征的空间组织方式:LingBot-Vision 更容易形成物体内部一致区域和清晰边界,而一些 baseline 会出现 speckle、blocky noise 或背景纹理渗入前景。

图 6:原论文 Figure 6 展示不同视觉基础模型的 patch feature PCA。LingBot-Vision 的特征边界更清晰,和后续 dense prediction 的优势相互呼应。
定量部分采用 frozen backbone + 单线性层做 dense probing,尽量把差异压回 backbone 表征本身,减少复杂 decoder 带来的补偿。Table 2 中,LingBot-Vision ViT-g 在 NYUv2 深度估计上 RMSE 达到 0.296,优于 7B DINOv3 的 0.309;在 KITTI 上则是 2B 以下模型中最好,但低于 7B DINOv3 和 2B V-JEPA 2.1。

图 7:原论文 Table 2 是 LingBot-Vision 的主要 dense visual task 证据。最突出的结果是 NYUv2 深度估计,说明边界中心预训练对室内几何尤其有帮助。
语义分割上,LingBot-Vision 接近 DINOv3 ViT-H+,在 VOC12 上领先,但 ADE20K 仍落后 DINOv3 家族。视频目标分割和 boundary token tracking 则说明这些边界特征不只是单帧有效,也能在时间维度上通过相似度追踪保持稳定。
蒸馏结果进一步说明,边界友好的 dense feature 可以传给小模型。ViT-L 学生在 NYUv2 上 RMSE 为 0.310,接近 7B DINOv3 的 0.309,但参数少很多;这类空间表征不只存在于 1B 旗舰模型里。
猫先生认为 ,这部分支撑的是"LingBot-Vision 是一个空间 backbone",不是"它在所有视觉任务上无条件最强"。它在 image-level recognition 上仍弱于 DINOv3/SigLIP 2,说明这条路线确实把能力预算更偏向了局部结构和稠密空间。
6. LingBot-Depth 2.0:空间预训练落到深度补全
LingBot-Depth 2.0 的部分先回顾 1.0 里的 masked depth modeling。它把 depth completion 看成 RGB-D 版本的 masked autoencoding:真实深度相机的缺失区域不是普通噪声,而是天然 mask,因为透明、反光、无纹理表面恰恰是最难成像、也最需要从视觉上下文推断几何的区域。
LingBot-Depth 1.0 使用 RGB token 和 depth token 的双输入,把深度 token 按传感器有效性 mask,再让 ViT encoder 融合 RGB 和未遮挡深度,最后由 decoder 重建完整深度。2.0 没有改这个主 recipe,而是做了两个外部升级:第一,把 encoder initialization 从 DINOv2 换成 LingBot-Vision;第二,把 curated RGB-D 训练数据从 3M 扩展到 150M。

图 8:原论文 Table 6 和 Figure 8 说明,LingBot-Vision 初始化在同一 MDM pipeline 下更适合 depth completion;随着数据从 3M 扩到 150M,这个优势没有消失,反而继续拉开。
Table 6 隔离了 encoder initialization 的影响:同一个 MDM pipeline,ViT-L 规模下 LingBot-Vision 初始化几乎全面优于 DINOv2 和 DINOv3,尤其是 block-mask 场景。DIODE-Indoor block mask 上,LingBot-Vision ViT-L 的 RMSE 是 0.094,DINOv2 ViT-L 是 0.152;ViT-g 下也有类似趋势。
Figure 8 处理的是另一个问题:数据更大后,预训练差异会不会被洗掉?结果是不会。3M、20M、150M 三个规模下,LingBot-Vision 和 DINOv2 都变好,但 LingBot-Vision 的曲线继续提升,DINOv2 在 20M 后更接近饱和。更好的空间预训练会和下游数据规模相互放大,这是 Figure 8 支撑的核心结论。
猫先生认为 ,LingBot-Depth 2.0 最有说服力的证据,是同一 MDM pipeline 下的初始化对比。很多下游结果都可以被解释成"数据更大、模型更大";这组对比说明,对 depth completion 这种边界和材质极其敏感的任务,预训练阶段学到的空间结构仍然会影响最终上限。
6.3 Benchmarking:真实传感器、block mask 和 sparse depth
评测分三类:block-mask benchmarks、sparse benchmarks、真实传感器 captures。block-mask 是在高质量 RGB-D 数据上去掉大块连续深度;sparse 是只保留稀疏深度点;真实传感器包括 HAMMER、ClearGrasp 和自采 LingBot 数据集。自采 LingBot 数据包含 35 个室内场景、1751 帧,覆盖办公室、医院、酒店、餐厅、停车场、电梯等环境。

图 9:原论文 Figure 9 展示镜面、玻璃栏杆和反光地面。原始传感器深度在这些区域缺失,LingBot-Depth 2.0 补出的点云更接近连续平面。
真实传感器结果很贴近机器人场景。透明物体、玻璃、镜面和反光地面是主动深度相机的老难题。LingBot-Depth 2.0 的定性结果强调的不只是"图像看起来平滑",而是点云是否形成连续平面、是否跨帧稳定、是否在物体边界处减少漂浮点。

图 10:原论文 Figure 10 对比 OMNI-DC、CDMs、LingBot-Depth 1.0 和 2.0。2.0 的优势主要体现在平面保持、边界清晰和点云离群点减少。
定量上,Table 7 显示 LingBot-Depth 2.0 在 8 个真实传感器配置中领先 6 个,尤其在 ClearGrasp 透明物体上 RMSE 达到 0.010 和 0.012。Table 8 显示,在 block-mask 和 sparse 输入下,ViT-L 版本在 8 个 benchmark 中 7 个取得最佳 RMSE;ViT-g 在多数 pattern benchmark 和 LingBot sensor suite 上继续提升,但 ClearGrasp 上 ViT-L 反而更强。

图 11:原论文 Table 7 和 Table 8 汇总了 LingBot-Depth 2.0 的主要 depth completion 结果。需要注意,它不是每个分布都单调随模型变大而更好。
这些例外也把结论收得更稳:LingBot-Depth 2.0 很强,但不是"模型越大越好"的简单叙事。ETH3D sparse 上 LingBot-Depth 1.0 仍然更优,ClearGrasp 上 ViT-L 也优于 ViT-g。深度补全仍然强依赖数据分布、传感器类型、缺失模式和材质特性。
7. 总结:边界作为预训练原则
顺着原文读下来,这篇论文的核心思想可以分成三层。
第一层是预训练目标:视觉基础模型如果要服务物理智能,就不能只追求语义不变性。边界、形状、深度突变和遮挡轮廓应该进入预训练目标,而不只是下游任务的监督输出。
第二层是技术机制:masked boundary modeling 用 teacher-discovered boundary tokens 决定 mask,用 categorical boundary field 提供几何目标,用角点、投票和 a-contrario 检验完成在线自举。关键不在"检测线段"本身,重点是把可验证边界结构变成可扩展的自监督信号。
第三层是下游验证:LingBot-Depth 2.0 说明,这类空间预训练不是只在 probing 表上好看,它能改善真实深度补全,尤其是透明、反光、深度缺失和边界复杂场景。
猫先生认为,这篇论文给具身智能视觉 backbone 提供了一个更明确的训练方向:别只问模型能不能认出物体,也要问它有没有把世界切成稳定的表面、边界和可行动几何。复现门槛当然很高,数据、CUDA pipeline、1B 级训练、150M RGB-D 都不是轻量条件;但作为研究路线,它把**"边界是下游输出"改写成了"边界是预训练组织原则"**,这个判断值得认真看。