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 SLAM(同時位置推定と地図作成)のためのモジュール式研究フレームワークです。VO/SLAM技術のプロトタイピングや実験の複雑さを解消するために、単一の環境で幅広い局所およびグローバル特徴、深度予測モデル、セマンティックセグメンテーションツールを統合しています。モノクロ、ステレオ、RGBDカメラに対応しています。

動作方法

このプロジェクトはハイブリッドな Python/C++ アーキテクチャを使用しています。モジュール式のスパースSLAMコアは両言語で実装されており、ユーザーは高性能(C++)または高柔軟性(Python)のモードを選択できます。パイプラインには以下が含まれます:

  • 特徴追跡:古典的および現代的な局所特徴とマッチャーの範囲。
  • ループクロージング:記述子集約(BoW、VLAD)およびグローバル記述子(NetVLAD、CosPlace など)により、以前に訪れた場所を検出。
  • 体積再構成:深度画像とカラー画像を使用して、TSDFとボクセルハッシュまたはインクリメンタルガウシアンスプラッティングにより高密度再構成を実現。
  • AI統合:DepthAnythingV2 などの深度予測モデル、Segformer、YOLO などのセマンティックセグメンテーションモデルを内蔵し、シーン理解を支援。
  • 3Dシーン推論:DUSt3R や Mast3r などのモデルを使用して、複数の画像から3Dシーンを再構成するフォワードパイプライン。

対象ユーザー

Visual Odometry(VO)および SLAM に取り組む研究者や開発者を主なターゲットとしています。新しいアルゴリズムのプロトタイピング、異なる特徴抽出器のテスト、または現代的なAIベースの深度およびセマンティックモデルの統合が必要な場合に最適です。

特徴

  • ハイブリッド実装:速度と柔軟性のバランスを取るための相互運用可能な Python と C++ コア。
  • 包括的なAIサポート:深度予測およびセマンティックセグメンテーションモデルを統合。
  • マルチカメラ対応:モノクロ、ステレオ、RGBDの設定に対応。
  • 高密度マッピング:高品質な3D再構成のための体積統合とガウシアンスプラッティングをサポート。
  • 広範なデータセット対応:KITTI、TUM、EuRoC など10以上の主要データセットと組み込み互換性。
  • グラフ最適化:g2o および GTSAM との統合により、トラジェクトリ最適化を実現。

関連

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