koide3/small_gicp

Efficient and parallel algorithms for point cloud registration [C++, Python]

해결하는 문제

고성능 C++ 라이브러리를 제공하여 두 개의 3D 포인트 클라우드를 정확하게 정렬할 수 있도록 합니다. ICP(반복적 가장 가까운 점) 및 GICP(일반화 ICP)와 같은 등록 알고리즘의 계산 효율성 부족 문제를 해결하며, 이전 구현보다 훨씬 빠른 대안을 제공합니다.

작동 방식

이 라이브러리는 ICP, 점-평면 ICP, GICP, VGICP 등의 등록 알고리즘을 구현합니다. OpenMP 또는 Intel TBB 백엔드를 사용하여 다운샘플링, KdTree 구축, 법선/공분산 추정을 포함한 전체 파이프라인을 완전히 병렬화하고, 핵심 등록 로직을 깊이 최적화하여 고속을 달성합니다. 헤더 파일만으로 구성된 라이브러리로, 최소한의 종속성(Eigen, nanoflann, Sophus)을 가지며, C++ 및 Python 바인딩도 제공합니다.

대상 사용자

3D 데이터, 로보틱스, SLAM(Simultaneous Localization and Mapping) 작업을 하는 개발자들을 위한 것입니다. C++ 프로젝트에 통합하거나 Open3D와 같은 Python 라이브러리에서 사용할 수 있는 효율적이고 병렬화된 포인트 클라우드 정렬 도구가 필요하신 분들에게 적합합니다.

주요 특징

  • 성능: 전 버전인 fast_gicp 대비 최대 2배의 속도 향상.
  • 병렬화: OpenMP 또는 Intel TBB를 사용하여 전처리 및 등록을 완전히 병렬화.
  • 유연성: 트레이트와 템플릿 기반의 커스터마이징을 통해 사용자 정의 포인트 클라우드 클래스를 지원.
  • 상호 운용성: PCL(Point Cloud Library) 등록 인터페이스를 포함하여 즉시 대체 가능하며, 포터블한 Python 바인딩을 제공.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트