Open Source Robotics

고품질 오픈소스 로봇 프로젝트, 도구 및 소프트웨어의 엄선된 컬렉션.

pySLAM

고전 및 딥러닝 프런트엔드를 갖춘 하이브리드 Python/C++ 비주얼 SLAM 파이프라인

라이선스

GPL-3.0

개요

pySLAM은 Luigi Freda가 만든 하이브리드 Python/C++ 비주얼 SLAM 프레임워크로, 단안·스테레오·RGB-D 입력에서 특징 추적, 키프레임 매핑, 루프 클로징, 재위치추정(relocalization), 볼류메트릭 조밀 재구성까지 완전한 SLAM을 실행합니다. 핵심 특징은 모듈성입니다: 수십 가지의 교체 가능한 로컬 특징(ORB, SIFT부터 SuperPoint, XFeat, LightGlue까지), 다양한 루프 클로징 및 장소 인식 백엔드, 선택적인 깊이 예측·시맨틱 매핑 모듈이 이 프레임워크를 현대 SLAM 연구와 교육의 살아 있는 실험실로 만들어 줍니다.

pySLAM은 교체 가능한 구성 요소를 강조하며 비주얼 SLAM 스택 전체를 구현합니다. 프런트엔드는 수작업 설계(ORB, SIFT, AKAZE, BRISK)와 학습 기반(SuperPoint, DISK, ALIKED, XFeat)을 아우르는 20종 이상의 로컬 특징 검출기/기술자를 지원하고, 매칭은 고전적인 ratio test 또는 LightGlue, LoFTR 같은 학습 매처로 수행합니다. 백엔드는 g2o 기반 희소 번들 조정(bundle adjustment), 여러 집계 방법(DBoW2/3, VLAD, NetVLAD 스타일 전역 기술자)을 사용한 루프 클로징, 포즈 그래프 최적화를 제공합니다. 희소 SLAM을 넘어 단안 깊이 예측(예: DepthAnything), TSDF/가우시안 스플래팅 옵션의 볼류메트릭 조밀 재구성, 프레임별 세그멘테이션을 맵에 융합하는 시맨틱 매핑도 제공합니다. 성능이 중요한 부분은 Python 바인딩을 갖춘 C++로 실행되어, 연구와 수업에 해킹하기 좋은 코드베이스를 유지하면서도 라이브 카메라 사용에 충분한 속도를 냅니다.

중요한 이유

pySLAM은 비주얼 SLAM의 레퍼런스 놀이터가 되었습니다: 고전 ORB-SLAM 스타일 파이프라인과 현대 딥러닝 프런트엔드가 하나의 인터페이스 뒤에 공존하는 매우 드문 시스템으로, 연구자와 학생이 수작업 설계 구성 요소와 학습된 구성 요소를 고립된 실험이 아니라 완전히 동작하는 시스템 안에서 벤치마크할 수 있게 해 줍니다.

해결하는 문제

새로운 특징, 매처, 루프 클로징 방법을 완전한 SLAM 시스템 안에서 평가하려면 보통 모놀리식 C++ 코드베이스에 침습적인 수술이 필요합니다. pySLAM은 각 구성 요소를 플러그인으로 만들어, 실험과 실습 수업이 아이디어에서 동작하는 SLAM까지 몇 시간 만에 도달하게 합니다.

핵심 요점

  • 완전한 비주얼 SLAM: 추적, 로컬 매핑, 루프 클로징, 재위치추정, 조밀 재구성
  • 20종 이상의 교체 가능한 특징 검출기와 매처로 단안, 스테레오, RGB-D 지원
  • 학습 기반 구성 요소를 일급으로 지원: SuperPoint, XFeat, LightGlue, LoFTR, DepthAnything 등
  • TSDF 및 가우시안 스플래팅 백엔드를 갖춘 볼류메트릭 조밀 매핑
  • 시맨틱 매핑 모듈이 세그멘테이션을 3D 맵에 융합

대상

  • 구성 요소를 벤치마크하는 SLAM 연구자
  • 비주얼 SLAM을 실습으로 배우는 대학원생
  • 카메라 기반 위치추정을 프로토타이핑하는 인식(perception) 엔지니어
  • SLAM 강좌를 운영하는 교육자

한계

  • 연구용 코드 — 로봇의 프로덕션 배포용으로 강화되어 있지 않음
  • Python 계층 때문에 약한 하드웨어에서는 최적화된 C++ 시스템 대비 실시간 성능이 제한됨
  • GPL-3.0 라이선스가 클로즈드소스 제품에서의 사용을 제한
  • 모든 딥러닝 확장을 포함한 전체 설치는 무겁고 CUDA에 의존

이 웹사이트는 JavaScript가 필요합니다. 오픈소스 로봇 프로젝트를 탐색하려면 JavaScript를 활성화하세요.