首页 / 开源热榜 / lingbot-map / 使用教程

LingBot-Map 教程:先跑短序列,再处理窗口和显存

更新于 2026-09-23 · NGJOO AI 实验室 · 约 13 分钟

LingBot-Map 用 Geometric Context Transformer 逐帧预测深度、世界坐标点和相机位姿。它维护几何上下文与 KV cache,并提供短序列浏览器查看器和长视频离线渲染两套入口。

官方没有 GitHub release;pyproject.toml 写 0.1.0。README 记录 2026-06-28 修复 SDPA KV cache,2026-05-25 发布 benchmark。复现实验要同时固定 commit 和 checkpoint revision。

1. 数据从图像到点云怎样流动

输入图像先预处理,初始尺度帧建立参考;后续帧按 streaming 或 windowed 模式更新上下文。模型输出深度、置信度、世界点和相机姿态。demo.py 把结果交给 Viser,默认地址为 http://localhost:8080

长视频走 demo_render/batch_demo.py,还会涉及 ONNX 天空分割、GPU 点云渲染、Kaolin CUDA 扩展和 ffmpeg。它和最小 demo 的安装成本差别很大。

2. 按官方版本建立最小环境

conda create -n lingbot-map python=3.10 -y
conda activate lingbot-map
pip install torch==2.8.0 torchvision==0.23.0 \
  --index-url https://download.pytorch.org/whl/cu128
pip install -e .
pip install -e ".[vis]"

需要 FlashInfer 时再安装:

pip install --index-url https://pypi.org/simple flashinfer-python

FlashInfer 会在首次使用时 JIT 编译 CUDA kernel。没有它可用 --use_sdpa 回退到 PyTorch 原生注意力。模型 checkpoint 约 4.4GB,官方提供 Hugging Face 与 ModelScope 下载入口;不要把权重下载时间误算成推理延迟。

python demo.py \
  --model_path /path/to/lingbot-map.pt \
  --image_folder example/courthouse \
  --mask_sky

3. 长序列的关键不是只加帧

README 说明 video RoPE 用 320 views 训练,KV cache 持续保存超过该范围的帧时,质量会下降。keyframe_interval 只让每隔若干帧的关键帧进入缓存,非关键帧仍产生预测。超过约 3000 帧时可切到 windowed 模式,并用 overlap_keyframes 保留相邻窗口的上下文。

python demo.py --model_path /path/to/lingbot-map.pt \
  --video_path video.mp4 --fps 10 \
  --mode windowed --window_size 128 \
  --overlap_keyframes 16 --keyframe_interval 2

模型默认不做状态重置,推理距离还受训练数据最长距离约束。出现 pose collapse 时,官方建议先调整 keyframe_interval,仍不稳定再用 windowed 模式。它没有声明默认提供全局回环优化,测绘或机器人应用必须自行验证闭环漂移。

4. 显存、网络与输出权限

--offload_to_cpu 默认把逐帧预测移到 CPU;把 num_scale_frames 从 8 降到 2 可减少初始尺度阶段的峰值;把相机迭代从 4 降到 1 会少做三次 refinement。它们都会改变速度或质量,不能只记录“能跑”。

Viewer 端口、输入视频、天空 mask 缓存、逐帧 NPZ 与输出 MP4 都要纳入权限检查。带敏感图像时不要转发 8080 端口,也不要把数据集目录放到共享服务。

验证边界:本轮只核对官方 README、pyproject.toml、benchmark 文档、模型链接和 Releases 页面。没有安装 CUDA、PyTorch、FlashInfer 或 Kaolin,没有下载 checkpoint 和数据集,也没有运行推理、viewer、benchmark 或渲染;约 20 FPS 等硬件结果未在本地复核,本文属于 docs-only。

5. 与 VGGT 对比

Meta 的 VGGT接收一个到数百张图,一次前馈预测相机、深度、点图和跟踪。LingBot-Map 加入流式状态、分页 KV cache、关键帧和窗口重置,更关注连续长序列。

短批次、多任务几何预测可先评估 VGGT;需要连续视频和长序列状态管理时,LingBot-Map 的接口更贴合。

这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。

先判断这个项目是否适合你

适合谁用

适合研究长视频的相机轨迹、深度和点云重建,以及复现实验基准。它不是零配置 CPU 工具,也没有默认全局回环优化;用于机器人或测绘前,要在自己的相机、运动速度、尺度和回环场景上评估漂移。

原教程未展开的系统信息

核心功能

  • 流式几何上下文

    模型用上下文 token、参考窗口和轨迹记忆处理连续帧,输出深度、点图与相机姿态;FlashInfer 提供分页 KV cache 路径。

技术栈和运行条件

语言

Python >=3.10

框架

PyTorch;推荐 torch 2.8.0 + torchvision 0.23.0 + CUDA 12.8

关键依赖

  • Pillow
  • huggingface_hub
  • einops
  • safetensors
  • opencv-python
  • scipy
  • 可选 FlashInfer
  • 可选 Viser/Trimesh/ONNX Runtime
  • 离线渲染另需 Kaolin 与 ffmpeg

运行环境

需要下载约 4.4GB 的 1.19B 参数 checkpoint;交互查看器默认监听 localhost:8080;FlashInfer 首次运行会 JIT 编译 CUDA kernel

官方与对比资料

以下链接用于核对版本、安装方式、功能边界和同类差异。

常见问题

LingBot-Map 没装 FlashInfer 还能运行吗?

可以。官方提供 --use_sdpa,回退到 PyTorch 原生注意力;README 仍建议 FlashInfer 获得更好的流式性能。两条后端的速度、显存和长序列质量应在同一硬件上分别测。

LingBot-Map 为什么长序列要调 keyframe_interval?

模型用 320 views 训练 video RoPE,缓存持续超过这个范围时性能会下降。提高 keyframe_interval 只让部分帧进入 KV cache,非关键帧仍会产生预测,从而把更长视频放进有限上下文。

LingBot-Map 的查看器会开放到公网吗?

README 写的是 Viser 默认运行在 http://localhost:8080。仍应检查实际绑定地址、防火墙和运行环境,不要在含敏感图像时把端口转发到公网。

LingBot-Map 能直接在 8GB 显卡上稳定处理长视频吗?

官方只给出 --offload_to_cpu、减少 num_scale_frames 和降低相机迭代等节省显存方法,没有承诺所有 8GB 设备可稳定运行。应先用短 example 测峰值显存,再逐步增加帧数。

LingBot-Map 和 VGGT 的主要区别是什么?

VGGT 面向一个到数百张图的一次前馈几何预测;LingBot-Map 增加流式状态、分页 KV cache、关键帧和窗口模式,重点处理连续长序列。