luigifreda/pyslam

pySLAM is a hybrid Python/C++ Visual SLAM pipeline supporting monocular, stereo, and RGB-D cameras. It provides a broad set of modern local and global feature extractors, multiple loop-closure strategies, a volumetric reconstruction module, integrated depth-prediction models, and semantic segmentation capabilities for enhanced scene understanding.

解決的問題

pySLAM 是一個用於視覺 SLAM(同時定位與地圖建構)的模組化研究框架。它透過提供一個整合多種局部與全域特徵、深度預測模型以及語意分割工具的單一環境,解決了原型設計與實驗不同 VO/SLAM 技術的複雜性,支援單目、立體與 RGBD 相機。

工作原理

本專案採用混合式 Python/C++ 架構。模組化的稀疏 SLAM 核心以兩種語言實作,使用者可選擇高效率(C++)或高彈性(Python)模式。該流程整合了:

  • 特徵追蹤:涵蓋傳統與現代的局部特徵與匹配器。
  • 迴圈封閉:使用描述子聚合器(BoW、VLAD)與全域描述子(NetVLAD、CosPlace 等)偵測先前造訪過的位置。
  • 體積重建:利用深度圖與彩色影像,透過 TSDF 與體素雜湊或增量式高斯點陣法產生密集重建。
  • AI 整合:內建深度預測模型(如 DepthAnythingV2)與語意分割模型(如 Segformer、YOLO),支援場景理解。
  • 3D 場景推論:使用 DUSt3R、Mast3r 等模型,透過前饋流程從多張影像重建 3D 場景。

適用對象

主要針對從事視覺里程計(VO)與 SLAM 的研究人員與開發者,適用於需要靈活基線來原型化新演算法、測試不同特徵提取器,或整合現代 AI 驅動的深度與語意模型的場景。

核心亮點

  • 混合實作:可互操作的 Python 與 C++ 核心,兼顧速度與彈性。
  • 全面的 AI 支援:整合深度預測與語意分割模型。
  • 多相機支援:相容單目、立體與 RGBD 設定。
  • 高密度地圖:支援體積融合與高斯點陣法,實現高品質 3D 重建。
  • 豐富的資料集支援:內建相容超過 10 個主流資料集(KITTI、TUM、EuRoC 等)。
  • 圖形最佳化:整合 g2o 與 GTSAM 實現軌跡最佳化。

相關

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