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は、Visual Simultaneous Localization And Mapping (SLAM) のためのモジュール式で拡張性の高いフレームワークを提供します。多様なローカルおよびグローバル特徴量、深度予測モデル、セマンティックセグメンテーションツールを単一の相互運用可能なPython/C++環境に統合することで、さまざまなVO/SLAM技術のプロトタイピングや実験における複雑さを解消します。

仕組み

このプロジェクトは、単眼、ステレオ、RGBDカメラをサポートするハイブリッドパイプラインを実装しています。Python(柔軟性)とC++(パフォーマンス)の両方で利用可能なモジュール式の疎SLAMコアを備えており、マップは両者間で相互運用可能です。パイプラインには以下が統合されています:

  • 特徴追跡: 多様な古典的および現代的なローカル特徴量とマッチング手法。
  • ループクロージング: 記述子アグリゲーター (BoW, VLAD) やグローバル記述子 (NetVLAD, CosPlaceなど) を使用した手法。
  • ボリューム再構成: 深度画像とカラー画像を、ボクセルハッシュを用いたTSDFやインクリメンタルなGaussian Splattingを使用して高密度再構成に変換するパイプライン。
  • AI統合: 深度予測 (例: DepthAnythingV2) やセマンティックセグメンテーション (例: YOLO, Segformer) の組み込みサポートにより、シーン理解を強化。
  • 3D推論: DUSt3RやMast3rなどのモデルを使用して、複数の画像から3Dシーンを再構成するフィードフォワードパイプライン。

対象ユーザー

視覚オドメトリ (VO) やSLAMパイプラインの実験、プロトタイピング、開発を行うための柔軟なベースラインフレームワークを必要とする研究者や開発者向けに設計されています。

ハイライト

  • ハイブリッド実装: 疎SLAMコアにおいてPythonとC++をシームレスに切り替え可能。
  • 広範なモデルサポート: 最先端の深度予測およびセマンティックセグメンテーションモデルを多数統合。
  • マルチカメラサポート: 単眼、ステレオ、RGBDカメラセットアップに対応。
  • 高密度マッピング: ボリューム統合とGaussian Splattingをサポートし、高品質な3D再構成を実現。
  • 幅広いデータセット互換性: KITTI, TUM, EuRoCを含む10種類以上の主要なデータセットタイプを組み込みでサポート。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト