InsightAT
InsightAT 是开源的一站式运动恢复结构(Structure-from-Motion)系统,面向易用、自动化的三维重建。
InsightAT 面向鲁棒性、可扩展性与自动化而设计。
通过完全由 CLI 驱动、适合上云的管线,将图像集转为高质量的稀疏三维重建。
⚠️ v0.1 — 早期版本
系统已可实际使用,但 API 与内部设计仍可能变化。
🚀 快速开始
1. 编译
git clone https://github.com/huluoboge/InsightAT.git
cd InsightAT
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
2. 运行
./build/isat_sfm -i images/ -w work/
3. 查看结果
./build/at_bundler_viewer work/incremental_sfm
🎯 设计理念
与传统 SfM「工具箱」式软件不同,InsightAT 的取向是:
- 不是零散的算法集合,而是完整工程化的一条重建管线
- 不是由用户主导逐项配置,而是由系统按最佳实践缺省执行
- 不是单次黑盒跑完即止,而是多阶段、可持续优化的系统
面向场景包括:
- 大规模航空 / 无人机影像
- 云端分布式计算
- 高吞吐 GPU 流水线
✨ 主要特性
🚀 端到端自动化 SfM 管线
一条命令从图像到稀疏重建:
isat_sfm -i images/ -w work/
⚡ 前端(GPU 加速)
- 特征提取(SIFT)
- 特征匹配
- 检索相关模块
缺省 SIFT 提取与匹配使用 PopSift(CUDA)。可选用 SiftGPU 后端(CUDA 或 GLSL;适用处可用 EGL 无头)。见 THIRD_PARTY_LICENSES.md。
🔄 异步 IO 与 GPU 吞吐设计
- 特征与匹配管线全异步化
- 面向云端环境,尽量打满 GPU
- 降低大规模处理中的 IO 瓶颈
🧠 结构化增量式 SfM
- 以紧凑布局表示 track,连续维护
- 增量重建同时保留完整全局状态
优化策略:
- 为效率在子集上进行 BA(光束法平差)
- 为稳定性在 resection 中使用完整 track 表示(而非压缩代理)
- 全量三维点云始终保留
🌍 由粗到细的全局优化体系
将 SfM 视为更大重建体系中的第一阶段。
在初始重建之后,系统可支持(能力随版本演进,以代码与文档为准):
- 特征精化
- 畸变校正
- GPS / 外部位姿等约束的融合
- 漂移校正
- 全局优化精化
🧩 云原生 CLI 架构
- 各算法为独立命令行工具
- 以任务/阶段组织执行(
isat_sfm负责编排) - 面向云端 / 集群中的分布式与并行
- 中间结果以标准化二进制容器存储:
- JSON 头 + 二进制 SoA 布局
📈 高「密度」的稀疏输出
- 可产生更稠密、可下游使用的稀疏点云
- 适合衔接:
- MVS 流程
- 3D 高斯泼溅(3DGS)
- 其他下游重建系统
🧭 系统架构
图像
↓
特征提取(GPU)
↓
匹配(GPU + 异步 IO)
↓
Track 构建
↓
增量式 SfM
↓
全局优化(BA / Resection)
↓
稀疏三维模型
🏗️ 可扩展性方向
InsightAT 预期向以下方向扩展:
- 集群 SfM
- 层次化 SfM
- 大规模航空级重建系统
目标场景(愿景):
云上达到数千到百万量级的图像重建规模
🆚 与 COLMAP 的对比
| InsightAT | COLMAP | |
|---|---|---|
| 系统设计 | 整管线为系统 | 偏算法/工具集 |
| 执行形态 | CLI + 任务编排 | 以若干大型工具为主 |
| 优化思路 | 由粗到细、体系化 | 多依赖本地调参与管线组合 |
| 规模侧重 | 大规模 + 上云 | 通用 SfM |
| 自动化 | 全链路自动化管线 | 由用户大量配置工作流 |
📄 许可
MIT License
Copyright (c) 2026 Yang Hu