【免费下载链接】lingbot-vision
Self-supervised learning for spatial perception
LingBot-Vision是一套面向稠密空间感知(Dense Spatial Perception)的自监督 Vision Transformer(ViT)视觉基座模型家族,从轻量级的 ViT-S/16 到 11 亿参数的 ViT-g/16 一应俱全。它通过"以边界为中心的掩码建模"(masked boundary modeling)预训练,让模型同时学会物体边界、几何结构和语义区域,可直接作为深度估计、语义分割、视频目标分割等稠密下游任务的"即插即用"视觉编码器。本文将从零基础视角带你完整解读这个项目:它是什么、能干什么、如何快速上手。
一、LingBot-Vision 是什么:用一句话讲清楚
传统视觉基础模型(如 DINOv2、DINOv3)更偏向语义特征——能认出"图里有什么",但在"物体轮廓在哪里"这类几何问题上表现一般。而 LingBot-Vision 的核心思路是:边界(boundary)才是空间感知的锚点。
它采用一种边界中心的学习目标:预训练时,由教师模型自主发现图像中的"边界 token",再引导学生模型生成既语义连贯、又贴合几何轮廓的 patch 特征。你可以把它理解为一个"自带尺子"的视觉编码器——不仅能看懂画面内容,还天然感知物体形状与空间结构。
上图中每一行展示了:原始输入(左一)、冻结 patch token 的 PCA 特征投影(左二,同色块即同一语义区域)、教师发现的边界 token(左三,红色线条即物体轮廓)、以及选中边界 token 的余弦相似度热力图(右)。可以看到鸡、雨伞、狗等主体的边缘都非常锐利——这正是"边界中心"预训练的直接效果。
二、四大核心能力:为什么它是稠密任务的好基座?
LingBot-Vision 学的是"边界 + 形状 + 语义区域"三位一体的表征,因此可以无缝服务四类稠密下游任务:
- 🎨稠密特征可视化:对冻结的 patch token 做 PCA 投影,即可看到连贯的物体区域与清晰的边界
- 📏深度估计:冻结的 patch token 本身就暴露了空间结构,接一个轻量解码头就能做稠密深度
- 🧩语义分割:边界忠实的特征让区域边界与物体轮廓天然对齐
- 🎬视频目标分割:无需训练,仅靠冻结特征做 token 匹配与标签传播即可完成
- 🤖深度补全:作为 LingBot-Depth 2.0 的视觉编码器初始化,补齐玻璃、镜面等传感器失效区域
上面这张对比图非常直观:每一行是一张原图(第一列)加上五种不同基座模型的 PCA 特征图。作为对照的 LingBot-Vision(最右一列)在鸡、蛇、土拨鼠、松鼠、碗、山路等场景下,区域更干净、物体更完整、背景噪声更少,边界感知能力一目了然。
2.1 实战案例:LingBot-Depth 2.0 的深度补全
除了直接做下游任务,LingBot-Vision 还作为 LingBot-Depth 2.0 的视觉编码器。仅需替换编码器(ViT-L/16 与 ViT-g/16 两个尺度),并将 RGB-D 训练语料从 300 万扩充到 1.5 亿样本,就能在镜面、玻璃等传感器"抓瞎"的场景中补全出稳定连续的深度表面。
每组四列依次为:输入 RGB、原始传感器深度(窗玻璃、玻璃栏杆、反光地面处大面积缺失)、精化后的深度、精化点云。可以清楚看到 LingBot-Vision 编码器帮助"补全"了传感器丢失的区域。
三、模型家族:四个规格按需选择
官方用约 11 亿参数的ViT-g/16 教师模型预训练,再蒸馏出 ViT-L / ViT-B / ViT-S 三个学生模型。所有开源权重都是纯骨干(backbone-only)的.pt文件,配置文件打包在 lingbot_vision/configs/ 目录中,加载时会自动匹配:
| 模型 | 骨干架构 | 嵌入维度 | 定位 |
|---|---|---|---|
| LingBot-Vision-Giant | ViT-g/16 · SwiGLU · fp32 RoPE · 4 个 register tokens | 1536 | 最高质量稠密特征 |
| LingBot-Vision-Large⭐ | ViT-L/16(Giant 蒸馏) | 1024 | 官方推荐:特征强、推理实用 |
| LingBot-Vision-Base | ViT-B/16(Giant 蒸馏) | 768 | 推理成本均衡 |
| LingBot-Vision-Small | ViT-S/16(Giant 蒸馏) | 384 | 轻量演示与下游实验 |
💡新手建议:不确定选哪个就用
large(也是 API 的默认值);只想快速验证流程,可以先用small跑通,再换更大的。
四、安装与快速上手:三步跑通 LingBot-Vision
4.1 环境要求
- Python ≥ 3.10
- PyTorch ≥ 2.0
- 推荐配备 CUDA GPU(大模型推理更流畅;纯 CPU 也可跑
small模型)
依赖清单见 requirements.txt,包元信息见 pyproject.toml。
4.2 一键克隆与安装
git clone https://gitcode.com/gh_mirrors/li/lingbot-vision 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 .4.3 第一次推理:加载预训练骨干
模型权重首次使用时会自动下载。下面是最简调用,三个函数就能拿到 patch 特征:
import torch from lingbot_vision import load_pretrained_backbone, extract_patch_tokens, load_image device = "cuda" if torch.cuda.is_available() else "cpu" backbone, embed_dim = load_pretrained_backbone(variant="small", device=device) 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, torch.bfloat16) print(patch_tokens.shape, patch_grid, embed_dim) # torch.Size([1, 1024, 384]) (32, 32) 384patch_tokens形状为[B, H*W, C],H × W是 patch 网格尺寸。加载逻辑封装在 lingbot_vision/loader.py,它支持按variant名称(giant/large/base/small)、本地目录或 Hugging Face 仓库 ID 加载。
仓库自带了 examples/example.png 作为示例输入(就是上面这张"两位主角"),方便你零成本跑通全流程。
4.4 运行 PCA 特征可视化演示
想亲眼看看"特征长什么样"?项目内置了 PCA 演示脚本 scripts/run_pca_demo.sh(核心实现在 lingbot_vision/pca_demo.py):
./scripts/run_pca_demo.sh \ --config-file lingbot_vision/configs/lbot_vision_vitl.yaml \ --ckpt /path/to/model.pt \ --input examples/example.png \ --out outputs/pca_demo \ --size 512 --mode square --dtype bf16脚本会把 patch token 的前三个 PCA 主成分映射为 RGB 色彩,输出纯 PCA 图与"原图 + PCA"对照面板两类可视化。常用参数:
| 参数 | 说明 |
|---|---|
--config-file | 选择 lingbot_vision/configs/ 下的模型配置 |
--ckpt | 纯骨干.pt权重路径 |
--input | 单张图片或图片目录 |
--mode | square直接缩放到 size×size;shortest先缩最短边再中心裁剪 |
--dtype | bf16/fp16/fp32,纯 CPU 可用--dtype fp32 --device cpu |
五、项目结构速览
仓库非常精炼,核心代码全部集中在 lingbot_vision/ 包内:
- lingbot_vision/init.py:对外暴露的推理 API(加载、提取 patch token 等)
- lingbot_vision/vit.py、lingbot_vision/layers.py、lingbot_vision/attention.py:ViT 骨干、基础层与注意力实现
- lingbot_vision/loader.py:预训练权重解析与加载管线
- lingbot_vision/preprocess.py:图像读取与 ImageNet 归一化
- lingbot_vision/pca_demo.py:PCA 特征可视化演示
- lingbot_vision/configs/lbot_vision_vitl.yaml 等 4 个 YAML:四种规格的结构配置
- paper.pdf:完整技术报告(README.md 中有引用信息,项目遵循 Apache-2.0 协议,见 LICENSE)
六、选型建议与总结
🧭怎么选:演示/教学用small,日常稠密任务首选large(官方推荐),追求极限特征质量上giant,显存紧张选base。
🔧怎么接:所有权重都是纯骨干.pt,加载器会自动剥掉backbone.前缀,直接冻结当特征提取器用即可,下游加解码头做深度、分割等任务。
总结:LingBot-Vision 把"边界感知"注入自监督预训练,让 ViT 特征同时具备语义连贯性与几何锐利度。四个规格覆盖从轻量 Demo 到 11 亿参数旗舰,API 极简(三个函数跑通推理),是稠密空间感知任务上少见的开箱即用型视觉基座——如果你正在做深度估计、语义分割或视频目标分割,值得把它放进你的技术选型清单。
【免费下载链接】lingbot-vision
Self-supervised learning for spatial perception
相关推荐
什么是CVRR潜空间视觉推理?面向新手解读视觉问答大模型Gemma4-12B-CVRR
什么是CVRR潜空间视觉推理?面向新手解读视觉问答大模型Gemma4 12B CVRR Gemma4 12B CVRR 是一个基于 Gemma 4 12B 多模
人工智能大模型多模态计算机视觉微调LoRAvit_small_patch8_224.lunit_dino是什么:3300万张病理Patch训练的自监督ViT特征提取神器,一文读懂
vit_small_patch8_224.lunit_dino是什么:3300万张病理Patch训练的自监督ViT特征提取神器,一文读懂 vit_small_p
Reticulum 是什么:基于密码学的自组织网络协议栈全面解读
Reticulum 是什么:基于密码学的自组织网络协议栈全面解读 本篇技术指南围绕 Reticulum 网络栈(Reticulum Network Stack)
网络通信密码学IoT协议
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考