Table of Contents
Fetching ...

CuSfM: CUDA-Accelerated Structure-from-Motion

Jingrui Yu, Jun Liu, Kefei Ren, Joydeep Biswas, Rurui Ye, Keqiang Wu, Chirag Majithia, Di Zeng

TL;DR

CuSfM tackles the computational and accuracy challenges of offline Structure-from-Motion by delivering a CUDA-accelerated pipeline that combines non-redundant data association, BoW-based loop detection, and pose-graph priors with occasional 2D-based stereo translation-scale recovery. The system integrates environment-specific vocabulary construction, a minimal yet informative view-graph, and iterative triangulation with robust bundle adjustment, achieving substantial speedups and improved accuracy over COLMAP across real and simulated datasets. Its contributions include a novel translation-scale estimation from 2D observations, extrinsic refinement in a vehicle-rig setting, and versatile modes for localization and crowdsourced map updates, all under an open-source PyCuSfM umbrella. The results indicate strong practical impact for robotics, autonomous navigation, and virtual simulation pipelines, enabling high-precision 3D reconstruction at industrial scales with hardware-accelerated performance.

Abstract

Efficient and accurate camera pose estimation forms the foundational requirement for dense reconstruction in autonomous navigation, robotic perception, and virtual simulation systems. This paper addresses the challenge via cuSfM, a CUDA-accelerated offline Structure-from-Motion system that leverages GPU parallelization to efficiently employ computationally intensive yet highly accurate feature extractors, generating comprehensive and non-redundant data associations for precise camera pose estimation and globally consistent mapping. The system supports pose optimization, mapping, prior-map localization, and extrinsic refinement. It is designed for offline processing, where computational resources can be fully utilized to maximize accuracy. Experimental results demonstrate that cuSfM achieves significantly improved accuracy and processing speed compared to the widely used COLMAP method across various testing scenarios, while maintaining the high precision and global consistency essential for offline SfM applications. The system is released as an open-source Python wrapper implementation, PyCuSfM, available at https://github.com/nvidia-isaac/pyCuSFM, to facilitate research and applications in computer vision and robotics.

CuSfM: CUDA-Accelerated Structure-from-Motion

TL;DR

CuSfM tackles the computational and accuracy challenges of offline Structure-from-Motion by delivering a CUDA-accelerated pipeline that combines non-redundant data association, BoW-based loop detection, and pose-graph priors with occasional 2D-based stereo translation-scale recovery. The system integrates environment-specific vocabulary construction, a minimal yet informative view-graph, and iterative triangulation with robust bundle adjustment, achieving substantial speedups and improved accuracy over COLMAP across real and simulated datasets. Its contributions include a novel translation-scale estimation from 2D observations, extrinsic refinement in a vehicle-rig setting, and versatile modes for localization and crowdsourced map updates, all under an open-source PyCuSfM umbrella. The results indicate strong practical impact for robotics, autonomous navigation, and virtual simulation pipelines, enabling high-precision 3D reconstruction at industrial scales with hardware-accelerated performance.

Abstract

Efficient and accurate camera pose estimation forms the foundational requirement for dense reconstruction in autonomous navigation, robotic perception, and virtual simulation systems. This paper addresses the challenge via cuSfM, a CUDA-accelerated offline Structure-from-Motion system that leverages GPU parallelization to efficiently employ computationally intensive yet highly accurate feature extractors, generating comprehensive and non-redundant data associations for precise camera pose estimation and globally consistent mapping. The system supports pose optimization, mapping, prior-map localization, and extrinsic refinement. It is designed for offline processing, where computational resources can be fully utilized to maximize accuracy. Experimental results demonstrate that cuSfM achieves significantly improved accuracy and processing speed compared to the widely used COLMAP method across various testing scenarios, while maintaining the high precision and global consistency essential for offline SfM applications. The system is released as an open-source Python wrapper implementation, PyCuSfM, available at https://github.com/nvidia-isaac/pyCuSFM, to facilitate research and applications in computer vision and robotics.
Paper Structure (27 sections, 12 equations, 7 figures, 6 tables)

This paper contains 27 sections, 12 equations, 7 figures, 6 tables.

Figures (7)

  • Figure 1: High-quality 3D reconstruction achieved by cuSfM: A dense point cloud of an indoor meeting room containing over 1.4 million 3D landmarks.
  • Figure 2: System architecture of cuSfM. The pipeline flows from left to right, comprising system inputs, non-redundant data association modules (highlighted in green), pose refinement modules based on data associations (highlighted in purple), and system outputs. The framework supports multiple operational modes including pose optimization and mapping, prior map-based localization, and extrinsic parameter refinement.
  • Figure 3: Illustration of the vocabulary tree construction and loop detection process. The left green panel shows the hierarchical structure of the vocabulary tree, where feature descriptors are clustered into visual words. The right purple panel demonstrates the loop detection pipeline.
  • Figure 4: Illustration of the redundancy issue in feature matching. When Frame A matches with Frame B, and Frame B matches with Frame C, direct matching between Frames A and C becomes redundant as the correspondence can be established through Frame B. The optimal approach is to select only the minimal set of edges (A-B and B-C) that ensure robust triangulation while maintaining sufficient coverage.
  • Figure 5: Illustration of the pose graph structure. Camera poses are represented as triangular nodes, with sequential constraints shown as yellow arrows and loop closure constraints as red arrows. Loop closure frames are highlighted in purple triangles, while blue lines connect three camera frames to form a vehicle rig.
  • ...and 2 more figures