pypose/bae

[T-RO 2026] Bundle Adjustment in the Eager Mode

What it solves

bae 是一個基於 PyTorch 的函式庫,專為機器人學中的高效能、精確二階優化而設計。它特別解決了大規模稀疏優化問題的計算挑戰,例如 Bundle Adjustment (BA) 和 Pose Graph Optimization (PGO),這些對於 3D 重建和空間感知至關重要。

How it works

該函式庫實作了高效的稀疏區塊矩陣運算和自定義 CUDA kernel,以加速稀疏線性代數。它與 PyTorch 的自動微分框架無縫整合,並提供兩種主要的優化策略:

  • Levenberg-Marquardt (LM) Optimizer: 一種用於解決非線性最小二乘法問題的標準演算法。
  • Schur Complement Optimizer: 一種減少線性系統規模的方法,可顯著優化記憶體消耗。

它也支援 torch.compile 以減少執行時的開銷和延遲,並為稀疏 Jacobian 提供了與 PyPose 的共享 API。

Who it’s for

此工具旨在用於機器人學研究人員和開發人員,特別是那些需要對相機位姿和 3D 點進行 GPU 加速優化的 SLAM (Simultaneous Localization and Mapping)、3D 重建和空間 AI 的研究人員和開發人員。

Highlights

  • CUDA Acceleration: 使用自定義 kernel 以實現高效能稀疏線性代數。
  • PyTorch Integration: 直接與 PyTorch 的 autograd 系統整合。
  • Exact 2nd-Order Optimization: 支援 BA 和 PGO 的精確優化技術。
  • Memory Efficiency: 包含一個 Schur complement optimizer,以處理大規模問題時具有較低的記憶體佔用。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案