pySLAM
Hybride Python/C++-Pipeline für visuelles SLAM mit klassischen und Deep-Learning-Frontends
Lizenz
GPL-3.0
Überblick
pySLAM ist ein hybrides Python/C++-Framework für visuelles SLAM von Luigi Freda, das vollständiges SLAM ausführt — Feature-Tracking, Keyframe-Kartierung, Loop Closing, Relokalisierung und volumetrische dichte Rekonstruktion — auf monokularen, Stereo- und RGB-D-Eingaben. Sein prägendes Merkmal ist Modularität: Dutzende austauschbarer lokaler Features (von ORB und SIFT bis SuperPoint, XFeat und LightGlue), mehrere Loop-Closing- und Place-Recognition-Backends sowie optionale Module für Tiefenvorhersage und semantische Kartierung machen es zu einem funktionierenden Labor für moderne SLAM-Forschung und -Lehre.
pySLAM implementiert den kompletten visuellen SLAM-Stack mit Schwerpunkt auf austauschbaren Komponenten. Das Frontend unterstützt über zwanzig lokale Feature-Detektoren/-Deskriptoren, sowohl handgefertigte (ORB, SIFT, AKAZE, BRISK) als auch gelernte (SuperPoint, DISK, ALIKED, XFeat), mit Matching über klassische Ratio-Tests oder gelernte Matcher wie LightGlue und LoFTR. Das Backend bietet Sparse Bundle Adjustment auf g2o, Loop Closing mit mehreren Aggregationsmethoden (DBoW2/3, VLAD, globale Deskriptoren im NetVLAD-Stil) und Pose-Graph-Optimierung. Über sparses SLAM hinaus bietet es monokulare Tiefenvorhersage (z. B. DepthAnything), volumetrische dichte Rekonstruktion mit TSDF-/Gaussian-Splatting-Optionen und semantische Kartierung, die Segmentierungen pro Frame in die Karte fusioniert. Performance-kritische Teile laufen in C++ mit Python-Bindings, wodurch die Codebasis für Forschung und Lehre hackbar bleibt und dennoch schnell genug für den Live-Kamerabetrieb ist.
Warum es wichtig ist
pySLAM ist zur Referenz-Spielwiese für visuelles SLAM geworden: Es ist eines der ganz wenigen Systeme, in denen klassische Pipelines im ORB-SLAM-Stil und moderne Deep-Frontends hinter einer Schnittstelle koexistieren — Forscher und Studierende können handgefertigte gegen gelernte Komponenten in einem vollständig funktionierenden System benchmarken statt isoliert.
Welches Problem es löst
Ein neues Feature, einen Matcher oder eine Loop-Closing-Methode in einem vollständigen SLAM-System zu evaluieren bedeutet normalerweise invasive Eingriffe in eine monolithische C++-Codebasis. pySLAM macht jede Komponente zu einem Plugin, sodass Experimente und Lehrveranstaltungen in Stunden von der Idee zum laufenden SLAM kommen.
Wichtigste Punkte
- Vollständiges visuelles SLAM: Tracking, lokale Kartierung, Loop Closing, Relokalisierung und dichte Rekonstruktion
- Unterstützung für monokular, Stereo und RGB-D mit über 20 austauschbaren Feature-Detektoren und Matchern
- Gelernte Komponenten als First-Class-Bausteine: SuperPoint, XFeat, LightGlue, LoFTR, DepthAnything und mehr
- Volumetrische dichte Kartierung mit TSDF- und Gaussian-Splatting-Backends
- Modul für semantische Kartierung fusioniert Segmentierungen in die 3D-Karte
Für wen
- SLAM-Forscher, die Komponenten benchmarken
- Masterstudierende und Doktoranden, die visuelles SLAM praktisch lernen
- Perception-Ingenieure, die kamerabasierte Lokalisierung prototypisieren
- Lehrende, die SLAM-Kurse durchführen
Einschränkungen
- Code auf Forschungsniveau — nicht für den Produktiveinsatz auf Robotern gehärtet
- Python-Schichten begrenzen die Echtzeit-Performance gegenüber optimierten C++-Systemen auf schwacher Hardware
- Die GPL-3.0-Lizenz schränkt die Nutzung in Closed-Source-Produkten ein
- Die vollständige Installation mit allen Deep-Learning-Extras ist schwergewichtig und CUDA-abhängig