amap-cvlab/ABot-Recon
Streaming 3D reconstruction from only video input: Revisiting Local Context for Long-Horizon Streaming 3D Reconstruction
ABot‑Recon – 固定局部上下文的流式 3‑D 重建
一句话总结:ABot‑Recon 从长视频流构建密集 3‑D 地图,同时仅查看最近的 12 帧,避免任何重量级的长距离记忆。
项目功能
- 任务 – 输入一系列 RGB 图像(例如行车记录仪视频),输出:
- 每帧的相机位姿(轨迹)。
- 每帧的局部点云,以该帧的坐标系表示。
- 可选的全局点云,通过将局部点云与估计位姿拼接而成。
- 关键思想 – 在每个时间步,模型:
- 缓存前 11 帧的键值特征。
- 预测当前帧的点图。
- 预测当前帧与前一帧之间的相对位姿。
- 组合相对位姿以保持全局轨迹的持续更新。
- 由于模型从不存储增长的状态,推理成本保持恒定,无论视频多长。轻量级的运动‑视觉旋转精化器和位姿感知损失在数千帧内保持低漂移。
- 可选闭环检测 – 如果视频重访某个地点,一个单独的模块(使用 DINOv2‑SALAD 描述符)可以检测闭环候选,添加位姿图约束,并精化轨迹。
快速开始
# 1️⃣ 创建干净的 conda 环境(Python ≥3.10)
conda create -n abot-recon python=3.11 -y
conda activate abot-recon
# 2️⃣ 安装 PyTorch 2.5.1 + CUDA 12.1 和包本身
pip install torch==2.5.1 torchvision==0.20.1 \
--index-url https://download.pytorch.org/whl/cu121
pip install -e .
# 3️⃣ (可选)使用 FlashInfer 和 cuRoPE 加速
pip install flashinfer-python
cd abot_recon/modeling/pi3/models/curope && pip install ninja && python setup.py build_ext --inplace
运行演示(无闭环检测)
python demo.py \
--image-dir examples/images \
--output-dir outputs/demo \
--attention-backend auto \
--no-loop-closure
该命令读取有序图像,通过模型流式处理,并写入:
camera_poses.npy(轨迹)local_points.pt(每帧点云)confidence.pt(每点置信度分数)- 可选的全局点云(
world_points.pt),如果使用--save-world-points。
使用 Python API
from pathlib import Path
from abot_recon import ABotRecon
imgs = sorted(Path('examples/images').glob('*.jpg'))
model = ABotRecon.from_pretrained('acvlab/ABot-Recon', device='cuda')
result = model.infer(imgs)
print(result.camera_poses.shape) # (N, 4, 4)
模型会自动从 Hugging Face 下载检查点;离线使用时,将文件放在 checkpoints/abot_recon.safetensors。
主要特性及其重要性
| 特性 | 提供的内容 |
|---|---|
| 固定 12 帧 KV 缓存 | 即使对于小时级流,内存和计算也保持恒定。 |
| 仅流式推理 | 无需单独的 SLAM 后端;可在单个 GPU 上实时运行(H100 上 504×280 图像约 24 FPS)。 |
| 可选闭环检测模块 | 在不改变核心流式模型的情况下提高重访场景的准确性。 |
| FlashInfer 和 cuRoPE 加速 | 注意力内核和旋转位置编码最多加速约 2 倍。 |
| Hugging Face / ModelScope 上的预训练检查点 | 一键下载,与提供的 API 和演示兼容。 |
| 可视化脚本 | 导出 PLY 点云和鸟瞰轨迹图像。 |
训练配方(分支 train) |
用于在 18 个数据集上微调的现成配置(撰写时尚未发布)。 |
报告的性能(来自论文)
| 基准 | 指标 | 结果 | 设置 |
|---|---|---|---|
| Oxford Spires(相机位姿) | ATE | 4.35 米 | 仅流式,无闭环检测 |
| Oxford Spires(密集重建) | CD | 1.37 米 | F1 = 91.81 %(τ = 4 米) |
| KITTI‑02(吞吐量) | FPS | 24.45 | 504×280,NVIDIA H100,存储排除 |
作者还在 KITTI、VBR、7Scenes、TUM‑Dynamic 上进行了评估,显示出具有竞争力的准确性,同时保持极小的每帧占用(约 6.7 GiB GPU 内存)。
谁可能使用这个?
- 机器人 / 自动驾驶团队需要轻量级、流式 3‑D 地图构建器,可在单个 GPU 或边缘加速器(例如 AX650N NPU 端口)上运行。
- AR/VR 开发者希望实时重建场景,而无需存储整个视频历史。
- 研究人员探索长视野感知;仓库提供推理代码和(在
train分支中)微调流水线。
更多信息
- 论文:https://arxiv.org/abs/2608.27529
- 项目网站:https://amap-cvlab.github.io/ABot-Recon-html
- Hugging Face Spaces 演示:https://huggingface.co/spaces/acvlab/abot-recon-streaming-3d
- 模型权重:Hugging Face(
acvlab/ABot-Recon)和 ModelScope。 - 硬件移植:AXERA‑TECH 的 AX650N NPU 仓库(Docker 镜像、预编译模型)。
许可证
- 代码:Apache‑2.0
- 模型权重:单独的
MODEL_LICENSE.md(见仓库)。
总结
ABot‑Recon 是一个真正的研究级系统,用于长视野流式 3‑D 重建,刻意避免任何增长的内存。它提供实时性能、干净的 Python API,并包含可选的闭环检测以提高准确性。该仓库积极维护(新闻更新至 2026 年 10 月),并提供推理和训练资源,使其成为任何构建必须在长视频流上连续运行的感知流水线的坚实起点。
相关
- 项目
- 项目
- 项目
- 项目
- Dispatch